diff --git a/ADPF_OWNERS b/ADPF_OWNERS
index bcdc338..c7ff464 100644
--- a/ADPF_OWNERS
+++ b/ADPF_OWNERS
@@ -1,4 +1,5 @@
-sumir@google.com
+adyabr@google.com
 chingtangyu@google.com
-xwxw@google.com
 mattbuckley@google.com
+sumir@google.com
+xwxw@google.com
\ No newline at end of file
diff --git a/AconfigFlags.bp b/AconfigFlags.bp
index 8b95679..8bfac03 100644
--- a/AconfigFlags.bp
+++ b/AconfigFlags.bp
@@ -610,6 +610,13 @@
     vendor_available: true,
 }
 
+java_aconfig_library {
+    name: "android.os.vibrator.flags-aconfig-java-host",
+    aconfig_declarations: "android.os.vibrator.flags-aconfig",
+    host_supported: true,
+    defaults: ["framework-minus-apex-aconfig-java-defaults"],
+}
+
 // View
 aconfig_declarations {
     name: "android.view.flags-aconfig",
diff --git a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ClientSocketPerfTest.java b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ClientSocketPerfTest.java
index 9e45c4a..bcc0a3b 100644
--- a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ClientSocketPerfTest.java
+++ b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ClientSocketPerfTest.java
@@ -112,36 +112,20 @@
         for (EndpointFactory endpointFactory : EndpointFactory.values()) {
             for (ChannelType channelType : ChannelType.values()) {
                 for (PerfTestProtocol protocol : PerfTestProtocol.values()) {
-                    params.add(
-                            new Object[] {
-                                new Config(
-                                        endpointFactory,
-                                        endpointFactory,
-                                        64,
-                                        "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
-                                        channelType,
-                                        protocol)
-                            });
-                    params.add(
-                            new Object[] {
-                                new Config(
-                                        endpointFactory,
-                                        endpointFactory,
-                                        512,
-                                        "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
-                                        channelType,
-                                        protocol)
-                            });
-                    params.add(
-                            new Object[] {
-                                new Config(
-                                        endpointFactory,
-                                        endpointFactory,
-                                        4096,
-                                        "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
-                                        channelType,
-                                        protocol)
-                            });
+                    for (int messageSize : ConscryptParams.messageSizes) {
+                        for (String cipher : ConscryptParams.ciphers) {
+                            params.add(
+                                    new Object[] {
+                                            new Config(
+                                                    endpointFactory,
+                                                    endpointFactory,
+                                                    messageSize,
+                                                    cipher,
+                                                    channelType,
+                                                    protocol)
+                                    });
+                        }
+                    }
                 }
             }
         }
diff --git a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ConscryptParams.java b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ConscryptParams.java
new file mode 100644
index 0000000..e5131b8
--- /dev/null
+++ b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ConscryptParams.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2025 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.conscrypt;
+
+import java.util.List;
+
+public class ConscryptParams {
+    public static final List<String> ciphers = List.of(
+        "TLS_RSA_WITH_AES_128_GCM_SHA256",
+        "TLS_RSA_WITH_AES_256_GCM_SHA384",
+        "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+        "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
+        "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256"
+    );
+
+    public static final List<Integer> messageSizes = List.of(
+        64,
+        512,
+        4096
+    );
+}
\ No newline at end of file
diff --git a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineHandshakePerfTest.java b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineHandshakePerfTest.java
index cd0ac96..341d8e6 100644
--- a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineHandshakePerfTest.java
+++ b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineHandshakePerfTest.java
@@ -87,11 +87,13 @@
         }
     }
 
+
     public Collection getParams() {
         final List<Object[]> params = new ArrayList<>();
         for (BufferType bufferType : BufferType.values()) {
-            params.add(new Object[] {new Config(bufferType,
-                "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", 100)});
+            for (String cipher : ConscryptParams.ciphers) {
+                params.add(new Object[] {new Config(bufferType, cipher, 100)});
+            }
         }
         return params;
     }
diff --git a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineWrapPerfTest.java b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineWrapPerfTest.java
index 1fee218..23b642e 100644
--- a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineWrapPerfTest.java
+++ b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineWrapPerfTest.java
@@ -37,10 +37,10 @@
 import static org.junit.Assert.assertEquals;
 
 import java.nio.ByteBuffer;
-import java.util.Locale;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Locale;
 import javax.net.ssl.SSLEngine;
 import javax.net.ssl.SSLEngineResult;
 import javax.net.ssl.SSLException;
@@ -94,12 +94,11 @@
     public Collection getParams() {
         final List<Object[]> params = new ArrayList<>();
         for (BufferType bufferType : BufferType.values()) {
-            params.add(new Object[] {new Config(bufferType, 64,
-                                    "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256")});
-            params.add(new Object[] {new Config(bufferType, 512,
-                                    "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256")});
-            params.add(new Object[] {new Config(bufferType, 4096,
-                                    "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256")});
+            for (int messageSize : ConscryptParams.messageSizes) {
+                for (String cipher : ConscryptParams.ciphers) {
+                    params.add(new Object[] {new Config(bufferType, messageSize, cipher)});
+                }
+            }
         }
         return params;
     }
diff --git a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ServerSocketPerfTest.java b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ServerSocketPerfTest.java
index 90a87ce..343bb12 100644
--- a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ServerSocketPerfTest.java
+++ b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ServerSocketPerfTest.java
@@ -102,15 +102,12 @@
         final List<Object[]> params = new ArrayList<>();
         for (EndpointFactory endpointFactory : EndpointFactory.values()) {
             for (ChannelType channelType : ChannelType.values()) {
-                params.add(new Object[] {new Config(endpointFactory,
-                    endpointFactory, 64,
-                    "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", channelType)});
-                params.add(new Object[] {new Config(endpointFactory,
-                    endpointFactory, 512,
-                    "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", channelType)});
-                params.add(new Object[] {new Config(endpointFactory,
-                    endpointFactory, 4096,
-                    "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", channelType)});
+                for (int messageSize : ConscryptParams.messageSizes) {
+                    for (String cipher : ConscryptParams.ciphers) {
+                        params.add(new Object[] {new Config(endpointFactory,
+                            endpointFactory, messageSize, cipher, channelType)});
+                    }
+                }
             }
         }
         return params;
diff --git a/apct-tests/perftests/core/src/android/os/TracePerfTest.java b/apct-tests/perftests/core/src/android/os/TracePerfTest.java
index 0b941c9..d905124 100644
--- a/apct-tests/perftests/core/src/android/os/TracePerfTest.java
+++ b/apct-tests/perftests/core/src/android/os/TracePerfTest.java
@@ -127,14 +127,14 @@
     public void testInstantPerfettoWithArgs() {
         PerfettoTrace.instant(FOO_CATEGORY, "testInstantP")
                 .addArg("foo", "bar")
-                .addFlow(1)
+                .setFlow(1)
                 .emit();
 
         BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
         while (state.keepRunning()) {
             PerfettoTrace.instant(FOO_CATEGORY, "testInstantP")
                     .addArg("foo", "bar")
-                    .addFlow(1)
+                    .setFlow(1)
                     .emit();
         }
     }
diff --git a/apct-tests/perftests/healthconnect/OWNERS b/apct-tests/perftests/healthconnect/OWNERS
index da0b46a..acfe799 100644
--- a/apct-tests/perftests/healthconnect/OWNERS
+++ b/apct-tests/perftests/healthconnect/OWNERS
@@ -2,5 +2,4 @@
 
 arkivanov@google.com
 jstembridge@google.com
-pratyushmore@google.com
 itsleo@google.com
diff --git a/apex/jobscheduler/service/aconfig/job.aconfig b/apex/jobscheduler/service/aconfig/job.aconfig
index 29df80f..876274e 100644
--- a/apex/jobscheduler/service/aconfig/job.aconfig
+++ b/apex/jobscheduler/service/aconfig/job.aconfig
@@ -116,3 +116,13 @@
         purpose: PURPOSE_BUGFIX
     }
 }
+
+flag {
+    name: "additional_quota_for_system_installer"
+    namespace: "backstage_power"
+    description: "Offer additional quota for system installer"
+    bug: "398264531"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
diff --git a/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java b/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java
index f89b13d..251776e 100644
--- a/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java
+++ b/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java
@@ -2995,6 +2995,8 @@
             pw.print(Flags.FLAG_START_USER_BEFORE_SCHEDULED_ALARMS,
                     Flags.startUserBeforeScheduledAlarms());
             pw.println();
+            pw.print(Flags.FLAG_ACQUIRE_WAKELOCK_BEFORE_SEND, Flags.acquireWakelockBeforeSend());
+            pw.println();
             pw.decreaseIndent();
             pw.println();
 
@@ -5367,6 +5369,9 @@
                         // to do any wakelock or stats tracking, so we have nothing
                         // left to do here but go on to the next thing.
                         mSendFinishCount++;
+                        if (Flags.acquireWakelockBeforeSend()) {
+                            mWakeLock.release();
+                        }
                         return;
                     }
                 } else {
@@ -5404,6 +5409,9 @@
                         // stats management to do.  It threw before we posted the delayed
                         // timeout message, so we're done here.
                         mListenerFinishCount++;
+                        if (Flags.acquireWakelockBeforeSend()) {
+                            mWakeLock.release();
+                        }
                         return;
                     }
                 }
diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java
index 637c726..54d337e 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java
@@ -494,6 +494,9 @@
 
     private long mEjLimitAdditionSpecialMs = QcConstants.DEFAULT_EJ_LIMIT_ADDITION_SPECIAL_MS;
 
+    private long mAllowedTimePeriodAdditionaInstallerMs =
+            QcConstants.DEFAULT_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS;
+
     /**
      * The period of time used to calculate expedited job sessions. Apps can only have expedited job
      * sessions totalling {@link #mEJLimitsMs}[bucket within this period of time (without factoring
@@ -1095,6 +1098,18 @@
         return baseLimitMs;
     }
 
+    private long getAllowedTimePerPeriodMsLocked(final int userId, @NonNull final String pkgName,
+            final int standbyBucket) {
+        final long baseLimitMs = mAllowedTimePerPeriodMs[standbyBucket];
+        if (Flags.adjustQuotaDefaultConstants()
+                && Flags.additionalQuotaForSystemInstaller()
+                && standbyBucket == EXEMPTED_INDEX
+                && mSystemInstallers.contains(userId, pkgName)) {
+            return baseLimitMs + mAllowedTimePeriodAdditionaInstallerMs;
+        }
+        return baseLimitMs;
+    }
+
     /**
      * Returns the amount of time, in milliseconds, until the package would have reached its
      * duration quota, assuming it has a job counting towards its quota the entire time. This takes
@@ -1112,25 +1127,26 @@
 
         List<TimedEvent> events = mTimingEvents.get(userId, packageName);
         final ExecutionStats stats = getExecutionStatsLocked(userId, packageName, standbyBucket);
+        final long allowedTimePerPeriodMs =
+                getAllowedTimePerPeriodMsLocked(userId, packageName, standbyBucket);
         if (events == null || events.size() == 0) {
             // Regular ACTIVE case. Since the bucket size equals the allowed time, the app jobs can
             // essentially run until they reach the maximum limit.
-            if (stats.windowSizeMs == mAllowedTimePerPeriodMs[standbyBucket]) {
+            if (stats.windowSizeMs == allowedTimePerPeriodMs) {
                 return mMaxExecutionTimeMs;
             }
-            return mAllowedTimePerPeriodMs[standbyBucket];
+            return allowedTimePerPeriodMs;
         }
 
         final long startWindowElapsed = nowElapsed - stats.windowSizeMs;
         final long startMaxElapsed = nowElapsed - MAX_PERIOD_MS;
-        final long allowedTimePerPeriodMs = mAllowedTimePerPeriodMs[standbyBucket];
         final long allowedTimeRemainingMs = allowedTimePerPeriodMs - stats.executionTimeInWindowMs;
         final long maxExecutionTimeRemainingMs =
                 mMaxExecutionTimeMs - stats.executionTimeInMaxPeriodMs;
 
         // Regular ACTIVE case. Since the bucket size equals the allowed time, the app jobs can
         // essentially run until they reach the maximum limit.
-        if (stats.windowSizeMs == mAllowedTimePerPeriodMs[standbyBucket]) {
+        if (stats.windowSizeMs == allowedTimePerPeriodMs) {
             return calculateTimeUntilQuotaConsumedLocked(
                     events, startMaxElapsed, maxExecutionTimeRemainingMs);
         }
@@ -1270,7 +1286,8 @@
             appStats[standbyBucket] = stats;
         }
         if (refreshStatsIfOld) {
-            final long bucketAllowedTimeMs = mAllowedTimePerPeriodMs[standbyBucket];
+            final long bucketAllowedTimeMs =
+                    getAllowedTimePerPeriodMsLocked(userId, packageName, standbyBucket);
             final long bucketWindowSizeMs = mBucketPeriodsMs[standbyBucket];
             final int jobCountLimit = mMaxBucketJobCounts[standbyBucket];
             final int sessionCountLimit = mMaxBucketSessionCounts[standbyBucket];
@@ -1845,9 +1862,10 @@
         final boolean isUnderJobCountQuota = isUnderJobCountQuotaLocked(stats);
         final boolean isUnderTimingSessionCountQuota = isUnderSessionCountQuotaLocked(stats);
         final long remainingEJQuota = getRemainingEJExecutionTimeLocked(userId, packageName);
-
+        final long allowedTimePerPeriosMs =
+                getAllowedTimePerPeriodMsLocked(userId, packageName, standbyBucket);
         final boolean inRegularQuota =
-                stats.executionTimeInWindowMs < mAllowedTimePerPeriodMs[standbyBucket]
+                stats.executionTimeInWindowMs < allowedTimePerPeriosMs
                         && stats.executionTimeInMaxPeriodMs < mMaxExecutionTimeMs
                         && isUnderJobCountQuota
                         && isUnderTimingSessionCountQuota;
@@ -3037,6 +3055,9 @@
         static final String KEY_ALLOWED_TIME_PER_PERIOD_RESTRICTED_MS =
                 QC_CONSTANT_PREFIX + "allowed_time_per_period_restricted_ms";
         @VisibleForTesting
+        static final String KEY_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS =
+                QC_CONSTANT_PREFIX + "allowed_time_per_period_addition_installer_ms";
+        @VisibleForTesting
         static final String KEY_IN_QUOTA_BUFFER_MS =
                 QC_CONSTANT_PREFIX + "in_quota_buffer_ms";
         @VisibleForTesting
@@ -3169,6 +3190,8 @@
                 10 * 60 * 1000L; // 10 minutes
         private static final long DEFAULT_ALLOWED_TIME_PER_PERIOD_RESTRICTED_MS =
                 10 * 60 * 1000L; // 10 minutes
+        private static final long DEFAULT_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS =
+                10 * 60 * 1000L; // 10 minutes
         private static final long DEFAULT_IN_QUOTA_BUFFER_MS =
                 30 * 1000L; // 30 seconds
         // Legacy default window size for EXEMPTED bucket
@@ -3509,6 +3532,9 @@
          */
         public long EJ_LIMIT_ADDITION_INSTALLER_MS = DEFAULT_EJ_LIMIT_ADDITION_INSTALLER_MS;
 
+        public long ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS =
+                DEFAULT_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS;
+
         /**
          * The period of time used to calculate expedited job sessions. Apps can only have expedited
          * job sessions totalling EJ_LIMIT_<bucket>_MS within this period of time (without factoring
@@ -3603,6 +3629,7 @@
                 case KEY_ALLOWED_TIME_PER_PERIOD_FREQUENT_MS:
                 case KEY_ALLOWED_TIME_PER_PERIOD_RARE_MS:
                 case KEY_ALLOWED_TIME_PER_PERIOD_RESTRICTED_MS:
+                case KEY_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS:
                 case KEY_IN_QUOTA_BUFFER_MS:
                 case KEY_MAX_EXECUTION_TIME_MS:
                 case KEY_WINDOW_SIZE_ACTIVE_MS:
@@ -3847,7 +3874,7 @@
                     KEY_ALLOWED_TIME_PER_PERIOD_EXEMPTED_MS, KEY_ALLOWED_TIME_PER_PERIOD_ACTIVE_MS,
                     KEY_ALLOWED_TIME_PER_PERIOD_WORKING_MS, KEY_ALLOWED_TIME_PER_PERIOD_FREQUENT_MS,
                     KEY_ALLOWED_TIME_PER_PERIOD_RARE_MS, KEY_ALLOWED_TIME_PER_PERIOD_RESTRICTED_MS,
-                    KEY_IN_QUOTA_BUFFER_MS,
+                    KEY_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS, KEY_IN_QUOTA_BUFFER_MS,
                     KEY_MAX_EXECUTION_TIME_MS,
                     KEY_WINDOW_SIZE_EXEMPTED_MS, KEY_WINDOW_SIZE_ACTIVE_MS,
                     KEY_WINDOW_SIZE_WORKING_MS,
@@ -3871,6 +3898,9 @@
             ALLOWED_TIME_PER_PERIOD_RESTRICTED_MS =
                     properties.getLong(KEY_ALLOWED_TIME_PER_PERIOD_RESTRICTED_MS,
                             DEFAULT_ALLOWED_TIME_PER_PERIOD_RESTRICTED_MS);
+            ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS =
+                    properties.getLong(KEY_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS,
+                            DEFAULT_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS);
             IN_QUOTA_BUFFER_MS = properties.getLong(KEY_IN_QUOTA_BUFFER_MS,
                     DEFAULT_IN_QUOTA_BUFFER_MS);
             MAX_EXECUTION_TIME_MS = properties.getLong(KEY_MAX_EXECUTION_TIME_MS,
@@ -3995,6 +4025,18 @@
                 mBucketPeriodsMs[RESTRICTED_INDEX] = newRestrictedPeriodMs;
                 mShouldReevaluateConstraints = true;
             }
+
+            if (Flags.additionalQuotaForSystemInstaller()) {
+                // The additions must be in the range
+                // [0 minutes, exempted window size - active limit].
+                long newAdditionInstallerMs = Math.max(0,
+                        Math.min(mBucketPeriodsMs[EXEMPTED_INDEX] - newAllowedTimeExemptedMs,
+                                ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS));
+                if (mAllowedTimePeriodAdditionaInstallerMs != newAdditionInstallerMs) {
+                    mAllowedTimePeriodAdditionaInstallerMs = newAdditionInstallerMs;
+                    mShouldReevaluateConstraints = true;
+                }
+            }
         }
 
         private void updateRateLimitingConstantsLocked() {
@@ -4159,6 +4201,8 @@
                     .println();
             pw.print(KEY_ALLOWED_TIME_PER_PERIOD_RESTRICTED_MS,
                     ALLOWED_TIME_PER_PERIOD_RESTRICTED_MS).println();
+            pw.print(KEY_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS,
+                    ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS).println();
             pw.print(KEY_IN_QUOTA_BUFFER_MS, IN_QUOTA_BUFFER_MS).println();
             pw.print(KEY_WINDOW_SIZE_EXEMPTED_MS, WINDOW_SIZE_EXEMPTED_MS).println();
             pw.print(KEY_WINDOW_SIZE_ACTIVE_MS, WINDOW_SIZE_ACTIVE_MS).println();
@@ -4335,6 +4379,11 @@
     }
 
     @VisibleForTesting
+    long getAllowedTimePeriodAdditionInstallerMs() {
+        return mAllowedTimePeriodAdditionaInstallerMs;
+    }
+
+    @VisibleForTesting
     long getEjLimitAdditionSpecialMs() {
         return mEjLimitAdditionSpecialMs;
     }
@@ -4435,6 +4484,8 @@
                 + ": " + Flags.enforceQuotaPolicyToFgsJobs());
         pw.println("    " + Flags.FLAG_ENFORCE_QUOTA_POLICY_TO_TOP_STARTED_JOBS
                 + ": " + Flags.enforceQuotaPolicyToTopStartedJobs());
+        pw.println("    " + Flags.FLAG_ADDITIONAL_QUOTA_FOR_SYSTEM_INSTALLER
+                + ": " + Flags.additionalQuotaForSystemInstaller());
         pw.println();
 
         pw.println("Current elapsed time: " + sElapsedRealtimeClock.millis());
diff --git a/boot/boot-image-profile-extra.txt b/boot/boot-image-profile-extra.txt
index ced0d17..ce99bfe 100644
--- a/boot/boot-image-profile-extra.txt
+++ b/boot/boot-image-profile-extra.txt
@@ -45,11 +45,15 @@
 HSPLandroid/os/MessageQueue$StackNodeType;->*
 HSPLandroid/os/MessageQueue$StateNode;->*
 HSPLandroid/os/MessageQueue$TimedParkStateNode;->*
+
+# For now, compile all methods in PerfettoTrace and PerfettoTrackEventExtra.
+# Similar to the existing Trace APIs, these new APIs can impact the performance
+# of many subsystems including MessageQueue. This also keeps benchmark
+# comparisons between both APIs fair.
 HSPLandroid/os/PerfettoTrace$Category;->*
 HSPLandroid/os/PerfettoTrace;->*
 HSPLandroid/os/PerfettoTrackEventExtra;->*
-HSPLandroid/os/PerfettoTrackEventExtra$BuilderImpl;->*
-HSPLandroid/os/PerfettoTrackEventExtra$NoOpBuilder;->*
+HSPLandroid/os/PerfettoTrackEventExtra$Builder;->*
 HSPLandroid/os/PerfettoTrackEventExtra$ArgBool;->*
 HSPLandroid/os/PerfettoTrackEventExtra$ArgInt64;->*
 HSPLandroid/os/PerfettoTrackEventExtra$ArgDouble;->*
diff --git a/core/api/current.txt b/core/api/current.txt
index 9ebb506..3539ec1 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -46375,7 +46375,7 @@
     field public static final int OUT_OF_NETWORK = 11; // 0xb
     field public static final int OUT_OF_SERVICE = 18; // 0x12
     field public static final int POWER_OFF = 17; // 0x11
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_ENABLED = 82; // 0x52
+    field public static final int SATELLITE_ENABLED = 82; // 0x52
     field public static final int SERVER_ERROR = 12; // 0xc
     field public static final int SERVER_UNREACHABLE = 9; // 0x9
     field public static final int TIMED_OUT = 13; // 0xd
@@ -47077,7 +47077,7 @@
     method public int getSubscriptionType();
     method public int getUsageSetting();
     method public boolean isEmbedded();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public boolean isOnlyNonTerrestrialNetwork();
+    method public boolean isOnlyNonTerrestrialNetwork();
     method public boolean isOpportunistic();
     method public void writeToParcel(android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.telephony.SubscriptionInfo> CREATOR;
@@ -47528,7 +47528,7 @@
     field @Deprecated @FlaggedApi("com.android.internal.telephony.flags.deprecate_cdma") public static final int ERI_FLASH = 2; // 0x2
     field @Deprecated @FlaggedApi("com.android.internal.telephony.flags.deprecate_cdma") public static final int ERI_OFF = 1; // 0x1
     field @Deprecated @FlaggedApi("com.android.internal.telephony.flags.deprecate_cdma") public static final int ERI_ON = 0; // 0x0
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final String EVENT_DISPLAY_EMERGENCY_MESSAGE = "android.telephony.event.DISPLAY_EMERGENCY_MESSAGE";
+    field public static final String EVENT_DISPLAY_EMERGENCY_MESSAGE = "android.telephony.event.DISPLAY_EMERGENCY_MESSAGE";
     field public static final String EXTRA_ACTIVE_SIM_SUPPORTED_COUNT = "android.telephony.extra.ACTIVE_SIM_SUPPORTED_COUNT";
     field public static final String EXTRA_APN_PROTOCOL = "android.telephony.extra.APN_PROTOCOL";
     field public static final String EXTRA_APN_TYPE = "android.telephony.extra.APN_TYPE";
@@ -47537,8 +47537,8 @@
     field public static final String EXTRA_CARRIER_NAME = "android.telephony.extra.CARRIER_NAME";
     field public static final String EXTRA_DATA_FAIL_CAUSE = "android.telephony.extra.DATA_FAIL_CAUSE";
     field public static final String EXTRA_DEFAULT_NETWORK_AVAILABLE = "android.telephony.extra.DEFAULT_NETWORK_AVAILABLE";
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final String EXTRA_EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE = "android.telephony.extra.EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE";
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final String EXTRA_EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT = "android.telephony.extra.EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT";
+    field public static final String EXTRA_EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE = "android.telephony.extra.EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE";
+    field public static final String EXTRA_EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT = "android.telephony.extra.EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT";
     field public static final String EXTRA_HIDE_PUBLIC_SETTINGS = "android.telephony.extra.HIDE_PUBLIC_SETTINGS";
     field @Deprecated public static final String EXTRA_INCOMING_NUMBER = "incoming_number";
     field public static final String EXTRA_IS_REFRESH = "android.telephony.extra.IS_REFRESH";
@@ -53802,8 +53802,8 @@
     method @FlaggedApi("com.android.graphics.hwui.flags.limited_hdr") public void setDesiredHdrHeadroom(@FloatRange(from=0.0f, to=10000.0) float);
     method public void setSecure(boolean);
     method public void setSurfaceLifecycle(int);
-    method public void setZOrderMediaOverlay(boolean);
-    method public void setZOrderOnTop(boolean);
+    method @Deprecated @FlaggedApi("android.view.flags.deprecate_surface_view_z_order_apis") public void setZOrderMediaOverlay(boolean);
+    method @Deprecated @FlaggedApi("android.view.flags.deprecate_surface_view_z_order_apis") public void setZOrderOnTop(boolean);
     field public static final int SURFACE_LIFECYCLE_DEFAULT = 0; // 0x0
     field public static final int SURFACE_LIFECYCLE_FOLLOWS_ATTACHMENT = 2; // 0x2
     field public static final int SURFACE_LIFECYCLE_FOLLOWS_VISIBILITY = 1; // 0x1
diff --git a/core/api/module-lib-current.txt b/core/api/module-lib-current.txt
index 40069aa..526a213 100644
--- a/core/api/module-lib-current.txt
+++ b/core/api/module-lib-current.txt
@@ -165,6 +165,16 @@
 
 package android.media {
 
+  public class AudioDeviceVolumeManager {
+    method @FlaggedApi("android.media.audio.unify_absolute_volume_management") @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_AUDIO_ROUTING, android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.BLUETOOTH_STACK}) public void setDeviceAbsoluteMultiVolumeBehavior(@NonNull android.media.AudioDeviceAttributes, @NonNull java.util.List<android.media.VolumeInfo>, @NonNull java.util.concurrent.Executor, @NonNull android.media.AudioDeviceVolumeManager.OnAudioDeviceVolumeChangedListener);
+    method @FlaggedApi("android.media.audio.unify_absolute_volume_management") @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_AUDIO_ROUTING, android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.BLUETOOTH_STACK}) public void setDeviceAbsoluteVolumeBehavior(@NonNull android.media.AudioDeviceAttributes, @NonNull android.media.VolumeInfo, @NonNull java.util.concurrent.Executor, @NonNull android.media.AudioDeviceVolumeManager.OnAudioDeviceVolumeChangedListener);
+  }
+
+  @FlaggedApi("android.media.audio.unify_absolute_volume_management") public static interface AudioDeviceVolumeManager.OnAudioDeviceVolumeChangedListener {
+    method public void onAudioDeviceVolumeAdjusted(@NonNull android.media.AudioDeviceAttributes, @NonNull android.media.VolumeInfo, int, int);
+    method public void onAudioDeviceVolumeChanged(@NonNull android.media.AudioDeviceAttributes, @NonNull android.media.VolumeInfo);
+  }
+
   public class AudioManager {
     method public void adjustStreamVolumeForUid(int, int, int, @NonNull String, int, int, int);
     method public void adjustSuggestedStreamVolumeForUid(int, int, int, @NonNull String, int, int, int);
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 137c967..984bc68 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -11082,7 +11082,7 @@
   public final class ConfigUpdate {
     field public static final String ACTION_UPDATE_CARRIER_ID_DB = "android.os.action.UPDATE_CARRIER_ID_DB";
     field public static final String ACTION_UPDATE_CARRIER_PROVISIONING_URLS = "android.intent.action.UPDATE_CARRIER_PROVISIONING_URLS";
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final String ACTION_UPDATE_CONFIG = "android.os.action.UPDATE_CONFIG";
+    field public static final String ACTION_UPDATE_CONFIG = "android.os.action.UPDATE_CONFIG";
     field public static final String ACTION_UPDATE_CONVERSATION_ACTIONS = "android.intent.action.UPDATE_CONVERSATION_ACTIONS";
     field public static final String ACTION_UPDATE_CT_LOGS = "android.intent.action.UPDATE_CT_LOGS";
     field public static final String ACTION_UPDATE_EMERGENCY_NUMBER_DB = "android.os.action.UPDATE_EMERGENCY_NUMBER_DB";
@@ -11092,7 +11092,7 @@
     field public static final String ACTION_UPDATE_PINS = "android.intent.action.UPDATE_PINS";
     field public static final String ACTION_UPDATE_SMART_SELECTION = "android.intent.action.UPDATE_SMART_SELECTION";
     field public static final String ACTION_UPDATE_SMS_SHORT_CODES = "android.intent.action.UPDATE_SMS_SHORT_CODES";
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final String EXTRA_DOMAIN = "android.os.extra.DOMAIN";
+    field public static final String EXTRA_DOMAIN = "android.os.extra.DOMAIN";
     field public static final String EXTRA_REQUIRED_HASH = "android.os.extra.REQUIRED_HASH";
     field public static final String EXTRA_VERSION = "android.os.extra.VERSION";
   }
@@ -18473,21 +18473,21 @@
 
 package android.telephony.satellite {
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public final class AntennaDirection implements android.os.Parcelable {
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public int describeContents();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public float getX();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public float getY();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public float getZ();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.AntennaDirection> CREATOR;
+  public final class AntennaDirection implements android.os.Parcelable {
+    method public int describeContents();
+    method public float getX();
+    method public float getY();
+    method public float getZ();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.AntennaDirection> CREATOR;
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public final class AntennaPosition implements android.os.Parcelable {
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public int describeContents();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public android.telephony.satellite.AntennaDirection getAntennaDirection();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public int getSuggestedHoldPosition();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.AntennaPosition> CREATOR;
+  public final class AntennaPosition implements android.os.Parcelable {
+    method public int describeContents();
+    method @NonNull public android.telephony.satellite.AntennaDirection getAntennaDirection();
+    method public int getSuggestedHoldPosition();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.AntennaPosition> CREATOR;
   }
 
   @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public final class EarfcnRange implements android.os.Parcelable {
@@ -18498,42 +18498,42 @@
     field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.EarfcnRange> CREATOR;
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public class EnableRequestAttributes {
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public boolean isDemoMode();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public boolean isEmergencyMode();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public boolean isEnabled();
+  public class EnableRequestAttributes {
+    method public boolean isDemoMode();
+    method public boolean isEmergencyMode();
+    method public boolean isEnabled();
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final class EnableRequestAttributes.Builder {
-    ctor @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public EnableRequestAttributes.Builder(boolean);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public android.telephony.satellite.EnableRequestAttributes build();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public android.telephony.satellite.EnableRequestAttributes.Builder setDemoMode(boolean);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public android.telephony.satellite.EnableRequestAttributes.Builder setEmergencyMode(boolean);
+  public static final class EnableRequestAttributes.Builder {
+    ctor public EnableRequestAttributes.Builder(boolean);
+    method @NonNull public android.telephony.satellite.EnableRequestAttributes build();
+    method @NonNull public android.telephony.satellite.EnableRequestAttributes.Builder setDemoMode(boolean);
+    method @NonNull public android.telephony.satellite.EnableRequestAttributes.Builder setEmergencyMode(boolean);
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public final class NtnSignalStrength implements android.os.Parcelable {
-    ctor @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public NtnSignalStrength(@Nullable android.telephony.satellite.NtnSignalStrength);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public int describeContents();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public int getLevel();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.NtnSignalStrength> CREATOR;
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NTN_SIGNAL_STRENGTH_GOOD = 3; // 0x3
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NTN_SIGNAL_STRENGTH_GREAT = 4; // 0x4
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NTN_SIGNAL_STRENGTH_MODERATE = 2; // 0x2
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NTN_SIGNAL_STRENGTH_NONE = 0; // 0x0
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NTN_SIGNAL_STRENGTH_POOR = 1; // 0x1
+  public final class NtnSignalStrength implements android.os.Parcelable {
+    ctor public NtnSignalStrength(@Nullable android.telephony.satellite.NtnSignalStrength);
+    method public int describeContents();
+    method public int getLevel();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.NtnSignalStrength> CREATOR;
+    field public static final int NTN_SIGNAL_STRENGTH_GOOD = 3; // 0x3
+    field public static final int NTN_SIGNAL_STRENGTH_GREAT = 4; // 0x4
+    field public static final int NTN_SIGNAL_STRENGTH_MODERATE = 2; // 0x2
+    field public static final int NTN_SIGNAL_STRENGTH_NONE = 0; // 0x0
+    field public static final int NTN_SIGNAL_STRENGTH_POOR = 1; // 0x1
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public interface NtnSignalStrengthCallback {
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void onNtnSignalStrengthChanged(@NonNull android.telephony.satellite.NtnSignalStrength);
+  public interface NtnSignalStrengthCallback {
+    method public void onNtnSignalStrengthChanged(@NonNull android.telephony.satellite.NtnSignalStrength);
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public final class PointingInfo implements android.os.Parcelable {
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public int describeContents();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @FloatRange(from=0xffffff4c, to=180) public float getSatelliteAzimuthDegrees();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @FloatRange(from=0xffffffa6, to=90) public float getSatelliteElevationDegrees();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.PointingInfo> CREATOR;
+  public final class PointingInfo implements android.os.Parcelable {
+    method public int describeContents();
+    method @FloatRange(from=0xffffff4c, to=180) public float getSatelliteAzimuthDegrees();
+    method @FloatRange(from=0xffffffa6, to=90) public float getSatelliteElevationDegrees();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.PointingInfo> CREATOR;
   }
 
   @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public final class SatelliteAccessConfiguration implements android.os.Parcelable {
@@ -18544,18 +18544,18 @@
     field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.SatelliteAccessConfiguration> CREATOR;
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public final class SatelliteCapabilities implements android.os.Parcelable {
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public int describeContents();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public java.util.Map<java.lang.Integer,android.telephony.satellite.AntennaPosition> getAntennaPositionMap();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public int getMaxBytesPerOutgoingDatagram();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public java.util.Set<java.lang.Integer> getSupportedRadioTechnologies();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public boolean isPointingRequired();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.SatelliteCapabilities> CREATOR;
+  public final class SatelliteCapabilities implements android.os.Parcelable {
+    method public int describeContents();
+    method @NonNull public java.util.Map<java.lang.Integer,android.telephony.satellite.AntennaPosition> getAntennaPositionMap();
+    method public int getMaxBytesPerOutgoingDatagram();
+    method @NonNull public java.util.Set<java.lang.Integer> getSupportedRadioTechnologies();
+    method public boolean isPointingRequired();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.SatelliteCapabilities> CREATOR;
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public interface SatelliteCapabilitiesCallback {
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void onSatelliteCapabilitiesChanged(@NonNull android.telephony.satellite.SatelliteCapabilities);
+  public interface SatelliteCapabilitiesCallback {
+    method public void onSatelliteCapabilitiesChanged(@NonNull android.telephony.satellite.SatelliteCapabilities);
   }
 
   @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public interface SatelliteCommunicationAccessStateCallback {
@@ -18563,15 +18563,15 @@
     method public default void onAccessConfigurationChanged(@Nullable android.telephony.satellite.SatelliteAccessConfiguration);
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public final class SatelliteDatagram implements android.os.Parcelable {
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public int describeContents();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public byte[] getSatelliteDatagram();
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.SatelliteDatagram> CREATOR;
+  public final class SatelliteDatagram implements android.os.Parcelable {
+    method public int describeContents();
+    method @NonNull public byte[] getSatelliteDatagram();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.SatelliteDatagram> CREATOR;
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public interface SatelliteDatagramCallback {
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void onSatelliteDatagramReceived(long, @NonNull android.telephony.satellite.SatelliteDatagram, int, @NonNull java.util.function.Consumer<java.lang.Void>);
+  public interface SatelliteDatagramCallback {
+    method public void onSatelliteDatagramReceived(long, @NonNull android.telephony.satellite.SatelliteDatagram, int, @NonNull java.util.function.Consumer<java.lang.Void>);
   }
 
   @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public interface SatelliteDisallowedReasonsCallback {
@@ -18591,49 +18591,49 @@
   @FlaggedApi("com.android.internal.telephony.flags.satellite_state_change_listener") public final class SatelliteManager {
     method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void addAttachRestrictionForCarrier(int, int, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void deprovisionSatellite(@NonNull java.util.List<android.telephony.satellite.SatelliteSubscriberInfo>, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.telephony.satellite.SatelliteManager.SatelliteException>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void deprovisionService(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void deprovisionService(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
     method @NonNull @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public java.util.Set<java.lang.Integer> getAttachRestrictionReasonsForCarrier(int);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_25q4_apis") @NonNull @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public java.util.List<java.lang.String> getSatelliteDataOptimizedApps();
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @NonNull @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int[] getSatelliteDisallowedReasons();
     method @NonNull @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public java.util.List<java.lang.String> getSatellitePlmnsForCarrier(int);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void pollPendingDatagrams(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void pollPendingDatagrams(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void provisionSatellite(@NonNull java.util.List<android.telephony.satellite.SatelliteSubscriberInfo>, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.telephony.satellite.SatelliteManager.SatelliteException>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void provisionService(@NonNull String, @NonNull byte[], @Nullable android.os.CancellationSignal, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForCapabilitiesChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteCapabilitiesCallback);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void provisionService(@NonNull String, @NonNull byte[], @Nullable android.os.CancellationSignal, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForCapabilitiesChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteCapabilitiesCallback);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForCommunicationAccessStateChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteCommunicationAccessStateCallback);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForIncomingDatagram(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteDatagramCallback);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForModemStateChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteModemStateCallback);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void registerForNtnSignalStrengthChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.NtnSignalStrengthCallback);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForProvisionStateChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteProvisionStateCallback);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForIncomingDatagram(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteDatagramCallback);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForModemStateChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteModemStateCallback);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void registerForNtnSignalStrengthChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.NtnSignalStrengthCallback);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForProvisionStateChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteProvisionStateCallback);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void registerForSatelliteDisallowedReasonsChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteDisallowedReasonsCallback);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForSelectedNbIotSatelliteSubscriptionChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SelectedNbIotSatelliteSubscriptionCallback);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForSupportedStateChanged(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
     method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void removeAttachRestrictionForCarrier(int, int, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
     method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestAttachEnabledForCarrier(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestCapabilities(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.telephony.satellite.SatelliteCapabilities,android.telephony.satellite.SatelliteManager.SatelliteException>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestEnabled(@NonNull android.telephony.satellite.EnableRequestAttributes, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestCapabilities(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.telephony.satellite.SatelliteCapabilities,android.telephony.satellite.SatelliteManager.SatelliteException>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestEnabled(@NonNull android.telephony.satellite.EnableRequestAttributes, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
     method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsAttachEnabledForCarrier(int, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsCommunicationAllowedForCurrentLocation(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsDemoModeEnabled(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsEmergencyModeEnabled(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsEnabled(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsProvisioned(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void requestIsSupported(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestNtnSignalStrength(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.telephony.satellite.NtnSignalStrength,android.telephony.satellite.SatelliteManager.SatelliteException>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsCommunicationAllowedForCurrentLocation(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsDemoModeEnabled(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsEmergencyModeEnabled(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsEnabled(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsProvisioned(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
+    method public void requestIsSupported(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestNtnSignalStrength(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.telephony.satellite.NtnSignalStrength,android.telephony.satellite.SatelliteManager.SatelliteException>);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestSatelliteAccessConfigurationForCurrentLocation(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.telephony.satellite.SatelliteAccessConfiguration,android.telephony.satellite.SatelliteManager.SatelliteException>);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestSatelliteSubscriberProvisionStatus(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.util.List<android.telephony.satellite.SatelliteSubscriberProvisionStatus>,android.telephony.satellite.SatelliteManager.SatelliteException>);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestSelectedNbIotSatelliteSubscriptionId(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Integer,android.telephony.satellite.SatelliteManager.SatelliteException>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestTimeForNextSatelliteVisibility(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.time.Duration,android.telephony.satellite.SatelliteManager.SatelliteException>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void sendDatagram(int, @NonNull android.telephony.satellite.SatelliteDatagram, boolean, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void setDeviceAlignedWithSatellite(boolean);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void startTransmissionUpdates(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>, @NonNull android.telephony.satellite.SatelliteTransmissionUpdateCallback);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void stopTransmissionUpdates(@NonNull android.telephony.satellite.SatelliteTransmissionUpdateCallback, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForCapabilitiesChanged(@NonNull android.telephony.satellite.SatelliteCapabilitiesCallback);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestTimeForNextSatelliteVisibility(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.time.Duration,android.telephony.satellite.SatelliteManager.SatelliteException>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void sendDatagram(int, @NonNull android.telephony.satellite.SatelliteDatagram, boolean, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void setDeviceAlignedWithSatellite(boolean);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void startTransmissionUpdates(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>, @NonNull android.telephony.satellite.SatelliteTransmissionUpdateCallback);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void stopTransmissionUpdates(@NonNull android.telephony.satellite.SatelliteTransmissionUpdateCallback, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForCapabilitiesChanged(@NonNull android.telephony.satellite.SatelliteCapabilitiesCallback);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForCommunicationAccessStateChanged(@NonNull android.telephony.satellite.SatelliteCommunicationAccessStateCallback);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForIncomingDatagram(@NonNull android.telephony.satellite.SatelliteDatagramCallback);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForModemStateChanged(@NonNull android.telephony.satellite.SatelliteModemStateCallback);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForNtnSignalStrengthChanged(@NonNull android.telephony.satellite.NtnSignalStrengthCallback);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForProvisionStateChanged(@NonNull android.telephony.satellite.SatelliteProvisionStateCallback);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForIncomingDatagram(@NonNull android.telephony.satellite.SatelliteDatagramCallback);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForModemStateChanged(@NonNull android.telephony.satellite.SatelliteModemStateCallback);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForNtnSignalStrengthChanged(@NonNull android.telephony.satellite.NtnSignalStrengthCallback);
+    method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForProvisionStateChanged(@NonNull android.telephony.satellite.SatelliteProvisionStateCallback);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForSatelliteDisallowedReasonsChanged(@NonNull android.telephony.satellite.SatelliteDisallowedReasonsCallback);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForSelectedNbIotSatelliteSubscriptionChanged(@NonNull android.telephony.satellite.SelectedNbIotSatelliteSubscriptionCallback);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForSupportedStateChanged(@NonNull java.util.function.Consumer<java.lang.Boolean>);
@@ -18643,86 +18643,86 @@
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int DATAGRAM_TYPE_KEEP_ALIVE = 3; // 0x3
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int DATAGRAM_TYPE_LAST_SOS_MESSAGE_NO_HELP_NEEDED = 5; // 0x5
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int DATAGRAM_TYPE_LAST_SOS_MESSAGE_STILL_NEED_HELP = 4; // 0x4
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DATAGRAM_TYPE_LOCATION_SHARING = 2; // 0x2
+    field public static final int DATAGRAM_TYPE_LOCATION_SHARING = 2; // 0x2
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int DATAGRAM_TYPE_SMS = 6; // 0x6
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DATAGRAM_TYPE_SOS_MESSAGE = 1; // 0x1
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DATAGRAM_TYPE_UNKNOWN = 0; // 0x0
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DEVICE_HOLD_POSITION_LANDSCAPE_LEFT = 2; // 0x2
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DEVICE_HOLD_POSITION_LANDSCAPE_RIGHT = 3; // 0x3
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DEVICE_HOLD_POSITION_PORTRAIT = 1; // 0x1
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DEVICE_HOLD_POSITION_UNKNOWN = 0; // 0x0
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DISPLAY_MODE_CLOSED = 3; // 0x3
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DISPLAY_MODE_FIXED = 1; // 0x1
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DISPLAY_MODE_OPENED = 2; // 0x2
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DISPLAY_MODE_UNKNOWN = 0; // 0x0
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS = 1; // 0x1
+    field public static final int DATAGRAM_TYPE_SOS_MESSAGE = 1; // 0x1
+    field public static final int DATAGRAM_TYPE_UNKNOWN = 0; // 0x0
+    field public static final int DEVICE_HOLD_POSITION_LANDSCAPE_LEFT = 2; // 0x2
+    field public static final int DEVICE_HOLD_POSITION_LANDSCAPE_RIGHT = 3; // 0x3
+    field public static final int DEVICE_HOLD_POSITION_PORTRAIT = 1; // 0x1
+    field public static final int DEVICE_HOLD_POSITION_UNKNOWN = 0; // 0x0
+    field public static final int DISPLAY_MODE_CLOSED = 3; // 0x3
+    field public static final int DISPLAY_MODE_FIXED = 1; // 0x1
+    field public static final int DISPLAY_MODE_OPENED = 2; // 0x2
+    field public static final int DISPLAY_MODE_UNKNOWN = 0; // 0x0
+    field public static final int EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS = 1; // 0x1
     field public static final int EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_T911 = 2; // 0x2
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NT_RADIO_TECHNOLOGY_EMTC_NTN = 3; // 0x3
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NT_RADIO_TECHNOLOGY_NB_IOT_NTN = 1; // 0x1
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NT_RADIO_TECHNOLOGY_NR_NTN = 2; // 0x2
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NT_RADIO_TECHNOLOGY_PROPRIETARY = 4; // 0x4
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NT_RADIO_TECHNOLOGY_UNKNOWN = 0; // 0x0
+    field public static final int NT_RADIO_TECHNOLOGY_EMTC_NTN = 3; // 0x3
+    field public static final int NT_RADIO_TECHNOLOGY_NB_IOT_NTN = 1; // 0x1
+    field public static final int NT_RADIO_TECHNOLOGY_NR_NTN = 2; // 0x2
+    field public static final int NT_RADIO_TECHNOLOGY_PROPRIETARY = 4; // 0x4
+    field public static final int NT_RADIO_TECHNOLOGY_UNKNOWN = 0; // 0x0
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final String PROPERTY_SATELLITE_MANUAL_CONNECT_P2P_SUPPORT = "android.telephony.satellite.PROPERTY_SATELLITE_MANUAL_CONNECT_P2P_SUPPORT";
     field public static final int SATELLITE_COMMUNICATION_RESTRICTION_REASON_ENTITLEMENT = 2; // 0x2
     field public static final int SATELLITE_COMMUNICATION_RESTRICTION_REASON_GEOLOCATION = 1; // 0x1
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int SATELLITE_COMMUNICATION_RESTRICTION_REASON_USER = 0; // 0x0
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE = 0; // 0x0
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED = 7; // 0x7
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_NONE = 6; // 0x6
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_SUCCESS = 5; // 0x5
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING = 4; // 0x4
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_SENDING = 1; // 0x1
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED = 3; // 0x3
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_SUCCESS = 2; // 0x2
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_UNKNOWN = -1; // 0xffffffff
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_WAITING_TO_CONNECT = 8; // 0x8
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_MODEM_STATE_CONNECTED = 7; // 0x7
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_MODEM_STATE_DATAGRAM_RETRYING = 3; // 0x3
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING = 2; // 0x2
+    field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE = 0; // 0x0
+    field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED = 7; // 0x7
+    field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_NONE = 6; // 0x6
+    field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_SUCCESS = 5; // 0x5
+    field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING = 4; // 0x4
+    field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_SENDING = 1; // 0x1
+    field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED = 3; // 0x3
+    field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_SUCCESS = 2; // 0x2
+    field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_UNKNOWN = -1; // 0xffffffff
+    field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_WAITING_TO_CONNECT = 8; // 0x8
+    field public static final int SATELLITE_MODEM_STATE_CONNECTED = 7; // 0x7
+    field public static final int SATELLITE_MODEM_STATE_DATAGRAM_RETRYING = 3; // 0x3
+    field public static final int SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING = 2; // 0x2
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int SATELLITE_MODEM_STATE_DISABLING_SATELLITE = 9; // 0x9
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int SATELLITE_MODEM_STATE_ENABLING_SATELLITE = 8; // 0x8
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_MODEM_STATE_IDLE = 0; // 0x0
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_MODEM_STATE_LISTENING = 1; // 0x1
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_MODEM_STATE_NOT_CONNECTED = 6; // 0x6
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_MODEM_STATE_OFF = 4; // 0x4
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_MODEM_STATE_UNAVAILABLE = 5; // 0x5
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_MODEM_STATE_UNKNOWN = -1; // 0xffffffff
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_ACCESS_BARRED = 16; // 0x10
+    field public static final int SATELLITE_MODEM_STATE_IDLE = 0; // 0x0
+    field public static final int SATELLITE_MODEM_STATE_LISTENING = 1; // 0x1
+    field public static final int SATELLITE_MODEM_STATE_NOT_CONNECTED = 6; // 0x6
+    field public static final int SATELLITE_MODEM_STATE_OFF = 4; // 0x4
+    field public static final int SATELLITE_MODEM_STATE_UNAVAILABLE = 5; // 0x5
+    field public static final int SATELLITE_MODEM_STATE_UNKNOWN = -1; // 0xffffffff
+    field public static final int SATELLITE_RESULT_ACCESS_BARRED = 16; // 0x10
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int SATELLITE_RESULT_DISABLE_IN_PROGRESS = 28; // 0x1c
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int SATELLITE_RESULT_EMERGENCY_CALL_IN_PROGRESS = 27; // 0x1b
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int SATELLITE_RESULT_ENABLE_IN_PROGRESS = 29; // 0x1d
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_ERROR = 1; // 0x1
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_ILLEGAL_STATE = 23; // 0x17
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_INVALID_ARGUMENTS = 8; // 0x8
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_INVALID_MODEM_STATE = 7; // 0x7
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_INVALID_TELEPHONY_STATE = 6; // 0x6
+    field public static final int SATELLITE_RESULT_ERROR = 1; // 0x1
+    field public static final int SATELLITE_RESULT_ILLEGAL_STATE = 23; // 0x17
+    field public static final int SATELLITE_RESULT_INVALID_ARGUMENTS = 8; // 0x8
+    field public static final int SATELLITE_RESULT_INVALID_MODEM_STATE = 7; // 0x7
+    field public static final int SATELLITE_RESULT_INVALID_TELEPHONY_STATE = 6; // 0x6
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int SATELLITE_RESULT_LOCATION_DISABLED = 25; // 0x19
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int SATELLITE_RESULT_LOCATION_NOT_AVAILABLE = 26; // 0x1a
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_MODEM_BUSY = 22; // 0x16
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_MODEM_ERROR = 4; // 0x4
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_MODEM_TIMEOUT = 24; // 0x18
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_NETWORK_ERROR = 5; // 0x5
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_NETWORK_TIMEOUT = 17; // 0x11
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_NOT_AUTHORIZED = 19; // 0x13
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_NOT_REACHABLE = 18; // 0x12
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_NOT_SUPPORTED = 20; // 0x14
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_NO_RESOURCES = 12; // 0xc
+    field public static final int SATELLITE_RESULT_MODEM_BUSY = 22; // 0x16
+    field public static final int SATELLITE_RESULT_MODEM_ERROR = 4; // 0x4
+    field public static final int SATELLITE_RESULT_MODEM_TIMEOUT = 24; // 0x18
+    field public static final int SATELLITE_RESULT_NETWORK_ERROR = 5; // 0x5
+    field public static final int SATELLITE_RESULT_NETWORK_TIMEOUT = 17; // 0x11
+    field public static final int SATELLITE_RESULT_NOT_AUTHORIZED = 19; // 0x13
+    field public static final int SATELLITE_RESULT_NOT_REACHABLE = 18; // 0x12
+    field public static final int SATELLITE_RESULT_NOT_SUPPORTED = 20; // 0x14
+    field public static final int SATELLITE_RESULT_NO_RESOURCES = 12; // 0xc
     field @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public static final int SATELLITE_RESULT_NO_VALID_SATELLITE_SUBSCRIPTION = 30; // 0x1e
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_RADIO_NOT_AVAILABLE = 10; // 0xa
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_REQUEST_ABORTED = 15; // 0xf
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_REQUEST_FAILED = 9; // 0x9
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_REQUEST_IN_PROGRESS = 21; // 0x15
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_REQUEST_NOT_SUPPORTED = 11; // 0xb
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_SERVER_ERROR = 2; // 0x2
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_SERVICE_ERROR = 3; // 0x3
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_SERVICE_NOT_PROVISIONED = 13; // 0xd
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_SERVICE_PROVISION_IN_PROGRESS = 14; // 0xe
-    field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int SATELLITE_RESULT_SUCCESS = 0; // 0x0
+    field public static final int SATELLITE_RESULT_RADIO_NOT_AVAILABLE = 10; // 0xa
+    field public static final int SATELLITE_RESULT_REQUEST_ABORTED = 15; // 0xf
+    field public static final int SATELLITE_RESULT_REQUEST_FAILED = 9; // 0x9
+    field public static final int SATELLITE_RESULT_REQUEST_IN_PROGRESS = 21; // 0x15
+    field public static final int SATELLITE_RESULT_REQUEST_NOT_SUPPORTED = 11; // 0xb
+    field public static final int SATELLITE_RESULT_SERVER_ERROR = 2; // 0x2
+    field public static final int SATELLITE_RESULT_SERVICE_ERROR = 3; // 0x3
+    field public static final int SATELLITE_RESULT_SERVICE_NOT_PROVISIONED = 13; // 0xd
+    field public static final int SATELLITE_RESULT_SERVICE_PROVISION_IN_PROGRESS = 14; // 0xe
+    field public static final int SATELLITE_RESULT_SUCCESS = 0; // 0x0
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static class SatelliteManager.SatelliteException extends java.lang.Exception {
-    ctor @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public SatelliteManager.SatelliteException(int);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public int getErrorCode();
+  public static class SatelliteManager.SatelliteException extends java.lang.Exception {
+    ctor public SatelliteManager.SatelliteException(int);
+    method public int getErrorCode();
   }
 
   @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public final class SatelliteModemEnableRequestAttributes implements android.os.Parcelable {
@@ -18736,8 +18736,8 @@
     field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.SatelliteModemEnableRequestAttributes> CREATOR;
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public interface SatelliteModemStateCallback {
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void onSatelliteModemStateChanged(int);
+  public interface SatelliteModemStateCallback {
+    method public void onSatelliteModemStateChanged(int);
   }
 
   @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public final class SatellitePosition implements android.os.Parcelable {
@@ -18749,8 +18749,8 @@
     field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.SatellitePosition> CREATOR;
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public interface SatelliteProvisionStateCallback {
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void onSatelliteProvisionStateChanged(boolean);
+  public interface SatelliteProvisionStateCallback {
+    method public void onSatelliteProvisionStateChanged(boolean);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public default void onSatelliteSubscriptionProvisionStateChanged(@NonNull java.util.List<android.telephony.satellite.SatelliteSubscriberProvisionStatus>);
   }
 
@@ -18800,11 +18800,11 @@
     field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.SatelliteSubscriptionInfo> CREATOR;
   }
 
-  @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public interface SatelliteTransmissionUpdateCallback {
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void onReceiveDatagramStateChanged(int, int, int);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void onSatellitePositionChanged(@NonNull android.telephony.satellite.PointingInfo);
+  public interface SatelliteTransmissionUpdateCallback {
+    method public void onReceiveDatagramStateChanged(int, int, int);
+    method public void onSatellitePositionChanged(@NonNull android.telephony.satellite.PointingInfo);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public default void onSendDatagramRequested(int);
-    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void onSendDatagramStateChanged(int, int, int);
+    method public void onSendDatagramStateChanged(int, int, int);
     method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") public default void onSendDatagramStateChanged(int, int, int, int);
   }
 
diff --git a/core/api/test-current.txt b/core/api/test-current.txt
index 89b3773..514a582 100644
--- a/core/api/test-current.txt
+++ b/core/api/test-current.txt
@@ -1737,6 +1737,7 @@
     method @NonNull public int[] getUserDisabledHdrTypes();
     method public boolean isMinimalPostProcessingRequested(int);
     method @RequiresPermission(android.Manifest.permission.ACCESS_SURFACE_FLINGER) public void overrideHdrTypes(int, @NonNull int[]);
+    method @FlaggedApi("com.android.server.display.feature.flags.delay_implicit_rr_registration_until_rr_accessed") public void resetImplicitRefreshRateCallbackStatus();
     method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setAreUserDisabledHdrTypesAllowed(boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_USER_PREFERRED_DISPLAY_MODE) public void setGlobalUserPreferredDisplayMode(@NonNull android.view.Display.Mode);
     method @RequiresPermission(android.Manifest.permission.MODIFY_HDR_CONVERSION_MODE) public void setHdrConversionMode(@NonNull android.hardware.display.HdrConversionMode);
@@ -2585,7 +2586,7 @@
   }
 
   public class UserManager {
-    method @FlaggedApi("android.os.allow_private_profile") @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}, conditional=true) public boolean canAddPrivateProfile();
+    method @FlaggedApi("android.os.allow_private_profile") @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public boolean canAddPrivateProfile();
     method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public android.content.pm.UserInfo createProfileForUser(@Nullable String, @NonNull String, int, int, @Nullable String[]);
     method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public android.content.pm.UserInfo createRestrictedProfile(@Nullable String);
     method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public android.content.pm.UserInfo createUser(@Nullable String, @NonNull String, int);
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index ee9c64f..b4f6533 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -7684,16 +7684,19 @@
     /**
      * Change the desired orientation of this activity. If the activity is currently in the
      * foreground or otherwise impacting the screen orientation, the screen is immediately changed
-     * (possibly causing the activity to be restarted). Otherwise, the requested orientation is used
-     * the next time the activity is visible.
+     * (possibly causing the activity to be restarted). Otherwise, the new orientation is used the
+     * next time the activity is visible.
      *
      * <aside class="note"><b>Note:</b>
      *     <ul>
-     *         <li>Device manufacturers can configure devices to override (ignore) calls to this
-     *             method to improve the layout of orientation-restricted apps.</li>
+     *         <li>To improve the layout of apps on form factors with smallest width >= 600dp, the
+     *             system ignores calls to this method for apps that target Android 16 (API level
+     *             36) or higher.</li>
+     *         <li>Device manufacturers can configure devices to ignore calls to this method to
+     *             improve the layout of orientation-restricted apps.</li>
      *         <li>On devices with Android 16 (API level 36) or higher installed, virtual device
-     *             owners (limited to select trusted and privileged apps) can optimize app layout on
-     *             displays they manage by ignoring calls to this method. See also
+     *             owners (select trusted and privileged apps) can optimize app layout on displays
+     *             they manage by ignoring calls to this method. See also
      *             <a href="https://source.android.com/docs/core/permissions/app-streaming">
      *               Companion app streaming</a>.</li>
      *     </ul>
@@ -7717,17 +7720,20 @@
     }
 
     /**
-     * Return the current requested orientation of the activity. This is either the orientation
-     * requested in the app manifest, or the last requested orientation given to
+     * Returns the current requested orientation of the activity, which is either the orientation
+     * requested in the app manifest or the last orientation given to
      * {@link #setRequestedOrientation(int)}.
      *
      * <aside class="note"><b>Note:</b>
      *     <ul>
+     *         <li>To improve the layout of apps on form factors with smallest width >= 600dp, the
+     *             system ignores calls to this method for apps that target Android 16 (API level
+     *             36) or higher.</li>
      *         <li>Device manufacturers can configure devices to ignore calls to this method to
      *             improve the layout of orientation-restricted apps.</li>
      *         <li>On devices with Android 16 (API level 36) or higher installed, virtual device
-     *             owners (limited to select trusted and privileged apps) can optimize app layout on
-     *             displays they manage by ignoring calls to this method. See also
+     *             owners (select trusted and privileged apps) can optimize app layout on displays
+     *             they manage by ignoring calls to this method. See also
      *             <a href="https://source.android.com/docs/core/permissions/app-streaming">
      *               Companion app streaming</a>.</li>
      *     </ul>
diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java
index 6151b8e..a12c067 100644
--- a/core/java/android/app/ActivityManagerInternal.java
+++ b/core/java/android/app/ActivityManagerInternal.java
@@ -23,6 +23,7 @@
 import android.annotation.Nullable;
 import android.annotation.PermissionMethod;
 import android.annotation.PermissionName;
+import android.annotation.SpecialUsers.CanBeALL;
 import android.annotation.UserIdInt;
 import android.app.ActivityManager.ProcessCapability;
 import android.app.ActivityManager.RestrictionLevel;
@@ -1365,8 +1366,8 @@
      * watchdog reset.
      * @hide
      */
-    public abstract void killApplicationSync(String pkgName, int appId, int userId,
-            String reason, int exitInfoReason);
+    public abstract void killApplicationSync(String pkgName, int appId,
+            @CanBeALL @UserIdInt int userId, String reason, int exitInfoReason);
 
     /**
      * Queries the offset data for a given method on a process.
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index 458c171..248f191 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -1651,9 +1651,65 @@
     /** @hide Similar to {@link OP_CONTROL_AUDIO}, but doesn't require capabilities. */
     public static final int OP_CONTROL_AUDIO_PARTIAL = AppOpEnums.APP_OP_CONTROL_AUDIO_PARTIAL;
 
+    /**
+     * Access coarse eye tracking data.
+     *
+     * @hide
+     */
+    public static final int OP_EYE_TRACKING_COARSE =
+            AppOpEnums.APP_OP_EYE_TRACKING_COARSE;
+
+    /**
+     * Access fine eye tracking data.
+     *
+     * @hide
+     */
+    public static final int OP_EYE_TRACKING_FINE =
+            AppOpEnums.APP_OP_EYE_TRACKING_FINE;
+
+    /**
+     * Access face tracking data.
+     *
+     * @hide
+     */
+    public static final int OP_FACE_TRACKING =
+            AppOpEnums.APP_OP_FACE_TRACKING;
+
+    /**
+     * Access hand tracking data.
+     *
+     * @hide
+     */
+    public static final int OP_HAND_TRACKING =
+            AppOpEnums.APP_OP_HAND_TRACKING;
+
+    /**
+     * Access head tracking data.
+     *
+     * @hide
+     */
+    public static final int OP_HEAD_TRACKING =
+            AppOpEnums.APP_OP_HEAD_TRACKING;
+
+    /**
+     * Access coarse scene tracking data.
+     *
+     * @hide
+     */
+    public static final int OP_SCENE_UNDERSTANDING_COARSE =
+            AppOpEnums.APP_OP_SCENE_UNDERSTANDING_COARSE;
+
+    /**
+     * Access fine scene tracking data.
+     *
+     * @hide
+     */
+    public static final int OP_SCENE_UNDERSTANDING_FINE =
+            AppOpEnums.APP_OP_SCENE_UNDERSTANDING_FINE;
+
     /** @hide */
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
-    public static final int _NUM_OP = 156;
+    public static final int _NUM_OP = 163;
 
     /**
      * All app ops represented as strings.
@@ -1813,6 +1869,13 @@
             OPSTR_WRITE_SYSTEM_PREFERENCES,
             OPSTR_CONTROL_AUDIO,
             OPSTR_CONTROL_AUDIO_PARTIAL,
+            OPSTR_EYE_TRACKING_COARSE,
+            OPSTR_EYE_TRACKING_FINE,
+            OPSTR_FACE_TRACKING,
+            OPSTR_HAND_TRACKING,
+            OPSTR_HEAD_TRACKING,
+            OPSTR_SCENE_UNDERSTANDING_COARSE,
+            OPSTR_SCENE_UNDERSTANDING_FINE,
     })
     public @interface AppOpString {}
 
@@ -2579,6 +2642,36 @@
     /** @hide Access to a audio playback and control APIs without capability requirements */
     public static final String OPSTR_CONTROL_AUDIO_PARTIAL = "android:control_audio_partial";
 
+    /** @hide Access coarse eye tracking data. */
+    @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES)
+    public static final String OPSTR_EYE_TRACKING_COARSE = "android:eye_tracking_coarse";
+
+    /** @hide Access fine eye tracking data. */
+    @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES)
+    public static final String OPSTR_EYE_TRACKING_FINE = "android:eye_tracking_fine";
+
+    /** @hide Access face tracking data. */
+    @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES)
+    public static final String OPSTR_FACE_TRACKING = "android:face_tracking";
+
+    /** @hide Access hand tracking data. */
+    @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES)
+    public static final String OPSTR_HAND_TRACKING = "android:hand_tracking";
+
+    /** @hide Access head tracking data. */
+    @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES)
+    public static final String OPSTR_HEAD_TRACKING = "android:head_tracking";
+
+    /** @hide Access coarse scene tracking data. */
+    @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES)
+    public static final String OPSTR_SCENE_UNDERSTANDING_COARSE =
+            "android:scene_understanding_coarse";
+
+    /** @hide Access fine scene tracking data. */
+    @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES)
+    public static final String OPSTR_SCENE_UNDERSTANDING_FINE =
+            "android:scene_understanding_fine";
+
     /** {@link #sAppOpsToNote} not initialized yet for this op */
     private static final byte SHOULD_COLLECT_NOTE_OP_NOT_INITIALIZED = 0;
     /** Should not collect noting of this app-op in {@link #sAppOpsToNote} */
@@ -2657,6 +2750,14 @@
             Flags.replaceBodySensorPermissionEnabled() ? OP_READ_HEART_RATE : OP_NONE,
             Flags.replaceBodySensorPermissionEnabled() ? OP_READ_SKIN_TEMPERATURE : OP_NONE,
             Flags.replaceBodySensorPermissionEnabled() ? OP_READ_OXYGEN_SATURATION : OP_NONE,
+            // Android XR
+            android.xr.Flags.xrManifestEntries() ? OP_EYE_TRACKING_COARSE : OP_NONE,
+            android.xr.Flags.xrManifestEntries() ? OP_EYE_TRACKING_FINE : OP_NONE,
+            android.xr.Flags.xrManifestEntries() ? OP_FACE_TRACKING : OP_NONE,
+            android.xr.Flags.xrManifestEntries() ? OP_HAND_TRACKING : OP_NONE,
+            android.xr.Flags.xrManifestEntries() ? OP_HEAD_TRACKING : OP_NONE,
+            android.xr.Flags.xrManifestEntries() ? OP_SCENE_UNDERSTANDING_COARSE : OP_NONE,
+            android.xr.Flags.xrManifestEntries() ? OP_SCENE_UNDERSTANDING_FINE : OP_NONE,
     };
 
     /**
@@ -3192,6 +3293,41 @@
                 "CONTROL_AUDIO").setDefaultMode(AppOpsManager.MODE_FOREGROUND).build(),
         new AppOpInfo.Builder(OP_CONTROL_AUDIO_PARTIAL, OPSTR_CONTROL_AUDIO_PARTIAL,
                 "CONTROL_AUDIO_PARTIAL").setDefaultMode(AppOpsManager.MODE_FOREGROUND).build(),
+        new AppOpInfo.Builder(OP_EYE_TRACKING_COARSE, OPSTR_EYE_TRACKING_COARSE,
+                "EYE_TRACKING_COARSE")
+                .setPermission(android.xr.Flags.xrManifestEntries()
+                    ? Manifest.permission.EYE_TRACKING_COARSE : null)
+                .build(),
+        new AppOpInfo.Builder(OP_EYE_TRACKING_FINE, OPSTR_EYE_TRACKING_FINE,
+                "EYE_TRACKING_FINE")
+                .setPermission(android.xr.Flags.xrManifestEntries()
+                    ? Manifest.permission.EYE_TRACKING_FINE : null)
+                .build(),
+        new AppOpInfo.Builder(OP_FACE_TRACKING, OPSTR_FACE_TRACKING,
+                "FACE_TRACKING")
+                .setPermission(android.xr.Flags.xrManifestEntries()
+                    ? Manifest.permission.FACE_TRACKING : null)
+                .build(),
+        new AppOpInfo.Builder(OP_HAND_TRACKING, OPSTR_HAND_TRACKING,
+                "HAND_TRACKING")
+                .setPermission(android.xr.Flags.xrManifestEntries()
+                    ? Manifest.permission.HAND_TRACKING : null)
+                .build(),
+        new AppOpInfo.Builder(OP_HEAD_TRACKING, OPSTR_HEAD_TRACKING,
+                "HEAD_TRACKING")
+                .setPermission(android.xr.Flags.xrManifestEntries()
+                    ? Manifest.permission.HEAD_TRACKING : null)
+                .build(),
+        new AppOpInfo.Builder(OP_SCENE_UNDERSTANDING_COARSE, OPSTR_SCENE_UNDERSTANDING_COARSE,
+                "SCENE_UNDERSTANDING_COARSE")
+                .setPermission(android.xr.Flags.xrManifestEntries()
+                    ? Manifest.permission.SCENE_UNDERSTANDING_COARSE : null)
+                .build(),
+        new AppOpInfo.Builder(OP_SCENE_UNDERSTANDING_FINE, OPSTR_SCENE_UNDERSTANDING_FINE,
+                "SCENE_UNDERSTANDING_FINE")
+                .setPermission(android.xr.Flags.xrManifestEntries()
+                    ? Manifest.permission.SCENE_UNDERSTANDING_FINE : null)
+                .build(),
     };
 
     // The number of longs needed to form a full bitmask of app ops
@@ -3301,6 +3437,15 @@
     }
 
     /**
+     * Returns whether the provided {@code op} is a valid op code or not.
+     *
+     * @hide
+     */
+    public static boolean isValidOp(int op) {
+        return op >= 0 && op < sAppOpInfos.length;
+    }
+
+    /**
      * @hide
      */
     public static int strDebugOpToOp(String op) {
diff --git a/core/java/android/app/AppOpsManagerInternal.java b/core/java/android/app/AppOpsManagerInternal.java
index 8b7ea0f..a0f1930 100644
--- a/core/java/android/app/AppOpsManagerInternal.java
+++ b/core/java/android/app/AppOpsManagerInternal.java
@@ -233,4 +233,9 @@
      */
     public abstract int getOpRestrictionCount(int code, UserHandle user, String pkg,
             String attributionTag);
+
+    /**
+     * Invoke when a package is added.
+     */
+    public abstract void onPackageAdded(String pkgName, int uid);
 }
diff --git a/core/java/android/app/AutomaticZenRule.java b/core/java/android/app/AutomaticZenRule.java
index fa977c9..2daa52b 100644
--- a/core/java/android/app/AutomaticZenRule.java
+++ b/core/java/android/app/AutomaticZenRule.java
@@ -228,7 +228,7 @@
     public AutomaticZenRule(Parcel source) {
         enabled = source.readInt() == ENABLED;
         if (source.readInt() == ENABLED) {
-            name = getTrimmedString(source.readString());
+            name = getTrimmedString(source.readString8());
         }
         interruptionFilter = source.readInt();
         conditionId = getTrimmedUri(source.readParcelable(null, android.net.Uri.class));
@@ -238,11 +238,11 @@
                 source.readParcelable(null, android.content.ComponentName.class));
         creationTime = source.readLong();
         mZenPolicy = source.readParcelable(null, ZenPolicy.class);
-        mPkg = source.readString();
+        mPkg = source.readString8();
         mDeviceEffects = source.readParcelable(null, ZenDeviceEffects.class);
         mAllowManualInvocation = source.readBoolean();
         mIconResId = source.readInt();
-        mTriggerDescription = getTrimmedString(source.readString(), MAX_DESC_LENGTH);
+        mTriggerDescription = getTrimmedString(source.readString8(), MAX_DESC_LENGTH);
         mType = source.readInt();
     }
 
@@ -514,7 +514,7 @@
         dest.writeInt(enabled ? ENABLED : DISABLED);
         if (name != null) {
             dest.writeInt(1);
-            dest.writeString(name);
+            dest.writeString8(name);
         } else {
             dest.writeInt(0);
         }
@@ -524,11 +524,11 @@
         dest.writeParcelable(configurationActivity, 0);
         dest.writeLong(creationTime);
         dest.writeParcelable(mZenPolicy, 0);
-        dest.writeString(mPkg);
+        dest.writeString8(mPkg);
         dest.writeParcelable(mDeviceEffects, 0);
         dest.writeBoolean(mAllowManualInvocation);
         dest.writeInt(mIconResId);
-        dest.writeString(mTriggerDescription);
+        dest.writeString8(mTriggerDescription);
         dest.writeInt(mType);
     }
 
diff --git a/core/java/android/app/Instrumentation.java b/core/java/android/app/Instrumentation.java
index b611acf..8af5b1b 100644
--- a/core/java/android/app/Instrumentation.java
+++ b/core/java/android/app/Instrumentation.java
@@ -50,6 +50,7 @@
 import android.os.UserManager;
 import android.ravenwood.annotation.RavenwoodKeep;
 import android.ravenwood.annotation.RavenwoodKeepPartialClass;
+import android.ravenwood.annotation.RavenwoodKeepWholeClass;
 import android.ravenwood.annotation.RavenwoodReplace;
 import android.util.AndroidRuntimeException;
 import android.util.Log;
@@ -188,6 +189,7 @@
      * @param arguments Any additional arguments that were supplied when the 
      *                  instrumentation was started.
      */
+    @android.ravenwood.annotation.RavenwoodKeep
     public void onCreate(Bundle arguments) {
     }
 
@@ -460,6 +462,7 @@
      * 
      * @param runner The code to run on the main thread.
      */
+    @RavenwoodReplace(blockedBy = ActivityThread.class)
     public void runOnMainSync(Runnable runner) {
         validateNotAppThread();
         SyncRunnable sr = new SyncRunnable(runner);
@@ -467,6 +470,13 @@
         sr.waitForComplete();
     }
 
+    private void runOnMainSync$ravenwood(Runnable runner) {
+        validateNotAppThread();
+        SyncRunnable sr = new SyncRunnable(runner);
+        mInstrContext.getMainExecutor().execute(sr);
+        sr.waitForComplete();
+    }
+
     boolean isSdkSandboxAllowedToStartActivities() {
         return Process.isSdkSandbox()
                 && mThread != null
@@ -2442,7 +2452,8 @@
         }
     }
 
-    private final void validateNotAppThread() {
+    @RavenwoodKeep
+    private void validateNotAppThread() {
         if (Looper.myLooper() == Looper.getMainLooper()) {
             throw new RuntimeException(
                 "This method can not be called from the main application thread");
@@ -2586,6 +2597,7 @@
         }
     }
 
+    @RavenwoodKeepWholeClass
     private static final class SyncRunnable implements Runnable {
         private final Runnable mTarget;
         private boolean mComplete;
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 5dca1c7..719e438 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -18,6 +18,7 @@
 
 import static android.annotation.Dimension.DP;
 import static android.app.Flags.evenlyDividedCallStyleActionLayout;
+import static android.app.Flags.notificationsRedesignTemplates;
 import static android.app.admin.DevicePolicyResources.Drawables.Source.NOTIFICATION;
 import static android.app.admin.DevicePolicyResources.Drawables.Style.SOLID_COLORED;
 import static android.app.admin.DevicePolicyResources.Drawables.WORK_PROFILE_ICON;
@@ -818,7 +819,8 @@
                      R.layout.notification_2025_template_expanded_base,
                      R.layout.notification_2025_template_heads_up_base,
                      R.layout.notification_2025_template_header,
-                     R.layout.notification_2025_template_conversation,
+                     R.layout.notification_2025_template_collapsed_conversation,
+                     R.layout.notification_2025_template_expanded_conversation,
                      R.layout.notification_2025_template_collapsed_call,
                      R.layout.notification_2025_template_expanded_call,
                      R.layout.notification_2025_template_collapsed_messaging,
@@ -5963,7 +5965,10 @@
                     || resId == getCompactHeadsUpBaseLayoutResource()
                     || resId == getMessagingCompactHeadsUpLayoutResource()
                     || resId == getCollapsedMessagingLayoutResource()
-                    || resId == getCollapsedMediaLayoutResource());
+                    || resId == getCollapsedMediaLayoutResource()
+                    || resId == getCollapsedConversationLayoutResource()
+                    || (notificationsRedesignTemplates()
+                    && resId == getCollapsedCallLayoutResource()));
             RemoteViews contentView = new BuilderRemoteViews(mContext.getApplicationInfo(), resId);
 
             resetStandardTemplate(contentView);
@@ -6001,8 +6006,7 @@
             // Update margins to leave space for the top line (but not for headerless views like
             // HUNS, which use a different layout that already accounts for that). Templates that
             // have content that will be displayed under the small icon also use a different margin.
-            if (Flags.notificationsRedesignTemplates()
-                    && !p.mHeaderless && !p.mSkipTopLineAlignment) {
+            if (Flags.notificationsRedesignTemplates() && !p.mHeaderless) {
                 int margin = getContentMarginTop(mContext,
                         R.dimen.notification_2025_content_margin_top);
                 contentView.setViewLayoutMargin(R.id.notification_main_column,
@@ -7673,12 +7677,18 @@
             }
         }
 
+        // Note: In the 2025 redesign, we use two separate layouts for the collapsed and expanded
+        //  version of conversations. See below.
         private int getConversationLayoutResource() {
-            if (Flags.notificationsRedesignTemplates()) {
-                return R.layout.notification_2025_template_conversation;
-            } else {
-                return R.layout.notification_template_material_conversation;
-            }
+            return R.layout.notification_template_material_conversation;
+        }
+
+        private int getCollapsedConversationLayoutResource() {
+            return R.layout.notification_2025_template_collapsed_conversation;
+        }
+
+        private int getExpandedConversationLayoutResource() {
+            return R.layout.notification_2025_template_expanded_conversation;
         }
 
         private int getCollapsedCallLayoutResource() {
@@ -9462,7 +9472,7 @@
             boolean hideRightIcons = viewType != StandardTemplateParams.VIEW_TYPE_NORMAL;
             boolean isConversationLayout = mConversationType != CONVERSATION_TYPE_LEGACY;
             boolean isImportantConversation = mConversationType == CONVERSATION_TYPE_IMPORTANT;
-            boolean isHeaderless = !isConversationLayout && isCollapsed;
+            boolean isLegacyHeaderless = !isConversationLayout && isCollapsed;
 
             //TODO (b/217799515): ensure mConversationTitle always returns the correct
             // conversationTitle, probably set mConversationTitle = conversationTitle after this
@@ -9483,7 +9493,8 @@
             } else {
                 isOneToOne = !isGroupConversation();
             }
-            if (isHeaderless && isOneToOne && TextUtils.isEmpty(conversationTitle)) {
+            if ((isLegacyHeaderless || notificationsRedesignTemplates())
+                    && isOneToOne && TextUtils.isEmpty(conversationTitle)) {
                 conversationTitle = getOtherPersonName();
             }
 
@@ -9493,22 +9504,24 @@
                     .viewType(viewType)
                     .highlightExpander(isConversationLayout)
                     .hideProgress(true)
-                    .title(isHeaderless ? conversationTitle : null)
                     .text(null)
                     .hideLeftIcon(isOneToOne)
-                    .hideRightIcon(hideRightIcons || isOneToOne)
-                    .headerTextSecondary(isHeaderless ? null : conversationTitle)
-                    .skipTopLineAlignment(true);
+                    .hideRightIcon(hideRightIcons || isOneToOne);
+            if (notificationsRedesignTemplates()) {
+                p.title(conversationTitle)
+                        .hideAppName(isCollapsed);
+            } else {
+                p.title(isLegacyHeaderless ? conversationTitle : null)
+                        .headerTextSecondary(isLegacyHeaderless ? null : conversationTitle);
+            }
             RemoteViews contentView = mBuilder.applyStandardTemplateWithActions(
-                    isConversationLayout
-                            ? mBuilder.getConversationLayoutResource()
-                            : isCollapsed
-                                    ? mBuilder.getCollapsedMessagingLayoutResource()
-                                    : mBuilder.getExpandedMessagingLayoutResource(),
+                    getMessagingLayoutResource(isConversationLayout, isCollapsed),
                     p,
                     bindResult);
-            if (isConversationLayout) {
+            if (isConversationLayout && !notificationsRedesignTemplates()) {
+                // Redesign note: This view is replaced by the `title`, which is handled normally.
                 mBuilder.setTextViewColorPrimary(contentView, R.id.conversation_text, p);
+                // Redesign note: This special divider is no longer needed.
                 mBuilder.setTextViewColorSecondary(contentView, R.id.app_name_divider, p);
             }
 
@@ -9538,7 +9551,18 @@
                 contentView.setBoolean(R.id.status_bar_latest_event_content,
                         "setIsImportantConversation", isImportantConversation);
             }
-            if (isHeaderless) {
+            if (notificationsRedesignTemplates() && !isCollapsed) {
+                // Align the title to the app/small icon in the expanded form. In other layouts,
+                // this margin is added directly to the notification_main_column parent, but for
+                // messages we don't want the margin to be applied to the actual messaging
+                // content since it can contain icons that are displayed below the app icon.
+                Resources res = mBuilder.mContext.getResources();
+                int marginStart = res.getDimensionPixelSize(
+                        R.dimen.notification_2025_content_margin_start);
+                contentView.setViewLayoutMargin(R.id.title,
+                        RemoteViews.MARGIN_START, marginStart, TypedValue.COMPLEX_UNIT_PX);
+            }
+            if (isLegacyHeaderless) {
                 // Collapsed legacy messaging style has a 1-line limit.
                 contentView.setInt(R.id.notification_messaging, "setMaxDisplayedLines", 1);
             }
@@ -9549,6 +9573,33 @@
             return contentView;
         }
 
+        private int getMessagingLayoutResource(boolean isConversationLayout, boolean isCollapsed) {
+            if (notificationsRedesignTemplates()) {
+                // Note: We eventually would like to use the same layouts for both conversations and
+                //  regular messaging notifications.
+                if (isConversationLayout) {
+                    if (isCollapsed) {
+                        return mBuilder.getCollapsedConversationLayoutResource();
+                    } else {
+                        return mBuilder.getExpandedConversationLayoutResource();
+                    }
+                } else {
+                    if (isCollapsed) {
+                        return mBuilder.getCollapsedMessagingLayoutResource();
+                    } else {
+                        return mBuilder.getExpandedMessagingLayoutResource();
+                    }
+                }
+
+            } else {
+                return isConversationLayout
+                        ? mBuilder.getConversationLayoutResource()
+                        : isCollapsed
+                                ? mBuilder.getCollapsedMessagingLayoutResource()
+                                : mBuilder.getExpandedMessagingLayoutResource();
+            }
+        }
+
         private CharSequence getKey(Person person) {
             return person == null ? null
                     : person.getKey() == null ? person.getName() : person.getKey();
@@ -10986,6 +11037,7 @@
 
         private RemoteViews makeCallLayout(int viewType) {
             final boolean isCollapsed = viewType == StandardTemplateParams.VIEW_TYPE_NORMAL;
+            final boolean isHeadsUp = viewType == StandardTemplateParams.VIEW_TYPE_HEADS_UP;
             Bundle extras = mBuilder.mN.extras;
             CharSequence title = mPerson != null ? mPerson.getName() : null;
             CharSequence text = mBuilder.processLegacyText(extras.getCharSequence(EXTRA_TEXT));
@@ -11001,22 +11053,31 @@
                     .hideLeftIcon(true)
                     .hideRightIcon(true)
                     .hideAppName(isCollapsed)
-                    .titleViewId(R.id.conversation_text)
                     .title(title)
-                    .text(text)
-                    .summaryText(mBuilder.processLegacyText(mVerificationText));
+                    .text(text);
+            if (!notificationsRedesignTemplates()) {
+                // We're using the normal title in the redesign, not a special text.
+                p.titleViewId(R.id.conversation_text)
+                        // The verification text is now part of the top line views, so this is no
+                        // longer necessary.
+                        .summaryText(mBuilder.processLegacyText(mVerificationText));
+            }
             mBuilder.mActions = getActionsListWithSystemActions();
             final RemoteViews contentView;
             if (isCollapsed) {
                 contentView = mBuilder.applyStandardTemplate(
                         mBuilder.getCollapsedCallLayoutResource(), p, null /* result */);
+            } else if (notificationsRedesignTemplates() && isHeadsUp) {
+                contentView = mBuilder.applyStandardTemplateWithActions(
+                        mBuilder.getCollapsedCallLayoutResource(), p, null /* result */);
             } else {
                 contentView = mBuilder.applyStandardTemplateWithActions(
                     mBuilder.getExpandedCallLayoutResource(), p, null /* result */);
             }
 
             // Bind some extra conversation-specific header fields.
-            if (!p.mHideAppName) {
+            if (!notificationsRedesignTemplates() && !p.mHideAppName) {
+                // Redesign note: This special divider is no longer needed.
                 mBuilder.setTextViewColorSecondary(contentView, R.id.app_name_divider, p);
                 contentView.setViewVisibility(R.id.app_name_divider, View.VISIBLE);
             }
@@ -14676,7 +14737,6 @@
         Icon mPromotedPicture;
         boolean mCallStyleActions;
         boolean mAllowTextWithProgress;
-        boolean mSkipTopLineAlignment;
         int mTitleViewId;
         int mTextViewId;
         @Nullable CharSequence mTitle;
@@ -14702,7 +14762,6 @@
             mPromotedPicture = null;
             mCallStyleActions = false;
             mAllowTextWithProgress = false;
-            mSkipTopLineAlignment = false;
             mTitleViewId = R.id.title;
             mTextViewId = R.id.text;
             mTitle = null;
@@ -14769,11 +14828,6 @@
             return this;
         }
 
-        public StandardTemplateParams skipTopLineAlignment(boolean skipTopLineAlignment) {
-            mSkipTopLineAlignment = skipTopLineAlignment;
-            return this;
-        }
-
         final StandardTemplateParams hideSnoozeButton(boolean hideSnoozeButton) {
             this.mHideSnoozeButton = hideSnoozeButton;
             return this;
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index 726999a..050ef23 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -1282,6 +1282,10 @@
      * delegate for (see {@link #canNotifyAsPackage(String)}), or it will not be returned. To query
      * a channel as a notification delegate, call this method from a context created for that
      * package (see {@link Context#createPackageContext(String, int)}).</p>
+     *
+     * <p>If a conversation channel with the given conversation id is not found, this method will
+     * instead return the parent channel with the given channel ID, or {@code null} if neither
+     * exists.</p>
      */
     public @Nullable NotificationChannel getNotificationChannel(@NonNull String channelId,
             @NonNull String conversationId) {
diff --git a/core/java/android/app/OWNERS b/core/java/android/app/OWNERS
index 7a811a1..5b0cf115 100644
--- a/core/java/android/app/OWNERS
+++ b/core/java/android/app/OWNERS
@@ -132,7 +132,7 @@
 per-file ConfigurationController.java = file:/services/core/java/com/android/server/wm/OWNERS
 per-file *ScreenCapture* = file:/services/core/java/com/android/server/wm/OWNERS
 per-file ComponentOptions.java = file:/services/core/java/com/android/server/wm/OWNERS
-
+per-file Presentation.java = file:/services/core/java/com/android/server/wm/OWNERS
 
 # Multitasking
 per-file multitasking.aconfig = file:/services/core/java/com/android/server/wm/OWNERS
diff --git a/core/java/android/app/Presentation.java b/core/java/android/app/Presentation.java
index bdab39d..f39e2dd 100644
--- a/core/java/android/app/Presentation.java
+++ b/core/java/android/app/Presentation.java
@@ -20,6 +20,8 @@
 import static android.view.WindowManager.LayoutParams.TYPE_PRESENTATION;
 import static android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION;
 
+import static com.android.window.flags.Flags.enablePresentationForConnectedDisplays;
+
 import android.annotation.NonNull;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.Context;
@@ -34,6 +36,8 @@
 import android.view.Display;
 import android.view.Gravity;
 import android.view.Window;
+import android.view.WindowInsets;
+import android.view.WindowInsetsController;
 import android.view.WindowManager;
 import android.view.WindowManager.LayoutParams.WindowType;
 
@@ -277,6 +281,11 @@
     @Override
     public void show() {
         super.show();
+
+        WindowInsetsController controller = getWindow().getInsetsController();
+        if (controller != null && enablePresentationForConnectedDisplays()) {
+            controller.hide(WindowInsets.Type.systemBars());
+        }
     }
 
     /**
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 500f7585..5359ba4 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -17647,9 +17647,17 @@
             android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS
     })
     public boolean isFinancedDevice() {
-        return isDeviceManaged()
-                && getDeviceOwnerType(getDeviceOwnerComponentOnAnyUser())
-                == DEVICE_OWNER_TYPE_FINANCED;
+        try {
+            return isDeviceManaged()
+                    && getDeviceOwnerType(getDeviceOwnerComponentOnAnyUser())
+                    == DEVICE_OWNER_TYPE_FINANCED;
+        } catch (IllegalStateException e) {
+            // getDeviceOwnerType() will throw IllegalStateException if the device does not have a
+            // DO. This can happen under a race condition when the DO is removed after
+            // isDeviceManaged() (so it still returns true) but before getDeviceOwnerType().
+            // In this case, the device should not be considered a financed device.
+            return false;
+        }
     }
 
     // TODO(b/315298076): revert ag/25574027 and update the doc
diff --git a/core/java/android/app/supervision/flags.aconfig b/core/java/android/app/supervision/flags.aconfig
index 94de038..7094183 100644
--- a/core/java/android/app/supervision/flags.aconfig
+++ b/core/java/android/app/supervision/flags.aconfig
@@ -72,3 +72,11 @@
   description: "Flag that enables system APIs in Supervision Manager"
   bug: "382034839"
 }
+
+flag {
+  name: "enable_web_content_filters_screen"
+  is_exported: true
+  namespace: "supervision"
+  description: "Flag that enables the web content filters screen with Supervision settings entry point"
+  bug: "395134536"
+}
diff --git a/core/java/android/companion/virtual/flags/flags.aconfig b/core/java/android/companion/virtual/flags/flags.aconfig
index 67ade79..0085e4f 100644
--- a/core/java/android/companion/virtual/flags/flags.aconfig
+++ b/core/java/android/companion/virtual/flags/flags.aconfig
@@ -143,3 +143,10 @@
     is_fixed_read_only: true
     bug: "370928384"
 }
+
+flag {
+    name: "device_aware_settings_override"
+    namespace: "virtual_devices"
+    description: "Settings override for virtual devices"
+    bug: "371801645"
+}
diff --git a/core/java/android/content/BroadcastReceiver.java b/core/java/android/content/BroadcastReceiver.java
index a816294..cf68487 100644
--- a/core/java/android/content/BroadcastReceiver.java
+++ b/core/java/android/content/BroadcastReceiver.java
@@ -52,6 +52,8 @@
  * <a href="{@docRoot}guide/components/broadcasts.html">Broadcasts</a> developer guide.</p></div>
  *
  */
+@android.ravenwood.annotation.RavenwoodPartiallyAllowlisted
+@android.ravenwood.annotation.RavenwoodKeepPartialClass
 public abstract class BroadcastReceiver {
     @UnsupportedAppUsage
     private PendingResult mPendingResult;
@@ -360,6 +362,7 @@
         }
     }
 
+    @android.ravenwood.annotation.RavenwoodKeep
     public BroadcastReceiver() {
     }
 
diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java
index efcaa0e..a753cbf 100644
--- a/core/java/android/content/ContentResolver.java
+++ b/core/java/android/content/ContentResolver.java
@@ -23,6 +23,8 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
+import android.annotation.SpecialUsers.CanBeALL;
+import android.annotation.SpecialUsers.CanBeCURRENT;
 import android.annotation.SuppressLint;
 import android.annotation.SystemApi;
 import android.annotation.TestApi;
@@ -2709,7 +2711,7 @@
     public final void registerContentObserverAsUser(@NonNull Uri uri,
             boolean notifyForDescendants,
             @NonNull ContentObserver observer,
-            @NonNull UserHandle userHandle) {
+            @NonNull @CanBeALL @CanBeCURRENT UserHandle userHandle) {
         Objects.requireNonNull(uri, "uri");
         Objects.requireNonNull(observer, "observer");
         Objects.requireNonNull(userHandle, "userHandle");
@@ -2723,7 +2725,7 @@
     /** @hide - designated user version */
     @UnsupportedAppUsage
     public final void registerContentObserver(Uri uri, boolean notifyForDescendants,
-            ContentObserver observer, @UserIdInt int userHandle) {
+            ContentObserver observer, @CanBeALL @CanBeCURRENT @UserIdInt int userHandle) {
         try {
             getContentService().registerContentObserver(uri, notifyForDescendants,
                     observer.getContentObserver(), userHandle, mTargetSdkVersion);
diff --git a/core/java/android/content/res/CompatibilityInfo.java b/core/java/android/content/res/CompatibilityInfo.java
index afcdcb0..5727fcf 100644
--- a/core/java/android/content/res/CompatibilityInfo.java
+++ b/core/java/android/content/res/CompatibilityInfo.java
@@ -40,8 +40,6 @@
 import android.view.WindowManager;
 import android.view.WindowManager.LayoutParams;
 
-import com.android.aconfig.annotations.VisibleForTesting;
-
 /**
  * CompatibilityInfo class keeps the information about the screen compatibility mode that the
  * application is running under.
@@ -763,7 +761,6 @@
     }
 
     /** @see #sOverrideDisplayRotation */
-    @VisibleForTesting
     public static int getOverrideDisplayRotation() {
         return sOverrideDisplayRotation;
     }
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index 0559631..2658efa 100644
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
@@ -482,7 +482,6 @@
      *
      * @return Typeface The Typeface data associated with the resource.
      */
-    @RavenwoodThrow(blockedBy = Typeface.class)
     @NonNull public Typeface getFont(@FontRes int id) throws NotFoundException {
         final TypedValue value = obtainTempTypedValue();
         try {
@@ -507,7 +506,6 @@
     /**
      * @hide
      */
-    @RavenwoodThrow(blockedBy = Typeface.class)
     public void preloadFonts(@ArrayRes int id) {
         final TypedArray array = obtainTypedArray(id);
         try {
diff --git a/core/java/android/content/res/ResourcesImpl.java b/core/java/android/content/res/ResourcesImpl.java
index eec30f3..8c76fd7 100644
--- a/core/java/android/content/res/ResourcesImpl.java
+++ b/core/java/android/content/res/ResourcesImpl.java
@@ -1068,7 +1068,6 @@
      * Loads a font from XML or resources stream.
      */
     @Nullable
-    @RavenwoodThrow(blockedBy = Typeface.class)
     public Typeface loadFont(Resources wrapper, TypedValue value, int id) {
         if (value.string == null) {
             throw new NotFoundException("Resource \"" + getResourceName(id) + "\" ("
diff --git a/core/java/android/content/res/TypedArray.java b/core/java/android/content/res/TypedArray.java
index 79185a1..ee7d008 100644
--- a/core/java/android/content/res/TypedArray.java
+++ b/core/java/android/content/res/TypedArray.java
@@ -1043,7 +1043,6 @@
      *         not a font resource.
      */
     @Nullable
-    @RavenwoodThrow(blockedBy = Typeface.class)
     public Typeface getFont(@StyleableRes int index) {
         if (mRecycled) {
             throw new RuntimeException("Cannot make calls to a recycled instance!");
diff --git a/core/java/android/credentials/flags.aconfig b/core/java/android/credentials/flags.aconfig
index 449423f1..73c4d66 100644
--- a/core/java/android/credentials/flags.aconfig
+++ b/core/java/android/credentials/flags.aconfig
@@ -154,4 +154,14 @@
     metadata {
         purpose: PURPOSE_BUGFIX
     }
+}
+
+flag {
+    namespace: "credential_manager"
+    name: "safeguard_candidate_credentials_api_caller"
+    description: "Restricts get candidate credentials api to credential autofill service"
+    bug: "370477460"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
 }
\ No newline at end of file
diff --git a/core/java/android/database/sqlite/SQLiteConnectionPool.java b/core/java/android/database/sqlite/SQLiteConnectionPool.java
index 505905f..86480fd 100644
--- a/core/java/android/database/sqlite/SQLiteConnectionPool.java
+++ b/core/java/android/database/sqlite/SQLiteConnectionPool.java
@@ -31,6 +31,7 @@
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.os.BackgroundThread;
 
 import dalvik.annotation.optimization.NeverCompile;
 import dalvik.system.CloseGuard;
@@ -187,7 +188,8 @@
         // In case of MAX_VALUE - idle connections are never closed
         if (mConfiguration.idleConnectionTimeoutMs != Long.MAX_VALUE) {
             setupIdleConnectionHandler(
-                    Looper.getMainLooper(), mConfiguration.idleConnectionTimeoutMs, null);
+                BackgroundThread.getHandler().getLooper(),
+                mConfiguration.idleConnectionTimeoutMs, null);
         }
     }
 
diff --git a/core/java/android/graphics/fonts/FontFamilyUpdateRequest.java b/core/java/android/graphics/fonts/FontFamilyUpdateRequest.java
index bfbcfd8..1bf01f4 100644
--- a/core/java/android/graphics/fonts/FontFamilyUpdateRequest.java
+++ b/core/java/android/graphics/fonts/FontFamilyUpdateRequest.java
@@ -68,6 +68,7 @@
  * @hide
  */
 @SystemApi
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class FontFamilyUpdateRequest {
 
     /**
diff --git a/core/java/android/graphics/fonts/FontFileUpdateRequest.java b/core/java/android/graphics/fonts/FontFileUpdateRequest.java
index cf1dca9..1f2be6f 100644
--- a/core/java/android/graphics/fonts/FontFileUpdateRequest.java
+++ b/core/java/android/graphics/fonts/FontFileUpdateRequest.java
@@ -28,6 +28,7 @@
  * @hide
  */
 @SystemApi
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class FontFileUpdateRequest {
 
     private final ParcelFileDescriptor mParcelFileDescriptor;
diff --git a/core/java/android/hardware/contexthub/HubEndpoint.java b/core/java/android/hardware/contexthub/HubEndpoint.java
index b7edef6..47ba51d 100644
--- a/core/java/android/hardware/contexthub/HubEndpoint.java
+++ b/core/java/android/hardware/contexthub/HubEndpoint.java
@@ -126,7 +126,16 @@
                     if (sessionExists) {
                         Log.w(
                                 TAG,
-                                "onSessionOpenComplete: session already exists, id=" + sessionId);
+                                "onSessionOpenRequest: session already exists, id=" + sessionId);
+                    }
+
+                    if (mLifecycleCallback == null) {
+                        Log.w(
+                                TAG,
+                                "onSessionOpenRequest: "
+                                        + "failed to open session, no lifecycle callback attached",
+                                new Exception());
+                        rejectSession(sessionId);
                     }
 
                     if (!sessionExists && mLifecycleCallback != null) {
diff --git a/core/java/android/hardware/contexthub/HubEndpointSession.java b/core/java/android/hardware/contexthub/HubEndpointSession.java
index ca59be8..c5e2d7a 100644
--- a/core/java/android/hardware/contexthub/HubEndpointSession.java
+++ b/core/java/android/hardware/contexthub/HubEndpointSession.java
@@ -88,7 +88,6 @@
                                 : ContextHubTransaction.TYPE_HUB_MESSAGE_DEFAULT);
         if (!isResponseRequired) {
             // If the message doesn't require acknowledgement, respond with success immediately
-            // TODO(b/379162322): Improve handling of synchronous failures.
             mHubEndpoint.sendMessage(this, message, null);
             ret.setResponse(
                     new ContextHubTransaction.Response<>(
diff --git a/core/java/android/hardware/display/DisplayManager.java b/core/java/android/hardware/display/DisplayManager.java
index 7850e37..92a56fc 100644
--- a/core/java/android/hardware/display/DisplayManager.java
+++ b/core/java/android/hardware/display/DisplayManager.java
@@ -851,6 +851,12 @@
      * Registers a display listener to receive notifications about when
      * displays are added, removed or changed.
      *
+     * Because of the high frequency at which the refresh rate can change, clients will be
+     * registered for refresh rate change callbacks only when they request for refresh rate
+     * data({@link Display#getRefreshRate()}. Or alternately, you can consider using
+     * {@link #registerDisplayListener(Executor, long, DisplayListener)} and explicitly subscribe to
+     * {@link #EVENT_TYPE_DISPLAY_REFRESH_RATE} event
+     *
      * We encourage to use {@link #registerDisplayListener(Executor, long, DisplayListener)}
      * instead to subscribe for explicit events of interest
      *
@@ -863,8 +869,8 @@
     public void registerDisplayListener(DisplayListener listener, Handler handler) {
         registerDisplayListener(listener, handler, EVENT_TYPE_DISPLAY_ADDED
                 | EVENT_TYPE_DISPLAY_CHANGED
-                | EVENT_TYPE_DISPLAY_REFRESH_RATE
-                | EVENT_TYPE_DISPLAY_REMOVED);
+                | EVENT_TYPE_DISPLAY_REMOVED, 0,
+                ActivityThread.currentPackageName(), /* isEventFilterExplicit */ false);
     }
 
     /**
@@ -882,9 +888,8 @@
      */
     public void registerDisplayListener(@NonNull DisplayListener listener,
             @Nullable Handler handler, @EventType long eventFilter) {
-        mGlobal.registerDisplayListener(listener, handler,
-                mGlobal.mapFiltersToInternalEventFlag(eventFilter, 0),
-                ActivityThread.currentPackageName());
+        registerDisplayListener(listener, handler, eventFilter, 0,
+                ActivityThread.currentPackageName(), /* isEventFilterExplicit */ true);
     }
 
     /**
@@ -901,9 +906,8 @@
     @FlaggedApi(FLAG_DISPLAY_LISTENER_PERFORMANCE_IMPROVEMENTS)
     public void registerDisplayListener(@NonNull Executor executor, @EventType long eventFilter,
             @NonNull DisplayListener listener) {
-        mGlobal.registerDisplayListener(listener, executor,
-                mGlobal.mapFiltersToInternalEventFlag(eventFilter, 0),
-                ActivityThread.currentPackageName());
+        registerDisplayListener(listener, executor, eventFilter, 0,
+                ActivityThread.currentPackageName(), /* isEventFilterExplicit */ true);
     }
 
     /**
@@ -924,9 +928,39 @@
     public void registerDisplayListener(@NonNull DisplayListener listener,
             @Nullable Handler handler, @EventType long eventFilter,
             @PrivateEventType long privateEventFilter) {
+        registerDisplayListener(listener, handler, eventFilter, privateEventFilter,
+                ActivityThread.currentPackageName(), /* isEventFilterExplicit */ true);
+    }
+
+    /**
+     * Registers a display listener to receive notifications about given display event types.
+     *
+     * @param listener The listener to register.
+     * @param handler The handler on which the listener should be invoked, or null
+     * if the listener should be invoked on the calling thread's looper.
+     * @param eventFilter A bitmask of the event types for which this listener is subscribed.
+     * @param privateEventFilter A bitmask of the private event types for which this listener
+     *                          is subscribed.
+     * @param isEventFilterExplicit Indicates if the client explicitly supplied the display events
+     *                          to be subscribed to.
+     *
+     */
+    private void registerDisplayListener(@NonNull DisplayListener listener,
+            @Nullable Handler handler, @EventType long eventFilter,
+            @PrivateEventType long privateEventFilter, String packageName,
+            boolean isEventFilterExplicit) {
         mGlobal.registerDisplayListener(listener, handler,
                 mGlobal.mapFiltersToInternalEventFlag(eventFilter, privateEventFilter),
-                ActivityThread.currentPackageName());
+                packageName, /* isEventFilterExplicit */ isEventFilterExplicit);
+    }
+
+    private void registerDisplayListener(@NonNull DisplayListener listener,
+            Executor executor, @EventType long eventFilter,
+            @PrivateEventType long privateEventFilter, String packageName,
+            boolean isEventFilterExplicit) {
+        mGlobal.registerDisplayListener(listener, executor,
+                mGlobal.mapFiltersToInternalEventFlag(eventFilter, privateEventFilter),
+                packageName, /* isEventFilterExplicit */ isEventFilterExplicit);
     }
 
     /**
@@ -1146,6 +1180,28 @@
     }
 
     /**
+     * Resets the behavior that automatically registers clients for refresh rate change callbacks
+     * when they register via {@link #registerDisplayListener(DisplayListener, Handler)}
+     *
+     * <p>By default, clients are not registered for refresh rate change callbacks via
+     * {@link #registerDisplayListener(DisplayListener, Handler)}. However, calling
+     * {@link Display#getRefreshRate()} triggers automatic registration for existing and future
+     * {@link DisplayListener} instances. This method reverts this behavior, preventing new
+     * clients from being automatically registered for refresh rate change callbacks. Note that the
+     * existing ones will continue to stay registered
+     *
+     * <p>In essence, this method returns the system to its initial state, where explicit calls to
+     * {{@link Display#getRefreshRate()} are required to receive refresh rate change notifications.
+     *
+     * @hide
+     */
+    @FlaggedApi(Flags.FLAG_DELAY_IMPLICIT_RR_REGISTRATION_UNTIL_RR_ACCESSED)
+    @TestApi
+    public void resetImplicitRefreshRateCallbackStatus() {
+        mGlobal.resetImplicitRefreshRateCallbackStatus();
+    }
+
+    /**
      * Overrides HDR modes for a display device.
      *
      * @hide
diff --git a/core/java/android/hardware/display/DisplayManagerGlobal.java b/core/java/android/hardware/display/DisplayManagerGlobal.java
index a7d610e..bebca57 100644
--- a/core/java/android/hardware/display/DisplayManagerGlobal.java
+++ b/core/java/android/hardware/display/DisplayManagerGlobal.java
@@ -187,6 +187,9 @@
 
     private final Binder mToken = new Binder();
 
+    // Guarded by mLock
+    private boolean mShouldImplicitlyRegisterRrChanges = false;
+
     @VisibleForTesting
     public DisplayManagerGlobal(IDisplayManager dm) {
         mDm = dm;
@@ -390,16 +393,36 @@
      * the handler for the main thread.
      * If that is still null, a runtime exception will be thrown.
      * @param packageName of the calling package.
+     * @param isEventFilterExplicit Indicates if the client explicitly supplied the display events
+     *                              to be subscribed to.
+     */
+    public void registerDisplayListener(@NonNull DisplayListener listener,
+            @Nullable Handler handler, @InternalEventFlag long internalEventFlagsMask,
+            String packageName, boolean isEventFilterExplicit) {
+        Looper looper = getLooperForHandler(handler);
+        Handler springBoard = new Handler(looper);
+        registerDisplayListener(listener, new HandlerExecutor(springBoard), internalEventFlagsMask,
+                packageName, isEventFilterExplicit);
+    }
+
+    /**
+     * Register a listener for display-related changes.
+     *
+     * @param listener The listener that will be called when display changes occur.
+     * @param handler Handler for the thread that will be receiving the callbacks. May be null.
+     * If null, listener will use the handler for the current thread, and if still null,
+     * the handler for the main thread.
+     * If that is still null, a runtime exception will be thrown.
+     * @param internalEventFlagsMask Mask of events to be listened to.
+     * @param packageName of the calling package.
      */
     public void registerDisplayListener(@NonNull DisplayListener listener,
             @Nullable Handler handler, @InternalEventFlag long internalEventFlagsMask,
             String packageName) {
-        Looper looper = getLooperForHandler(handler);
-        Handler springBoard = new Handler(looper);
-        registerDisplayListener(listener, new HandlerExecutor(springBoard), internalEventFlagsMask,
-                packageName);
+        registerDisplayListener(listener, handler, internalEventFlagsMask, packageName, true);
     }
 
+
     /**
      * Register a listener for display-related changes.
      *
@@ -407,10 +430,12 @@
      * @param executor Executor for the thread that will be receiving the callbacks. Cannot be null.
      * @param internalEventFlagsMask Mask of events to be listened to.
      * @param packageName of the calling package.
+     * @param isEventFilterExplicit Indicates if the explicit events to be subscribed to
+     *                                     were supplied or not
      */
     public void registerDisplayListener(@NonNull DisplayListener listener,
             @NonNull Executor executor, @InternalEventFlag long internalEventFlagsMask,
-            String packageName) {
+            String packageName, boolean isEventFilterExplicit) {
         if (listener == null) {
             throw new IllegalArgumentException("listener must not be null");
         }
@@ -429,7 +454,7 @@
             int index = findDisplayListenerLocked(listener);
             if (index < 0) {
                 mDisplayListeners.add(new DisplayListenerDelegate(listener, executor,
-                        internalEventFlagsMask, packageName));
+                        internalEventFlagsMask, packageName, isEventFilterExplicit));
                 registerCallbackIfNeededLocked();
             } else {
                 mDisplayListeners.get(index).setEventsMask(internalEventFlagsMask);
@@ -439,6 +464,22 @@
         }
     }
 
+
+    /**
+     * Registers all the clients to INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE events if qualified
+     */
+    public void registerForRefreshRateChanges() {
+        if (!Flags.delayImplicitRrRegistrationUntilRrAccessed()) {
+            return;
+        }
+        synchronized (mLock) {
+            if (!mShouldImplicitlyRegisterRrChanges) {
+                mShouldImplicitlyRegisterRrChanges = true;
+                updateCallbackIfNeededLocked();
+            }
+        }
+    }
+
     public void unregisterDisplayListener(DisplayListener listener) {
         if (listener == null) {
             throw new IllegalArgumentException("listener must not be null");
@@ -521,8 +562,14 @@
         long mask = 0;
         final int numListeners = mDisplayListeners.size();
         for (int i = 0; i < numListeners; i++) {
-            mask |= mDisplayListeners.get(i).mInternalEventFlagsMask;
+            DisplayListenerDelegate displayListenerDelegate = mDisplayListeners.get(i);
+            if (!Flags.delayImplicitRrRegistrationUntilRrAccessed()
+                    || mShouldImplicitlyRegisterRrChanges) {
+                displayListenerDelegate.implicitlyRegisterForRRChanges();
+            }
+            mask |= displayListenerDelegate.mInternalEventFlagsMask;
         }
+
         if (mDispatchNativeCallbacks) {
             mask |= INTERNAL_EVENT_FLAG_DISPLAY_ADDED
                     | INTERNAL_EVENT_FLAG_DISPLAY_BASIC_CHANGED
@@ -802,6 +849,18 @@
     }
 
     /**
+     * Resets the implicit registration of refresh rate change callbacks
+     *
+     */
+    public void resetImplicitRefreshRateCallbackStatus() {
+        if (Flags.delayImplicitRrRegistrationUntilRrAccessed()) {
+            synchronized (mLock) {
+                mShouldImplicitlyRegisterRrChanges = false;
+            }
+        }
+    }
+
+    /**
      * Overrides HDR modes for a display device.
      *
      */
@@ -1439,21 +1498,27 @@
         }
     }
 
-    private static final class DisplayListenerDelegate {
+    @VisibleForTesting
+    public static final class DisplayListenerDelegate {
         public final DisplayListener mListener;
         public volatile long mInternalEventFlagsMask;
 
+        // Indicates if the client explicitly supplied the display events to be subscribed to.
+        private final boolean mIsEventFilterExplicit;
+
         private final DisplayInfo mDisplayInfo = new DisplayInfo();
         private final Executor mExecutor;
         private AtomicLong mGenerationId = new AtomicLong(1);
         private final String mPackageName;
 
         DisplayListenerDelegate(DisplayListener listener, @NonNull Executor executor,
-                @InternalEventFlag long internalEventFlag, String packageName) {
+                @InternalEventFlag long internalEventFlag, String packageName,
+                boolean isEventFilterExplicit) {
             mExecutor = executor;
             mListener = listener;
             mInternalEventFlagsMask = internalEventFlag;
             mPackageName = packageName;
+            mIsEventFilterExplicit = isEventFilterExplicit;
         }
 
         void sendDisplayEvent(int displayId, @DisplayEvent int event, @Nullable DisplayInfo info,
@@ -1470,6 +1535,11 @@
             });
         }
 
+        @VisibleForTesting
+        public boolean isEventFilterExplicit() {
+            return mIsEventFilterExplicit;
+        }
+
         void clearEvents() {
             mGenerationId.incrementAndGet();
         }
@@ -1478,6 +1548,17 @@
             mInternalEventFlagsMask = newInternalEventFlagsMask;
         }
 
+        private void implicitlyRegisterForRRChanges() {
+            // For backward compatibility, if the user didn't supply the explicit events while
+            // subscribing, register them to refresh rate change events if they subscribed to
+            // display changed events
+            if ((mInternalEventFlagsMask & INTERNAL_EVENT_FLAG_DISPLAY_BASIC_CHANGED) != 0
+                    && !mIsEventFilterExplicit) {
+                setEventsMask(mInternalEventFlagsMask
+                        | INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE);
+            }
+        }
+
         private void handleDisplayEventInner(int displayId, @DisplayEvent int event,
                 @Nullable DisplayInfo info, boolean forceUpdate) {
             if (extraLogging()) {
@@ -1677,6 +1758,9 @@
     public void registerNativeChoreographerForRefreshRateCallbacks() {
         synchronized (mLock) {
             mDispatchNativeCallbacks = true;
+            if (Flags.delayImplicitRrRegistrationUntilRrAccessed()) {
+                mShouldImplicitlyRegisterRrChanges = true;
+            }
             registerCallbackIfNeededLocked();
             updateCallbackIfNeededLocked();
             DisplayInfo display = getDisplayInfoLocked(Display.DEFAULT_DISPLAY);
@@ -1806,4 +1890,9 @@
 
         return baseEventMask;
     }
+
+    @VisibleForTesting
+    public CopyOnWriteArrayList<DisplayListenerDelegate> getDisplayListeners() {
+        return mDisplayListeners;
+    }
 }
diff --git a/core/java/android/hardware/location/ContextHubManager.java b/core/java/android/hardware/location/ContextHubManager.java
index 953ee08..5b5360e 100644
--- a/core/java/android/hardware/location/ContextHubManager.java
+++ b/core/java/android/hardware/location/ContextHubManager.java
@@ -485,6 +485,9 @@
     /**
      * Returns the list of ContextHubInfo objects describing the available Context Hubs.
      *
+     * To find the list of hubs that include all Hubs (including both Context Hubs and Vendor Hubs),
+     * use the {@link #getHubs()} method instead.
+     *
      * @return the list of ContextHubInfo objects
      *
      * @see ContextHubInfo
@@ -499,8 +502,8 @@
     }
 
     /**
-     * Returns the list of HubInfo objects describing the available hubs (including ContextHub and
-     * VendorHub). This method is primarily used for debugging purposes as most clients care about
+     * Returns the list of HubInfo objects describing the available hubs (including Context Hubs and
+     * Vendor Hubs). This method is primarily used for debugging purposes as most clients care about
      * endpoints and services more than hubs.
      *
      * @return the list of HubInfo objects
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index a528ba4..7b47efd4 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -990,6 +990,8 @@
             }
             Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
             if (android.view.inputmethod.Flags.refactorInsetsController()) {
+                // After the IME window was hidden, we can remove its surface
+                scheduleImeSurfaceRemoval();
                 // The hide request first finishes the animation and then proceeds to the server
                 // side, finally reaching here, marking this the end state.
                 ImeTracker.forLogging().onHidden(statsToken);
diff --git a/core/java/android/os/BundleMerger.java b/core/java/android/os/BundleMerger.java
index dc243a5..fd5a18c 100644
--- a/core/java/android/os/BundleMerger.java
+++ b/core/java/android/os/BundleMerger.java
@@ -119,11 +119,23 @@
     public static final int STRATEGY_ARRAY_APPEND = 50;
 
     /**
+     * Merge strategy that combines two conflicting array values by creating a new array
+     * containing all unique elements from both arrays.
+     */
+    public static final int STRATEGY_ARRAY_UNION = 55;
+
+    /**
      * Merge strategy that combines two conflicting {@link ArrayList} values by
      * appending the last {@link ArrayList} after the first {@link ArrayList}.
      */
     public static final int STRATEGY_ARRAY_LIST_APPEND = 60;
 
+    /**
+     * Merge strategy that combines two conflicting {@link String} values by
+     * appending the last {@link String} after the first {@link String}.
+     */
+    public static final int STRATEGY_STRING_APPEND = 70;
+
     @IntDef(flag = false, prefix = { "STRATEGY_" }, value = {
             STRATEGY_REJECT,
             STRATEGY_FIRST,
@@ -136,7 +148,9 @@
             STRATEGY_BOOLEAN_AND,
             STRATEGY_BOOLEAN_OR,
             STRATEGY_ARRAY_APPEND,
+            STRATEGY_ARRAY_UNION,
             STRATEGY_ARRAY_LIST_APPEND,
+            STRATEGY_STRING_APPEND,
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface Strategy {}
@@ -298,8 +312,12 @@
                 return booleanOr(first, last);
             case STRATEGY_ARRAY_APPEND:
                 return arrayAppend(first, last);
+            case STRATEGY_ARRAY_UNION:
+                return arrayUnion(first, last);
             case STRATEGY_ARRAY_LIST_APPEND:
                 return arrayListAppend(first, last);
+            case STRATEGY_STRING_APPEND:
+                return stringAppend(first, last);
             default:
                 throw new UnsupportedOperationException();
         }
@@ -361,6 +379,29 @@
         return res;
     }
 
+    private static @NonNull Object arrayUnion(@NonNull Object first, @NonNull Object last) {
+        if (!first.getClass().isArray()) {
+            throw new IllegalArgumentException("Unable to union " + first.getClass());
+        }
+        final int firstLength = Array.getLength(first);
+        final int lastLength = Array.getLength(last);
+        final ArrayList<Object> list = new ArrayList<>(firstLength + lastLength);
+        final ArraySet<Object> set = new ArraySet<>();
+        for (int i = 0; i < firstLength; i++) {
+            set.add(Array.get(first, i));
+        }
+        for (int i = 0; i < lastLength; i++) {
+            set.add(Array.get(last, i));
+        }
+        final Class<?> clazz = first.getClass().getComponentType();
+        final int setSize = set.size();
+        final Object res = Array.newInstance(clazz, setSize);
+        for (int i = 0; i < setSize; i++) {
+            Array.set(res, i, set.valueAt(i));
+        }
+        return res;
+    }
+
     @SuppressWarnings("unchecked")
     private static @NonNull Object arrayListAppend(@NonNull Object first, @NonNull Object last) {
         if (!(first instanceof ArrayList)) {
@@ -374,6 +415,13 @@
         return res;
     }
 
+    private static @NonNull Object stringAppend(@NonNull Object first, @NonNull Object last) {
+        if (!(first instanceof String)) {
+            throw new IllegalArgumentException("Unable to append " + first.getClass());
+        }
+        return ((String) first) + ((String) last);
+    }
+
     public static final @android.annotation.NonNull Parcelable.Creator<BundleMerger> CREATOR =
             new Parcelable.Creator<BundleMerger>() {
                 @Override
diff --git a/core/java/android/os/CombinedMessageQueue/MessageQueue.java b/core/java/android/os/CombinedMessageQueue/MessageQueue.java
index 3c03bb5..7497234 100644
--- a/core/java/android/os/CombinedMessageQueue/MessageQueue.java
+++ b/core/java/android/os/CombinedMessageQueue/MessageQueue.java
@@ -130,7 +130,7 @@
 
     MessageQueue(boolean quitAllowed) {
         initIsProcessAllowedToUseConcurrent();
-        mUseConcurrent = sIsProcessAllowedToUseConcurrent && !isInstrumenting();
+        mUseConcurrent = sIsProcessAllowedToUseConcurrent;
         mQuitAllowed = quitAllowed;
         mPtr = nativeInit();
         mThread = Thread.currentThread();
@@ -202,15 +202,6 @@
         return;
     }
 
-    private static boolean isInstrumenting() {
-        final ActivityThread activityThread = ActivityThread.currentActivityThread();
-        if (activityThread == null) {
-            return false;
-        }
-        final Instrumentation instrumentation = activityThread.getInstrumentation();
-        return instrumentation != null && instrumentation.isInstrumenting();
-    }
-
     @Override
     protected void finalize() throws Throwable {
         try {
diff --git a/core/java/android/os/ConfigUpdate.java b/core/java/android/os/ConfigUpdate.java
index 87cd4ee..38530d1a5 100644
--- a/core/java/android/os/ConfigUpdate.java
+++ b/core/java/android/os/ConfigUpdate.java
@@ -16,7 +16,6 @@
 
 package android.os;
 
-import android.annotation.FlaggedApi;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
 import android.annotation.SystemApi;
@@ -144,7 +143,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(com.android.internal.telephony.flags.Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
     public static final String ACTION_UPDATE_CONFIG = "android.os.action.UPDATE_CONFIG";
 
@@ -172,7 +170,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(com.android.internal.telephony.flags.Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final String EXTRA_DOMAIN  = "android.os.extra.DOMAIN";
 
     private ConfigUpdate() {
diff --git a/core/java/android/os/PerfettoTrace.java b/core/java/android/os/PerfettoTrace.java
index 741d542..932836f 100644
--- a/core/java/android/os/PerfettoTrace.java
+++ b/core/java/android/os/PerfettoTrace.java
@@ -232,10 +232,6 @@
      * @param eventName The event name to appear in the trace.
      */
     public static PerfettoTrackEventExtra.Builder instant(Category category, String eventName) {
-        if (!category.isEnabled()) {
-            return PerfettoTrackEventExtra.noOpBuilder();
-        }
-
         return PerfettoTrackEventExtra.builder().init(PERFETTO_TE_TYPE_INSTANT, category)
             .setEventName(eventName);
     }
@@ -247,10 +243,6 @@
      * @param eventName The event name to appear in the trace.
      */
     public static PerfettoTrackEventExtra.Builder begin(Category category, String eventName) {
-        if (!category.isEnabled()) {
-            return PerfettoTrackEventExtra.noOpBuilder();
-        }
-
         return PerfettoTrackEventExtra.builder().init(PERFETTO_TE_TYPE_SLICE_BEGIN, category)
             .setEventName(eventName);
     }
@@ -261,10 +253,6 @@
      * @param category The perfetto category.
      */
     public static PerfettoTrackEventExtra.Builder end(Category category) {
-        if (!category.isEnabled()) {
-            return PerfettoTrackEventExtra.noOpBuilder();
-        }
-
         return PerfettoTrackEventExtra.builder().init(PERFETTO_TE_TYPE_SLICE_END, category);
     }
 
@@ -275,10 +263,6 @@
      * @param value The value of the counter.
      */
     public static PerfettoTrackEventExtra.Builder counter(Category category, long value) {
-        if (!category.isEnabled()) {
-            return PerfettoTrackEventExtra.noOpBuilder();
-        }
-
         return PerfettoTrackEventExtra.builder().init(PERFETTO_TE_TYPE_COUNTER, category)
             .setCounter(value);
     }
@@ -302,10 +286,6 @@
      * @param value The value of the counter.
      */
     public static PerfettoTrackEventExtra.Builder counter(Category category, double value) {
-        if (!category.isEnabled()) {
-            return PerfettoTrackEventExtra.noOpBuilder();
-        }
-
         return PerfettoTrackEventExtra.builder().init(PERFETTO_TE_TYPE_COUNTER, category)
             .setCounter(value);
     }
diff --git a/core/java/android/os/PerfettoTrackEventExtra.java b/core/java/android/os/PerfettoTrackEventExtra.java
index 6844229..f4b5dfe 100644
--- a/core/java/android/os/PerfettoTrackEventExtra.java
+++ b/core/java/android/os/PerfettoTrackEventExtra.java
@@ -35,8 +35,8 @@
  */
 @android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class PerfettoTrackEventExtra {
+    private static final boolean DEBUG = false;
     private static final int DEFAULT_EXTRA_CACHE_SIZE = 5;
-    private static final Builder NO_OP_BUILDER = new NoOpBuilder();
     private static final ThreadLocal<PerfettoTrackEventExtra> sTrackEventExtra =
             new ThreadLocal<PerfettoTrackEventExtra>() {
                 @Override
@@ -46,7 +46,7 @@
             };
     private static final AtomicLong sNamedTrackId = new AtomicLong();
     private static final Supplier<Flow> sFlowSupplier = Flow::new;
-    private static final Supplier<BuilderImpl> sBuilderSupplier = BuilderImpl::new;
+    private static final Supplier<Builder> sBuilderSupplier = Builder::new;
     private static final Supplier<FieldInt64> sFieldInt64Supplier = FieldInt64::new;
     private static final Supplier<FieldDouble> sFieldDoubleSupplier = FieldDouble::new;
     private static final Supplier<FieldString> sFieldStringSupplier = FieldString::new;
@@ -56,6 +56,8 @@
     private CounterInt64 mCounterInt64;
     private CounterDouble mCounterDouble;
     private Proto mProto;
+    private Flow mFlow;
+    private Flow mTerminatingFlow;
 
     /**
      * Represents a native pointer to a Perfetto C SDK struct. E.g. PerfettoTeHlExtra.
@@ -135,245 +137,10 @@
         }
     }
 
-    public interface Builder {
-        /**
-         * Emits the track event.
-         */
-        void emit();
-
-        /**
-         * Initialize the builder for a new trace event.
-         */
-        Builder init(int traceType, PerfettoTrace.Category category);
-
-        /**
-         * Sets the event name for the track event.
-         */
-        Builder setEventName(String eventName);
-
-        /**
-         * Adds a debug arg with key {@code name} and value {@code val}.
-         */
-        Builder addArg(String name, long val);
-
-        /**
-         * Adds a debug arg with key {@code name} and value {@code val}.
-         */
-        Builder addArg(String name, boolean val);
-
-        /**
-         * Adds a debug arg with key {@code name} and value {@code val}.
-         */
-        Builder addArg(String name, double val);
-
-        /**
-         * Adds a debug arg with key {@code name} and value {@code val}.
-         */
-        Builder addArg(String name, String val);
-
-        /**
-         * Adds a flow with {@code id}.
-         */
-        Builder addFlow(int id);
-
-        /**
-         * Adds a terminating flow with {@code id}.
-         */
-        Builder addTerminatingFlow(int id);
-
-        /**
-         * Adds the events to a named track instead of the thread track where the
-         * event occurred.
-         */
-        Builder usingNamedTrack(long parentUuid, String name);
-
-        /**
-         * Adds the events to a process scoped named track instead of the thread track where the
-         * event occurred.
-         */
-        Builder usingProcessNamedTrack(String name);
-
-        /**
-         * Adds the events to a thread scoped named track instead of the thread track where the
-         * event occurred.
-         */
-        Builder usingThreadNamedTrack(long tid, String name);
-
-        /**
-         * Adds the events to a counter track instead. This is required for
-         * setting counter values.
-         */
-        Builder usingCounterTrack(long parentUuid, String name);
-
-        /**
-         * Adds the events to a process scoped counter track instead. This is required for
-         * setting counter values.
-         */
-        Builder usingProcessCounterTrack(String name);
-
-        /**
-         * Adds the events to a thread scoped counter track instead. This is required for
-         * setting counter values.
-         */
-        Builder usingThreadCounterTrack(long tid, String name);
-
-        /**
-         * Sets a long counter value on the event.
-         *
-         */
-        Builder setCounter(long val);
-
-        /**
-         * Sets a double counter value on the event.
-         *
-         */
-        Builder setCounter(double val);
-
-        /**
-         * Adds a proto field with field id {@code id} and value {@code val}.
-         */
-        Builder addField(long id, long val);
-
-        /**
-         * Adds a proto field with field id {@code id} and value {@code val}.
-         */
-        Builder addField(long id, double val);
-
-        /**
-         * Adds a proto field with field id {@code id} and value {@code val}.
-         */
-        Builder addField(long id, String val);
-
-        /**
-         * Begins a proto field with field
-         * Fields can be added from this point and there must be a corresponding
-         * {@link endProto}.
-         *
-         * The proto field is a singleton and all proto fields get added inside the
-         * one {@link beginProto} and {@link endProto} within the {@link Builder}.
-         */
-        Builder beginProto();
-
-        /**
-         * Ends a proto field.
-         */
-        Builder endProto();
-
-        /**
-         * Begins a nested proto field with field id {@code id}.
-         * Fields can be added from this point and there must be a corresponding
-         * {@link endNested}.
-         */
-        Builder beginNested(long id);
-
-        /**
-         * Ends a nested proto field.
-         */
-        Builder endNested();
-    }
-
-    @android.ravenwood.annotation.RavenwoodKeepWholeClass
-    public static final class NoOpBuilder implements Builder {
-        @Override
-        public void emit() {}
-        @Override
-        public Builder init(int traceType, PerfettoTrace.Category category) {
-            return this;
-        }
-        @Override
-        public Builder setEventName(String eventName) {
-            return this;
-        }
-        @Override
-        public Builder addArg(String name, long val) {
-            return this;
-        }
-        @Override
-        public Builder addArg(String name, boolean val) {
-            return this;
-        }
-        @Override
-        public Builder addArg(String name, double val) {
-            return this;
-        }
-        @Override
-        public Builder addArg(String name, String val) {
-            return this;
-        }
-        @Override
-        public Builder addFlow(int id) {
-            return this;
-        }
-        @Override
-        public Builder addTerminatingFlow(int id) {
-            return this;
-        }
-        @Override
-        public Builder usingNamedTrack(long parentUuid, String name) {
-            return this;
-        }
-        @Override
-        public Builder usingProcessNamedTrack(String name) {
-            return this;
-        }
-        @Override
-        public Builder usingThreadNamedTrack(long tid, String name) {
-            return this;
-        }
-        @Override
-        public Builder usingCounterTrack(long parentUuid, String name) {
-            return this;
-        }
-        @Override
-        public Builder usingProcessCounterTrack(String name) {
-            return this;
-        }
-        @Override
-        public Builder usingThreadCounterTrack(long tid, String name) {
-            return this;
-        }
-        @Override
-        public Builder setCounter(long val) {
-            return this;
-        }
-        @Override
-        public Builder setCounter(double val) {
-            return this;
-        }
-        @Override
-        public Builder addField(long id, long val) {
-            return this;
-        }
-        @Override
-        public Builder addField(long id, double val) {
-            return this;
-        }
-        @Override
-        public Builder addField(long id, String val) {
-            return this;
-        }
-        @Override
-        public Builder beginProto() {
-            return this;
-        }
-        @Override
-        public Builder endProto() {
-            return this;
-        }
-        @Override
-        public Builder beginNested(long id) {
-            return this;
-        }
-        @Override
-        public Builder endNested() {
-            return this;
-        }
-    }
-
     /**
      * Builder for Perfetto track event extras.
      */
-    public static final class BuilderImpl implements Builder {
+    public static final class Builder {
         // For performance reasons, we hold a reference to mExtra as a holder for
         // perfetto pointers being added. This way, we avoid an additional list to hold
         // the pointers in Java and we can pass them down directly to native code.
@@ -386,10 +153,13 @@
 
         private Builder mParent;
         private FieldContainer mCurrentContainer;
+        private boolean mIsCategoryEnabled;
 
         private final CounterInt64 mCounterInt64;
         private final CounterDouble mCounterDouble;
         private final Proto mProto;
+        private final Flow mFlow;
+        private final Flow mTerminatingFlow;
 
         private final RingBuffer<NamedTrack> mNamedTrackCache;
         private final RingBuffer<CounterTrack> mCounterTrackCache;
@@ -403,9 +173,9 @@
         private final Pool<FieldString> mFieldStringCache;
         private final Pool<FieldNested> mFieldNestedCache;
         private final Pool<Flow> mFlowCache;
-        private final Pool<BuilderImpl> mBuilderCache;
+        private final Pool<Builder> mBuilderCache;
 
-        private BuilderImpl() {
+        private Builder() {
             mExtra = sTrackEventExtra.get();
             mNamedTrackCache = mExtra.mNamedTrackCache;
             mCounterTrackCache = mExtra.mCounterTrackCache;
@@ -423,20 +193,32 @@
             mCounterInt64 = mExtra.getCounterInt64();
             mCounterDouble = mExtra.getCounterDouble();
             mProto = mExtra.getProto();
+            mFlow = mExtra.getFlow();
+            mTerminatingFlow = mExtra.getTerminatingFlow();
         }
 
-        @Override
+        /**
+         * Emits the track event.
+         */
         public void emit() {
-            checkParent();
-            mIsBuilt = true;
+            if (!mIsCategoryEnabled) {
+                return;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
 
+            mIsBuilt = true;
             native_emit(mTraceType, mCategory.getPtr(), mEventName, mExtra.getPtr());
-            // Reset after emitting to free any the extras used to trace the event.
-            mExtra.reset();
         }
 
-        @Override
+        /**
+         * Initialize the builder for a new trace event.
+         */
         public Builder init(int traceType, PerfettoTrace.Category category) {
+            if (!category.isEnabled()) {
+                return this;
+            }
             mTraceType = traceType;
             mCategory = category;
             mEventName = "";
@@ -449,18 +231,27 @@
 
             mExtra.reset();
             // Reset after on init in case the thread created builders without calling emit
-            return initInternal(this, null);
+            return initInternal(this, null, true);
         }
 
-        @Override
+        /**
+         * Sets the event name for the track event.
+         */
         public Builder setEventName(String eventName) {
             mEventName = eventName;
             return this;
         }
 
-        @Override
+        /**
+         * Adds a debug arg with key {@code name} and value {@code val}.
+         */
         public Builder addArg(String name, long val) {
-            checkParent();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
             ArgInt64 arg = mArgInt64Cache.get(name.hashCode());
             if (arg == null || !arg.getName().equals(name)) {
                 arg = new ArgInt64(name);
@@ -471,9 +262,16 @@
             return this;
         }
 
-        @Override
+        /**
+         * Adds a debug arg with key {@code name} and value {@code val}.
+         */
         public Builder addArg(String name, boolean val) {
-            checkParent();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
             ArgBool arg = mArgBoolCache.get(name.hashCode());
             if (arg == null || !arg.getName().equals(name)) {
                 arg = new ArgBool(name);
@@ -484,9 +282,16 @@
             return this;
         }
 
-        @Override
+        /**
+         * Adds a debug arg with key {@code name} and value {@code val}.
+         */
         public Builder addArg(String name, double val) {
-            checkParent();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
             ArgDouble arg = mArgDoubleCache.get(name.hashCode());
             if (arg == null || !arg.getName().equals(name)) {
                 arg = new ArgDouble(name);
@@ -497,9 +302,16 @@
             return this;
         }
 
-        @Override
+        /**
+         * Adds a debug arg with key {@code name} and value {@code val}.
+         */
         public Builder addArg(String name, String val) {
-            checkParent();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
             ArgString arg = mArgStringCache.get(name.hashCode());
             if (arg == null || !arg.getName().equals(name)) {
                 arg = new ArgString(name);
@@ -510,27 +322,79 @@
             return this;
         }
 
-        @Override
+        /**
+         * Adds a flow with {@code id}.
+         */
         public Builder addFlow(int id) {
-            checkParent();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
             Flow flow = mFlowCache.get(sFlowSupplier);
             flow.setProcessFlow(id);
             mExtra.addPerfettoPointer(flow);
             return this;
         }
 
-        @Override
+        /**
+         * Adds a terminating flow with {@code id}.
+         */
         public Builder addTerminatingFlow(int id) {
-            checkParent();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
             Flow flow = mFlowCache.get(sFlowSupplier);
             flow.setProcessTerminatingFlow(id);
             mExtra.addPerfettoPointer(flow);
             return this;
         }
 
-        @Override
+        /**
+         * Adds a flow with {@code id}.
+         */
+        public Builder setFlow(int id) {
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
+            mFlow.setProcessFlow(id);
+            mExtra.addPerfettoPointer(mFlow);
+            return this;
+        }
+
+        /**
+         * Adds a terminating flow with {@code id}.
+         */
+        public Builder setTerminatingFlow(int id) {
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
+            mTerminatingFlow.setProcessTerminatingFlow(id);
+            mExtra.addPerfettoPointer(mTerminatingFlow);
+            return this;
+        }
+
+        /**
+         * Adds the events to a named track instead of the thread track where the
+         * event occurred.
+         */
         public Builder usingNamedTrack(long parentUuid, String name) {
-            checkParent();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
 
             NamedTrack track = mNamedTrackCache.get(name.hashCode());
             if (track == null || !track.getName().equals(name)) {
@@ -541,19 +405,39 @@
             return this;
         }
 
-        @Override
+        /**
+         * Adds the events to a process scoped named track instead of the thread track where the
+         * event occurred.
+         */
         public Builder usingProcessNamedTrack(String name) {
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
             return usingNamedTrack(PerfettoTrace.getProcessTrackUuid(), name);
         }
 
-        @Override
+        /**
+         * Adds the events to a thread scoped named track instead of the thread track where the
+         * event occurred.
+         */
         public Builder usingThreadNamedTrack(long tid, String name) {
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
             return usingNamedTrack(PerfettoTrace.getThreadTrackUuid(tid), name);
         }
 
-        @Override
+        /**
+         * Adds the events to a counter track instead. This is required for
+         * setting counter values.
+         */
         public Builder usingCounterTrack(long parentUuid, String name) {
-            checkParent();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
 
             CounterTrack track = mCounterTrackCache.get(name.hashCode());
             if (track == null || !track.getName().equals(name)) {
@@ -564,95 +448,178 @@
             return this;
         }
 
-        @Override
+        /**
+         * Adds the events to a process scoped counter track instead. This is required for
+         * setting counter values.
+         */
         public Builder usingProcessCounterTrack(String name) {
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
             return usingCounterTrack(PerfettoTrace.getProcessTrackUuid(), name);
         }
 
-        @Override
+        /**
+         * Adds the events to a thread scoped counter track instead. This is required for
+         * setting counter values.
+         */
         public Builder usingThreadCounterTrack(long tid, String name) {
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
             return usingCounterTrack(PerfettoTrace.getThreadTrackUuid(tid), name);
         }
 
-        @Override
+        /**
+         * Sets a long counter value on the event.
+         *
+         */
         public Builder setCounter(long val) {
-            checkParent();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
             mCounterInt64.setValue(val);
             mExtra.addPerfettoPointer(mCounterInt64);
             return this;
         }
 
-        @Override
+        /**
+         * Sets a double counter value on the event.
+         *
+         */
         public Builder setCounter(double val) {
-            checkParent();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
             mCounterDouble.setValue(val);
             mExtra.addPerfettoPointer(mCounterDouble);
             return this;
         }
 
-        @Override
+        /**
+         * Adds a proto field with field id {@code id} and value {@code val}.
+         */
         public Builder addField(long id, long val) {
-            checkContainer();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkContainer();
+            }
             FieldInt64 field = mFieldInt64Cache.get(sFieldInt64Supplier);
             field.setValue(id, val);
             mExtra.addPerfettoPointer(mCurrentContainer, field);
             return this;
         }
 
-        @Override
+        /**
+         * Adds a proto field with field id {@code id} and value {@code val}.
+         */
         public Builder addField(long id, double val) {
-            checkContainer();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkContainer();
+            }
             FieldDouble field = mFieldDoubleCache.get(sFieldDoubleSupplier);
             field.setValue(id, val);
             mExtra.addPerfettoPointer(mCurrentContainer, field);
             return this;
         }
 
-        @Override
+        /**
+         * Adds a proto field with field id {@code id} and value {@code val}.
+         */
         public Builder addField(long id, String val) {
-            checkContainer();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkContainer();
+            }
             FieldString field = mFieldStringCache.get(sFieldStringSupplier);
             field.setValue(id, val);
             mExtra.addPerfettoPointer(mCurrentContainer, field);
             return this;
         }
 
-        @Override
+        /**
+         * Begins a proto field.
+         * Fields can be added from this point and there must be a corresponding
+         * {@link endProto}.
+         *
+         * The proto field is a singleton and all proto fields get added inside the
+         * one {@link beginProto} and {@link endProto} within the {@link Builder}.
+         */
         public Builder beginProto() {
-            checkParent();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkParent();
+            }
             mProto.clearFields();
             mExtra.addPerfettoPointer(mProto);
-            return mBuilderCache.get(sBuilderSupplier).initInternal(this, mProto);
+            return mBuilderCache.get(sBuilderSupplier).initInternal(this, mProto, true);
         }
 
-        @Override
+        /**
+         * Ends a proto field.
+         */
         public Builder endProto() {
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
             if (mParent == null || mCurrentContainer == null) {
                 throw new IllegalStateException("No proto to end");
             }
             return mParent;
         }
 
-        @Override
+        /**
+         * Begins a nested proto field with field id {@code id}.
+         * Fields can be added from this point and there must be a corresponding
+         * {@link endNested}.
+         */
         public Builder beginNested(long id) {
-            checkContainer();
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
+            if (DEBUG) {
+                checkContainer();
+            }
             FieldNested field = mFieldNestedCache.get(sFieldNestedSupplier);
             field.setId(id);
             mExtra.addPerfettoPointer(mCurrentContainer, field);
-            return mBuilderCache.get(sBuilderSupplier).initInternal(this, field);
+            return mBuilderCache.get(sBuilderSupplier).initInternal(this, field, true);
         }
 
-        @Override
+        /**
+         * Ends a nested proto field.
+         */
         public Builder endNested() {
+            if (!mIsCategoryEnabled) {
+                return this;
+            }
             if (mParent == null || mCurrentContainer == null) {
                 throw new IllegalStateException("No nested field to end");
             }
             return mParent;
         }
 
-        private Builder initInternal(Builder parent, FieldContainer container) {
+
+        private Builder initInternal(Builder parent, FieldContainer field,
+                boolean isCategoryEnabled) {
             mParent = parent;
-            mCurrentContainer = container;
+            mCurrentContainer = field;
+            mIsCategoryEnabled = isCategoryEnabled;
             mIsBuilt = false;
 
             return this;
@@ -685,14 +652,8 @@
      * Start a {@link Builder} to build a {@link PerfettoTrackEventExtra}.
      */
     public static Builder builder() {
-        return sTrackEventExtra.get().mBuilderCache.get(sBuilderSupplier).initInternal(null, null);
-    }
-
-    /**
-     * Returns a no-op {@link Builder}. Useful if a category is disabled.
-     */
-    public static Builder noOpBuilder() {
-        return NO_OP_BUILDER;
+        return sTrackEventExtra.get().mBuilderCache.get(sBuilderSupplier).initInternal(null, null,
+            false);
     }
 
     private final RingBuffer<NamedTrack> mNamedTrackCache =
@@ -710,7 +671,7 @@
     private final Pool<FieldString> mFieldStringCache = new Pool(DEFAULT_EXTRA_CACHE_SIZE);
     private final Pool<FieldNested> mFieldNestedCache = new Pool(DEFAULT_EXTRA_CACHE_SIZE);
     private final Pool<Flow> mFlowCache = new Pool(DEFAULT_EXTRA_CACHE_SIZE);
-    private final Pool<BuilderImpl> mBuilderCache = new Pool(DEFAULT_EXTRA_CACHE_SIZE);
+    private final Pool<Builder> mBuilderCache = new Pool(DEFAULT_EXTRA_CACHE_SIZE);
 
     private static final NativeAllocationRegistry sRegistry =
             NativeAllocationRegistry.createMalloced(
@@ -757,6 +718,7 @@
         mPendingPointers.clear();
     }
 
+    @android.ravenwood.annotation.RavenwoodReplace
     private CounterInt64 getCounterInt64() {
         if (mCounterInt64 == null) {
             mCounterInt64 = new CounterInt64();
@@ -764,6 +726,7 @@
         return mCounterInt64;
     }
 
+    @android.ravenwood.annotation.RavenwoodReplace
     private CounterDouble getCounterDouble() {
         if (mCounterDouble == null) {
             mCounterDouble = new CounterDouble();
@@ -771,6 +734,7 @@
         return mCounterDouble;
     }
 
+    @android.ravenwood.annotation.RavenwoodReplace
     private Proto getProto() {
         if (mProto == null) {
             mProto = new Proto();
@@ -778,6 +742,22 @@
         return mProto;
     }
 
+    @android.ravenwood.annotation.RavenwoodReplace
+    private Flow getFlow() {
+        if (mFlow == null) {
+            mFlow = new Flow();
+        }
+        return mFlow;
+    }
+
+    @android.ravenwood.annotation.RavenwoodReplace
+    private Flow getTerminatingFlow() {
+        if (mTerminatingFlow == null) {
+            mTerminatingFlow = new Flow();
+        }
+        return mTerminatingFlow;
+    }
+
     private static final class Flow implements PerfettoPointer {
         private static final NativeAllocationRegistry sRegistry =
                 NativeAllocationRegistry.createMalloced(
@@ -1337,4 +1317,29 @@
         // Tracing currently completely disabled under Ravenwood
         return 0;
     }
+
+    private CounterInt64 getCounterInt64$ravenwood() {
+        // Tracing currently completely disabled under Ravenwood
+        return null;
+    }
+
+    private CounterDouble getCounterDouble$ravenwood() {
+        // Tracing currently completely disabled under Ravenwood
+        return null;
+    }
+
+    private Proto getProto$ravenwood() {
+        // Tracing currently completely disabled under Ravenwood
+        return null;
+    }
+
+    private Flow getFlow$ravenwood() {
+        // Tracing currently completely disabled under Ravenwood
+        return null;
+    }
+
+    private Flow getTerminatingFlow$ravenwood() {
+        // Tracing currently completely disabled under Ravenwood
+        return null;
+    }
 }
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 33bf4a2..767019d 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -3324,8 +3324,7 @@
     @FlaggedApi(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE)
     @RequiresPermission(anyOf = {
             Manifest.permission.MANAGE_USERS,
-            Manifest.permission.CREATE_USERS},
-            conditional = true)
+            Manifest.permission.CREATE_USERS})
     @UserHandleAware
     public boolean canAddPrivateProfile() {
         if (!android.multiuser.Flags.enablePrivateSpaceFeatures()) return false;
diff --git a/core/java/android/os/vibrator/flags.aconfig b/core/java/android/os/vibrator/flags.aconfig
index 7ceb948..414f2749 100644
--- a/core/java/android/os/vibrator/flags.aconfig
+++ b/core/java/android/os/vibrator/flags.aconfig
@@ -145,3 +145,23 @@
         purpose: PURPOSE_FEATURE
     }
 }
+
+flag {
+    namespace: "haptics"
+    name: "fix_vibration_thread_callback_handling"
+    description: "Fix how the VibrationThread handles late callbacks from the vibrator HAL"
+    bug: "395005081"
+    metadata {
+      purpose: PURPOSE_BUGFIX
+    }
+}
+
+flag {
+    namespace: "haptics"
+    name: "fix_external_vibration_system_update_aware"
+    description: "Fix the audio-coupled haptics handling of system updates."
+    bug: "372241975"
+    metadata {
+      purpose: PURPOSE_BUGFIX
+    }
+}
diff --git a/core/java/android/permission/flags.aconfig b/core/java/android/permission/flags.aconfig
index d469a2f..ca24c0c 100644
--- a/core/java/android/permission/flags.aconfig
+++ b/core/java/android/permission/flags.aconfig
@@ -514,3 +514,12 @@
     description: "Force AttributionSource.myAttributionSource() to return a default device id"
     bug: "343121936"
 }
+
+flag {
+    name: "grant_read_blocked_numbers_to_system_ui_intelligence"
+    is_exported: true
+    is_fixed_read_only: true
+    namespace: "permissions"
+    description: "This flag is used to add role protection to READ_BLOCKED_NUMBERS for SYSTEM_UI_INTELLIGENCE"
+    bug: "354758615"
+}
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 4ebfe53..89f66c0 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -9345,6 +9345,18 @@
                 "accessibility_autoclick_ignore_minor_cursor_movement";
 
         /**
+         * String setting that stores the position of the autoclick panel when
+         * {@link #ACCESSIBILITY_AUTOCLICK_ENABLED} is set. The position is stored as a
+         * comma-separated string containing gravity, x-coordinate, y-coordinate, and corner index.
+         * For example, "8388659,15,30,0", where 8388659 means gravity Gravity.START | Gravity.TOP.
+         *
+         * @see #ACCESSIBILITY_AUTOCLICK_ENABLED
+         * @hide
+         */
+        public static final String ACCESSIBILITY_AUTOCLICK_PANEL_POSITION =
+                "accessibility_autoclick_panel_position";
+
+        /**
          * Whether or not larger size icons are used for the pointer of mouse/trackpad for
          * accessibility.
          * (0 = false, 1 = true)
@@ -13017,18 +13029,16 @@
          * false/0.
          * @hide
          */
-        @Readable
         public static final String REDACT_OTP_NOTIFICATION_WHILE_CONNECTED_TO_WIFI =
                 "redact_otp_on_wifi";
 
         /**
-         * Toggle for whether to immediately redact OTP notifications, or require the device to be
-         * locked for 10 minutes. Defaults to false/0
+         * Time (in milliseconds) that the device should need to be locked, in order for an OTP
+         * notification to be redacted. Default is 10 minutes (600,000 ms)
          * @hide
          */
-        @Readable
-        public static final String REDACT_OTP_NOTIFICATION_IMMEDIATELY =
-                "remove_otp_redaction_delay";
+        public static final String OTP_NOTIFICATION_REDACTION_LOCK_TIME =
+                "otp_redaction_lock_time";
 
         /**
          * These entries are considered common between the personal and the managed profile,
diff --git a/core/java/android/service/notification/ZenModeConfig.java b/core/java/android/service/notification/ZenModeConfig.java
index 4cbd5be..1cf43d4 100644
--- a/core/java/android/service/notification/ZenModeConfig.java
+++ b/core/java/android/service/notification/ZenModeConfig.java
@@ -2636,7 +2636,7 @@
             enabled = source.readInt() == 1;
             snoozing = source.readInt() == 1;
             if (source.readInt() == 1) {
-                name = source.readString();
+                name = source.readString8();
             }
             zenMode = source.readInt();
             conditionId = source.readParcelable(null, android.net.Uri.class);
@@ -2644,18 +2644,18 @@
             component = source.readParcelable(null, android.content.ComponentName.class);
             configurationActivity = source.readParcelable(null, android.content.ComponentName.class);
             if (source.readInt() == 1) {
-                id = source.readString();
+                id = source.readString8();
             }
             creationTime = source.readLong();
             if (source.readInt() == 1) {
-                enabler = source.readString();
+                enabler = source.readString8();
             }
             zenPolicy = source.readParcelable(null, android.service.notification.ZenPolicy.class);
             zenDeviceEffects = source.readParcelable(null, ZenDeviceEffects.class);
-            pkg = source.readString();
+            pkg = source.readString8();
             allowManualInvocation = source.readBoolean();
-            iconResName = source.readString();
-            triggerDescription = source.readString();
+            iconResName = source.readString8();
+            triggerDescription = source.readString8();
             type = source.readInt();
             userModifiedFields = source.readInt();
             zenPolicyUserModifiedFields = source.readInt();
@@ -2703,7 +2703,7 @@
             dest.writeInt(snoozing ? 1 : 0);
             if (name != null) {
                 dest.writeInt(1);
-                dest.writeString(name);
+                dest.writeString8(name);
             } else {
                 dest.writeInt(0);
             }
@@ -2714,23 +2714,23 @@
             dest.writeParcelable(configurationActivity, 0);
             if (id != null) {
                 dest.writeInt(1);
-                dest.writeString(id);
+                dest.writeString8(id);
             } else {
                 dest.writeInt(0);
             }
             dest.writeLong(creationTime);
             if (enabler != null) {
                 dest.writeInt(1);
-                dest.writeString(enabler);
+                dest.writeString8(enabler);
             } else {
                 dest.writeInt(0);
             }
             dest.writeParcelable(zenPolicy, 0);
             dest.writeParcelable(zenDeviceEffects, 0);
-            dest.writeString(pkg);
+            dest.writeString8(pkg);
             dest.writeBoolean(allowManualInvocation);
-            dest.writeString(iconResName);
-            dest.writeString(triggerDescription);
+            dest.writeString8(iconResName);
+            dest.writeString8(triggerDescription);
             dest.writeInt(type);
             dest.writeInt(userModifiedFields);
             dest.writeInt(zenPolicyUserModifiedFields);
diff --git a/core/java/android/text/AlteredCharSequence.java b/core/java/android/text/AlteredCharSequence.java
index 971a47d..a05c690a 100644
--- a/core/java/android/text/AlteredCharSequence.java
+++ b/core/java/android/text/AlteredCharSequence.java
@@ -24,6 +24,7 @@
  * @deprecated The functionality this class offers is easily implemented outside the framework.
  */
 @Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class AlteredCharSequence
 implements CharSequence, GetChars
 {
diff --git a/core/java/android/text/AndroidBidi.java b/core/java/android/text/AndroidBidi.java
index 31da799..fcdd50a 100644
--- a/core/java/android/text/AndroidBidi.java
+++ b/core/java/android/text/AndroidBidi.java
@@ -28,6 +28,7 @@
  * @hide
  */
 @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class AndroidBidi {
 
     /**
diff --git a/core/java/android/text/AndroidCharacter.java b/core/java/android/text/AndroidCharacter.java
index c5f1a01..37c4fdb 100644
--- a/core/java/android/text/AndroidCharacter.java
+++ b/core/java/android/text/AndroidCharacter.java
@@ -22,6 +22,7 @@
  * @deprecated Use various methods from {@link android.icu.lang.UCharacter}, instead.
  */
 @Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class AndroidCharacter
 {
     public static final int EAST_ASIAN_WIDTH_NEUTRAL = 0;
diff --git a/core/java/android/text/Annotation.java b/core/java/android/text/Annotation.java
index bb5d3ea..ac3e5a9 100644
--- a/core/java/android/text/Annotation.java
+++ b/core/java/android/text/Annotation.java
@@ -23,6 +23,7 @@
  * TextView save/restore cycles and can be used to keep application-specific
  * data that needs to be maintained for regions of text.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Annotation implements ParcelableSpan {
     private final String mKey;
     private final String mValue;
diff --git a/core/java/android/text/AutoGrowArray.java b/core/java/android/text/AutoGrowArray.java
index e428377..06c74c3 100644
--- a/core/java/android/text/AutoGrowArray.java
+++ b/core/java/android/text/AutoGrowArray.java
@@ -30,6 +30,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class AutoGrowArray {
     private static final int MIN_CAPACITY_INCREMENT = 12;
     private static final int MAX_CAPACITY_TO_BE_KEPT = 10000;
diff --git a/core/java/android/text/AutoText.java b/core/java/android/text/AutoText.java
index c5339a4..d7b0547 100644
--- a/core/java/android/text/AutoText.java
+++ b/core/java/android/text/AutoText.java
@@ -31,6 +31,7 @@
 /**
  * This class accesses a dictionary of corrections to frequent misspellings.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class AutoText {
     // struct trie {
     //     char c;
diff --git a/core/java/android/text/BidiFormatter.java b/core/java/android/text/BidiFormatter.java
index dfa172d..6d4103c 100644
--- a/core/java/android/text/BidiFormatter.java
+++ b/core/java/android/text/BidiFormatter.java
@@ -82,6 +82,7 @@
  * first-strong estimation algorithm. It can also be configured to use a custom directionality
  * estimation object.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class BidiFormatter {
 
     /**
diff --git a/core/java/android/text/BoringLayout.java b/core/java/android/text/BoringLayout.java
index 4fdcecc..2b410e6 100644
--- a/core/java/android/text/BoringLayout.java
+++ b/core/java/android/text/BoringLayout.java
@@ -45,6 +45,7 @@
  * {@link android.graphics.Canvas#drawText(java.lang.CharSequence, int, int, float, float, android.graphics.Paint)
  *  Canvas.drawText()} directly.</p>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class BoringLayout extends Layout implements TextUtils.EllipsizeCallback {
 
     /**
diff --git a/core/java/android/text/CharSequenceCharacterIterator.java b/core/java/android/text/CharSequenceCharacterIterator.java
index 9b07d29..1599be8 100644
--- a/core/java/android/text/CharSequenceCharacterIterator.java
+++ b/core/java/android/text/CharSequenceCharacterIterator.java
@@ -24,6 +24,7 @@
  * An implementation of {@link java.text.CharacterIterator} that iterates over a given CharSequence.
  * {@hide}
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class CharSequenceCharacterIterator implements CharacterIterator {
     private final int mBeginIndex, mEndIndex;
     private int mIndex;
diff --git a/core/java/android/text/ClipboardManager.java b/core/java/android/text/ClipboardManager.java
index d030910..41990f0 100644
--- a/core/java/android/text/ClipboardManager.java
+++ b/core/java/android/text/ClipboardManager.java
@@ -21,6 +21,7 @@
  * {@link android.content.ClipboardManager} for the modern API.
  */
 @Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class ClipboardManager {
     /**
      * Returns the text on the clipboard.  It will eventually be possible
diff --git a/core/java/android/text/DynamicLayout.java b/core/java/android/text/DynamicLayout.java
index 6b1aef7..3b66ce0 100644
--- a/core/java/android/text/DynamicLayout.java
+++ b/core/java/android/text/DynamicLayout.java
@@ -53,6 +53,7 @@
  * {@link android.graphics.Canvas#drawText(java.lang.CharSequence, int, int, float, float, android.graphics.Paint)
  *  Canvas.drawText()} directly.</p>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class DynamicLayout extends Layout {
     private static final int PRIORITY = 128;
     private static final int BLOCK_MINIMUM_CHARACTER_LENGTH = 400;
diff --git a/core/java/android/text/Editable.java b/core/java/android/text/Editable.java
index a942f6c..53d819f 100644
--- a/core/java/android/text/Editable.java
+++ b/core/java/android/text/Editable.java
@@ -22,6 +22,7 @@
  * to immutable text like Strings).  If you make a {@link DynamicLayout}
  * of an Editable, the layout will be reflowed as the text is changed.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface Editable
 extends CharSequence, GetChars, Spannable, Appendable
 {
diff --git a/core/java/android/text/Emoji.java b/core/java/android/text/Emoji.java
index cf0e3c2..28c37c0 100644
--- a/core/java/android/text/Emoji.java
+++ b/core/java/android/text/Emoji.java
@@ -23,6 +23,7 @@
  * An utility class for Emoji.
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Emoji {
     public static int COMBINING_ENCLOSING_KEYCAP = 0x20E3;
 
diff --git a/core/java/android/text/EmojiConsistency.java b/core/java/android/text/EmojiConsistency.java
index dfaa217..9823305 100644
--- a/core/java/android/text/EmojiConsistency.java
+++ b/core/java/android/text/EmojiConsistency.java
@@ -48,6 +48,7 @@
  *     </ol>
  * </p>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class EmojiConsistency {
     /* Cannot construct */
     private EmojiConsistency() { }
diff --git a/core/java/android/text/FontConfig.java b/core/java/android/text/FontConfig.java
index 783f3b7..5a4d3a8 100644
--- a/core/java/android/text/FontConfig.java
+++ b/core/java/android/text/FontConfig.java
@@ -55,6 +55,7 @@
  */
 @SystemApi
 @TestApi
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class FontConfig implements Parcelable {
     private final @NonNull List<FontFamily> mFamilies;
     private final @NonNull List<Alias> mAliases;
diff --git a/core/java/android/text/GetChars.java b/core/java/android/text/GetChars.java
index 348a911..229f543 100644
--- a/core/java/android/text/GetChars.java
+++ b/core/java/android/text/GetChars.java
@@ -21,6 +21,7 @@
  * getChars() method like the one in String that is faster than
  * calling charAt() multiple times.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface GetChars
 extends CharSequence
 {
diff --git a/core/java/android/text/GraphemeClusterSegmentFinder.java b/core/java/android/text/GraphemeClusterSegmentFinder.java
index 0f6fdaf..996223d 100644
--- a/core/java/android/text/GraphemeClusterSegmentFinder.java
+++ b/core/java/android/text/GraphemeClusterSegmentFinder.java
@@ -31,6 +31,7 @@
  * @see <a href="https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries">Unicode Text
  *     Segmentation - Grapheme Cluster Boundaries</a>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class GraphemeClusterSegmentFinder extends SegmentFinder {
     private static AutoGrowArray.FloatArray sTempAdvances = null;
     private final boolean[] mIsGraphemeBreak;
diff --git a/core/java/android/text/GraphicsOperations.java b/core/java/android/text/GraphicsOperations.java
index 6c15446..f7fe805 100644
--- a/core/java/android/text/GraphicsOperations.java
+++ b/core/java/android/text/GraphicsOperations.java
@@ -26,6 +26,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface GraphicsOperations extends CharSequence {
     /**
      * Just like {@link Canvas#drawText}.
diff --git a/core/java/android/text/Highlights.java b/core/java/android/text/Highlights.java
index 693dbcf..217a38b 100644
--- a/core/java/android/text/Highlights.java
+++ b/core/java/android/text/Highlights.java
@@ -30,6 +30,7 @@
 /**
  * A class that represents of the highlight of the text.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Highlights {
     private final List<Pair<Paint, int[]>> mHighlights;
 
diff --git a/core/java/android/text/Html.java b/core/java/android/text/Html.java
index a42eece..d412071 100644
--- a/core/java/android/text/Html.java
+++ b/core/java/android/text/Html.java
@@ -17,13 +17,13 @@
 package android.text;
 
 import android.app.ActivityThread;
-import android.app.Application;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.res.Resources;
 import android.graphics.Color;
 import android.graphics.Typeface;
 import android.graphics.drawable.Drawable;
 import android.os.Build;
+import android.ravenwood.annotation.RavenwoodReplace;
 import android.text.style.AbsoluteSizeSpan;
 import android.text.style.AlignmentSpan;
 import android.text.style.BackgroundColorSpan;
@@ -65,6 +65,7 @@
  * This class processes HTML strings into displayable styled text.
  * Not all HTML tags are supported.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Html {
     /**
      * Retrieves images for HTML &lt;img&gt; tags.
@@ -506,6 +507,15 @@
         out.append("</p>\n");
     }
 
+    @RavenwoodReplace(blockedBy = ActivityThread.class)
+    private static float getDisplayMetricsDensity() {
+        return ActivityThread.currentApplication().getResources().getDisplayMetrics().density;
+    }
+
+    private static float getDisplayMetricsDensity$ravenwood() {
+        return Resources.getSystem().getDisplayMetrics().density;
+    }
+
     private static void withinParagraph(StringBuilder out, Spanned text, int start, int end) {
         int next;
         for (int i = start; i < end; i = next) {
@@ -559,8 +569,7 @@
                     AbsoluteSizeSpan s = ((AbsoluteSizeSpan) style[j]);
                     float sizeDip = s.getSize();
                     if (!s.getDip()) {
-                        Application application = ActivityThread.currentApplication();
-                        sizeDip /= application.getResources().getDisplayMetrics().density;
+                        sizeDip /= getDisplayMetricsDensity();
                     }
 
                     // px in CSS is the equivalance of dip in Android
@@ -669,6 +678,7 @@
     }
 }
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 class HtmlToSpannedConverter implements ContentHandler {
 
     private static final float[] HEADING_SIZES = {
@@ -843,6 +853,16 @@
         }
     }
 
+    @RavenwoodReplace(blockedBy = ActivityThread.class)
+    private static int getFontWeightAdjustment() {
+        return ActivityThread.currentApplication().getResources()
+                .getConfiguration().fontWeightAdjustment;
+    }
+
+    private static int getFontWeightAdjustment$ravenwood() {
+        return Resources.getSystem().getConfiguration().fontWeightAdjustment;
+    }
+
     private void handleEndTag(String tag) {
         if (tag.equalsIgnoreCase("br")) {
             handleBr(mSpannableStringBuilder);
@@ -858,17 +878,11 @@
         } else if (tag.equalsIgnoreCase("span")) {
             endCssStyle(mSpannableStringBuilder);
         } else if (tag.equalsIgnoreCase("strong")) {
-            Application application = ActivityThread.currentApplication();
-            int fontWeightAdjustment =
-                    application.getResources().getConfiguration().fontWeightAdjustment;
             end(mSpannableStringBuilder, Bold.class, new StyleSpan(Typeface.BOLD,
-                    fontWeightAdjustment));
+                    getFontWeightAdjustment()));
         } else if (tag.equalsIgnoreCase("b")) {
-            Application application = ActivityThread.currentApplication();
-            int fontWeightAdjustment =
-                    application.getResources().getConfiguration().fontWeightAdjustment;
             end(mSpannableStringBuilder, Bold.class, new StyleSpan(Typeface.BOLD,
-                    fontWeightAdjustment));
+                    getFontWeightAdjustment()));
         } else if (tag.equalsIgnoreCase("em")) {
             end(mSpannableStringBuilder, Italic.class, new StyleSpan(Typeface.ITALIC));
         } else if (tag.equalsIgnoreCase("cite")) {
@@ -1036,11 +1050,8 @@
         // Their ranges should not include the newlines at the end
         Heading h = getLast(text, Heading.class);
         if (h != null) {
-            Application application = ActivityThread.currentApplication();
-            int fontWeightAdjustment =
-                    application.getResources().getConfiguration().fontWeightAdjustment;
             setSpanFromMark(text, h, new RelativeSizeSpan(HEADING_SIZES[h.mLevel]),
-                    new StyleSpan(Typeface.BOLD, fontWeightAdjustment));
+                    new StyleSpan(Typeface.BOLD, getFontWeightAdjustment()));
         }
 
         endBlockElement(text);
diff --git a/core/java/android/text/Hyphenator.java b/core/java/android/text/Hyphenator.java
index 6f0628a..7f9a8a1 100644
--- a/core/java/android/text/Hyphenator.java
+++ b/core/java/android/text/Hyphenator.java
@@ -21,6 +21,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Hyphenator {
     private Hyphenator() {}
 
diff --git a/core/java/android/text/InputFilter.java b/core/java/android/text/InputFilter.java
index 96e7bd0..ed5de03e 100644
--- a/core/java/android/text/InputFilter.java
+++ b/core/java/android/text/InputFilter.java
@@ -27,6 +27,7 @@
  * InputFilters can be attached to {@link Editable}s to constrain the
  * changes that can be made to them.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface InputFilter
 {
     /**
diff --git a/core/java/android/text/InputType.java b/core/java/android/text/InputType.java
index 4ebecb7..03c9c02 100644
--- a/core/java/android/text/InputType.java
+++ b/core/java/android/text/InputType.java
@@ -44,6 +44,7 @@
  *     TYPE_DATETIME_VARIATION_TIME
  * </dl>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface InputType {
     /**
      * Mask of bits that determine the overall class
diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java
index b273a7f..44c3f9a 100644
--- a/core/java/android/text/Layout.java
+++ b/core/java/android/text/Layout.java
@@ -69,6 +69,7 @@
  * which will be updated as the text changes.
  * For text that will not change, use a {@link StaticLayout}.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class Layout {
 
     // These should match the constants in framework/base/libs/hwui/hwui/DrawTextFunctor.h
diff --git a/core/java/android/text/LoginFilter.java b/core/java/android/text/LoginFilter.java
index 0e4eec44..94f196f 100644
--- a/core/java/android/text/LoginFilter.java
+++ b/core/java/android/text/LoginFilter.java
@@ -23,6 +23,7 @@
  * handle non-BMP characters.
  */
 @Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class LoginFilter implements InputFilter {
     private boolean mAppendInvalid;  // whether to append or ignore invalid characters
     /**
diff --git a/core/java/android/text/MeasuredParagraph.java b/core/java/android/text/MeasuredParagraph.java
index 31a2263..b2e4459 100644
--- a/core/java/android/text/MeasuredParagraph.java
+++ b/core/java/android/text/MeasuredParagraph.java
@@ -68,6 +68,7 @@
  * @hide
  */
 @TestApi
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class MeasuredParagraph {
     private static final char OBJECT_REPLACEMENT_CHARACTER = '\uFFFC';
 
diff --git a/core/java/android/text/NoCopySpan.java b/core/java/android/text/NoCopySpan.java
index e754d76..4cd3d04 100644
--- a/core/java/android/text/NoCopySpan.java
+++ b/core/java/android/text/NoCopySpan.java
@@ -21,6 +21,7 @@
  * into a new Spanned when performing a slice or copy operation on the original
  * Spanned it was placed in.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface NoCopySpan {
     /**
      * Convenience equivalent for when you would just want a new Object() for
diff --git a/core/java/android/text/PackedIntVector.java b/core/java/android/text/PackedIntVector.java
index 3e5bf56..11dd0c3 100644
--- a/core/java/android/text/PackedIntVector.java
+++ b/core/java/android/text/PackedIntVector.java
@@ -29,6 +29,7 @@
  * @hide
  */
 @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class PackedIntVector {
     private final int mColumns;
     private int mRows;
diff --git a/core/java/android/text/PackedObjectVector.java b/core/java/android/text/PackedObjectVector.java
index b777e16..beb5ea4 100644
--- a/core/java/android/text/PackedObjectVector.java
+++ b/core/java/android/text/PackedObjectVector.java
@@ -21,6 +21,7 @@
 
 import libcore.util.EmptyArray;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 class PackedObjectVector<E>
 {
     private int mColumns;
diff --git a/core/java/android/text/ParcelableSpan.java b/core/java/android/text/ParcelableSpan.java
index d7c1a4b..a9a4893 100644
--- a/core/java/android/text/ParcelableSpan.java
+++ b/core/java/android/text/ParcelableSpan.java
@@ -24,6 +24,7 @@
  * This can only be used by code in the framework; it is not intended for
  * applications to implement their own Parcelable spans.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface ParcelableSpan extends Parcelable {
     /**
      * Return a special type identifier for this span class.
diff --git a/core/java/android/text/PrecomputedText.java b/core/java/android/text/PrecomputedText.java
index 5f6a9bd..71cacd9 100644
--- a/core/java/android/text/PrecomputedText.java
+++ b/core/java/android/text/PrecomputedText.java
@@ -75,6 +75,7 @@
  * Note that any {@link android.text.NoCopySpan} attached to the original text won't be passed to
  * PrecomputedText.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class PrecomputedText implements Spannable {
     private static final char LINE_FEED = '\n';
 
diff --git a/core/java/android/text/SegmentFinder.java b/core/java/android/text/SegmentFinder.java
index 047d07a..b7ab0e6 100644
--- a/core/java/android/text/SegmentFinder.java
+++ b/core/java/android/text/SegmentFinder.java
@@ -39,6 +39,7 @@
  *
  * @see Layout#getRangeForRect(RectF, SegmentFinder, Layout.TextInclusionStrategy)
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class SegmentFinder {
     /**
      * Return value of previousStartBoundary(int), previousEndBoundary(int), nextStartBoundary(int),
diff --git a/core/java/android/text/Selection.java b/core/java/android/text/Selection.java
index 711578c..674b473 100644
--- a/core/java/android/text/Selection.java
+++ b/core/java/android/text/Selection.java
@@ -27,6 +27,7 @@
  * Utility class for manipulating cursors and selections in CharSequences.
  * A cursor is a selection where the start and end are at the same offset.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Selection {
     private Selection() { /* cannot be instantiated */ }
 
diff --git a/core/java/android/text/SpanColors.java b/core/java/android/text/SpanColors.java
index fcd242b..3b6a041 100644
--- a/core/java/android/text/SpanColors.java
+++ b/core/java/android/text/SpanColors.java
@@ -27,6 +27,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SpanColors {
     public static final @ColorInt int NO_COLOR_FOUND = Color.TRANSPARENT;
 
diff --git a/core/java/android/text/SpanSet.java b/core/java/android/text/SpanSet.java
index d464278..4ad8106 100644
--- a/core/java/android/text/SpanSet.java
+++ b/core/java/android/text/SpanSet.java
@@ -31,6 +31,7 @@
  * Note that empty spans are ignored by this class.
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SpanSet<E> {
     private final Class<? extends E> classType;
 
diff --git a/core/java/android/text/SpanWatcher.java b/core/java/android/text/SpanWatcher.java
index 01e82c8..31d6320 100644
--- a/core/java/android/text/SpanWatcher.java
+++ b/core/java/android/text/SpanWatcher.java
@@ -21,6 +21,7 @@
  * will be called to notify it that other markup objects have been
  * added, changed, or removed.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface SpanWatcher extends NoCopySpan {
     /**
      * This method is called to notify you that the specified object
diff --git a/core/java/android/text/Spannable.java b/core/java/android/text/Spannable.java
index 8315b2a..fac5131 100644
--- a/core/java/android/text/Spannable.java
+++ b/core/java/android/text/Spannable.java
@@ -21,6 +21,7 @@
  * attached and detached.  Not all Spannable classes have mutable text;
  * see {@link Editable} for that.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface Spannable
 extends Spanned
 {
diff --git a/core/java/android/text/SpannableString.java b/core/java/android/text/SpannableString.java
index afb5df8..ee04a86 100644
--- a/core/java/android/text/SpannableString.java
+++ b/core/java/android/text/SpannableString.java
@@ -21,6 +21,7 @@
  * markup objects can be attached and detached.
  * For mutable text, see {@link SpannableStringBuilder}.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SpannableString
 extends SpannableStringInternal
 implements CharSequence, GetChars, Spannable
diff --git a/core/java/android/text/SpannableStringBuilder.java b/core/java/android/text/SpannableStringBuilder.java
index 0e61eff..f8d7283 100644
--- a/core/java/android/text/SpannableStringBuilder.java
+++ b/core/java/android/text/SpannableStringBuilder.java
@@ -35,6 +35,7 @@
 /**
  * This is the class for text whose content and markup can both be changed.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SpannableStringBuilder implements CharSequence, GetChars, Spannable, Editable,
         Appendable, GraphicsOperations {
     private final static String TAG = "SpannableStringBuilder";
diff --git a/core/java/android/text/SpannableStringInternal.java b/core/java/android/text/SpannableStringInternal.java
index f2ab1bb..90d83d5 100644
--- a/core/java/android/text/SpannableStringInternal.java
+++ b/core/java/android/text/SpannableStringInternal.java
@@ -27,6 +27,7 @@
 
 import java.lang.reflect.Array;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 /* package */ abstract class SpannableStringInternal
 {
     /* package */ SpannableStringInternal(CharSequence source,
diff --git a/core/java/android/text/Spanned.java b/core/java/android/text/Spanned.java
index a0d54c26c..6706ffd 100644
--- a/core/java/android/text/Spanned.java
+++ b/core/java/android/text/Spanned.java
@@ -22,6 +22,7 @@
  * see {@link Spannable} for mutable markup and {@link Editable} for
  * mutable text.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface Spanned
 extends CharSequence
 {
diff --git a/core/java/android/text/SpannedString.java b/core/java/android/text/SpannedString.java
index acee3c5..a3f1ee2 100644
--- a/core/java/android/text/SpannedString.java
+++ b/core/java/android/text/SpannedString.java
@@ -22,6 +22,7 @@
  * For mutable markup, see {@link SpannableString}; for mutable text,
  * see {@link SpannableStringBuilder}.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class SpannedString
 extends SpannableStringInternal
 implements CharSequence, GetChars, Spanned
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index a5d52957..8193cd2 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -55,6 +55,7 @@
  * float, float, android.graphics.Paint)
  * Canvas.drawText()} directly.</p>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class StaticLayout extends Layout {
     /*
      * The break iteration is done in native code. The protocol for using the native code is as
diff --git a/core/java/android/text/TextDirectionHeuristic.java b/core/java/android/text/TextDirectionHeuristic.java
index 8a4ba42..66cea85 100644
--- a/core/java/android/text/TextDirectionHeuristic.java
+++ b/core/java/android/text/TextDirectionHeuristic.java
@@ -19,6 +19,7 @@
 /**
  * Interface for objects that use a heuristic for guessing at the paragraph direction by examining text.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface TextDirectionHeuristic {
     /**
      * Guess if a chars array is in the RTL direction or not.
diff --git a/core/java/android/text/TextDirectionHeuristics.java b/core/java/android/text/TextDirectionHeuristics.java
index 85260f4..3af8fb7 100644
--- a/core/java/android/text/TextDirectionHeuristics.java
+++ b/core/java/android/text/TextDirectionHeuristics.java
@@ -32,6 +32,7 @@
  * class.
  *
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TextDirectionHeuristics {
 
     /**
diff --git a/core/java/android/text/TextLine.java b/core/java/android/text/TextLine.java
index 3015791..091eb60 100644
--- a/core/java/android/text/TextLine.java
+++ b/core/java/android/text/TextLine.java
@@ -53,6 +53,7 @@
  * @hide
  */
 @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TextLine {
     private static final boolean DEBUG = false;
 
diff --git a/core/java/android/text/TextPaint.java b/core/java/android/text/TextPaint.java
index 73825b1..ff063f2 100644
--- a/core/java/android/text/TextPaint.java
+++ b/core/java/android/text/TextPaint.java
@@ -25,6 +25,7 @@
  * TextPaint is an extension of Paint that leaves room for some extra
  * data used during text measuring and drawing.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TextPaint extends Paint {
 
     // Special value 0 means no background paint
diff --git a/core/java/android/text/TextShaper.java b/core/java/android/text/TextShaper.java
index 6da0b63..6d17401 100644
--- a/core/java/android/text/TextShaper.java
+++ b/core/java/android/text/TextShaper.java
@@ -169,6 +169,7 @@
  * @see TextShaper#shapeText(CharSequence, int, int, TextDirectionHeuristic, TextPaint,
  * GlyphsConsumer)
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TextShaper {
     private TextShaper() {}
 
diff --git a/core/java/android/text/TextUtils.java b/core/java/android/text/TextUtils.java
index 6dc82c4..042966b 100644
--- a/core/java/android/text/TextUtils.java
+++ b/core/java/android/text/TextUtils.java
@@ -34,6 +34,7 @@
 import android.icu.util.ULocale;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.ravenwood.annotation.RavenwoodKeepWholeClass;
 import android.sysprop.DisplayProperties;
 import android.text.style.AbsoluteSizeSpan;
 import android.text.style.AccessibilityClickableSpan;
@@ -85,8 +86,7 @@
 import java.util.Locale;
 import java.util.regex.Pattern;
 
-@android.ravenwood.annotation.RavenwoodKeepStaticInitializer
-@android.ravenwood.annotation.RavenwoodKeepPartialClass
+@RavenwoodKeepWholeClass
 public class TextUtils {
     private static final String TAG = "TextUtils";
 
@@ -147,7 +147,6 @@
 
     private TextUtils() { /* cannot be instantiated */ }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     public static void getChars(CharSequence s, int start, int end,
                                 char[] dest, int destoff) {
         Class<? extends CharSequence> c = s.getClass();
@@ -166,12 +165,10 @@
         }
     }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int indexOf(CharSequence s, char ch) {
         return indexOf(s, ch, 0);
     }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int indexOf(CharSequence s, char ch, int start) {
         Class<? extends CharSequence> c = s.getClass();
 
@@ -181,7 +178,6 @@
         return indexOf(s, ch, start, s.length());
     }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int indexOf(CharSequence s, char ch, int start, int end) {
         Class<? extends CharSequence> c = s.getClass();
 
@@ -219,12 +215,10 @@
         return -1;
     }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int lastIndexOf(CharSequence s, char ch) {
         return lastIndexOf(s, ch, s.length() - 1);
     }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int lastIndexOf(CharSequence s, char ch, int last) {
         Class<? extends CharSequence> c = s.getClass();
 
@@ -234,7 +228,6 @@
         return lastIndexOf(s, ch, 0, last);
     }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int lastIndexOf(CharSequence s, char ch,
                                   int start, int last) {
         if (last < 0)
@@ -280,17 +273,14 @@
         return -1;
     }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int indexOf(CharSequence s, CharSequence needle) {
         return indexOf(s, needle, 0, s.length());
     }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int indexOf(CharSequence s, CharSequence needle, int start) {
         return indexOf(s, needle, start, s.length());
     }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int indexOf(CharSequence s, CharSequence needle,
                               int start, int end) {
         int nlen = needle.length();
@@ -318,7 +308,6 @@
         return -1;
     }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     public static boolean regionMatches(CharSequence one, int toffset,
                                         CharSequence two, int ooffset,
                                         int len) {
@@ -351,7 +340,6 @@
      * in that it does not preserve any style runs in the source sequence,
      * allowing a more efficient implementation.
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static String substring(CharSequence source, int start, int end) {
         if (source instanceof String)
             return ((String) source).substring(start, end);
@@ -424,7 +412,6 @@
      *     calling object.toString(). If tokens is null, a NullPointerException will be thrown. If
      *     tokens is an empty array, an empty string will be returned.
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static String join(@NonNull CharSequence delimiter, @NonNull Object[] tokens) {
         final int length = tokens.length;
         if (length == 0) {
@@ -448,7 +435,6 @@
      *     calling object.toString(). If tokens is null, a NullPointerException will be thrown. If
      *     tokens is empty, an empty string will be returned.
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static String join(@NonNull CharSequence delimiter, @NonNull Iterable tokens) {
         final Iterator<?> it = tokens.iterator();
         if (!it.hasNext()) {
@@ -481,7 +467,6 @@
      *
      * @throws NullPointerException if expression or text is null
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static String[] split(String text, String expression) {
         if (text.length() == 0) {
             return EmptyArray.STRING;
@@ -507,7 +492,6 @@
      *
      * @throws NullPointerException if expression or text is null
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static String[] split(String text, Pattern pattern) {
         if (text.length() == 0) {
             return EmptyArray.STRING;
@@ -545,7 +529,6 @@
      * be returned for the empty string after that delimeter. That is, splitting <tt>"a,b,"</tt> on
      * comma will return <tt>"a", "b"</tt>, not <tt>"a", "b", ""</tt>.
      */
-    @android.ravenwood.annotation.RavenwoodKeepWholeClass
     public static class SimpleStringSplitter implements StringSplitter, Iterator<String> {
         private String mString;
         private char mDelimiter;
@@ -609,31 +592,26 @@
      * @param str the string to be examined
      * @return true if str is null or zero length
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static boolean isEmpty(@Nullable CharSequence str) {
         return str == null || str.length() == 0;
     }
 
     /** {@hide} */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static String nullIfEmpty(@Nullable String str) {
         return isEmpty(str) ? null : str;
     }
 
     /** {@hide} */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static String emptyIfNull(@Nullable String str) {
         return str == null ? "" : str;
     }
 
     /** {@hide} */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static String firstNotEmpty(@Nullable String a, @NonNull String b) {
         return !isEmpty(a) ? a : Preconditions.checkStringNotEmpty(b);
     }
 
     /** {@hide} */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int length(@Nullable String s) {
         return s != null ? s.length() : 0;
     }
@@ -642,7 +620,6 @@
      * @return interned string if it's null.
      * @hide
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static String safeIntern(String s) {
         return (s != null) ? s.intern() : null;
     }
@@ -652,7 +629,6 @@
      * spaces and ASCII control characters were trimmed from the start and end,
      * as by {@link String#trim}.
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int getTrimmedLength(CharSequence s) {
         int len = s.length();
 
@@ -677,7 +653,6 @@
      * @param b second CharSequence to check
      * @return true if a and b are equal
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static boolean equals(@Nullable CharSequence a, @Nullable CharSequence b) {
         if (a == b) return true;
         int length;
@@ -1713,7 +1688,6 @@
         return true;
     }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     /* package */ static char[] obtain(int len) {
         char[] buf;
 
@@ -1728,7 +1702,6 @@
         return buf;
     }
 
-    @android.ravenwood.annotation.RavenwoodKeep
     /* package */ static void recycle(char[] temp) {
         if (temp.length > 1000)
             return;
@@ -1743,7 +1716,6 @@
      * @param s the string to be encoded
      * @return the encoded string
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static String htmlEncode(String s) {
         StringBuilder sb = new StringBuilder();
         char c;
@@ -1830,7 +1802,6 @@
     /**
      * Returns whether the given CharSequence contains any printable characters.
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static boolean isGraphic(CharSequence str) {
         final int len = str.length();
         for (int cp, i=0; i<len; i+=Character.charCount(cp)) {
@@ -1857,7 +1828,6 @@
      * @deprecated Use {@link #isGraphic(CharSequence)} instead.
      */
     @Deprecated
-    @android.ravenwood.annotation.RavenwoodKeep
     public static boolean isGraphic(char c) {
         int gc = Character.getType(c);
         return     gc != Character.CONTROL
@@ -1872,7 +1842,6 @@
     /**
      * Returns whether the given CharSequence contains only digits.
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static boolean isDigitsOnly(CharSequence str) {
         final int len = str.length();
         for (int cp, i = 0; i < len; i += Character.charCount(cp)) {
@@ -1887,7 +1856,6 @@
     /**
      * @hide
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static boolean isPrintableAscii(final char c) {
         final int asciiFirst = 0x20;
         final int asciiLast = 0x7E;  // included
@@ -1898,7 +1866,6 @@
      * @hide
      */
     @UnsupportedAppUsage
-    @android.ravenwood.annotation.RavenwoodKeep
     public static boolean isPrintableAsciiOnly(final CharSequence str) {
         final int len = str.length();
         for (int i = 0; i < len; i++) {
@@ -1950,7 +1917,6 @@
      * {@link #CAP_MODE_CHARACTERS}, {@link #CAP_MODE_WORDS}, and
      * {@link #CAP_MODE_SENTENCES}.
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int getCapsMode(CharSequence cs, int off, int reqModes) {
         if (off < 0) {
             return 0;
@@ -2162,7 +2128,6 @@
      *
      * Be careful: this code will need to be updated when vertical scripts will be supported
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static int getLayoutDirectionFromLocale(Locale locale) {
         return ((locale != null && !locale.equals(Locale.ROOT)
                         && ULocale.forLocale(locale).isRightToLeft())
@@ -2197,7 +2162,6 @@
      *             match the supported grammar described above.
      * @hide
      */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static @NonNull String formatSimple(@NonNull String format, Object... args) {
         final StringBuilder sb = new StringBuilder(format);
         int j = 0;
@@ -2387,7 +2351,6 @@
     }
 
     /** @hide */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static boolean isNewline(int codePoint) {
         int type = Character.getType(codePoint);
         return type == Character.PARAGRAPH_SEPARATOR || type == Character.LINE_SEPARATOR
@@ -2395,19 +2358,16 @@
     }
 
     /** @hide */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static boolean isWhitespace(int codePoint) {
         return Character.isWhitespace(codePoint) || codePoint == NBSP_CODE_POINT;
     }
 
     /** @hide */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static boolean isWhitespaceExceptNewline(int codePoint) {
         return isWhitespace(codePoint) && !isNewline(codePoint);
     }
 
     /** @hide */
-    @android.ravenwood.annotation.RavenwoodKeep
     public static boolean isPunctuation(int codePoint) {
         int type = Character.getType(codePoint);
         return type == Character.CONNECTOR_PUNCTUATION
diff --git a/core/java/android/text/TextWatcher.java b/core/java/android/text/TextWatcher.java
index a0aef69..5963ca7 100644
--- a/core/java/android/text/TextWatcher.java
+++ b/core/java/android/text/TextWatcher.java
@@ -20,6 +20,7 @@
  * When an object of this type is attached to an Editable, its methods will
  * be called when the text is changed.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface TextWatcher extends NoCopySpan {
     /**
      * This method is called to notify you that, within <code>s</code>,
diff --git a/core/java/android/text/WordSegmentFinder.java b/core/java/android/text/WordSegmentFinder.java
index b0a70ea..b8702d7 100644
--- a/core/java/android/text/WordSegmentFinder.java
+++ b/core/java/android/text/WordSegmentFinder.java
@@ -33,6 +33,7 @@
  * @see <a href="https://unicode.org/reports/tr29/#Word_Boundaries">Unicode Text Segmentation - Word
  *     Boundaries</a>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class WordSegmentFinder extends SegmentFinder {
     private final CharSequence mText;
     private final WordIterator mWordIterator;
diff --git a/core/java/android/text/format/DateFormat.java b/core/java/android/text/format/DateFormat.java
index e6dad27..ef60d30 100644
--- a/core/java/android/text/format/DateFormat.java
+++ b/core/java/android/text/format/DateFormat.java
@@ -63,6 +63,7 @@
  * Note that the non-{@code format} methods in this class are implemented by
  * {@code SimpleDateFormat}.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class DateFormat {
     /**
      * @deprecated Use a literal {@code '} instead.
diff --git a/core/java/android/text/format/DateIntervalFormat.java b/core/java/android/text/format/DateIntervalFormat.java
index 8dea322..5ec9561 100644
--- a/core/java/android/text/format/DateIntervalFormat.java
+++ b/core/java/android/text/format/DateIntervalFormat.java
@@ -37,6 +37,7 @@
  * @hide
  */
 @VisibleForTesting(visibility = PACKAGE)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class DateIntervalFormat {
 
     private static final LruCache<String, android.icu.text.DateIntervalFormat> CACHED_FORMATTERS =
diff --git a/core/java/android/text/format/DateTimeFormat.java b/core/java/android/text/format/DateTimeFormat.java
index 064d717..c8dd61d 100644
--- a/core/java/android/text/format/DateTimeFormat.java
+++ b/core/java/android/text/format/DateTimeFormat.java
@@ -29,6 +29,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 class DateTimeFormat {
     private static final FormatterCache CACHED_FORMATTERS = new FormatterCache();
 
diff --git a/core/java/android/text/format/DateUtils.java b/core/java/android/text/format/DateUtils.java
index 518a549..12ad764 100644
--- a/core/java/android/text/format/DateUtils.java
+++ b/core/java/android/text/format/DateUtils.java
@@ -44,6 +44,7 @@
  * This class contains various date-related utilities for creating text for things like
  * elapsed time and date ranges, strings for days of the week and months, and AM/PM text etc.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class DateUtils
 {
     private static final Object sLock = new Object();
diff --git a/core/java/android/text/format/DateUtilsBridge.java b/core/java/android/text/format/DateUtilsBridge.java
index 92ec9cf..752a8c0 100644
--- a/core/java/android/text/format/DateUtilsBridge.java
+++ b/core/java/android/text/format/DateUtilsBridge.java
@@ -46,6 +46,7 @@
  * @hide
  */
 @VisibleForTesting(visibility = PACKAGE)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class DateUtilsBridge {
 
     /**
diff --git a/core/java/android/text/format/Formatter.java b/core/java/android/text/format/Formatter.java
index 7653bdb..e7783dc 100644
--- a/core/java/android/text/format/Formatter.java
+++ b/core/java/android/text/format/Formatter.java
@@ -41,6 +41,7 @@
  * Utility class to aid in formatting common values that are not covered
  * by the {@link java.util.Formatter} class in {@link java.util}
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class Formatter {
 
     /** {@hide} */
diff --git a/core/java/android/text/format/RelativeDateTimeFormatter.java b/core/java/android/text/format/RelativeDateTimeFormatter.java
index 9096469..6b940f8 100644
--- a/core/java/android/text/format/RelativeDateTimeFormatter.java
+++ b/core/java/android/text/format/RelativeDateTimeFormatter.java
@@ -42,6 +42,7 @@
  * @hide
  */
 @VisibleForTesting(visibility = PACKAGE)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class RelativeDateTimeFormatter {
 
     public static final long SECOND_IN_MILLIS = 1000;
diff --git a/core/java/android/text/format/Time.java b/core/java/android/text/format/Time.java
index bac7c6c..1beb573 100644
--- a/core/java/android/text/format/Time.java
+++ b/core/java/android/text/format/Time.java
@@ -53,6 +53,7 @@
  * @deprecated Use {@link java.util.GregorianCalendar} instead.
  */
 @Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Time {
     private static final String Y_M_D_T_H_M_S_000 = "%Y-%m-%dT%H:%M:%S.000";
     private static final String Y_M_D_T_H_M_S_000_Z = "%Y-%m-%dT%H:%M:%S.000Z";
diff --git a/core/java/android/text/format/TimeFormatter.java b/core/java/android/text/format/TimeFormatter.java
index e42ad63..dd703d8 100644
--- a/core/java/android/text/format/TimeFormatter.java
+++ b/core/java/android/text/format/TimeFormatter.java
@@ -40,6 +40,7 @@
  *
  * <p>This class is not thread safe.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 class TimeFormatter {
     // An arbitrary value outside the range representable by a char.
     private static final int FORCE_LOWER_CASE = -1;
diff --git a/core/java/android/text/format/TimeMigrationUtils.java b/core/java/android/text/format/TimeMigrationUtils.java
index 17bac8d..b2f5024 100644
--- a/core/java/android/text/format/TimeMigrationUtils.java
+++ b/core/java/android/text/format/TimeMigrationUtils.java
@@ -22,6 +22,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TimeMigrationUtils {
 
     private TimeMigrationUtils() {}
diff --git a/core/java/android/text/method/AllCapsTransformationMethod.java b/core/java/android/text/method/AllCapsTransformationMethod.java
index 305b056..70dcc52 100644
--- a/core/java/android/text/method/AllCapsTransformationMethod.java
+++ b/core/java/android/text/method/AllCapsTransformationMethod.java
@@ -33,6 +33,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class AllCapsTransformationMethod implements TransformationMethod2 {
     private static final String TAG = "AllCapsTransformationMethod";
 
diff --git a/core/java/android/text/method/ArrowKeyMovementMethod.java b/core/java/android/text/method/ArrowKeyMovementMethod.java
index 37474e5..6099220 100644
--- a/core/java/android/text/method/ArrowKeyMovementMethod.java
+++ b/core/java/android/text/method/ArrowKeyMovementMethod.java
@@ -30,6 +30,7 @@
  * A movement method that provides cursor movement and selection.
  * Supports displaying the context menu on DPad Center.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class ArrowKeyMovementMethod extends BaseMovementMethod implements MovementMethod {
     private static boolean isSelecting(Spannable buffer) {
         return ((MetaKeyKeyListener.getMetaState(buffer, MetaKeyKeyListener.META_SHIFT_ON) == 1) ||
diff --git a/core/java/android/text/method/BaseKeyListener.java b/core/java/android/text/method/BaseKeyListener.java
index e427908..5ebfd99 100644
--- a/core/java/android/text/method/BaseKeyListener.java
+++ b/core/java/android/text/method/BaseKeyListener.java
@@ -47,6 +47,7 @@
  * with hardware keyboards.  Software input methods have no obligation to trigger
  * the methods in this class.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class BaseKeyListener extends MetaKeyKeyListener
         implements KeyListener {
     /* package */ static final Object OLD_SEL_START = new NoCopySpan.Concrete();
diff --git a/core/java/android/text/method/BaseMovementMethod.java b/core/java/android/text/method/BaseMovementMethod.java
index 7a4b3a0..0c2e52e 100644
--- a/core/java/android/text/method/BaseMovementMethod.java
+++ b/core/java/android/text/method/BaseMovementMethod.java
@@ -27,6 +27,7 @@
 /**
  * Base classes for movement methods.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class BaseMovementMethod implements MovementMethod {
     @Override
     public boolean canSelectArbitrarily() {
diff --git a/core/java/android/text/method/CharacterPickerDialog.java b/core/java/android/text/method/CharacterPickerDialog.java
index 7d838e0..f084d03 100644
--- a/core/java/android/text/method/CharacterPickerDialog.java
+++ b/core/java/android/text/method/CharacterPickerDialog.java
@@ -38,6 +38,7 @@
 /**
  * Dialog for choosing accented characters related to a base character.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class CharacterPickerDialog extends Dialog
         implements OnItemClickListener, OnClickListener {
     private View mView;
diff --git a/core/java/android/text/method/DateKeyListener.java b/core/java/android/text/method/DateKeyListener.java
index 0accbf6..acf1822 100644
--- a/core/java/android/text/method/DateKeyListener.java
+++ b/core/java/android/text/method/DateKeyListener.java
@@ -35,6 +35,7 @@
  * with hardware keyboards.  Software input methods have no obligation to trigger
  * the methods in this class.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class DateKeyListener extends NumberKeyListener
 {
     public int getInputType() {
diff --git a/core/java/android/text/method/DateTimeKeyListener.java b/core/java/android/text/method/DateTimeKeyListener.java
index 1593db5..a46ae45 100644
--- a/core/java/android/text/method/DateTimeKeyListener.java
+++ b/core/java/android/text/method/DateTimeKeyListener.java
@@ -35,6 +35,7 @@
  * with hardware keyboards.  Software input methods have no obligation to trigger
  * the methods in this class.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class DateTimeKeyListener extends NumberKeyListener
 {
     public int getInputType() {
diff --git a/core/java/android/text/method/DialerKeyListener.java b/core/java/android/text/method/DialerKeyListener.java
index 17abed6..9eea51a 100644
--- a/core/java/android/text/method/DialerKeyListener.java
+++ b/core/java/android/text/method/DialerKeyListener.java
@@ -28,6 +28,7 @@
  * with hardware keyboards.  Software input methods have no obligation to trigger
  * the methods in this class.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class DialerKeyListener extends NumberKeyListener
 {
     @Override
diff --git a/core/java/android/text/method/DigitsKeyListener.java b/core/java/android/text/method/DigitsKeyListener.java
index d9f2dcf..c97d4af 100644
--- a/core/java/android/text/method/DigitsKeyListener.java
+++ b/core/java/android/text/method/DigitsKeyListener.java
@@ -40,6 +40,7 @@
  * with hardware keyboards.  Software input methods have no obligation to trigger
  * the methods in this class.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class DigitsKeyListener extends NumberKeyListener
 {
     private char[] mAccepted;
diff --git a/core/java/android/text/method/HideReturnsTransformationMethod.java b/core/java/android/text/method/HideReturnsTransformationMethod.java
index 40ce871..8b93b35 100644
--- a/core/java/android/text/method/HideReturnsTransformationMethod.java
+++ b/core/java/android/text/method/HideReturnsTransformationMethod.java
@@ -24,6 +24,7 @@
  * to be hidden by displaying them as zero-width non-breaking space
  * characters (\uFEFF).
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class HideReturnsTransformationMethod
 extends ReplacementTransformationMethod {
     private static char[] ORIGINAL = new char[] { '\r' };
diff --git a/core/java/android/text/method/InsertModeTransformationMethod.java b/core/java/android/text/method/InsertModeTransformationMethod.java
index 6c6576f..ace2d25 100644
--- a/core/java/android/text/method/InsertModeTransformationMethod.java
+++ b/core/java/android/text/method/InsertModeTransformationMethod.java
@@ -58,6 +58,7 @@
  *   the new transformed text: "hello abc\n\n world", and the highlight range will be [5, 11).
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class InsertModeTransformationMethod implements TransformationMethod, TextWatcher {
     /** The start offset of the highlight range in the original text, inclusive. */
     private int mStart;
diff --git a/core/java/android/text/method/KeyListener.java b/core/java/android/text/method/KeyListener.java
index ce7054c..447c4d9 100644
--- a/core/java/android/text/method/KeyListener.java
+++ b/core/java/android/text/method/KeyListener.java
@@ -34,6 +34,7 @@
  * targetting Jelly Bean or later, and will only deliver it for some
  * key presses to applications targetting Ice Cream Sandwich or earlier.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface KeyListener {
     /**
      * Return the type of text that this key listener is manipulating,
diff --git a/core/java/android/text/method/LinkMovementMethod.java b/core/java/android/text/method/LinkMovementMethod.java
index 9f4a0ae..484bc1a 100644
--- a/core/java/android/text/method/LinkMovementMethod.java
+++ b/core/java/android/text/method/LinkMovementMethod.java
@@ -33,6 +33,7 @@
  * A movement method that traverses links in the text buffer and scrolls if necessary.
  * Supports clicking on links with DPad Center or Enter.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class LinkMovementMethod extends ScrollingMovementMethod {
     private static final int CLICK = 1;
     private static final int UP = 2;
diff --git a/core/java/android/text/method/MetaKeyKeyListener.java b/core/java/android/text/method/MetaKeyKeyListener.java
index d1d7c96..7c9c2f1 100644
--- a/core/java/android/text/method/MetaKeyKeyListener.java
+++ b/core/java/android/text/method/MetaKeyKeyListener.java
@@ -71,6 +71,7 @@
  * }
  * </code>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class MetaKeyKeyListener {
     /**
      * Flag that indicates that the SHIFT key is on.
diff --git a/core/java/android/text/method/MovementMethod.java b/core/java/android/text/method/MovementMethod.java
index f6fe575..5ea439d 100644
--- a/core/java/android/text/method/MovementMethod.java
+++ b/core/java/android/text/method/MovementMethod.java
@@ -32,6 +32,7 @@
  * directly by applications.
  * </p>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface MovementMethod {
     public void initialize(TextView widget, Spannable text);
     public boolean onKeyDown(TextView widget, Spannable text, int keyCode, KeyEvent event);
diff --git a/core/java/android/text/method/MultiTapKeyListener.java b/core/java/android/text/method/MultiTapKeyListener.java
index 5770482..022853ab 100644
--- a/core/java/android/text/method/MultiTapKeyListener.java
+++ b/core/java/android/text/method/MultiTapKeyListener.java
@@ -36,6 +36,7 @@
  * with hardware keyboards.  Software input methods have no obligation to trigger
  * the methods in this class.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class MultiTapKeyListener extends BaseKeyListener
         implements SpanWatcher {
     private static MultiTapKeyListener[] sInstance =
diff --git a/core/java/android/text/method/NumberKeyListener.java b/core/java/android/text/method/NumberKeyListener.java
index 2b038dd..e32ccd4 100644
--- a/core/java/android/text/method/NumberKeyListener.java
+++ b/core/java/android/text/method/NumberKeyListener.java
@@ -39,6 +39,7 @@
  * with hardware keyboards.  Software input methods have no obligation to trigger
  * the methods in this class.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class NumberKeyListener extends BaseKeyListener
     implements InputFilter
 {
diff --git a/core/java/android/text/method/OffsetMapping.java b/core/java/android/text/method/OffsetMapping.java
index fcf3de6..99613d3 100644
--- a/core/java/android/text/method/OffsetMapping.java
+++ b/core/java/android/text/method/OffsetMapping.java
@@ -27,6 +27,7 @@
  * {@link TransformationMethod} that alters the text length.
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface OffsetMapping {
     /**
      * The mapping strategy for a character offset.
diff --git a/core/java/android/text/method/PasswordTransformationMethod.java b/core/java/android/text/method/PasswordTransformationMethod.java
index 53553be..4a61d9a 100644
--- a/core/java/android/text/method/PasswordTransformationMethod.java
+++ b/core/java/android/text/method/PasswordTransformationMethod.java
@@ -33,6 +33,7 @@
 
 import java.lang.ref.WeakReference;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class PasswordTransformationMethod
 implements TransformationMethod, TextWatcher
 {
diff --git a/core/java/android/text/method/QwertyKeyListener.java b/core/java/android/text/method/QwertyKeyListener.java
index c43864d..27c58ea 100644
--- a/core/java/android/text/method/QwertyKeyListener.java
+++ b/core/java/android/text/method/QwertyKeyListener.java
@@ -37,6 +37,7 @@
  * with hardware keyboards.  Software input methods have no obligation to trigger
  * the methods in this class.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class QwertyKeyListener extends BaseKeyListener {
     private static QwertyKeyListener[] sInstance =
         new QwertyKeyListener[Capitalize.values().length * 2];
diff --git a/core/java/android/text/method/ReplacementTransformationMethod.java b/core/java/android/text/method/ReplacementTransformationMethod.java
index d6f879a..05899d7 100644
--- a/core/java/android/text/method/ReplacementTransformationMethod.java
+++ b/core/java/android/text/method/ReplacementTransformationMethod.java
@@ -30,6 +30,7 @@
  * array to be replaced by the corresponding characters in the
  * {@link #getReplacement} array.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class ReplacementTransformationMethod
 implements TransformationMethod
 {
diff --git a/core/java/android/text/method/ScrollingMovementMethod.java b/core/java/android/text/method/ScrollingMovementMethod.java
index 4f422cb..2e0eda9 100644
--- a/core/java/android/text/method/ScrollingMovementMethod.java
+++ b/core/java/android/text/method/ScrollingMovementMethod.java
@@ -25,6 +25,7 @@
 /**
  * A movement method that interprets movement keys by scrolling the text buffer.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class ScrollingMovementMethod extends BaseMovementMethod implements MovementMethod {
     @Override
     protected boolean left(TextView widget, Spannable buffer) {
diff --git a/core/java/android/text/method/SingleLineTransformationMethod.java b/core/java/android/text/method/SingleLineTransformationMethod.java
index 818526a..d6eff86 100644
--- a/core/java/android/text/method/SingleLineTransformationMethod.java
+++ b/core/java/android/text/method/SingleLineTransformationMethod.java
@@ -21,6 +21,7 @@
  * displayed as spaces instead of causing line breaks, and causes
  * carriage return characters (\r) to have no appearance.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SingleLineTransformationMethod
 extends ReplacementTransformationMethod {
     private static char[] ORIGINAL = new char[] { '\n', '\r' };
diff --git a/core/java/android/text/method/TextKeyListener.java b/core/java/android/text/method/TextKeyListener.java
index 2eb917b..1b0ae61 100644
--- a/core/java/android/text/method/TextKeyListener.java
+++ b/core/java/android/text/method/TextKeyListener.java
@@ -43,6 +43,7 @@
  * with hardware keyboards.  Software input methods have no obligation to trigger
  * the methods in this class.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TextKeyListener extends BaseKeyListener implements SpanWatcher {
     private static TextKeyListener[] sInstance =
         new TextKeyListener[Capitalize.values().length * 2];
diff --git a/core/java/android/text/method/TimeKeyListener.java b/core/java/android/text/method/TimeKeyListener.java
index f11f400..337611c 100644
--- a/core/java/android/text/method/TimeKeyListener.java
+++ b/core/java/android/text/method/TimeKeyListener.java
@@ -35,6 +35,7 @@
  * with hardware keyboards.  Software input methods have no obligation to trigger
  * the methods in this class.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TimeKeyListener extends NumberKeyListener
 {
     public int getInputType() {
diff --git a/core/java/android/text/method/Touch.java b/core/java/android/text/method/Touch.java
index 44811cb..85aadba 100644
--- a/core/java/android/text/method/Touch.java
+++ b/core/java/android/text/method/Touch.java
@@ -25,6 +25,7 @@
 import android.view.ViewConfiguration;
 import android.widget.TextView;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Touch {
     private Touch() { }
 
diff --git a/core/java/android/text/method/TransformationMethod.java b/core/java/android/text/method/TransformationMethod.java
index 8f3b334..5246baa 100644
--- a/core/java/android/text/method/TransformationMethod.java
+++ b/core/java/android/text/method/TransformationMethod.java
@@ -24,6 +24,7 @@
  * characters of passwords with dots, or keeping the newline characters
  * from causing line breaks in single-line text fields.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface TransformationMethod
 {
     /**
diff --git a/core/java/android/text/method/TransformationMethod2.java b/core/java/android/text/method/TransformationMethod2.java
index 8d5ec24..6e0feb419 100644
--- a/core/java/android/text/method/TransformationMethod2.java
+++ b/core/java/android/text/method/TransformationMethod2.java
@@ -23,6 +23,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface TransformationMethod2 extends TransformationMethod {
     /**
      * Relax the contract of TransformationMethod to allow length changes,
diff --git a/core/java/android/text/method/TranslationTransformationMethod.java b/core/java/android/text/method/TranslationTransformationMethod.java
index 43d186e..8f43d3d 100644
--- a/core/java/android/text/method/TranslationTransformationMethod.java
+++ b/core/java/android/text/method/TranslationTransformationMethod.java
@@ -33,6 +33,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TranslationTransformationMethod implements TransformationMethod2 {
 
     private static final String TAG = "TranslationTransformationMethod";
diff --git a/core/java/android/text/method/WordIterator.java b/core/java/android/text/method/WordIterator.java
index 2956f84..d57fa9b 100644
--- a/core/java/android/text/method/WordIterator.java
+++ b/core/java/android/text/method/WordIterator.java
@@ -37,6 +37,7 @@
  * Also provides methods to determine word boundaries.
  * {@hide}
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class WordIterator implements Selection.PositionIterator {
     // Size of the window for the word iterator, should be greater than the longest word's length
     private static final int WINDOW_WIDTH = 50;
diff --git a/core/java/android/text/style/AbsoluteSizeSpan.java b/core/java/android/text/style/AbsoluteSizeSpan.java
index 6d4f05a..1bc5d71 100644
--- a/core/java/android/text/style/AbsoluteSizeSpan.java
+++ b/core/java/android/text/style/AbsoluteSizeSpan.java
@@ -32,6 +32,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/absolutesizespan.png" />
  * <figcaption>Text with text size updated.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class AbsoluteSizeSpan extends MetricAffectingSpan implements ParcelableSpan {
 
     private final int mSize;
diff --git a/core/java/android/text/style/AccessibilityClickableSpan.java b/core/java/android/text/style/AccessibilityClickableSpan.java
index ee8d156..5741f2a 100644
--- a/core/java/android/text/style/AccessibilityClickableSpan.java
+++ b/core/java/android/text/style/AccessibilityClickableSpan.java
@@ -43,6 +43,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class AccessibilityClickableSpan extends ClickableSpan
         implements ParcelableSpan {
     // The id of the span this one replaces
diff --git a/core/java/android/text/style/AccessibilityReplacementSpan.java b/core/java/android/text/style/AccessibilityReplacementSpan.java
index e4fc147..af3a324 100644
--- a/core/java/android/text/style/AccessibilityReplacementSpan.java
+++ b/core/java/android/text/style/AccessibilityReplacementSpan.java
@@ -31,6 +31,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class AccessibilityReplacementSpan extends ReplacementSpan
         implements ParcelableSpan {
 
diff --git a/core/java/android/text/style/AccessibilityURLSpan.java b/core/java/android/text/style/AccessibilityURLSpan.java
index e280bdf..1fb76e7 100644
--- a/core/java/android/text/style/AccessibilityURLSpan.java
+++ b/core/java/android/text/style/AccessibilityURLSpan.java
@@ -27,6 +27,7 @@
  * @hide
  */
 @SuppressWarnings("ParcelableCreator")
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class AccessibilityURLSpan extends URLSpan implements Parcelable {
     final AccessibilityClickableSpan mAccessibilityClickableSpan;
 
diff --git a/core/java/android/text/style/AlignmentSpan.java b/core/java/android/text/style/AlignmentSpan.java
index 31db78a..53cbd63 100644
--- a/core/java/android/text/style/AlignmentSpan.java
+++ b/core/java/android/text/style/AlignmentSpan.java
@@ -25,6 +25,7 @@
 /**
  * Span that allows defining the alignment of text at the paragraph level.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface AlignmentSpan extends ParagraphStyle {
 
     /**
diff --git a/core/java/android/text/style/BackgroundColorSpan.java b/core/java/android/text/style/BackgroundColorSpan.java
index 13647d9..bb04d0ff 100644
--- a/core/java/android/text/style/BackgroundColorSpan.java
+++ b/core/java/android/text/style/BackgroundColorSpan.java
@@ -34,6 +34,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/backgroundcolorspan.png" />
  * <figcaption>Set a background color for the text.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class BackgroundColorSpan extends CharacterStyle
         implements UpdateAppearance, ParcelableSpan {
 
diff --git a/core/java/android/text/style/BulletSpan.java b/core/java/android/text/style/BulletSpan.java
index f70e6c5..24ae6e2 100644
--- a/core/java/android/text/style/BulletSpan.java
+++ b/core/java/android/text/style/BulletSpan.java
@@ -63,6 +63,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/custombulletspan.png" />
  * <figcaption>Customized BulletSpan.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class BulletSpan implements LeadingMarginSpan, ParcelableSpan {
     // Bullet is slightly bigger to avoid aliasing artifacts on mdpi devices.
     private static final int STANDARD_BULLET_RADIUS = 4;
diff --git a/core/java/android/text/style/CharacterStyle.java b/core/java/android/text/style/CharacterStyle.java
index 5b95f1a..2ea05e6 100644
--- a/core/java/android/text/style/CharacterStyle.java
+++ b/core/java/android/text/style/CharacterStyle.java
@@ -23,6 +23,7 @@
  * class.  Most extend its subclass {@link MetricAffectingSpan}, but simple
  * ones may just implement {@link UpdateAppearance}.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class CharacterStyle {
     public abstract void updateDrawState(TextPaint tp);
 
diff --git a/core/java/android/text/style/ClickableSpan.java b/core/java/android/text/style/ClickableSpan.java
index 238da55..9e35d75 100644
--- a/core/java/android/text/style/ClickableSpan.java
+++ b/core/java/android/text/style/ClickableSpan.java
@@ -36,6 +36,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/clickablespan.png" />
  * <figcaption>Text with <code>ClickableSpan</code>.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class ClickableSpan extends CharacterStyle implements UpdateAppearance {
     private static int sIdCounter = 0;
 
diff --git a/core/java/android/text/style/ForegroundColorSpan.java b/core/java/android/text/style/ForegroundColorSpan.java
index 5c97426..337c49f 100644
--- a/core/java/android/text/style/ForegroundColorSpan.java
+++ b/core/java/android/text/style/ForegroundColorSpan.java
@@ -34,6 +34,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/foregroundcolorspan.png" />
  * <figcaption>Set a text color.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class ForegroundColorSpan extends CharacterStyle
         implements UpdateAppearance, ParcelableSpan {
 
diff --git a/core/java/android/text/style/IconMarginSpan.java b/core/java/android/text/style/IconMarginSpan.java
index a6c5139..cc946e9 100644
--- a/core/java/android/text/style/IconMarginSpan.java
+++ b/core/java/android/text/style/IconMarginSpan.java
@@ -44,6 +44,7 @@
  * @see DrawableMarginSpan for working with a {@link android.graphics.drawable.Drawable} instead of
  * a {@link Bitmap}.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class IconMarginSpan implements LeadingMarginSpan, LineHeightSpan {
 
     @NonNull
diff --git a/core/java/android/text/style/LeadingMarginSpan.java b/core/java/android/text/style/LeadingMarginSpan.java
index 5bd2d60..60c4578 100644
--- a/core/java/android/text/style/LeadingMarginSpan.java
+++ b/core/java/android/text/style/LeadingMarginSpan.java
@@ -32,6 +32,7 @@
  * LeadingMarginSpans should be attached from the first character to the last
  * character of a single paragraph.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface LeadingMarginSpan
 extends ParagraphStyle
 {
diff --git a/core/java/android/text/style/LineBackgroundSpan.java b/core/java/android/text/style/LineBackgroundSpan.java
index 7cb9147..c2d38ce 100644
--- a/core/java/android/text/style/LineBackgroundSpan.java
+++ b/core/java/android/text/style/LineBackgroundSpan.java
@@ -28,6 +28,7 @@
 /**
  * Used to change the background of lines where the span is attached to.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface LineBackgroundSpan extends ParagraphStyle
 {
     /**
diff --git a/core/java/android/text/style/LineBreakConfigSpan.java b/core/java/android/text/style/LineBreakConfigSpan.java
index eeb6383..1af1eed 100644
--- a/core/java/android/text/style/LineBreakConfigSpan.java
+++ b/core/java/android/text/style/LineBreakConfigSpan.java
@@ -31,6 +31,7 @@
  * LineBreakSpan for changing line break style of the specific region of the text.
  */
 @FlaggedApi(FLAG_NO_BREAK_NO_HYPHENATION_SPAN)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class LineBreakConfigSpan implements ParcelableSpan {
     private final LineBreakConfig mLineBreakConfig;
 
diff --git a/core/java/android/text/style/LineHeightSpan.java b/core/java/android/text/style/LineHeightSpan.java
index ae565d1..71e8932 100644
--- a/core/java/android/text/style/LineHeightSpan.java
+++ b/core/java/android/text/style/LineHeightSpan.java
@@ -30,6 +30,7 @@
 /**
  * The classes that affect the line height of paragraph should implement this interface.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface LineHeightSpan extends ParagraphStyle, WrapTogetherSpan {
     /**
      * Classes that implement this should define how the height is being calculated.
diff --git a/core/java/android/text/style/LocaleSpan.java b/core/java/android/text/style/LocaleSpan.java
index 489ceea..be5525a 100644
--- a/core/java/android/text/style/LocaleSpan.java
+++ b/core/java/android/text/style/LocaleSpan.java
@@ -32,6 +32,7 @@
 /**
  * Changes the {@link Locale} of the text to which the span is attached.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class LocaleSpan extends MetricAffectingSpan implements ParcelableSpan {
     @NonNull
     private final LocaleList mLocales;
diff --git a/core/java/android/text/style/MaskFilterSpan.java b/core/java/android/text/style/MaskFilterSpan.java
index 587d1b4..44db012 100644
--- a/core/java/android/text/style/MaskFilterSpan.java
+++ b/core/java/android/text/style/MaskFilterSpan.java
@@ -30,6 +30,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/maskfilterspan.png" />
  * <figcaption>Text blurred with the <code>MaskFilterSpan</code>.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class MaskFilterSpan extends CharacterStyle implements UpdateAppearance {
 
     private MaskFilter mFilter;
diff --git a/core/java/android/text/style/MetricAffectingSpan.java b/core/java/android/text/style/MetricAffectingSpan.java
index 61b7947..f30fdc1 100644
--- a/core/java/android/text/style/MetricAffectingSpan.java
+++ b/core/java/android/text/style/MetricAffectingSpan.java
@@ -23,6 +23,7 @@
  * The classes that affect character-level text formatting in a way that
  * changes the width or height of characters extend this class.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class MetricAffectingSpan
         extends CharacterStyle
         implements UpdateLayout {
diff --git a/core/java/android/text/style/NoWritingToolsSpan.java b/core/java/android/text/style/NoWritingToolsSpan.java
index 90f85aa..c7dfcfa 100644
--- a/core/java/android/text/style/NoWritingToolsSpan.java
+++ b/core/java/android/text/style/NoWritingToolsSpan.java
@@ -32,6 +32,7 @@
  * tools should only rewrite the user input text, and not modify the quoted text.
  */
 @FlaggedApi(FLAG_WRITING_TOOLS)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class NoWritingToolsSpan implements ParcelableSpan {
 
     /**
diff --git a/core/java/android/text/style/ParagraphStyle.java b/core/java/android/text/style/ParagraphStyle.java
index 423156e..27c1e26 100644
--- a/core/java/android/text/style/ParagraphStyle.java
+++ b/core/java/android/text/style/ParagraphStyle.java
@@ -20,6 +20,7 @@
  * The classes that affect paragraph-level text formatting implement
  * this interface.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface ParagraphStyle
 {
 
diff --git a/core/java/android/text/style/QuoteSpan.java b/core/java/android/text/style/QuoteSpan.java
index 393ede6..99c9574 100644
--- a/core/java/android/text/style/QuoteSpan.java
+++ b/core/java/android/text/style/QuoteSpan.java
@@ -57,6 +57,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/customquotespan.png" />
  * <figcaption>Customized <code>QuoteSpan</code>.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class QuoteSpan implements LeadingMarginSpan, ParcelableSpan {
     /**
      * Default stripe width in pixels.
diff --git a/core/java/android/text/style/RasterizerSpan.java b/core/java/android/text/style/RasterizerSpan.java
index f0be50a..cf8599c 100644
--- a/core/java/android/text/style/RasterizerSpan.java
+++ b/core/java/android/text/style/RasterizerSpan.java
@@ -22,6 +22,7 @@
 /**
  *  @removed Rasterizer is not supported for hw-accerlerated and PDF rendering
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class RasterizerSpan extends CharacterStyle implements UpdateAppearance {
 
     private Rasterizer mRasterizer;
diff --git a/core/java/android/text/style/RelativeSizeSpan.java b/core/java/android/text/style/RelativeSizeSpan.java
index 5c91b20..38d5d38 100644
--- a/core/java/android/text/style/RelativeSizeSpan.java
+++ b/core/java/android/text/style/RelativeSizeSpan.java
@@ -34,6 +34,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/relativesizespan.png" />
  * <figcaption>Text increased by 50% with <code>RelativeSizeSpan</code>.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class RelativeSizeSpan extends MetricAffectingSpan implements ParcelableSpan {
 
     private final float mProportion;
diff --git a/core/java/android/text/style/ReplacementSpan.java b/core/java/android/text/style/ReplacementSpan.java
index 9430fd3..a6fe1fe 100644
--- a/core/java/android/text/style/ReplacementSpan.java
+++ b/core/java/android/text/style/ReplacementSpan.java
@@ -23,6 +23,7 @@
 import android.graphics.Paint;
 import android.text.TextPaint;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class ReplacementSpan extends MetricAffectingSpan {
 
     private CharSequence mContentDescription = null;
diff --git a/core/java/android/text/style/ScaleXSpan.java b/core/java/android/text/style/ScaleXSpan.java
index d022b07..009973e 100644
--- a/core/java/android/text/style/ScaleXSpan.java
+++ b/core/java/android/text/style/ScaleXSpan.java
@@ -36,6 +36,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/scalexspan.png" />
  * <figcaption>Text scaled by 100% with <code>ScaleXSpan</code>.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class ScaleXSpan extends MetricAffectingSpan implements ParcelableSpan {
 
     private final float mProportion;
diff --git a/core/java/android/text/style/SpanUtils.java b/core/java/android/text/style/SpanUtils.java
index 6b4bd1a..21a96cd 100644
--- a/core/java/android/text/style/SpanUtils.java
+++ b/core/java/android/text/style/SpanUtils.java
@@ -30,6 +30,7 @@
 /**
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SpanUtils {
     private SpanUtils() {}  // Do not instantiate
 
diff --git a/core/java/android/text/style/SpellCheckSpan.java b/core/java/android/text/style/SpellCheckSpan.java
index e8ec3c6..39cd279 100644
--- a/core/java/android/text/style/SpellCheckSpan.java
+++ b/core/java/android/text/style/SpellCheckSpan.java
@@ -28,6 +28,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SpellCheckSpan implements ParcelableSpan {
 
     private boolean mSpellCheckInProgress;
diff --git a/core/java/android/text/style/StrikethroughSpan.java b/core/java/android/text/style/StrikethroughSpan.java
index 65ee347..3654870 100644
--- a/core/java/android/text/style/StrikethroughSpan.java
+++ b/core/java/android/text/style/StrikethroughSpan.java
@@ -32,6 +32,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/strikethroughspan.png" />
  * <figcaption>Strikethrough text.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class StrikethroughSpan extends CharacterStyle
         implements UpdateAppearance, ParcelableSpan {
 
diff --git a/core/java/android/text/style/StyleSpan.java b/core/java/android/text/style/StyleSpan.java
index 378682b..c01e134 100644
--- a/core/java/android/text/style/StyleSpan.java
+++ b/core/java/android/text/style/StyleSpan.java
@@ -44,6 +44,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/stylespan.png" />
  * <figcaption>Text styled bold and italic with the <code>StyleSpan</code>.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class StyleSpan extends MetricAffectingSpan implements ParcelableSpan {
 
     private final int mStyle;
diff --git a/core/java/android/text/style/SubscriptSpan.java b/core/java/android/text/style/SubscriptSpan.java
index 729a9ad..54c765d 100644
--- a/core/java/android/text/style/SubscriptSpan.java
+++ b/core/java/android/text/style/SubscriptSpan.java
@@ -37,6 +37,7 @@
  * Note: Since the span affects the position of the text, if the text is on the last line of a
  * TextView, it may appear cut.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SubscriptSpan extends MetricAffectingSpan implements ParcelableSpan {
 
     /**
diff --git a/core/java/android/text/style/SuggestionRangeSpan.java b/core/java/android/text/style/SuggestionRangeSpan.java
index 1eee99a..640fae4 100644
--- a/core/java/android/text/style/SuggestionRangeSpan.java
+++ b/core/java/android/text/style/SuggestionRangeSpan.java
@@ -27,6 +27,7 @@
  * A SuggestionRangeSpan is used to show which part of an EditText is affected by a suggestion
  * popup window.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class SuggestionRangeSpan extends CharacterStyle implements ParcelableSpan {
     private int mBackgroundColor;
 
diff --git a/core/java/android/text/style/SuggestionSpan.java b/core/java/android/text/style/SuggestionSpan.java
index 0cf96f6..d819062 100644
--- a/core/java/android/text/style/SuggestionSpan.java
+++ b/core/java/android/text/style/SuggestionSpan.java
@@ -48,6 +48,7 @@
  *
  * @see TextView#isSuggestionsEnabled()
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SuggestionSpan extends CharacterStyle implements ParcelableSpan {
 
     private static final String TAG = "SuggestionSpan";
diff --git a/core/java/android/text/style/SuperscriptSpan.java b/core/java/android/text/style/SuperscriptSpan.java
index 5610223..d3b339c 100644
--- a/core/java/android/text/style/SuperscriptSpan.java
+++ b/core/java/android/text/style/SuperscriptSpan.java
@@ -35,6 +35,7 @@
  * TextView, it may appear cut. This can be avoided by decreasing the text size with an {@link
  * AbsoluteSizeSpan}
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SuperscriptSpan extends MetricAffectingSpan implements ParcelableSpan {
     /**
      * Creates a {@link SuperscriptSpan}.
diff --git a/core/java/android/text/style/TabStopSpan.java b/core/java/android/text/style/TabStopSpan.java
index 8128475..e6733a2 100644
--- a/core/java/android/text/style/TabStopSpan.java
+++ b/core/java/android/text/style/TabStopSpan.java
@@ -24,6 +24,7 @@
  * the leading margin of the line. <code>TabStopSpan</code> will only affect the first tab
  * encountered on the first line of the text.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface TabStopSpan extends ParagraphStyle {
 
     /**
diff --git a/core/java/android/text/style/TextAppearanceSpan.java b/core/java/android/text/style/TextAppearanceSpan.java
index 245a9db..7ede349 100644
--- a/core/java/android/text/style/TextAppearanceSpan.java
+++ b/core/java/android/text/style/TextAppearanceSpan.java
@@ -58,6 +58,7 @@
  * @attr ref android.R.styleable#TextAppearance_fontVariationSettings
  *
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TextAppearanceSpan extends MetricAffectingSpan implements ParcelableSpan {
     private final String mFamilyName;
     private final int mStyle;
diff --git a/core/java/android/text/style/TtsSpan.java b/core/java/android/text/style/TtsSpan.java
index e0d4ec1..6d776d1 100644
--- a/core/java/android/text/style/TtsSpan.java
+++ b/core/java/android/text/style/TtsSpan.java
@@ -42,6 +42,7 @@
  * The inner classes are there for convenience and provide builders for each
  * TtsSpan type.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TtsSpan implements ParcelableSpan {
     private final String mType;
     private final PersistableBundle mArgs;
diff --git a/core/java/android/text/style/TypefaceSpan.java b/core/java/android/text/style/TypefaceSpan.java
index bdfc772..86f7f76 100644
--- a/core/java/android/text/style/TypefaceSpan.java
+++ b/core/java/android/text/style/TypefaceSpan.java
@@ -50,6 +50,7 @@
  * <figcaption>Text with <code>TypefaceSpan</code>s constructed based on a font from resource and
  * from a font family.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TypefaceSpan extends MetricAffectingSpan implements ParcelableSpan {
 
     @Nullable
diff --git a/core/java/android/text/style/URLSpan.java b/core/java/android/text/style/URLSpan.java
index 9969d29..f06627d 100644
--- a/core/java/android/text/style/URLSpan.java
+++ b/core/java/android/text/style/URLSpan.java
@@ -41,6 +41,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/urlspan.png" />
  * <figcaption>Text with <code>URLSpan</code>.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class URLSpan extends ClickableSpan implements ParcelableSpan {
 
     private final String mURL;
diff --git a/core/java/android/text/style/UnderlineSpan.java b/core/java/android/text/style/UnderlineSpan.java
index 075e70b..b3bb142 100644
--- a/core/java/android/text/style/UnderlineSpan.java
+++ b/core/java/android/text/style/UnderlineSpan.java
@@ -32,6 +32,7 @@
  * <img src="{@docRoot}reference/android/images/text/style/underlinespan.png" />
  * <figcaption>Underlined text.</figcaption>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class UnderlineSpan extends CharacterStyle
         implements UpdateAppearance, ParcelableSpan {
 
diff --git a/core/java/android/text/style/UpdateAppearance.java b/core/java/android/text/style/UpdateAppearance.java
index 7112347..7b0a6d3 100644
--- a/core/java/android/text/style/UpdateAppearance.java
+++ b/core/java/android/text/style/UpdateAppearance.java
@@ -22,5 +22,6 @@
  * that if the class also impacts size or other metrics, it should instead
  * implement {@link UpdateLayout}.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface UpdateAppearance {
 }
diff --git a/core/java/android/text/style/UpdateLayout.java b/core/java/android/text/style/UpdateLayout.java
index 591075e..5af4141 100644
--- a/core/java/android/text/style/UpdateLayout.java
+++ b/core/java/android/text/style/UpdateLayout.java
@@ -22,4 +22,5 @@
  * this interface.  This interface also includes {@link UpdateAppearance}
  * since such a change implicitly also impacts the appearance.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface UpdateLayout extends UpdateAppearance { }
diff --git a/core/java/android/text/style/WrapTogetherSpan.java b/core/java/android/text/style/WrapTogetherSpan.java
index 11721a8..cf74c1b 100644
--- a/core/java/android/text/style/WrapTogetherSpan.java
+++ b/core/java/android/text/style/WrapTogetherSpan.java
@@ -16,6 +16,7 @@
 
 package android.text.style;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface WrapTogetherSpan
 extends ParagraphStyle
 {
diff --git a/core/java/android/text/util/Rfc822Token.java b/core/java/android/text/util/Rfc822Token.java
index 2f207db..d6e987b 100644
--- a/core/java/android/text/util/Rfc822Token.java
+++ b/core/java/android/text/util/Rfc822Token.java
@@ -22,6 +22,7 @@
  * This class stores an RFC 822-like name, address, and comment,
  * and provides methods to convert them to quoted strings.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Rfc822Token {
     @Nullable
     private String mName, mAddress, mComment;
diff --git a/core/java/android/text/util/Rfc822Tokenizer.java b/core/java/android/text/util/Rfc822Tokenizer.java
index 68334e4..8a9252a 100644
--- a/core/java/android/text/util/Rfc822Tokenizer.java
+++ b/core/java/android/text/util/Rfc822Tokenizer.java
@@ -27,6 +27,7 @@
  * a string of addresses (such as might be typed into such a field)
  * into a series of Rfc822Tokens.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Rfc822Tokenizer implements MultiAutoCompleteTextView.Tokenizer {
 
     /**
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index 231aa68..3f45e29 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -108,6 +108,7 @@
     private final String mOwnerPackageName;
     private final Resources mResources;
     private DisplayAdjustments mDisplayAdjustments;
+    private boolean mRefreshRateChangesRegistered;
 
     @UnsupportedAppUsage
     private DisplayInfo mDisplayInfo; // never null
@@ -1217,6 +1218,10 @@
      */
     public float getRefreshRate() {
         synchronized (mLock) {
+            if (!mRefreshRateChangesRegistered) {
+                DisplayManagerGlobal.getInstance().registerForRefreshRateChanges();
+                mRefreshRateChangesRegistered = true;
+            }
             updateDisplayInfoLocked();
             return mDisplayInfo.getRefreshRate();
         }
@@ -1601,7 +1606,7 @@
                                     .INTERNAL_EVENT_FLAG_DISPLAY_BASIC_CHANGED
                             | DisplayManagerGlobal
                                     .INTERNAL_EVENT_FLAG_DISPLAY_HDR_SDR_RATIO_CHANGED,
-                    ActivityThread.currentPackageName());
+                    ActivityThread.currentPackageName(), /* isEventFilterImplicit */ true);
         }
 
     }
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl
index f58baff..4fc894c 100644
--- a/core/java/android/view/IWindowManager.aidl
+++ b/core/java/android/view/IWindowManager.aidl
@@ -789,6 +789,12 @@
             in @nullable ImeTracker.Token statsToken);
 
     /**
+     * Updates the currently animating insets types of a remote process.
+     */
+    @EnforcePermission("MANAGE_APP_TOKENS")
+    void updateDisplayWindowAnimatingTypes(int displayId, int animatingTypes);
+
+    /**
      * Called to get the expected window insets.
      *
      * @return {@code true} if system bars are always consumed.
diff --git a/core/java/android/view/IWindowSession.aidl b/core/java/android/view/IWindowSession.aidl
index 1f8f0820..7d6d5a2 100644
--- a/core/java/android/view/IWindowSession.aidl
+++ b/core/java/android/view/IWindowSession.aidl
@@ -272,6 +272,15 @@
             in @nullable ImeTracker.Token imeStatsToken);
 
     /**
+     * Notifies WindowState what insets types are currently running within the Window.
+     * see {@link com.android.server.wm.WindowState#mInsetsAnimationRunning).
+     *
+     * @param window The window that is insets animaiton is running.
+     * @param animatingTypes Indicates the currently animating insets types.
+     */
+    oneway void updateAnimatingTypes(IWindow window, int animatingTypes);
+
+    /**
      * Called when the system gesture exclusion has changed.
      */
     oneway void reportSystemGestureExclusionChanged(IWindow window, in List<Rect> exclusionRects);
@@ -372,14 +381,4 @@
      */
     oneway void notifyImeWindowVisibilityChangedFromClient(IWindow window, boolean visible,
             in ImeTracker.Token statsToken);
-
-    /**
-     * Notifies WindowState whether inset animations are currently running within the Window.
-     * This value is used by the server to vote for refresh rate.
-     * see {@link com.android.server.wm.WindowState#mInsetsAnimationRunning).
-     *
-     * @param window The window that is insets animaiton is running.
-     * @param running Indicates the insets animation state.
-     */
-    oneway void notifyInsetsAnimationRunningStateChanged(IWindow window, boolean running);
 }
diff --git a/core/java/android/view/InsetsController.java b/core/java/android/view/InsetsController.java
index c174fbe..462c5c6 100644
--- a/core/java/android/view/InsetsController.java
+++ b/core/java/android/view/InsetsController.java
@@ -211,12 +211,12 @@
         }
 
         /**
-         * Notifies when the state of running animation is changed. The state is either "running" or
-         * "idle".
+         * Notifies when the insets types of running animation have changed. The animatingTypes
+         * contain all types, which have an ongoing animation.
          *
-         * @param running {@code true} if there is any animation running; {@code false} otherwise.
+         * @param animatingTypes the {@link InsetsType}s that are currently animating
          */
-        default void notifyAnimationRunningStateChanged(boolean running) {}
+        default void updateAnimatingTypes(@InsetsType int animatingTypes) {}
 
         /** @see ViewRootImpl#isHandlingPointerEvent */
         default boolean isHandlingPointerEvent() {
@@ -665,6 +665,9 @@
     /** Set of inset types which are requested visible which are reported to the host */
     private @InsetsType int mReportedRequestedVisibleTypes = WindowInsets.Type.defaultVisible();
 
+    /** Set of insets types which are currently animating */
+    private @InsetsType int mAnimatingTypes = 0;
+
     /** Set of inset types that we have controls of */
     private @InsetsType int mControllableTypes;
 
@@ -745,9 +748,10 @@
                             mFrame, mFromState, mToState, RESIZE_INTERPOLATOR,
                             ANIMATION_DURATION_RESIZE, mTypes, InsetsController.this);
                     if (mRunningAnimations.isEmpty()) {
-                        mHost.notifyAnimationRunningStateChanged(true);
+                        mHost.updateAnimatingTypes(runner.getTypes());
                     }
                     mRunningAnimations.add(new RunningAnimation(runner, runner.getAnimationType()));
+                    mAnimatingTypes |= runner.getTypes();
                 }
             };
 
@@ -1299,7 +1303,11 @@
             // Handle the pending show request for other insets types since the IME insets
             // has being requested hidden.
             handlePendingControlRequest(statsToken);
-            getImeSourceConsumer().removeSurface();
+            if (!Flags.refactorInsetsController()) {
+                // the surface can't be removed until the end of the animation. This is handled by
+                // IMMS after the window was requested to be hidden.
+                getImeSourceConsumer().removeSurface();
+            }
         }
         applyAnimation(typesReady, false /* show */, fromIme, false /* skipsCallbacks */,
                 statsToken);
@@ -1560,9 +1568,8 @@
             }
         }
         ImeTracker.forLogging().onProgress(statsToken, ImeTracker.PHASE_CLIENT_ANIMATION_RUNNING);
-        if (mRunningAnimations.isEmpty()) {
-            mHost.notifyAnimationRunningStateChanged(true);
-        }
+        mAnimatingTypes |= runner.getTypes();
+        mHost.updateAnimatingTypes(mAnimatingTypes);
         mRunningAnimations.add(new RunningAnimation(runner, animationType));
         if (DEBUG) Log.d(TAG, "Animation added to runner. useInsetsAnimationThread: "
                 + useInsetsAnimationThread);
@@ -1574,11 +1581,7 @@
             Trace.asyncTraceBegin(TRACE_TAG_VIEW, "IC.pendingAnim", 0);
         }
 
-        if (Flags.refactorInsetsController()) {
-            onAnimationStateChanged(typesReady, true /* running */);
-        } else {
-            onAnimationStateChanged(types, true /* running */);
-        }
+        onAnimationStateChanged(types, true /* running */);
 
         if (fromIme) {
             switch (animationType) {
@@ -1827,7 +1830,7 @@
                     dispatchAnimationEnd(runningAnimation.runner.getAnimation());
                 } else {
                     if (Flags.refactorInsetsController()) {
-                        if (removedTypes == ime()
+                        if ((removedTypes & ime()) != 0
                                 && control.getAnimationType() == ANIMATION_TYPE_HIDE) {
                             if (mHost != null) {
                                 // if the (hide) animation is cancelled, the
@@ -1842,9 +1845,11 @@
                 break;
             }
         }
-        if (mRunningAnimations.isEmpty()) {
-            mHost.notifyAnimationRunningStateChanged(false);
+        if (removedTypes > 0) {
+            mAnimatingTypes &= ~removedTypes;
+            mHost.updateAnimatingTypes(mAnimatingTypes);
         }
+
         onAnimationStateChanged(removedTypes, false /* running */);
     }
 
@@ -1969,14 +1974,6 @@
         return animatingTypes;
     }
 
-    private @InsetsType int computeAnimatingTypes() {
-        int animatingTypes = 0;
-        for (int i = 0; i < mRunningAnimations.size(); i++) {
-            animatingTypes |= mRunningAnimations.get(i).runner.getTypes();
-        }
-        return animatingTypes;
-    }
-
     /**
      * Called when finishing setting requested visible types or finishing setting controls.
      *
@@ -1989,7 +1986,7 @@
             // report its requested visibility at the end of the animation, otherwise we would
             // lose the leash, and it would disappear during the animation
             // TODO(b/326377046) revisit this part and see if we can make it more general
-            typesToReport = mRequestedVisibleTypes | (computeAnimatingTypes() & ime());
+            typesToReport = mRequestedVisibleTypes | (mAnimatingTypes & ime());
         } else {
             typesToReport = mRequestedVisibleTypes;
         }
diff --git a/core/java/android/view/OrientationEventListener.java b/core/java/android/view/OrientationEventListener.java
index cd48a4f..2feb44f 100644
--- a/core/java/android/view/OrientationEventListener.java
+++ b/core/java/android/view/OrientationEventListener.java
@@ -16,13 +16,19 @@
 
 package android.view;
 
+import static android.app.WindowConfiguration.ROTATION_UNDEFINED;
+
+import android.annotation.NonNull;
 import android.content.Context;
+import android.content.res.CompatibilityInfo;
 import android.hardware.Sensor;
 import android.hardware.SensorEvent;
 import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
 import android.util.Log;
 
+import com.android.window.flags.Flags;
+
 /**
  * Helper class for receiving notifications from the SensorManager when
  * the orientation of the device has changed.
@@ -70,8 +76,10 @@
         mRate = rate;
         mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
         if (mSensor != null) {
-            // Create listener only if sensors do exist
-            mSensorEventListener = new SensorEventListenerImpl();
+            // Create listener only if sensors do exist.
+            mSensorEventListener = Flags.enableCameraCompatForDesktopWindowing()
+                    ? new CompatSensorEventListenerImpl(new SensorEventListenerImpl())
+                    : new SensorEventListenerImpl();
         }
     }
     
@@ -114,13 +122,13 @@
         private static final int _DATA_X = 0;
         private static final int _DATA_Y = 1;
         private static final int _DATA_Z = 2;
-        
+
         public void onSensorChanged(SensorEvent event) {
             float[] values = event.values;
             int orientation = ORIENTATION_UNKNOWN;
             float X = -values[_DATA_X];
             float Y = -values[_DATA_Y];
-            float Z = -values[_DATA_Z];        
+            float Z = -values[_DATA_Z];
             float magnitude = X*X + Y*Y;
             // Don't trust the angle if the magnitude is small compared to the y value
             if (magnitude * 4 >= Z*Z) {
@@ -130,7 +138,7 @@
                 // normalize to 0 - 359 range
                 while (orientation >= 360) {
                     orientation -= 360;
-                } 
+                }
                 while (orientation < 0) {
                     orientation += 360;
                 }
@@ -148,7 +156,46 @@
 
         }
     }
-    
+
+    /** Decorator to the {@link SensorEventListenerImpl}, which provides compat values if needed. */
+    class CompatSensorEventListenerImpl implements SensorEventListener {
+        // SensorEventListener without compatibility capabilities.
+        final SensorEventListenerImpl mSensorEventListener;
+
+        CompatSensorEventListenerImpl(@NonNull SensorEventListenerImpl sensorEventListener) {
+            mSensorEventListener = sensorEventListener;
+        }
+
+        public void onSensorChanged(SensorEvent event) {
+            // If the display rotation override is set, the same override should be applied to
+            // this orientation too. This rotation override will only be set when an app has a
+            // camera open and it is in camera compat mode for desktop windowing (freeform mode).
+            // Values of this override is Surface.ROTATION_0/90/180/270, or
+            // WindowConfiguration.ROTATION_UNDEFINED when not set.
+            if (CompatibilityInfo.getOverrideDisplayRotation() != ROTATION_UNDEFINED) {
+                // SensorEventListener reports the rotation in the opposite direction from the
+                // display rotation.
+                int orientation = (360 - CompatibilityInfo.getOverrideDisplayRotation() * 90) % 360;
+                if (orientation != mOrientation) {
+                    mOrientation = orientation;
+                    onOrientationChanged(orientation);
+                }
+                // `mOldListener` is deprecated and returns 3D values, which are highly unlikely to
+                // be used for orienting camera image. Thus this listener is not called here, as
+                // opposed to extrapolating values from display rotation, from 1D->3D.
+            } else {
+                // Use the default implementation: calculate the orientation from event coordinates.
+                // This method will call OrientationEventListener.onOrientationChanged(orientation)
+                // if the orientation has changed.
+                mSensorEventListener.onSensorChanged(event);
+            }
+        }
+
+        public void onAccuracyChanged(Sensor sensor, int accuracy) {
+
+        }
+    }
+
     /*
      * Returns true if sensor is enabled and false otherwise
      */
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index 0903d22..c4347f0 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -3080,6 +3080,21 @@
         }
 
         /**
+         * Changes the default ApplyToken.
+         *
+         * ApplyToken is used to determine the order in which Transactions are applied.
+         * Transactions applied with the same ApplyToken will be applied in the order
+         * they were queued in SurfaceFlinger. Transactions are sent via binder so the
+         * caller should be aware of the order in which binder calls are executed in
+         * SurfaceFlinger. This along with the ApplyToken will determine the order
+         * in which Transactions are applied. Transactions with different apply tokens
+         * will be applied in arbitrary order regardless of when they were queued in
+         * SurfaceFlinger.
+         *
+         * Caller must keep track of the previous ApplyToken if they want to restore it.
+         *
+         * Note each buffer producer should have its own ApplyToken in order to ensure
+         * that Transactions are not delayed by Transactions from other buffer producers.
          *
          * @hide
          */
@@ -3088,6 +3103,7 @@
         }
 
         /**
+         * Returns the default ApplyToken.
          *
          * @hide
          */
@@ -3096,8 +3112,10 @@
         }
 
         /**
-         * Apply the transaction, clearing it's state, and making it usable
+         * Apply the transaction, clearing its state, and making it usable
          * as a new transaction.
+         *
+         * This method will also increment the transaction ID for debugging purposes.
          */
         public void apply() {
             apply(/*sync*/ false);
@@ -3116,7 +3134,7 @@
 
 
         /**
-         * Clear the transaction object, without applying it.
+         * Clear the transaction object, without applying it. The transction ID is preserved.
          *
          * @hide
          */
@@ -3375,6 +3393,9 @@
          * If two siblings share the same Z order the ordering is undefined. Surfaces
          * with a negative Z will be placed below the parent surface.
          *
+         * Calling setLayer after setRelativeLayer will reset the relative layer
+         * in the same transaction.
+         *
          * @param sc The SurfaceControl to set the Z order on
          * @param z The Z-order
          * @return This Transaction.
@@ -3392,6 +3413,22 @@
         }
 
         /**
+         * Set the Z-order for a given SurfaceControl, relative to the specified SurfaceControl.
+         * The SurfaceControl with a negative z will be placed below the relativeTo
+         * SurfaceControl and the SurfaceControl with a positive z will be placed above the
+         * relativeTo SurfaceControl.
+         *
+         * Calling setLayer will reset the relative layer. Calling setRelativeLayer after setLayer
+         * will override the setLayer call.
+         *
+         * If a layer is set to be relative to a layer that is destroyed, the layer will be
+         * offscreen until setLayer is called or setRelativeLayer is called with a valid
+         * SurfaceControl.
+         *
+         * @param sc The SurfaceControl to set the Z order on
+         * @param relativeTo The SurfaceControl to set the Z order relative to
+         * @param z The Z-order
+         * @return This Transaction.
          * @hide
          */
         public Transaction setRelativeLayer(SurfaceControl sc, SurfaceControl relativeTo, int z) {
@@ -3405,6 +3442,9 @@
         }
 
         /**
+         * The hint from the buffer producer as to what portion of the layer is
+         * transparent.
+         *
          * @hide
          */
         public Transaction setTransparentRegionHint(SurfaceControl sc, Region transparentRegion) {
@@ -3438,6 +3478,10 @@
         }
 
         /**
+         * Sets the input channel for a given SurfaceControl. The position and order of the
+         * SurfaceControl in conjunction with the touchable region in the InputWindowHandle
+         * determines the hit region.
+         *
          * @hide
          */
         public Transaction setInputWindowInfo(SurfaceControl sc, InputWindowHandle handle) {
@@ -3549,6 +3593,8 @@
          * surface. If no crop is specified and the surface has no buffer, the surface bounds is
          * only constrained by the size of its parent bounds.
          *
+         * To unset the crop, pass in an invalid Rect (0, 0, -1, -1)
+         *
          * @param sc   SurfaceControl to set crop of.
          * @param crop Bounds of the crop to apply.
          * @hide
@@ -3578,6 +3624,8 @@
          * surface. If no crop is specified and the surface has no buffer, the surface bounds is
          * only constrained by the size of its parent bounds.
          *
+         * To unset the crop, pass in an invalid Rect (0, 0, -1, -1)
+         *
          * @param sc   SurfaceControl to set crop of.
          * @param crop Bounds of the crop to apply.
          * @return this This transaction for chaining
@@ -3625,6 +3673,8 @@
          * surface. If no crop is specified and the surface has no buffer, the surface bounds is
          * only constrained by the size of its parent bounds.
          *
+         * To unset the crop, pass in an invalid Rect (0, 0, -1, -1)
+         *
          * @param sc   SurfaceControl to set crop of.
          * @param crop Bounds of the crop to apply.
          * @return this This transaction for chaining
@@ -3643,7 +3693,12 @@
         }
 
         /**
-         * Sets the corner radius of a {@link SurfaceControl}.
+         * Sets the corner radius of a {@link SurfaceControl}. This corner radius is applied to the
+         * SurfaceControl and its children. The API expects a crop to be set on the SurfaceControl
+         * to ensure that the corner radius is applied to the correct region. If the crop does not
+         * intersect with the SurfaceControl's visible content, the corner radius will not be
+         * applied.
+         *
          * @param sc SurfaceControl
          * @param cornerRadius Corner radius in pixels.
          * @return Itself.
@@ -3753,6 +3808,9 @@
         }
 
         /**
+         * Associates a layer with a display. The layer will be drawn on the display with the
+         * specified layer stack. If the layer is not a root layer, this call has no effect.
+         *
          * @hide
          */
         @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.O)
@@ -3791,6 +3849,7 @@
 
         /**
          * Fills the surface with the specified color.
+         *
          * @param color A float array with three values to represent r, g, b in range [0..1]. An
          * invalid color will remove the color fill.
          * @hide
@@ -3809,8 +3868,9 @@
 
         /**
          * Removes color fill.
-        * @hide
-        */
+         *
+         * @hide
+         */
         public Transaction unsetColor(SurfaceControl sc) {
             checkPreconditions(sc);
             if (SurfaceControlRegistry.sCallStackDebuggingEnabled) {
@@ -3898,6 +3958,8 @@
         }
 
         /**
+         * Sets the surface to render contents of the display to.
+         *
          * @hide
          */
         public Transaction setDisplaySurface(IBinder displayToken, Surface surface) {
@@ -3916,6 +3978,9 @@
         }
 
         /**
+         * Sets the layer stack of the display.
+         *
+         * All layers with the same layer stack will be drawn on this display.
          * @hide
          */
         public Transaction setDisplayLayerStack(IBinder displayToken, int layerStack) {
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index dd32947..b98f4db 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -16,6 +16,7 @@
 
 package android.view;
 
+import static android.view.flags.Flags.FLAG_DEPRECATE_SURFACE_VIEW_Z_ORDER_APIS;
 import static android.view.flags.Flags.FLAG_SURFACE_VIEW_GET_SURFACE_PACKAGE;
 import static android.view.flags.Flags.FLAG_SURFACE_VIEW_SET_COMPOSITION_ORDER;
 import static android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
@@ -812,7 +813,12 @@
      * window is attached to the window manager.
      *
      * <p>Calling this overrides any previous call to {@link #setZOrderOnTop}.
+     *
+     * @deprecated Use {@link #setCompositionOrder(int)} instead. It provides more
+     * control over the Z ordering behavior.
      */
+    @Deprecated
+    @FlaggedApi(FLAG_DEPRECATE_SURFACE_VIEW_Z_ORDER_APIS)
     public void setZOrderMediaOverlay(boolean isMediaOverlay) {
         mRequestedSubLayer = isMediaOverlay
             ? APPLICATION_MEDIA_OVERLAY_SUBLAYER : APPLICATION_MEDIA_SUBLAYER;
@@ -834,7 +840,12 @@
      * <p>Calling this overrides any previous call to {@link #setZOrderMediaOverlay}.
      *
      * @param onTop Whether to show the surface on top of this view's window.
+     *
+     * @deprecated Use {@link #setCompositionOrder(int)} instead. It provides more
+     * control over the Z ordering behavior.
      */
+    @Deprecated
+    @FlaggedApi(FLAG_DEPRECATE_SURFACE_VIEW_Z_ORDER_APIS)
     public void setZOrderOnTop(boolean onTop) {
         // In R and above we allow dynamic layer changes.
         final boolean allowDynamicChange = getContext().getApplicationInfo().targetSdkVersion
@@ -866,7 +877,11 @@
      * @return Whether the Z ordering changed.
      *
      * @hide
+     *
+     * @deprecated Use {@link #setCompositionOrder(int)} instead. It provides more control
+     * over the Z ordering behavior.
      */
+    @Deprecated
     public boolean setZOrderedOnTop(boolean onTop, boolean allowDynamicChange) {
         final int subLayer;
         if (onTop) {
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 9498407..7fd7be8 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -2540,11 +2540,12 @@
     }
 
     /**
-     * Notify the when the running state of a insets animation changed.
+     * Notify the when the animating insets types have changed.
      */
     @VisibleForTesting
-    public void notifyInsetsAnimationRunningStateChanged(boolean running) {
+    public void updateAnimatingTypes(@InsetsType int animatingTypes) {
         if (sToolkitSetFrameRateReadOnlyFlagValue) {
+            boolean running = animatingTypes != 0;
             if (Trace.isTagEnabled(Trace.TRACE_TAG_VIEW)) {
                 Trace.instant(Trace.TRACE_TAG_VIEW,
                         TextUtils.formatSimple("notifyInsetsAnimationRunningStateChanged(%s)",
@@ -2552,7 +2553,7 @@
             }
             mInsetsAnimationRunning = running;
             try {
-                mWindowSession.notifyInsetsAnimationRunningStateChanged(mWindow, running);
+                mWindowSession.updateAnimatingTypes(mWindow, animatingTypes);
             } catch (RemoteException e) {
             }
         }
diff --git a/core/java/android/view/ViewRootInsetsControllerHost.java b/core/java/android/view/ViewRootInsetsControllerHost.java
index 889acca4..8954df6 100644
--- a/core/java/android/view/ViewRootInsetsControllerHost.java
+++ b/core/java/android/view/ViewRootInsetsControllerHost.java
@@ -171,6 +171,13 @@
     }
 
     @Override
+    public void updateAnimatingTypes(@WindowInsets.Type.InsetsType int animatingTypes) {
+        if (mViewRoot != null) {
+            mViewRoot.updateAnimatingTypes(animatingTypes);
+        }
+    }
+
+    @Override
     public boolean hasAnimationCallbacks() {
         if (mViewRoot.mView == null) {
             return false;
@@ -275,13 +282,6 @@
     }
 
     @Override
-    public void notifyAnimationRunningStateChanged(boolean running) {
-        if (mViewRoot != null) {
-            mViewRoot.notifyInsetsAnimationRunningStateChanged(running);
-        }
-    }
-
-    @Override
     public boolean isHandlingPointerEvent() {
         return mViewRoot != null && mViewRoot.isHandlingPointerEvent();
     }
diff --git a/core/java/android/view/WindowInsets.java b/core/java/android/view/WindowInsets.java
index e3ea6b22..a952967 100644
--- a/core/java/android/view/WindowInsets.java
+++ b/core/java/android/view/WindowInsets.java
@@ -1290,7 +1290,8 @@
         int newTop = Math.max(0, insets.top - top);
         int newRight = Math.max(0, insets.right - right);
         int newBottom = Math.max(0, insets.bottom - bottom);
-        if (newLeft == left && newTop == top && newRight == right && newBottom == bottom) {
+        if (newLeft == insets.left && newTop == insets.top
+                && newRight == insets.right && newBottom == insets.bottom) {
             return insets;
         }
         return Insets.of(newLeft, newTop, newRight, newBottom);
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 93eed37..196ae5e 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -625,6 +625,12 @@
     int TRANSIT_FLAG_PHYSICAL_DISPLAY_SWITCH = (1 << 14); // 0x4000
 
     /**
+     * Transition flag: Indicates that aod is showing hidden by entering doze
+     * @hide
+     */
+    int TRANSIT_FLAG_AOD_APPEARING = (1 << 15); // 0x8000
+
+    /**
      * @hide
      */
     @IntDef(flag = true, prefix = { "TRANSIT_FLAG_" }, value = {
@@ -643,6 +649,7 @@
             TRANSIT_FLAG_KEYGUARD_OCCLUDING,
             TRANSIT_FLAG_KEYGUARD_UNOCCLUDING,
             TRANSIT_FLAG_PHYSICAL_DISPLAY_SWITCH,
+            TRANSIT_FLAG_AOD_APPEARING,
     })
     @Retention(RetentionPolicy.SOURCE)
     @interface TransitionFlags {}
@@ -659,7 +666,8 @@
             (TRANSIT_FLAG_KEYGUARD_GOING_AWAY
             | TRANSIT_FLAG_KEYGUARD_APPEARING
             | TRANSIT_FLAG_KEYGUARD_OCCLUDING
-            | TRANSIT_FLAG_KEYGUARD_UNOCCLUDING);
+            | TRANSIT_FLAG_KEYGUARD_UNOCCLUDING
+            | TRANSIT_FLAG_AOD_APPEARING);
 
     /**
      * Remove content mode: Indicates remove content mode is currently not defined.
@@ -1199,6 +1207,43 @@
             "android.window.PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE";
 
     /**
+     * Application-level [PackageManager][android.content.pm.PackageManager.Property] tag that (when
+     * set to false) informs the system the app has opted out of the camera compatibility treatment
+     * for fixed-orientation apps, which simulates running on a portrait device, in the orientation
+     * requested by the app.
+     *
+     * <p>This treatment aims to mitigate camera issues on large screens, like stretched or sideways
+     * previews. It simulates running on a portrait device by:
+     * <ul>
+     *   <li>Letterboxing the app window,
+     *   <li>Cropping the camera buffer to match the app's requested orientation,
+     *   <li>Setting the camera sensor orientation to portrait.
+     *   <li>Setting the display rotation to match the app's requested orientation, given portrait
+     *       natural orientation,
+     *   <li>Refreshes the activity to trigger new camera setup, with sandboxed values.
+     * </ul>
+     *
+     * <p>To opt out of the camera compatibility treatment, add this property to your app manifest
+     * and set the value to {@code false}.
+     *
+     * <p>Not setting this property at all, or setting this property to {@code true} has no effect.
+     *
+     * <p><b>Syntax:</b>
+     * <pre>
+     * &lt;application&gt;
+     *   &lt;property
+     *     android:name="android.window.PROPERTY_CAMERA_COMPAT_ALLOW_SIMULATE_REQUESTED_ORIENTATION"
+     *     android:value="true|false"/&gt;
+     * &lt;/application&gt;
+     * </pre>
+     *
+     * @hide
+     */
+    //TODO(b/394590412): Make this property public.
+    String PROPERTY_CAMERA_COMPAT_ALLOW_SIMULATE_REQUESTED_ORIENTATION =
+            "android.window.PROPERTY_CAMERA_COMPAT_ALLOW_SIMULATE_REQUESTED_ORIENTATION";
+
+    /**
      * Application level {@link android.content.pm.PackageManager.Property PackageManager.Property}
      * for an app to inform the system that the app should be excluded from the compatibility
      * override for orientation set by the device manufacturer. When the orientation override is
diff --git a/core/java/android/view/WindowlessWindowManager.java b/core/java/android/view/WindowlessWindowManager.java
index 72a595d..0a86ff8 100644
--- a/core/java/android/view/WindowlessWindowManager.java
+++ b/core/java/android/view/WindowlessWindowManager.java
@@ -597,6 +597,11 @@
     }
 
     @Override
+    public void updateAnimatingTypes(IWindow window, @InsetsType int animatingTypes) {
+        // NO-OP
+    }
+
+    @Override
     public void reportSystemGestureExclusionChanged(android.view.IWindow window,
             List<Rect> exclusionRects) {
     }
@@ -679,11 +684,6 @@
             @NonNull ImeTracker.Token statsToken) {
     }
 
-    @Override
-    public void notifyInsetsAnimationRunningStateChanged(IWindow window, boolean running) {
-        // NO-OP
-    }
-
     void setParentInterface(@Nullable ISurfaceControlViewHostParent parentInterface) {
         IBinder oldInterface = mParentInterface == null ? null : mParentInterface.asBinder();
         IBinder newInterface = parentInterface == null ? null : parentInterface.asBinder();
diff --git a/core/java/android/view/accessibility/flags/accessibility_flags.aconfig b/core/java/android/view/accessibility/flags/accessibility_flags.aconfig
index 49a11ca..80a9cbc 100644
--- a/core/java/android/view/accessibility/flags/accessibility_flags.aconfig
+++ b/core/java/android/view/accessibility/flags/accessibility_flags.aconfig
@@ -235,6 +235,14 @@
 }
 
 flag {
+    name: "request_rectangle_with_source"
+    namespace: "accessibility"
+    description: "Request rectangle on screen with source parameter"
+    bug: "391877896"
+    is_exported: true
+}
+
+flag {
     name: "restore_a11y_secure_settings_on_hsum_device"
     namespace: "accessibility"
     description: "Grab the a11y settings and send the settings restored broadcast for current visible foreground user"
diff --git a/core/java/android/view/flags/view_flags.aconfig b/core/java/android/view/flags/view_flags.aconfig
index f6fdec9..d06f885 100644
--- a/core/java/android/view/flags/view_flags.aconfig
+++ b/core/java/android/view/flags/view_flags.aconfig
@@ -129,6 +129,14 @@
 }
 
 flag {
+    name: "deprecate_surface_view_z_order_apis"
+    namespace: "window_surfaces"
+    description: "Deprecate SurfaceView z order control APIs."
+    bug: "341021569"
+    is_fixed_read_only: true
+}
+
+flag {
     name: "use_refactored_round_scrollbar"
     namespace: "wear_frameworks"
     description: "Use refactored round scrollbar."
diff --git a/core/java/android/view/inputmethod/ImeTracker.java b/core/java/android/view/inputmethod/ImeTracker.java
index aa0111a..60178cd 100644
--- a/core/java/android/view/inputmethod/ImeTracker.java
+++ b/core/java/android/view/inputmethod/ImeTracker.java
@@ -225,6 +225,7 @@
             PHASE_SERVER_UPDATE_CLIENT_VISIBILITY,
             PHASE_WM_DISPLAY_IME_CONTROLLER_SET_IME_REQUESTED_VISIBLE,
             PHASE_WM_UPDATE_DISPLAY_WINDOW_REQUESTED_VISIBLE_TYPES,
+            PHASE_WM_REQUESTED_VISIBLE_TYPES_NOT_CHANGED,
     })
     @Retention(RetentionPolicy.SOURCE)
     @interface Phase {}
@@ -445,6 +446,9 @@
     /** The control target reported its requestedVisibleTypes back to WindowManagerService. */
     int PHASE_WM_UPDATE_DISPLAY_WINDOW_REQUESTED_VISIBLE_TYPES =
             ImeProtoEnums.PHASE_WM_UPDATE_DISPLAY_WINDOW_REQUESTED_VISIBLE_TYPES;
+    /** The requestedVisibleTypes have not been changed, so this request is not continued. */
+    int PHASE_WM_REQUESTED_VISIBLE_TYPES_NOT_CHANGED =
+            ImeProtoEnums.PHASE_WM_REQUESTED_VISIBLE_TYPES_NOT_CHANGED;
 
     /**
      * Called when an IME request is started.
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index 421001f..0b34600 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -532,6 +532,7 @@
     final H mH;
 
     // Our generic input connection if the current target does not have its own.
+    @NonNull
     private final RemoteInputConnectionImpl mFallbackInputConnection;
 
     private final int mDisplayId;
diff --git a/core/java/android/view/inputmethod/flags.aconfig b/core/java/android/view/inputmethod/flags.aconfig
index 16f4114..c81c2bb 100644
--- a/core/java/android/view/inputmethod/flags.aconfig
+++ b/core/java/android/view/inputmethod/flags.aconfig
@@ -196,3 +196,10 @@
     purpose: PURPOSE_BUGFIX
   }
 }
+
+flag {
+  name: "report_animating_insets_types"
+  namespace: "input_method"
+  description: "Adding animating insets types and report IME visibility at the beginning of hiding"
+  bug: "393049691"
+}
diff --git a/core/java/android/view/textclassifier/intent/OWNERS b/core/java/android/view/textclassifier/intent/OWNERS
index 3465fe6..dc18514 100644
--- a/core/java/android/view/textclassifier/intent/OWNERS
+++ b/core/java/android/view/textclassifier/intent/OWNERS
@@ -1,6 +1,5 @@
 # Bug component: 709498
 
-mns@google.com
 toki@google.com
 svetoslavganov@android.com
 svetoslavganov@google.com
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index 0a5c14e..222a7b3 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -9216,6 +9216,7 @@
         public static RemoteResponse fromFillInIntent(@NonNull Intent fillIntent) {
             RemoteResponse response = new RemoteResponse();
             response.mFillIntent = fillIntent;
+            fillIntent.collectExtraIntentKeys();
             return response;
         }
 
@@ -9224,6 +9225,7 @@
             RemoteResponse response = new RemoteResponse();
             response.mPendingIntent = pendingIntent;
             response.mFillIntent = intent;
+            intent.collectExtraIntentKeys();
             return response;
         }
 
diff --git a/core/java/android/widget/RemoteViewsAdapter.java b/core/java/android/widget/RemoteViewsAdapter.java
index 118edc2..fa7b74f 100644
--- a/core/java/android/widget/RemoteViewsAdapter.java
+++ b/core/java/android/widget/RemoteViewsAdapter.java
@@ -242,7 +242,7 @@
 
         @Override
         public void onNullBinding(ComponentName name) {
-            enqueueDeferredUnbindServiceMessage();
+            unbindNow();
         }
 
         @Override
diff --git a/core/java/android/window/DesktopModeFlags.java b/core/java/android/window/DesktopModeFlags.java
index 4ba9738..42bf6d1 100644
--- a/core/java/android/window/DesktopModeFlags.java
+++ b/core/java/android/window/DesktopModeFlags.java
@@ -97,14 +97,21 @@
     ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY(Flags::enableDesktopWindowingWallpaperActivity,
             true),
     ENABLE_DRAG_RESIZE_SET_UP_IN_BG_THREAD(Flags::enableDragResizeSetUpInBgThread, false),
+    ENABLE_DRAG_TO_DESKTOP_INCOMING_TRANSITIONS_BUGFIX(
+            Flags::enableDragToDesktopIncomingTransitionsBugfix, false),
     ENABLE_FULLY_IMMERSIVE_IN_DESKTOP(Flags::enableFullyImmersiveInDesktop, true),
     ENABLE_HANDLE_INPUT_FIX(Flags::enableHandleInputFix, true),
     ENABLE_HOLD_TO_DRAG_APP_HANDLE(Flags::enableHoldToDragAppHandle, true),
     ENABLE_MINIMIZE_BUTTON(Flags::enableMinimizeButton, true),
     ENABLE_MODALS_FULLSCREEN_WITH_PERMISSIONS(Flags::enableModalsFullscreenWithPermission, false),
+    ENABLE_OPAQUE_BACKGROUND_FOR_TRANSPARENT_WINDOWS(
+            Flags::enableOpaqueBackgroundForTransparentWindows, false),
+    ENABLE_QUICKSWITCH_DESKTOP_SPLIT_BUGFIX(Flags::enableQuickswitchDesktopSplitBugfix, true),
     ENABLE_RESIZING_METRICS(Flags::enableResizingMetrics, true),
     ENABLE_RESTORE_TO_PREVIOUS_SIZE_FROM_DESKTOP_IMMERSIVE(
             Flags::enableRestoreToPreviousSizeFromDesktopImmersive, true),
+    ENABLE_START_LAUNCH_TRANSITION_FROM_TASKBAR_BUGFIX(
+            Flags::enableStartLaunchTransitionFromTaskbarBugfix, true),
     ENABLE_TASKBAR_OVERFLOW(Flags::enableTaskbarOverflow, false),
     ENABLE_TASK_RESIZING_KEYBOARD_SHORTCUTS(Flags::enableTaskResizingKeyboardShortcuts, true),
     ENABLE_TASK_STACK_OBSERVER_IN_SHELL(Flags::enableTaskStackObserverInShell, true),
@@ -118,6 +125,8 @@
     ENABLE_WINDOWING_TRANSITION_HANDLERS_OBSERVERS(
             Flags::enableWindowingTransitionHandlersObservers, false),
     EXCLUDE_CAPTION_FROM_APP_BOUNDS(Flags::excludeCaptionFromAppBounds, false),
+    IGNORE_ASPECT_RATIO_RESTRICTIONS_FOR_RESIZEABLE_FREEFORM_ACTIVITIES(
+            Flags::ignoreAspectRatioRestrictionsForResizeableFreeformActivities, true),
     INCLUDE_TOP_TRANSPARENT_FULLSCREEN_TASK_IN_DESKTOP_HEURISTIC(
             Flags::includeTopTransparentFullscreenTaskInDesktopHeuristic, true)
     // go/keep-sorted end
diff --git a/core/java/android/window/SplashScreenView.java b/core/java/android/window/SplashScreenView.java
index af3d7eb..ea0d6b8 100644
--- a/core/java/android/window/SplashScreenView.java
+++ b/core/java/android/window/SplashScreenView.java
@@ -733,11 +733,12 @@
                 mIconBitmap = iconView != null
                         ? copyDrawable(((ImageView) view.getIconView()).getDrawable()) : null;
             }
-            mBrandingBitmap = copyDrawable(view.getBrandingView().getBackground());
 
-            ViewGroup.LayoutParams params = view.getBrandingView().getLayoutParams();
+            final ViewGroup.LayoutParams params = view.getBrandingView().getLayoutParams();
             mBrandingWidth = params.width;
             mBrandingHeight = params.height;
+            mBrandingBitmap = copyDrawableWithSize(view.getBrandingView().getBackground(),
+                    mBrandingWidth, mBrandingHeight);
 
             if (view.getIconAnimationStart() != null) {
                 mIconAnimationStartMillis = view.getIconAnimationStart().toEpochMilli();
@@ -752,6 +753,13 @@
                 final Rect initialBounds = drawable.copyBounds();
                 final int width = initialBounds.width();
                 final int height = initialBounds.height();
+                return copyDrawableWithSize(drawable, width, height);
+            }
+            return null;
+        }
+
+        private Bitmap copyDrawableWithSize(Drawable drawable, int width, int height) {
+            if (drawable != null) {
                 if (width <= 0 || height <= 0) {
                     return null;
                 }
diff --git a/core/java/android/window/TransitionFilter.java b/core/java/android/window/TransitionFilter.java
index 61fc622..d8d2011 100644
--- a/core/java/android/window/TransitionFilter.java
+++ b/core/java/android/window/TransitionFilter.java
@@ -31,8 +31,6 @@
 import android.os.Parcelable;
 import android.view.WindowManager;
 
-import com.android.window.flags.Flags;
-
 /**
  * A parcelable filter that can be used for rerouting transitions to a remote. This is a local
  * representation so that the transition system doesn't need to make blocking queries over
@@ -261,9 +259,7 @@
                         // only applies to activity/task
                         && (change.getTaskInfo() != null
                                 || change.getActivityComponent() != null)) {
-                    final TransitionInfo.AnimationOptions opts =
-                            Flags.moveAnimationOptionsToChange() ? change.getAnimationOptions()
-                                    : info.getAnimationOptions();
+                    final TransitionInfo.AnimationOptions opts = change.getAnimationOptions();
                     if (opts != null) {
                         boolean canActuallyOverride = change.getTaskInfo() == null
                                 || opts.getOverrideTaskTransition();
diff --git a/core/java/android/window/TransitionInfo.java b/core/java/android/window/TransitionInfo.java
index 4f34aa3..63c55ad 100644
--- a/core/java/android/window/TransitionInfo.java
+++ b/core/java/android/window/TransitionInfo.java
@@ -57,8 +57,6 @@
 import android.view.SurfaceControl;
 import android.view.WindowManager;
 
-import com.android.window.flags.Flags;
-
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
@@ -220,10 +218,6 @@
     private final ArrayList<Change> mChanges = new ArrayList<>();
     private final ArrayList<Root> mRoots = new ArrayList<>();
 
-    // TODO(b/327332488): Clean-up usages after the flag is fully enabled.
-    @Deprecated
-    private AnimationOptions mOptions;
-
     /** This is only a BEST-EFFORT id used for log correlation. DO NOT USE for any real work! */
     private int mDebugId = -1;
 
@@ -238,7 +232,6 @@
         mFlags = in.readInt();
         in.readTypedList(mChanges, Change.CREATOR);
         in.readTypedList(mRoots, Root.CREATOR);
-        mOptions = in.readTypedObject(AnimationOptions.CREATOR);
         mDebugId = in.readInt();
         mTrack = in.readInt();
     }
@@ -250,7 +243,6 @@
         dest.writeInt(mFlags);
         dest.writeTypedList(mChanges);
         dest.writeTypedList(mRoots, flags);
-        dest.writeTypedObject(mOptions, flags);
         dest.writeInt(mDebugId);
         dest.writeInt(mTrack);
     }
@@ -286,18 +278,6 @@
         mRoots.add(other);
     }
 
-    /**
-     * @deprecated Set {@link AnimationOptions} to change. This method is only used if
-     * {@link Flags#FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE} is disabled.
-     */
-    @Deprecated
-    public void setAnimationOptions(@Nullable AnimationOptions options) {
-        if (Flags.moveAnimationOptionsToChange()) {
-            return;
-        }
-        mOptions = options;
-    }
-
     public @TransitionType int getType() {
         return mType;
     }
@@ -360,16 +340,6 @@
     }
 
     /**
-     * @deprecated Use {@link Change#getAnimationOptions()} instead. This method is called only
-     * if {@link Flags#FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE} is disabled.
-     */
-    @Deprecated
-    @Nullable
-    public AnimationOptions getAnimationOptions() {
-        return mOptions;
-    }
-
-    /**
      * @return the list of {@link Change}s in this transition. The list is sorted top-to-bottom
      *         in Z (meaning index 0 is the top-most container).
      */
@@ -455,9 +425,6 @@
         StringBuilder sb = new StringBuilder();
         sb.append("{id=").append(mDebugId).append(" t=").append(transitTypeToString(mType))
                 .append(" f=0x").append(Integer.toHexString(mFlags)).append(" trk=").append(mTrack);
-        if (mOptions != null) {
-            sb.append(" opt=").append(mOptions);
-        }
         sb.append(" r=[");
         for (int i = 0; i < mRoots.size(); ++i) {
             if (i > 0) {
@@ -656,8 +623,6 @@
         for (int i = 0; i < mRoots.size(); ++i) {
             out.mRoots.add(mRoots.get(i).localRemoteCopy());
         }
-        // Doesn't have any native stuff, so no need for actual copy
-        out.mOptions = mOptions;
         return out;
     }
 
@@ -860,9 +825,6 @@
          * Sets {@link AnimationOptions} to override animation.
          */
         public void setAnimationOptions(@Nullable AnimationOptions options) {
-            if (!Flags.moveAnimationOptionsToChange()) {
-                return;
-            }
             mAnimationOptions = options;
         }
 
@@ -1190,7 +1152,6 @@
             mEnterResId = in.readInt();
             mChangeResId = in.readInt();
             mExitResId = in.readInt();
-            mBackgroundColor = in.readInt();
             mOverrideTaskTransition = in.readBoolean();
             mPackageName = in.readString();
             mTransitionBounds.readFromParcel(in);
@@ -1241,23 +1202,6 @@
         }
 
         /**
-         * Make options for a custom animation based on anim resources.
-         *
-         * @param packageName the package name to find the animation resources
-         * @param enterResId the open animation resources ID
-         * @param exitResId the close animation resources ID
-         * @param backgroundColor the background color
-         * @param overrideTaskTransition whether to override the task transition
-         */
-        @NonNull
-        public static AnimationOptions makeCustomAnimOptions(@NonNull String packageName,
-                @AnimRes int enterResId, @AnimRes int exitResId, @ColorInt int backgroundColor,
-                boolean overrideTaskTransition) {
-            return makeCustomAnimOptions(packageName, enterResId, DEFAULT_ANIMATION_RESOURCES_ID,
-                    exitResId, backgroundColor, overrideTaskTransition);
-        }
-
-        /**
          * Creates a {@link android.app.ActivityOptions#ANIM_CUSTOM} {@link AnimationOptions}.
          *
          * @param packageName the package name that includes the animation resources.
@@ -1269,13 +1213,12 @@
         @NonNull
         public static AnimationOptions makeCustomAnimOptions(@NonNull String packageName,
                 @AnimRes int enterResId, @AnimRes int changeResId, @AnimRes int exitResId,
-                @ColorInt int backgroundColor, boolean overrideTaskTransition) {
+                boolean overrideTaskTransition) {
             AnimationOptions options = new AnimationOptions(ANIM_CUSTOM);
             options.mPackageName = packageName;
             options.mEnterResId = enterResId;
             options.mChangeResId = changeResId;
             options.mExitResId = exitResId;
-            options.mBackgroundColor = backgroundColor;
             options.mOverrideTaskTransition = overrideTaskTransition;
             return options;
         }
@@ -1351,10 +1294,6 @@
             return mExitResId;
         }
 
-        public @ColorInt int getBackgroundColor() {
-            return mBackgroundColor;
-        }
-
         public boolean getOverrideTaskTransition() {
             return mOverrideTaskTransition;
         }
@@ -1390,7 +1329,6 @@
             dest.writeInt(mEnterResId);
             dest.writeInt(mChangeResId);
             dest.writeInt(mExitResId);
-            dest.writeInt(mBackgroundColor);
             dest.writeBoolean(mOverrideTaskTransition);
             dest.writeString(mPackageName);
             mTransitionBounds.writeToParcel(dest, flags);
diff --git a/core/java/android/window/flags/lse_desktop_experience.aconfig b/core/java/android/window/flags/lse_desktop_experience.aconfig
index 8265d25..684f320 100644
--- a/core/java/android/window/flags/lse_desktop_experience.aconfig
+++ b/core/java/android/window/flags/lse_desktop_experience.aconfig
@@ -206,6 +206,13 @@
 }
 
 flag {
+    name: "enable_camera_compat_for_desktop_windowing_opt_out_api"
+    namespace: "lse_desktop_experience"
+    description: "Introduces a developer API to opt-out of Camera Compat treatment for fixed-orientation apps in desktop windowing mode"
+    bug: "397165621"
+}
+
+flag {
     name: "enable_task_stack_observer_in_shell"
     namespace: "lse_desktop_experience"
     description: "Introduces a new observer in shell to track the task stack."
@@ -681,6 +688,16 @@
 }
 
 flag {
+  name: "enable_opaque_background_for_transparent_windows"
+  namespace: "lse_desktop_experience"
+  description: "Whether an opaque background should be forcefully set for windows with only transparent background."
+  bug: "397219542"
+  metadata {
+    purpose: PURPOSE_BUGFIX
+  }
+}
+
+flag {
     name: "enable_desktop_mode_through_dev_option"
     namespace: "lse_desktop_experience"
     description: "Enables support for desktop mode through developer options for devices eligible for desktop mode."
@@ -778,3 +795,29 @@
     description: "Show recent apps in the taskbar overflow."
     bug: "368119679"
 }
+
+flag {
+    name: "enable_projected_display_desktop_mode"
+    namespace: "lse_desktop_experience"
+    description: "Enable Desktop Mode on Projected Mode devices but constrained to the external display."
+    bug: "384568161"
+}
+
+flag {
+    name: "enable_persisting_density_scale_for_connected_displays"
+    namespace: "lse_desktop_experience"
+    description: "Enables persisting density scale on resolution change for connected displays."
+    bug: "392855657"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
+flag {
+    name: "enable_drag_to_desktop_incoming_transitions_bugfix"
+    namespace: "lse_desktop_experience"
+    description: "Enables bugfix handling incoming transitions during the DragToDesktop transition."
+    bug: "397135730"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
diff --git a/core/java/android/window/flags/windowing_frontend.aconfig b/core/java/android/window/flags/windowing_frontend.aconfig
index a4d128f..dee1d8c 100644
--- a/core/java/android/window/flags/windowing_frontend.aconfig
+++ b/core/java/android/window/flags/windowing_frontend.aconfig
@@ -298,17 +298,6 @@
 }
 
 flag {
-  name: "always_capture_activity_snapshot"
-  namespace: "windowing_frontend"
-  description: "Always capture activity snapshot regardless predictive back status"
-  bug: "362183912"
-  is_fixed_read_only: true
-  metadata {
-    purpose: PURPOSE_BUGFIX
-  }
-}
-
-flag {
   name: "ensure_keyguard_does_transition_starting"
   namespace: "windowing_frontend"
   description: "Ensure that keyguard is the one starting transitions, instead of delegating to Core"
@@ -352,17 +341,6 @@
 }
 
 flag {
-  name: "defer_predictive_animation_if_no_snapshot"
-  namespace: "windowing_frontend"
-  description: "If no snapshot for previous window, start animation until the client has draw."
-  bug: "374621014"
-  is_fixed_read_only: true
-  metadata {
-      purpose: PURPOSE_BUGFIX
-    }
-}
-
-flag {
     name: "predictive_back_system_override_callback"
     namespace: "windowing_frontend"
     description: "Provide pre-make predictive back API extension"
diff --git a/core/java/android/window/flags/windowing_sdk.aconfig b/core/java/android/window/flags/windowing_sdk.aconfig
index 54d0eef..9f768f0 100644
--- a/core/java/android/window/flags/windowing_sdk.aconfig
+++ b/core/java/android/window/flags/windowing_sdk.aconfig
@@ -7,13 +7,6 @@
 
 flag {
     namespace: "windowing_sdk"
-    name: "activity_embedding_overlay_presentation_flag"
-    description: "Whether the overlay presentation feature is enabled"
-    bug: "293370683"
-}
-
-flag {
-    namespace: "windowing_sdk"
     name: "task_fragment_system_organizer_flag"
     description: "Whether the TaskFragment system organizer feature is enabled"
     bug: "284050041"
@@ -62,16 +55,6 @@
 
 flag {
     namespace: "windowing_sdk"
-     name: "move_animation_options_to_change"
-     description: "Move AnimationOptions from TransitionInfo to each Change"
-     bug: "327332488"
-     metadata {
-         purpose: PURPOSE_BUGFIX
-     }
-}
-
-flag {
-    namespace: "windowing_sdk"
     name: "rear_display_disable_force_desktop_system_decorations"
     description: "Block system decorations from being added to a rear display when desktop mode is forced"
     bug: "346103150"
@@ -134,16 +117,6 @@
 
 flag {
     namespace: "windowing_sdk"
-    name: "normalize_home_intent"
-    description: "To ensure home is started in correct intent"
-    bug: "378505461"
-    metadata {
-        purpose: PURPOSE_BUGFIX
-    }
-}
-
-flag {
-    namespace: "windowing_sdk"
     name: "condense_configuration_change_for_simple_mode"
     description: "Condense configuration change for simple mode"
     bug: "356738240"
diff --git a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
index a27eeb8..1281a78 100644
--- a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
+++ b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
@@ -97,6 +97,8 @@
             new ComponentName("com.android.server.accessibility", "ReduceBrightColors");
     public static final ComponentName FONT_SIZE_COMPONENT_NAME =
             new ComponentName("com.android.server.accessibility", "FontSize");
+    public static final ComponentName AUTOCLICK_COMPONENT_NAME =
+            new ComponentName("com.android.server.accessibility", "Autoclick");
 
     // The component name for the sub setting of Accessibility button in Accessibility settings
     public static final ComponentName ACCESSIBILITY_BUTTON_COMPONENT_NAME =
@@ -163,7 +165,7 @@
             getFrameworkShortcutFeaturesMap() {
 
         if (sFrameworkShortcutFeaturesMap == null) {
-            Map<ComponentName, FrameworkFeatureInfo> featuresMap = new ArrayMap<>(4);
+            Map<ComponentName, FrameworkFeatureInfo> featuresMap = new ArrayMap<>(8);
             featuresMap.put(COLOR_INVERSION_COMPONENT_NAME,
                     new ToggleableFrameworkFeatureInfo(
                             Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED,
@@ -174,6 +176,11 @@
                             Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
                             "1" /* Value to enable */, "0" /* Value to disable */,
                             R.string.color_correction_feature_name));
+            featuresMap.put(AUTOCLICK_COMPONENT_NAME,
+                    new ToggleableFrameworkFeatureInfo(
+                            Settings.Secure.ACCESSIBILITY_AUTOCLICK_ENABLED,
+                            "1" /* Value to enable */, "0" /* Value to disable */,
+                            R.string.autoclick_feature_name));
             if (SUPPORT_ONE_HANDED_MODE) {
                 featuresMap.put(ONE_HANDED_COMPONENT_NAME,
                         new ToggleableFrameworkFeatureInfo(
diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
index b187eb4..6498c53 100644
--- a/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
+++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
@@ -17,6 +17,7 @@
 package com.android.internal.accessibility.dialog;
 
 import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME;
+import static com.android.internal.accessibility.AccessibilityShortcutController.AUTOCLICK_COMPONENT_NAME;
 import static com.android.internal.accessibility.AccessibilityShortcutController.COLOR_INVERSION_COMPONENT_NAME;
 import static com.android.internal.accessibility.AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME;
 import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
@@ -214,6 +215,19 @@
                         Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED);
         targets.add(colorInversion);
 
+        // TODO(b/394683600): Update Icon with the autoclick asset.
+        final ToggleAllowListingFeatureTarget autoclick =
+                new ToggleAllowListingFeatureTarget(context,
+                        shortcutType,
+                        isShortcutContained(context, shortcutType,
+                                AUTOCLICK_COMPONENT_NAME.flattenToString()),
+                        AUTOCLICK_COMPONENT_NAME.flattenToString(),
+                        uid,
+                        context.getString(R.string.autoclick_feature_name),
+                        context.getDrawable(R.drawable.ic_accessibility_generic),
+                        Settings.Secure.ACCESSIBILITY_AUTOCLICK_ENABLED);
+        targets.add(autoclick);
+
         if (SUPPORT_ONE_HANDED_MODE) {
             final ToggleAllowListingFeatureTarget oneHandedMode =
                     new ToggleAllowListingFeatureTarget(context,
diff --git a/core/java/com/android/internal/app/MediaRouteControllerContentManager.java b/core/java/com/android/internal/app/MediaRouteControllerContentManager.java
index dc4caa3..3a8b94f 100644
--- a/core/java/com/android/internal/app/MediaRouteControllerContentManager.java
+++ b/core/java/com/android/internal/app/MediaRouteControllerContentManager.java
@@ -17,7 +17,12 @@
 package com.android.internal.app;
 
 import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.drawable.AnimationDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.StateListDrawable;
 import android.media.MediaRouter;
+import android.util.TypedValue;
 import android.view.View;
 import android.widget.LinearLayout;
 import android.widget.SeekBar;
@@ -35,9 +40,14 @@
      */
     public interface Delegate {
         /**
-         * Updates the title of the cast device
+         * Updates the title of the media route device
          */
-        void setCastDeviceTitle(CharSequence title);
+        void setMediaRouteDeviceTitle(CharSequence title);
+
+        /**
+         * Updates the icon of the media route device
+         */
+        void setMediaRouteDeviceIcon(Drawable icon);
 
         /**
          * Dismiss the UI to transition to a different workflow.
@@ -45,6 +55,7 @@
         void dismissView();
     }
 
+    private final Context mContext;
     private final Delegate mDelegate;
 
     // Time to wait before updating the volume when the user lets go of the seek bar
@@ -53,15 +64,25 @@
     private static final int VOLUME_UPDATE_DELAY_MILLIS = 250;
 
     private final MediaRouter mRouter;
+    private final MediaRouteControllerContentManager.MediaRouterCallback mCallback;
     private final MediaRouter.RouteInfo mRoute;
 
+    private Drawable mMediaRouteButtonDrawable;
+    private final int[] mMediaRouteConnectingState = { R.attr.state_checked, R.attr.state_enabled };
+    private final int[] mMediaRouteOnState = { R.attr.state_activated, R.attr.state_enabled };
+    private Drawable mCurrentIconDrawable;
+
+    private boolean mAttachedToWindow;
+
     private LinearLayout mVolumeLayout;
     private SeekBar mVolumeSlider;
     private boolean mVolumeSliderTouched;
 
     public MediaRouteControllerContentManager(Context context, Delegate delegate) {
+        mContext = context;
         mDelegate = delegate;
         mRouter = context.getSystemService(MediaRouter.class);
+        mCallback = new MediaRouteControllerContentManager.MediaRouterCallback();
         mRoute = mRouter.getSelectedRoute();
     }
 
@@ -70,7 +91,7 @@
      * given container view.
      */
     public void bindViews(View containerView) {
-        mDelegate.setCastDeviceTitle(mRoute.getName());
+        mDelegate.setMediaRouteDeviceTitle(mRoute.getName());
         mVolumeLayout = containerView.findViewById(R.id.media_route_volume_layout);
         mVolumeSlider = containerView.findViewById(R.id.media_route_volume_slider);
         mVolumeSlider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@@ -108,20 +129,58 @@
                 }
             }
         });
+
+        mMediaRouteButtonDrawable = obtainMediaRouteButtonDrawable();
+    }
+
+    /**
+     * Called when this UI is attached to a window..
+     */
+    public void onAttachedToWindow() {
+        mAttachedToWindow = true;
+        mRouter.addCallback(0, mCallback, MediaRouter.CALLBACK_FLAG_UNFILTERED_EVENTS);
+        update();
+    }
+
+    /**
+     * Called when this UI is detached from a window..
+     */
+    public void onDetachedFromWindow() {
+        mRouter.removeCallback(mCallback);
+        mAttachedToWindow = false;
     }
 
     /**
      * Updates all the views to reflect new states.
      */
     public void update() {
-        mDelegate.setCastDeviceTitle(mRoute.getName());
+        if (!mRoute.isSelected() || mRoute.isDefault()) {
+            mDelegate.dismissView();
+        }
+
+        mDelegate.setMediaRouteDeviceTitle(mRoute.getName());
         updateVolume();
+
+        Drawable icon = getIconDrawable();
+        if (icon != mCurrentIconDrawable) {
+            mCurrentIconDrawable = icon;
+            if (icon instanceof AnimationDrawable animDrawable) {
+                if (!mAttachedToWindow && !mRoute.isConnecting()) {
+                    // When the route is already connected before the view is attached, show the
+                    // last frame of the connected animation immediately.
+                    if (animDrawable.isRunning()) {
+                        animDrawable.stop();
+                    }
+                    icon = animDrawable.getFrame(animDrawable.getNumberOfFrames() - 1);
+                } else if (!animDrawable.isRunning()) {
+                    animDrawable.start();
+                }
+            }
+            mDelegate.setMediaRouteDeviceIcon(icon);
+        }
     }
 
-    /**
-     * Updates the volume layout and slider.
-     */
-    public void updateVolume() {
+    private void updateVolume() {
         if (!mVolumeSliderTouched) {
             if (isVolumeControlAvailable()) {
                 mVolumeLayout.setVisibility(View.VISIBLE);
@@ -150,4 +209,61 @@
     private boolean isVolumeControlAvailable() {
         return mRoute.getVolumeHandling() == MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE;
     }
+
+    private Drawable obtainMediaRouteButtonDrawable() {
+        TypedValue value = new TypedValue();
+        if (!mContext.getTheme().resolveAttribute(R.attr.mediaRouteButtonStyle, value, true)) {
+            return null;
+        }
+        int[] drawableAttrs = new int[] { R.attr.externalRouteEnabledDrawable };
+        TypedArray a = mContext.obtainStyledAttributes(value.data, drawableAttrs);
+        Drawable drawable = a.getDrawable(0);
+        a.recycle();
+        return drawable;
+    }
+
+    private Drawable getIconDrawable() {
+        if (!(mMediaRouteButtonDrawable instanceof StateListDrawable)) {
+            return mMediaRouteButtonDrawable;
+        } else if (mRoute.isConnecting()) {
+            StateListDrawable stateListDrawable = (StateListDrawable) mMediaRouteButtonDrawable;
+            stateListDrawable.setState(mMediaRouteConnectingState);
+            return stateListDrawable.getCurrent();
+        } else {
+            StateListDrawable stateListDrawable = (StateListDrawable) mMediaRouteButtonDrawable;
+            stateListDrawable.setState(mMediaRouteOnState);
+            return stateListDrawable.getCurrent();
+        }
+    }
+
+    private final class MediaRouterCallback extends MediaRouter.SimpleCallback {
+        @Override
+        public void onRouteUnselected(MediaRouter router, int type, MediaRouter.RouteInfo info) {
+            update();
+        }
+
+        @Override
+        public void onRouteChanged(MediaRouter router, MediaRouter.RouteInfo route) {
+            update();
+        }
+
+        @Override
+        public void onRouteVolumeChanged(MediaRouter router, MediaRouter.RouteInfo route) {
+            if (route == mRoute) {
+                updateVolume();
+            }
+        }
+
+        @Override
+        public void onRouteGrouped(MediaRouter router, MediaRouter.RouteInfo info,
+                MediaRouter.RouteGroup group, int index) {
+            update();
+        }
+
+        @Override
+        public void onRouteUngrouped(MediaRouter router, MediaRouter.RouteInfo info,
+                MediaRouter.RouteGroup group) {
+            update();
+        }
+    }
 }
diff --git a/core/java/com/android/internal/app/MediaRouteControllerDialog.java b/core/java/com/android/internal/app/MediaRouteControllerDialog.java
index 45a4a13..5899963 100644
--- a/core/java/com/android/internal/app/MediaRouteControllerDialog.java
+++ b/core/java/com/android/internal/app/MediaRouteControllerDialog.java
@@ -21,15 +21,9 @@
 import android.app.MediaRouteButton;
 import android.content.Context;
 import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.graphics.drawable.AnimationDrawable;
 import android.graphics.drawable.Drawable;
-import android.graphics.drawable.StateListDrawable;
 import android.media.MediaRouter;
-import android.media.MediaRouter.RouteGroup;
-import android.media.MediaRouter.RouteInfo;
 import android.os.Bundle;
-import android.util.TypedValue;
 import android.view.KeyEvent;
 import android.view.View;
 
@@ -48,19 +42,11 @@
  */
 public class MediaRouteControllerDialog extends AlertDialog implements
         MediaRouteControllerContentManager.Delegate {
-    // TODO(b/360050020): Eventually these 3 variables should be in the content manager instead of
+    // TODO(b/360050020): Eventually these 2 variables should be in the content manager instead of
     //  here. So these should be removed when the migration is completed.
     private final MediaRouter mRouter;
-    private final MediaRouterCallback mCallback;
     private final MediaRouter.RouteInfo mRoute;
 
-    private Drawable mMediaRouteButtonDrawable;
-    private int[] mMediaRouteConnectingState = { R.attr.state_checked, R.attr.state_enabled };
-    private int[] mMediaRouteOnState = { R.attr.state_activated, R.attr.state_enabled };
-    private Drawable mCurrentIconDrawable;
-
-    private boolean mAttachedToWindow;
-
     private final MediaRouteControllerContentManager mContentManager;
 
     public MediaRouteControllerDialog(Context context, int theme) {
@@ -68,7 +54,6 @@
 
         mContentManager = new MediaRouteControllerContentManager(context, this);
         mRouter = (MediaRouter) context.getSystemService(Context.MEDIA_ROUTER_SERVICE);
-        mCallback = new MediaRouterCallback();
         mRoute = mRouter.getSelectedRoute();
     }
 
@@ -87,24 +72,18 @@
             customPanelView.setMinimumHeight(0);
         }
 
-        mMediaRouteButtonDrawable = obtainMediaRouteButtonDrawable();
-        update();
+        mContentManager.update();
     }
 
     @Override
     public void onAttachedToWindow() {
         super.onAttachedToWindow();
-        mAttachedToWindow = true;
-
-        mRouter.addCallback(0, mCallback, MediaRouter.CALLBACK_FLAG_UNFILTERED_EVENTS);
-        update();
+        mContentManager.onAttachedToWindow();
     }
 
     @Override
     public void onDetachedFromWindow() {
-        mRouter.removeCallback(mCallback);
-        mAttachedToWindow = false;
-
+        mContentManager.onDetachedFromWindow();
         super.onDetachedFromWindow();
     }
 
@@ -128,95 +107,17 @@
     }
 
     @Override
-    public void setCastDeviceTitle(CharSequence title) {
+    public void setMediaRouteDeviceTitle(CharSequence title) {
         setTitle(title);
     }
 
     @Override
+    public void setMediaRouteDeviceIcon(Drawable icon) {
+        setIcon(icon);
+    }
+
+    @Override
     public void dismissView() {
         dismiss();
     }
-
-    private void update() {
-        if (!mRoute.isSelected() || mRoute.isDefault()) {
-            dismissView();
-        }
-
-        mContentManager.update();
-
-        Drawable icon = getIconDrawable();
-        if (icon != mCurrentIconDrawable) {
-            mCurrentIconDrawable = icon;
-            if (icon instanceof AnimationDrawable animDrawable) {
-                if (!mAttachedToWindow && !mRoute.isConnecting()) {
-                    // When the route is already connected before the view is attached, show the
-                    // last frame of the connected animation immediately.
-                    if (animDrawable.isRunning()) {
-                        animDrawable.stop();
-                    }
-                    icon = animDrawable.getFrame(animDrawable.getNumberOfFrames() - 1);
-                } else if (!animDrawable.isRunning()) {
-                    animDrawable.start();
-                }
-            }
-            setIcon(icon);
-        }
-    }
-
-    private Drawable obtainMediaRouteButtonDrawable() {
-        Context context = getContext();
-        TypedValue value = new TypedValue();
-        if (!context.getTheme().resolveAttribute(R.attr.mediaRouteButtonStyle, value, true)) {
-            return null;
-        }
-        int[] drawableAttrs = new int[] { R.attr.externalRouteEnabledDrawable };
-        TypedArray a = context.obtainStyledAttributes(value.data, drawableAttrs);
-        Drawable drawable = a.getDrawable(0);
-        a.recycle();
-        return drawable;
-    }
-
-    private Drawable getIconDrawable() {
-        if (!(mMediaRouteButtonDrawable instanceof StateListDrawable)) {
-            return mMediaRouteButtonDrawable;
-        } else if (mRoute.isConnecting()) {
-            StateListDrawable stateListDrawable = (StateListDrawable) mMediaRouteButtonDrawable;
-            stateListDrawable.setState(mMediaRouteConnectingState);
-            return stateListDrawable.getCurrent();
-        } else {
-            StateListDrawable stateListDrawable = (StateListDrawable) mMediaRouteButtonDrawable;
-            stateListDrawable.setState(mMediaRouteOnState);
-            return stateListDrawable.getCurrent();
-        }
-    }
-
-    private final class MediaRouterCallback extends MediaRouter.SimpleCallback {
-        @Override
-        public void onRouteUnselected(MediaRouter router, int type, RouteInfo info) {
-            update();
-        }
-
-        @Override
-        public void onRouteChanged(MediaRouter router, MediaRouter.RouteInfo route) {
-            update();
-        }
-
-        @Override
-        public void onRouteVolumeChanged(MediaRouter router, MediaRouter.RouteInfo route) {
-            if (route == mRoute) {
-                mContentManager.updateVolume();
-            }
-        }
-
-        @Override
-        public void onRouteGrouped(MediaRouter router, RouteInfo info, RouteGroup group,
-                int index) {
-            update();
-        }
-
-        @Override
-        public void onRouteUngrouped(MediaRouter router, RouteInfo info, RouteGroup group) {
-            update();
-        }
-    }
 }
diff --git a/core/java/com/android/internal/content/PackageMonitor.java b/core/java/com/android/internal/content/PackageMonitor.java
index ad73294..4663d62 100644
--- a/core/java/com/android/internal/content/PackageMonitor.java
+++ b/core/java/com/android/internal/content/PackageMonitor.java
@@ -36,6 +36,7 @@
 import android.util.Slog;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.annotations.WeaklyReferencedCallback;
 import com.android.internal.os.BackgroundThread;
 
 import java.lang.ref.WeakReference;
@@ -46,6 +47,7 @@
  * Helper class for monitoring the state of packages: adding, removing,
  * updating, and disappearing and reappearing on the SD card.
  */
+@WeaklyReferencedCallback
 public abstract class PackageMonitor extends android.content.BroadcastReceiver {
     static final String TAG = "PackageMonitor";
 
diff --git a/core/java/com/android/internal/jank/FrameTracker.java b/core/java/com/android/internal/jank/FrameTracker.java
index 454323b..a0f45b0 100644
--- a/core/java/com/android/internal/jank/FrameTracker.java
+++ b/core/java/com/android/internal/jank/FrameTracker.java
@@ -257,15 +257,11 @@
 
                 @Override
                 public void surfaceDestroyed() {
-
-                    // Wait a while to give the system a chance for the remaining
-                    // frames to arrive, then force finish the session.
-                    mHandler.postDelayed(() -> {
+                    mHandler.post(() -> {
                         if (!mMetricsFinalized) {
                             end(REASON_END_SURFACE_DESTROYED);
-                            finish();
                         }
-                    }, 50);
+                    });
                 }
             };
             // This callback has a reference to FrameTracker,
@@ -367,9 +363,9 @@
                     // Send a flush jank data transaction.
                     if (mSurfaceControl != null && mSurfaceControl.isValid()) {
                         SurfaceControl.Transaction.sendSurfaceFlushJankData(mSurfaceControl);
-                        if (mJankDataListenerRegistration != null) {
-                            mJankDataListenerRegistration.flush();
-                        }
+                    }
+                    if (mJankDataListenerRegistration != null) {
+                        mJankDataListenerRegistration.flush();
                     }
 
                     long delay;
@@ -650,6 +646,8 @@
                     Log.w(TAG, "Missing SF jank callback for vsyncId: " + info.frameVsyncId
                             + ", CUJ=" + name);
                 }
+            } else if (Flags.useSfFrameDuration() && info.surfaceControlCallbackFired) {
+                maxFrameTimeNanos = Math.max(info.totalDurationNanos, maxFrameTimeNanos);
             }
         }
         maxSuccessiveMissedFramesCount = Math.max(
diff --git a/core/java/com/android/internal/os/LongArrayMultiStateCounter.java b/core/java/com/android/internal/os/LongArrayMultiStateCounter.java
index fe616e0..5e9c87a 100644
--- a/core/java/com/android/internal/os/LongArrayMultiStateCounter.java
+++ b/core/java/com/android/internal/os/LongArrayMultiStateCounter.java
@@ -16,6 +16,7 @@
 
 package com.android.internal.os;
 
+import android.annotation.CheckResult;
 import android.annotation.Nullable;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -196,7 +197,8 @@
     /**
      * Populates the array with the accumulated counts for the specified state.
      */
-    public void getCounts(long[] counts, int state) {
+    @CheckResult
+    public boolean getCounts(long[] counts, int state) {
         if (state < 0 || state >= mStateCount) {
             throw new IllegalArgumentException(
                     "State: " + state + ", outside the range: [0-" + mStateCount + "]");
@@ -205,7 +207,7 @@
             throw new IllegalArgumentException(
                     "Invalid array length: " + counts.length + ", expected: " + mLength);
         }
-        native_getCounts(mNativeObject, counts, state);
+        return native_getCounts(mNativeObject, counts, state);
     }
 
     @Override
@@ -282,7 +284,8 @@
 
     @FastNative
     @RavenwoodRedirect
-    private static native void native_getCounts(long nativeObject, long[] counts, int state);
+    @CheckResult
+    private static native boolean native_getCounts(long nativeObject, long[] counts, int state);
 
     @FastNative
     @RavenwoodRedirect
diff --git a/core/java/com/android/internal/os/LongArrayMultiStateCounter_ravenwood.java b/core/java/com/android/internal/os/LongArrayMultiStateCounter_ravenwood.java
index 4f5f37d..403e8c1 100644
--- a/core/java/com/android/internal/os/LongArrayMultiStateCounter_ravenwood.java
+++ b/core/java/com/android/internal/os/LongArrayMultiStateCounter_ravenwood.java
@@ -168,8 +168,20 @@
             }
         }
 
-        public void getValues(long[] values, int state) {
-            System.arraycopy(mStates[state].mCounter, 0, values, 0, mArrayLength);
+        public boolean getValues(long[] values, int state) {
+            long[] counts = mStates[state].mCounter;
+            boolean allZeros = true;
+            for (int i = 0; i < counts.length; i++) {
+                if (counts[i] != 0) {
+                    allZeros = false;
+                    break;
+                }
+            }
+            if (allZeros) {
+                return false;
+            }
+            System.arraycopy(counts, 0, values, 0, mArrayLength);
+            return true;
         }
 
         public void reset() {
@@ -316,8 +328,8 @@
         getInstance(instanceId).addCounts(counts);
     }
 
-    public static void native_getCounts(long instanceId, long[] counts, int state) {
-        getInstance(instanceId).getValues(counts, state);
+    public static boolean native_getCounts(long instanceId, long[] counts, int state) {
+        return getInstance(instanceId).getValues(counts, state);
     }
 
     public static void native_reset(long instanceId) {
diff --git a/core/java/com/android/internal/pm/pkg/component/AconfigFlags.java b/core/java/com/android/internal/pm/pkg/component/AconfigFlags.java
index b19967a..0e6eb18 100644
--- a/core/java/com/android/internal/pm/pkg/component/AconfigFlags.java
+++ b/core/java/com/android/internal/pm/pkg/component/AconfigFlags.java
@@ -80,7 +80,11 @@
                     (Process.myUid() == Process.SYSTEM_UID) ? DeviceProtos.parsedFlagsProtoPaths()
                             : Arrays.asList(DeviceProtos.PATHS);
             for (String fileName : defaultFlagProtoFiles) {
-                try (var inputStream = new FileInputStream(fileName)) {
+                final File protoFile = new File(fileName);
+                if (!protoFile.isFile() || !protoFile.canRead()) {
+                    continue;
+                }
+                try (var inputStream = new FileInputStream(protoFile)) {
                     loadAconfigDefaultValues(inputStream.readAllBytes());
                 } catch (IOException e) {
                     Slog.w(LOG_TAG, "Failed to read Aconfig values from " + fileName, e);
@@ -120,6 +124,9 @@
 
         final var settingsFile = new File(Environment.getUserSystemDirectory(0),
                 "settings_config.xml");
+        if (!settingsFile.isFile() || !settingsFile.canRead()) {
+            return;
+        }
         try (var inputStream = new FileInputStream(settingsFile)) {
             TypedXmlPullParser parser = Xml.resolvePullParser(inputStream);
             if (parser.next() != XmlPullParser.END_TAG && "settings".equals(parser.getName())) {
@@ -186,7 +193,7 @@
                 }
             }
         } catch (IOException | XmlPullParserException e) {
-            Slog.e(LOG_TAG, "Failed to read Aconfig values from settings_config.xml", e);
+            Slog.w(LOG_TAG, "Failed to read Aconfig values from settings_config.xml", e);
         }
     }
 
diff --git a/core/java/com/android/internal/pm/pkg/component/ParsedComponentImpl.java b/core/java/com/android/internal/pm/pkg/component/ParsedComponentImpl.java
index 69c0480..7ee22f3 100644
--- a/core/java/com/android/internal/pm/pkg/component/ParsedComponentImpl.java
+++ b/core/java/com/android/internal/pm/pkg/component/ParsedComponentImpl.java
@@ -157,7 +157,7 @@
 
     @Override
     public void writeToParcel(Parcel dest, int flags) {
-        sForInternedString.parcel(this.name, dest, flags);
+        dest.writeString(this.name);
         dest.writeInt(this.getIcon());
         dest.writeInt(this.getLabelRes());
         dest.writeCharSequence(this.getNonLocalizedLabel());
@@ -175,7 +175,7 @@
         // We use the boot classloader for all classes that we load.
         final ClassLoader boot = Object.class.getClassLoader();
         //noinspection ConstantConditions
-        this.name = sForInternedString.unparcel(in);
+        this.name = in.readString();
         this.icon = in.readInt();
         this.labelRes = in.readInt();
         this.nonLocalizedLabel = in.readCharSequence();
diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl
index 7018ebc..5a180d7 100644
--- a/core/java/com/android/internal/statusbar/IStatusBar.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl
@@ -82,7 +82,7 @@
      * Notify system UI the immersive mode changed. This shall be removed when client immersive is
      * enabled.
      */
-    void immersiveModeChanged(int rootDisplayAreaId, boolean isImmersiveMode);
+    void immersiveModeChanged(int rootDisplayAreaId, boolean isImmersiveMode, int windowType);
 
     void dismissKeyboardShortcutsMenu();
     void toggleKeyboardShortcutsMenu(int deviceId);
diff --git a/core/java/com/android/internal/util/LatencyTracker.java b/core/java/com/android/internal/util/LatencyTracker.java
index c120e67d..33794a5 100644
--- a/core/java/com/android/internal/util/LatencyTracker.java
+++ b/core/java/com/android/internal/util/LatencyTracker.java
@@ -23,6 +23,7 @@
 import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_CHECK_CREDENTIAL;
 import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_CHECK_CREDENTIAL_UNLOCKED;
 import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_DRAG;
+import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_MENU;
 import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_EXPAND_PANEL;
 import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_FACE_WAKE_AND_UNLOCK;
 import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_FINGERPRINT_WAKE_AND_UNLOCK;
@@ -268,14 +269,27 @@
     public static final int ACTION_SHADE_WINDOW_DISPLAY_CHANGE = 29;
 
     /**
-     * Applicable when the user drags a full screen app's handle into the desktop drop zone to enter
-     * desktop mode. This measure the time from when the user releases their finger in the drop zone
-     * to when the animation for entering desktop mode visually begins. During this period, the
-     * home task and app headers for each window are initialized. Both have historically been
-     * expensive. See b/381396057 and b/360452034 respectively.
+     * Time it takes for the "enter desktop" mode animation to begin when initiated by dragging the
+     * app's handle into the desktop drop zone.
+     * <p>
+     * This measure the time from when the user releases their finger in the drop zone to when the
+     * animation for entering desktop mode visually begins. During this period, the home task and
+     * app headers for each window are initialized. Both have historically been expensive. See
+     * b/381396057 and b/360452034 respectively.
      */
     public static final int ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_DRAG = 30;
 
+    /**
+     * Time it takes for the "enter desktop" mode animation to begin when initiated via the app
+     * handle's menu.
+     * <p>
+     * This measures the time from when the menu option is clicked/tapped to when the animation for
+     * entering desktop mode visually begins. During this period, the home task and app headers for
+     * each window are initialized. Both have historically been expensive. See b/381396057 and
+     * b/360452034 respectively.
+     */
+    public static final int ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_MENU = 31;
+
     private static final int[] ACTIONS_ALL = {
         ACTION_EXPAND_PANEL,
         ACTION_TOGGLE_RECENTS,
@@ -308,6 +322,7 @@
         ACTION_KEYGUARD_FACE_UNLOCK_TO_HOME,
         ACTION_SHADE_WINDOW_DISPLAY_CHANGE,
         ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_DRAG,
+        ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_MENU,
     };
 
     /** @hide */
@@ -343,6 +358,7 @@
         ACTION_KEYGUARD_FACE_UNLOCK_TO_HOME,
         ACTION_SHADE_WINDOW_DISPLAY_CHANGE,
         ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_DRAG,
+        ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_MENU,
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface Action {}
@@ -380,6 +396,7 @@
             UIACTION_LATENCY_REPORTED__ACTION__ACTION_KEYGUARD_FACE_UNLOCK_TO_HOME,
             UIACTION_LATENCY_REPORTED__ACTION__ACTION_SHADE_WINDOW_DISPLAY_CHANGE,
             UIACTION_LATENCY_REPORTED__ACTION__ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_DRAG,
+            UIACTION_LATENCY_REPORTED__ACTION__ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_MENU,
     };
 
     private final Object mLock = new Object();
@@ -582,6 +599,8 @@
                 return "ACTION_SHADE_WINDOW_DISPLAY_CHANGE";
             case UIACTION_LATENCY_REPORTED__ACTION__ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_DRAG:
                 return "ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_DRAG";
+            case UIACTION_LATENCY_REPORTED__ACTION__ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_MENU:
+                return "ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_MENU";
             default:
                 throw new IllegalArgumentException("Invalid action");
         }
diff --git a/core/java/com/android/internal/widget/ConversationLayout.java b/core/java/com/android/internal/widget/ConversationLayout.java
index 641ecc9..ce46da1 100644
--- a/core/java/com/android/internal/widget/ConversationLayout.java
+++ b/core/java/com/android/internal/widget/ConversationLayout.java
@@ -250,7 +250,8 @@
             mPeopleHelper.animateViewForceHidden(mImportanceRingView, forceHidden);
             mPeopleHelper.animateViewForceHidden(mIcon, forceHidden);
         });
-        mConversationText = findViewById(R.id.conversation_text);
+        mConversationText = findViewById(notificationsRedesignTemplates()
+                ? R.id.title : R.id.conversation_text);
         mExpandButtonContainer = findViewById(R.id.expand_button_container);
         mExpandButtonContainerA11yContainer =
                 findViewById(R.id.expand_button_a11y_container);
@@ -716,17 +717,10 @@
     }
 
     private void updateImageMessages() {
-        View newMessage = null;
-        if (mIsCollapsed && !mGroups.isEmpty()) {
-
-            // When collapsed, we're displaying the image message in a dedicated container
-            // on the right of the layout instead of inline. Let's add the isolated image there
-            MessagingGroup messagingGroup = mGroups.getLast();
-            MessagingImageMessage isolatedMessage = messagingGroup.getIsolatedMessage();
-            if (isolatedMessage != null) {
-                newMessage = isolatedMessage.getView();
-            }
+        if (mImageMessageContainer == null) {
+            return;
         }
+        View newMessage = getNewImageMessage();
         // Remove all messages that don't belong into the image layout
         View previousMessage = mImageMessageContainer.getChildAt(0);
         if (previousMessage != newMessage) {
@@ -738,6 +732,20 @@
         mImageMessageContainer.setVisibility(newMessage != null ? VISIBLE : GONE);
     }
 
+    @Nullable
+    private View getNewImageMessage() {
+        if (mIsCollapsed && !mGroups.isEmpty()) {
+            // When collapsed, we're displaying the image message in a dedicated container
+            // on the right of the layout instead of inline. Let's add the isolated image there
+            MessagingGroup messagingGroup = mGroups.getLast();
+            MessagingImageMessage isolatedMessage = messagingGroup.getIsolatedMessage();
+            if (isolatedMessage != null) {
+                return isolatedMessage.getView();
+            }
+        }
+        return null;
+    }
+
     public void bindFacePile(ImageView bottomBackground, ImageView bottomView, ImageView topView) {
         applyNotificationBackgroundColor(bottomBackground);
         // Let's find the two last conversations:
@@ -841,6 +849,10 @@
     }
 
     private void updateAppName() {
+        if (notificationsRedesignTemplates()) {
+            return;
+        }
+
         mAppName.setVisibility(mIsCollapsed ? GONE : VISIBLE);
     }
 
@@ -1533,6 +1545,10 @@
     }
 
     private void updateExpandButton() {
+        if (notificationsRedesignTemplates()) {
+            return;
+        }
+
         int buttonGravity;
         ViewGroup newContainer;
         if (mIsCollapsed) {
@@ -1565,6 +1581,10 @@
     }
 
     private void updateContentEndPaddings() {
+        if (notificationsRedesignTemplates()) {
+            return;
+        }
+
         // Let's make sure the conversation header can't run into the expand button when we're
         // collapsed and update the paddings of the content
         int headerPaddingEnd;
@@ -1593,6 +1613,10 @@
     }
 
     private void onAppNameVisibilityChanged() {
+        if (notificationsRedesignTemplates()) {
+            return;
+        }
+
         boolean appNameGone = mAppName.getVisibility() == GONE;
         if (appNameGone != mAppNameGone) {
             mAppNameGone = appNameGone;
@@ -1601,10 +1625,18 @@
     }
 
     private void updateAppNameDividerVisibility() {
+        if (notificationsRedesignTemplates()) {
+            return;
+        }
+
         mAppNameDivider.setVisibility(mAppNameGone ? GONE : VISIBLE);
     }
 
     public void updateExpandability(boolean expandable, @Nullable OnClickListener onClickListener) {
+        if (notificationsRedesignTemplates()) {
+            return;
+        }
+
         mExpandable = expandable;
         if (expandable) {
             mExpandButtonContainer.setVisibility(VISIBLE);
diff --git a/core/java/com/android/internal/widget/MessagingGroup.java b/core/java/com/android/internal/widget/MessagingGroup.java
index 31d9770..b9a603cc 100644
--- a/core/java/com/android/internal/widget/MessagingGroup.java
+++ b/core/java/com/android/internal/widget/MessagingGroup.java
@@ -449,12 +449,8 @@
     }
 
     private void updateIconVisibility() {
-        if (Flags.notificationsRedesignTemplates() && !mIsInConversation) {
-            // We don't show any icon (other than the app icon) in the collapsed form. For
-            // conversations, keeping this container helps with aligning the message to the icon
-            // when collapsed, but the old messaging style already has this alignment built into
-            // the template like all other layouts. Conversations are special because we use the
-            // same base layout for both the collapsed and expanded views.
+        if (Flags.notificationsRedesignTemplates()) {
+            // We don't show any icon (other than the app or person icon) in the collapsed form.
             mMessagingIconContainer.setVisibility(mSingleLine ? GONE : VISIBLE);
         }
     }
diff --git a/core/java/com/android/internal/widget/MessagingLayout.java b/core/java/com/android/internal/widget/MessagingLayout.java
index 64b44df..eb22e7c 100644
--- a/core/java/com/android/internal/widget/MessagingLayout.java
+++ b/core/java/com/android/internal/widget/MessagingLayout.java
@@ -337,19 +337,10 @@
     }
 
     private void updateImageMessages() {
-        View newMessage = null;
         if (mImageMessageContainer == null) {
             return;
         }
-        if (mIsCollapsed && !mGroups.isEmpty()) {
-            // When collapsed, we're displaying the image message in a dedicated container
-            // on the right of the layout instead of inline. Let's add the isolated image there
-            MessagingGroup messagingGroup = mGroups.getLast();
-            MessagingImageMessage isolatedMessage = messagingGroup.getIsolatedMessage();
-            if (isolatedMessage != null) {
-                newMessage = isolatedMessage.getView();
-            }
-        }
+        View newMessage = getNewImageMessage();
         // Remove all messages that don't belong into the image layout
         View previousMessage = mImageMessageContainer.getChildAt(0);
         if (previousMessage != newMessage) {
@@ -368,6 +359,20 @@
         }
     }
 
+    @Nullable
+    private View getNewImageMessage() {
+        if (mIsCollapsed && !mGroups.isEmpty()) {
+            // When collapsed, we're displaying the image message in a dedicated container
+            // on the right of the layout instead of inline. Let's add the isolated image there
+            MessagingGroup messagingGroup = mGroups.getLast();
+            MessagingImageMessage isolatedMessage = messagingGroup.getIsolatedMessage();
+            if (isolatedMessage != null) {
+                return isolatedMessage.getView();
+            }
+        }
+        return null;
+    }
+
     private void removeGroups(ArrayList<MessagingGroup> oldGroups) {
         int size = oldGroups.size();
         for (int i = 0; i < size; i++) {
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index 06702e2..92a841f 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -76,6 +76,9 @@
     srcs: [
         "android_animation_PropertyValuesHolder.cpp",
         "android_content_res_ApkAssets.cpp",
+        "android_media_ImageReader.cpp",
+        "android_media_PublicFormatUtils.cpp",
+        "android_media_Utils.cpp",
         "android_os_SystemClock.cpp",
         "android_os_SystemProperties.cpp",
         "android_text_AndroidCharacter.cpp",
@@ -134,10 +137,7 @@
                 "android_app_ActivityThread.cpp",
                 "android_app_NativeActivity.cpp",
                 "android_app_admin_SecurityLog.cpp",
-                "android_media_ImageReader.cpp",
                 "android_media_ImageWriter.cpp",
-                "android_media_PublicFormatUtils.cpp",
-                "android_media_Utils.cpp",
                 "android_opengl_EGL14.cpp",
                 "android_opengl_EGL15.cpp",
                 "android_opengl_EGLExt.cpp",
@@ -489,6 +489,7 @@
                 "libsqlite",
                 "libgui_window_info_static",
                 "libbinder",
+                "libbinder_ndk",
                 "libhidlbase", // libhwbinder is in here
             ],
             version_script: "platform/linux/libandroid_runtime_export.txt",
diff --git a/core/jni/android_graphics_BLASTBufferQueue.cpp b/core/jni/android_graphics_BLASTBufferQueue.cpp
index a526783..1a7490e6 100644
--- a/core/jni/android_graphics_BLASTBufferQueue.cpp
+++ b/core/jni/android_graphics_BLASTBufferQueue.cpp
@@ -26,6 +26,7 @@
 #include <nativehelper/JNIHelp.h>
 #include <utils/Log.h>
 #include <utils/RefBase.h>
+#include <utils/StrongPointer.h>
 
 #include "core_jni_helpers.h"
 
@@ -124,7 +125,7 @@
 static jlong nativeCreate(JNIEnv* env, jclass clazz, jstring jName,
                           jboolean updateDestinationFrame) {
     ScopedUtfChars name(env, jName);
-    sp<BLASTBufferQueue> queue = new BLASTBufferQueue(name.c_str(), updateDestinationFrame);
+    sp<BLASTBufferQueue> queue = sp<BLASTBufferQueue>::make(name.c_str(), updateDestinationFrame);
     queue->incStrong((void*)nativeCreate);
     return reinterpret_cast<jlong>(queue.get());
 }
diff --git a/core/jni/android_media_ImageReader.cpp b/core/jni/android_media_ImageReader.cpp
index 20b9c57..a34cb39 100644
--- a/core/jni/android_media_ImageReader.cpp
+++ b/core/jni/android_media_ImageReader.cpp
@@ -25,13 +25,22 @@
 #include <android_runtime/android_view_Surface.h>
 #include <com_android_graphics_libgui_flags.h>
 #include <cutils/atomic.h>
+#ifdef __ANDROID__
 #include <grallocusage/GrallocUsageConversion.h>
+#else
+#define GRALLOC_USAGE_PROTECTED 0
+#define GRALLOC_USAGE_SW_READ_OFTEN 0
+#define GRALLOC_USAGE_SW_WRITE_OFTEN 0
+#endif
 #include <gui/BufferItemConsumer.h>
 #include <gui/Surface.h>
 #include <inttypes.h>
 #include <jni.h>
+#include <jni_wrappers.h>
 #include <nativehelper/JNIHelp.h>
+#ifdef __ANDROID__
 #include <private/android/AHardwareBufferHelpers.h>
+#endif
 #include <stdint.h>
 #include <ui/Rect.h>
 #include <utils/List.h>
@@ -393,8 +402,12 @@
     String8 consumerName = String8::format("ImageReader-%dx%df%xm%d-%d-%d",
             width, height, nativeHalFormat, maxImages, getpid(),
             createProcessUniqueId());
+#ifdef __ANDROID__
     uint64_t consumerUsage =
             android_hardware_HardwareBuffer_convertToGrallocUsageBits(ndkUsage);
+#else
+    uint64_t consumerUsage = 0;
+#endif
 
 #if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
     sp<BufferItemConsumer> bufferConsumer = new BufferItemConsumer(consumerUsage, maxImages,
@@ -773,6 +786,7 @@
     return true;
 }
 
+#ifdef __ANDROID__
 static void ImageReader_unlockGraphicBuffer(JNIEnv* env, jobject /*thiz*/,
         jobject buffer) {
     sp<GraphicBuffer> graphicBuffer =
@@ -856,6 +870,7 @@
 
     return imagePlanes;
 }
+#endif
 
 static jobjectArray Image_createSurfacePlanes(JNIEnv* env, jobject thiz,
         int numPlanes, int halReaderFormat, uint64_t ndkReaderUsage)
@@ -964,6 +979,7 @@
     }
 }
 
+#ifdef __ANDROID__
 static jobject Image_getHardwareBuffer(JNIEnv* env, jobject thiz) {
     BufferItem* buffer = Image_getBufferItem(env, thiz);
     if (buffer == nullptr) {
@@ -976,45 +992,48 @@
     // to link against libandroid.so
     return android_hardware_HardwareBuffer_createFromAHardwareBuffer(env, b);
 }
+#endif
 
 } // extern "C"
 
 // ----------------------------------------------------------------------------
 
-static const JNINativeMethod gImageReaderMethods[] = {
-    {"nativeClassInit",        "()V",                        (void*)ImageReader_classInit },
-    {"nativeInit",             "(Ljava/lang/Object;IIIJII)V",   (void*)ImageReader_init },
-    {"nativeClose",            "()V",                        (void*)ImageReader_close },
-    {"nativeReleaseImage",     "(Landroid/media/Image;)V",   (void*)ImageReader_imageRelease },
-    {"nativeImageSetup",       "(Landroid/media/Image;)I",   (void*)ImageReader_imageSetup },
-    {"nativeGetSurface",       "()Landroid/view/Surface;",   (void*)ImageReader_getSurface },
-    {"nativeDetachImage",      "(Landroid/media/Image;Z)I",   (void*)ImageReader_detachImage },
-    {"nativeCreateImagePlanes",
-        "(ILandroid/graphics/GraphicBuffer;IIIIII)[Landroid/media/ImageReader$ImagePlane;",
-                                                             (void*)ImageReader_createImagePlanes },
-    {"nativeUnlockGraphicBuffer",
-        "(Landroid/graphics/GraphicBuffer;)V",             (void*)ImageReader_unlockGraphicBuffer },
-    {"nativeDiscardFreeBuffers", "()V",                      (void*)ImageReader_discardFreeBuffers }
-};
+static const JNINativeMethod gImageReaderMethods[] =
+        {{"nativeClassInit", "()V", (void*)ImageReader_classInit},
+         {"nativeInit", "(Ljava/lang/Object;IIIJII)V", (void*)ImageReader_init},
+         {"nativeClose", "()V", (void*)ImageReader_close},
+         {"nativeReleaseImage", "(Landroid/media/Image;)V", (void*)ImageReader_imageRelease},
+         {"nativeImageSetup", "(Landroid/media/Image;)I", (void*)ImageReader_imageSetup},
+         {"nativeGetSurface", "()Landroid/view/Surface;", (void*)ImageReader_getSurface},
+         {"nativeDetachImage", "(Landroid/media/Image;Z)I", (void*)ImageReader_detachImage},
+#ifdef __ANDROID__
+         {"nativeCreateImagePlanes",
+          "(ILandroid/graphics/GraphicBuffer;IIIIII)[Landroid/media/ImageReader$ImagePlane;",
+          (void*)ImageReader_createImagePlanes},
+         {"nativeUnlockGraphicBuffer", "(Landroid/graphics/GraphicBuffer;)V",
+          (void*)ImageReader_unlockGraphicBuffer},
+#endif
+         {"nativeDiscardFreeBuffers", "()V", (void*)ImageReader_discardFreeBuffers}};
 
 static const JNINativeMethod gImageMethods[] = {
-    {"nativeCreatePlanes",      "(IIJ)[Landroid/media/ImageReader$SurfaceImage$SurfacePlane;",
-                                                             (void*)Image_createSurfacePlanes },
-    {"nativeGetWidth",          "()I",                       (void*)Image_getWidth },
-    {"nativeGetHeight",         "()I",                       (void*)Image_getHeight },
-    {"nativeGetFormat",         "(I)I",                      (void*)Image_getFormat },
-    {"nativeGetFenceFd",        "()I",                       (void*)Image_getFenceFd },
-    {"nativeGetHardwareBuffer", "()Landroid/hardware/HardwareBuffer;",
-                                                             (void*)Image_getHardwareBuffer },
+        {"nativeCreatePlanes", "(IIJ)[Landroid/media/ImageReader$SurfaceImage$SurfacePlane;",
+         (void*)Image_createSurfacePlanes},
+        {"nativeGetWidth", "()I", (void*)Image_getWidth},
+        {"nativeGetHeight", "()I", (void*)Image_getHeight},
+        {"nativeGetFormat", "(I)I", (void*)Image_getFormat},
+        {"nativeGetFenceFd", "()I", (void*)Image_getFenceFd},
+#ifdef __ANDROID__
+        {"nativeGetHardwareBuffer", "()Landroid/hardware/HardwareBuffer;",
+         (void*)Image_getHardwareBuffer},
+#endif
 };
 
 int register_android_media_ImageReader(JNIEnv *env) {
+    int ret1 = RegisterMethodsOrDie(env, "android/media/ImageReader", gImageReaderMethods,
+                                    NELEM(gImageReaderMethods));
 
-    int ret1 = AndroidRuntime::registerNativeMethods(env,
-                   "android/media/ImageReader", gImageReaderMethods, NELEM(gImageReaderMethods));
-
-    int ret2 = AndroidRuntime::registerNativeMethods(env,
-                   "android/media/ImageReader$SurfaceImage", gImageMethods, NELEM(gImageMethods));
+    int ret2 = RegisterMethodsOrDie(env, "android/media/ImageReader$SurfaceImage", gImageMethods,
+                                    NELEM(gImageMethods));
 
     return (ret1 || ret2);
 }
diff --git a/core/jni/android_media_PublicFormatUtils.cpp b/core/jni/android_media_PublicFormatUtils.cpp
index 04494ad..bcdf654 100644
--- a/core/jni/android_media_PublicFormatUtils.cpp
+++ b/core/jni/android_media_PublicFormatUtils.cpp
@@ -16,10 +16,10 @@
 
 #define LOG_TAG "PublicFormatUtils_JNI"
 
-#include <utils/misc.h>
-#include <ui/PublicFormat.h>
-#include <android_runtime/AndroidRuntime.h>
 #include <jni.h>
+#include <jni_wrappers.h>
+#include <ui/PublicFormat.h>
+#include <utils/misc.h>
 
 using namespace android;
 
@@ -53,7 +53,6 @@
 };
 
 int register_android_media_PublicFormatUtils(JNIEnv *env) {
-    return AndroidRuntime::registerNativeMethods(env,
-             "android/media/PublicFormatUtils", gMethods, NELEM(gMethods));
+    return RegisterMethodsOrDie(env, "android/media/PublicFormatUtils", gMethods, NELEM(gMethods));
 }
 
diff --git a/core/jni/android_media_Utils.cpp b/core/jni/android_media_Utils.cpp
index e8f8644..e484141 100644
--- a/core/jni/android_media_Utils.cpp
+++ b/core/jni/android_media_Utils.cpp
@@ -19,10 +19,12 @@
 
 #include "android_media_Utils.h"
 
+#ifdef __ANDROID__ // Layoutlib does not support hardware
 #include <aidl/android/hardware/graphics/common/PixelFormat.h>
 #include <aidl/android/hardware/graphics/common/PlaneLayoutComponentType.h>
 #include <ui/GraphicBufferMapper.h>
 #include <ui/GraphicTypes.h>
+#endif
 #include <utils/Log.h>
 
 #define ALIGN(x, mask) ( ((x) + (mask) - 1) & ~((mask) - 1) )
@@ -34,7 +36,13 @@
 
 // -----------Utility functions used by ImageReader/Writer JNI-----------------
 
+#ifdef __ANDROID__
 using AidlPixelFormat = aidl::android::hardware::graphics::common::PixelFormat;
+#else
+namespace AidlPixelFormat {
+const int32_t YCBCR_P210 = 60;
+}
+#endif
 
 enum {
     IMAGE_MAX_NUM_PLANES = 3,
@@ -517,6 +525,7 @@
     return OK;
 }
 
+#ifdef __ANDROID__
 static status_t extractP010Gralloc4PlaneLayout(
         sp<GraphicBuffer> buffer, void *pData, int format, LockedImage *outputImage) {
     using aidl::android::hardware::graphics::common::PlaneLayoutComponent;
@@ -663,6 +672,7 @@
     outputImage->chromaStep = 4;
     return OK;
 }
+#endif
 
 status_t lockImageFromBuffer(sp<GraphicBuffer> buffer, uint32_t inUsage,
         const Rect& rect, int fenceFd, LockedImage* outputImage) {
@@ -701,6 +711,7 @@
             ALOGE("Lock buffer failed!");
             return res;
         }
+#ifdef __ANDROID__
         if (isPossibly10BitYUV(format)) {
             if (format == HAL_PIXEL_FORMAT_YCBCR_P010 &&
                 OK == extractP010Gralloc4PlaneLayout(buffer, pData, format, outputImage)) {
@@ -713,6 +724,7 @@
                 return OK;
             }
         }
+#endif
     }
 
     outputImage->data = reinterpret_cast<uint8_t*>(pData);
diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp
index a73ff42..1394b9f 100644
--- a/core/jni/android_util_AssetManager.cpp
+++ b/core/jni/android_util_AssetManager.cpp
@@ -409,19 +409,17 @@
     configs.push_back(configuration);
   }
 
-  uint32_t default_locale_int = 0;
+  std::optional<ResTable_config> default_locale_opt;
   if (default_locale != nullptr) {
-    ResTable_config config;
-    static_assert(std::is_same_v<decltype(config.locale), decltype(default_locale_int)>);
-    ScopedUtfChars locale_utf8(env, default_locale);
-    CHECK(locale_utf8.c_str() != nullptr);
-    config.setBcp47Locale(locale_utf8.c_str());
-    default_locale_int = config.locale;
+      ScopedUtfChars locale_utf8(env, default_locale);
+      CHECK(locale_utf8.c_str() != nullptr);
+      default_locale_opt.emplace();
+      default_locale_opt->setBcp47Locale(locale_utf8.c_str());
   }
 
   auto assetmanager = LockAndStartAssetManager(ptr);
   assetmanager->SetConfigurations(std::move(configs), force_refresh != JNI_FALSE);
-  assetmanager->SetDefaultLocale(default_locale_int);
+  assetmanager->SetDefaultLocale(default_locale_opt);
 }
 
 static void NativeSetOverlayConstraints(JNIEnv* /*env*/, jclass /*clazz*/, jlong ptr,
diff --git a/core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp b/core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp
index 8f36ecb..7d94ef8 100644
--- a/core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp
+++ b/core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp
@@ -116,17 +116,26 @@
     counter->reset();
 }
 
-static void native_getCounts(JNIEnv *env, jclass, jlong nativePtr, jlongArray values, jint state) {
+static bool native_getCounts(JNIEnv *env, jclass, jlong nativePtr, jlongArray values, jint state) {
     auto *counter = reinterpret_cast<LongArrayMultiStateCounter *>(nativePtr);
-    ScopedLongArrayRW scopedArray(env, values);
     auto *data = counter->getCount(state).data();
-    auto size = env->GetArrayLength(values);
-    auto *outData = scopedArray.get();
     if (data == nullptr) {
-        memset(outData, 0, size * sizeof(uint64_t));
-    } else {
-        memcpy(outData, data, size * sizeof(uint64_t));
+        return false;
     }
+    auto size = env->GetArrayLength(values);
+    bool allZeros = true;
+    for (int i = 0; i < size; i++) {
+        if (data[i]) {
+            allZeros = false;
+            break;
+        }
+    }
+    if (allZeros) {
+        return false;
+    }
+    ScopedLongArrayRW scopedArray(env, values);
+    memcpy(scopedArray.get(), data, size * sizeof(uint64_t));
+    return true;
 }
 
 static jobject native_toString(JNIEnv *env, jclass, jlong nativePtr) {
@@ -255,7 +264,7 @@
         // @CriticalNative
         {"native_reset", "(J)V", (void *)native_reset},
         // @FastNative
-        {"native_getCounts", "(J[JI)V", (void *)native_getCounts},
+        {"native_getCounts", "(J[JI)Z", (void *)native_getCounts},
         // @FastNative
         {"native_toString", "(J)Ljava/lang/String;", (void *)native_toString},
         // @FastNative
diff --git a/core/jni/jni_wrappers.h b/core/jni/jni_wrappers.h
index e3e17ee..1f44994 100644
--- a/core/jni/jni_wrappers.h
+++ b/core/jni/jni_wrappers.h
@@ -22,6 +22,8 @@
 #include <log/log.h>
 #include <nativehelper/JNIHelp.h>
 
+#include <string>
+
 namespace android {
 
 static inline jclass FindClassOrDie(JNIEnv* env, const char* class_name) {
diff --git a/core/jni/platform/host/HostRuntime.cpp b/core/jni/platform/host/HostRuntime.cpp
index 1a03283..746740b 100644
--- a/core/jni/platform/host/HostRuntime.cpp
+++ b/core/jni/platform/host/HostRuntime.cpp
@@ -48,6 +48,8 @@
  * (see AndroidRuntime.cpp).
  */
 
+extern int register_android_media_ImageReader(JNIEnv* env);
+extern int register_android_media_PublicFormatUtils(JNIEnv* env);
 extern int register_android_os_Binder(JNIEnv* env);
 extern int register_libcore_util_NativeAllocationRegistry(JNIEnv* env);
 
@@ -126,6 +128,10 @@
         {"android.database.sqlite.SQLiteDebug", REG_JNI(register_android_database_SQLiteDebug)},
         {"android.database.sqlite.SQLiteRawStatement",
          REG_JNI(register_android_database_SQLiteRawStatement)},
+#endif
+        {"android.media.ImageReader", REG_JNI(register_android_media_ImageReader)},
+        {"android.media.PublicFormatUtils", REG_JNI(register_android_media_PublicFormatUtils)},
+#ifdef __linux__
         {"android.os.Binder", REG_JNI(register_android_os_Binder)},
         {"android.os.FileObserver", REG_JNI(register_android_os_FileObserver)},
         {"android.os.MessageQueue", REG_JNI(register_android_os_MessageQueue)},
diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto
index 69c812c..34ec148 100644
--- a/core/proto/android/providers/settings/secure.proto
+++ b/core/proto/android/providers/settings/secure.proto
@@ -110,6 +110,7 @@
         // Settings for accessibility autoclick
         optional SettingProto autoclick_cursor_area_size = 62 [ (android.privacy).dest = DEST_AUTOMATIC ];
         optional SettingProto autoclick_ignore_minor_cursor_movement = 63 [ (android.privacy).dest = DEST_AUTOMATIC ];
+        optional SettingProto autoclick_panel_position = 64 [ (android.privacy).dest = DEST_AUTOMATIC ];
 
     }
     optional Accessibility accessibility = 2;
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 78526ad..ee6899c 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -7759,7 +7759,17 @@
          @FlaggedApi("com.android.server.telecom.flags.telecom_resolve_hidden_dependencies")
          @hide -->
     <permission android:name="android.permission.READ_BLOCKED_NUMBERS"
-                android:protectionLevel="signature" />
+                android:protectionLevel="signature"
+                android:featureFlag="!android.permission.flags.grant_read_blocked_numbers_to_system_ui_intelligence" />
+
+    <!-- Allows the holder to read blocked numbers. See
+         {@link android.provider.BlockedNumberContract}.
+         @SystemApi
+         @FlaggedApi("com.android.server.telecom.flags.telecom_resolve_hidden_dependencies")
+         @hide -->
+    <permission android:name="android.permission.READ_BLOCKED_NUMBERS"
+                android:protectionLevel="signature|role"
+                android:featureFlag="android.permission.flags.grant_read_blocked_numbers_to_system_ui_intelligence" />
 
     <!-- Allows the holder to write blocked numbers. See
          {@link android.provider.BlockedNumberContract}.
diff --git a/core/res/res/color-night/surface_effect_2_color.xml b/core/res/res/color-night/surface_effect_2_color.xml
new file mode 100644
index 0000000..6485017
--- /dev/null
+++ b/core/res/res/color-night/surface_effect_2_color.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  ~ Copyright (C) 2025 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.
+  -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@android:color/system_accent1_100"
+          android:alpha="0.15"/>
+</selector>
diff --git a/core/res/res/color-night/surface_effect_3_color.xml b/core/res/res/color-night/surface_effect_3_color.xml
new file mode 100644
index 0000000..a7a7f8d
--- /dev/null
+++ b/core/res/res/color-night/surface_effect_3_color.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  ~ Copyright (C) 2025 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.
+  -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@android:color/system_accent1_100"
+          android:alpha="0.10"/>
+</selector>
diff --git a/core/res/res/color/surface_effect_2_color.xml b/core/res/res/color/surface_effect_2_color.xml
new file mode 100644
index 0000000..91c8409
--- /dev/null
+++ b/core/res/res/color/surface_effect_2_color.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  ~ Copyright (C) 2025 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.
+  -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@android:color/system_accent1_0"
+          android:alpha="0.32"/>
+</selector>
diff --git a/core/res/res/color/surface_effect_3_color.xml b/core/res/res/color/surface_effect_3_color.xml
new file mode 100644
index 0000000..d766a32
--- /dev/null
+++ b/core/res/res/color/surface_effect_3_color.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  ~ Copyright (C) 2025 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.
+  -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@android:color/system_accent1_600"
+          android:alpha="0.15"/>
+</selector>
diff --git a/core/res/res/layout/miniresolver.xml b/core/res/res/layout/miniresolver.xml
index db1c779..fc0b494 100644
--- a/core/res/res/layout/miniresolver.xml
+++ b/core/res/res/layout/miniresolver.xml
@@ -103,7 +103,7 @@
         android:paddingBottom="@dimen/resolver_button_bar_spacing"
         android:orientation="vertical"
         android:background="?attr/colorBackground">
-        <RelativeLayout
+        <LinearLayout
             style="?attr/buttonBarStyle"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -121,8 +121,7 @@
                 android:id="@+id/use_same_profile_browser"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_alignParentStart="true"
-                android:layout_toStartOf="@id/button_open"
+                android:layout_weight="1"
                 android:layout_marginEnd="8dp"
                 android:background="@drawable/resolver_outlined_button_bg"
                 style="?android:attr/borderlessButtonStyle"
@@ -136,7 +135,7 @@
                 android:id="@+id/button_open"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_alignParentEnd="true"
+                android:layout_weight="1"
                 android:paddingHorizontal="16dp"
                 android:background="@drawable/resolver_button_bg"
                 style="?android:attr/borderlessButtonStyle"
@@ -145,6 +144,6 @@
                 android:textColor="@color/resolver_button_text"
                 android:text="@string/whichViewApplicationLabel"
             />
-        </RelativeLayout>
+        </LinearLayout>
     </LinearLayout>
 </com.android.internal.widget.ResolverDrawerLayout>
diff --git a/core/res/res/layout/notification_2025_conversation_header.xml b/core/res/res/layout/notification_2025_conversation_header.xml
index 1bde173..68096f8 100644
--- a/core/res/res/layout/notification_2025_conversation_header.xml
+++ b/core/res/res/layout/notification_2025_conversation_header.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2024 The Android Open Source Project
+  ~ Copyright (C) 2025 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.
@@ -15,157 +15,74 @@
   ~ limitations under the License
   -->
 
-<com.android.internal.widget.ConversationHeaderLinearLayout
+<!-- extends RelativeLayout -->
+<NotificationHeaderView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/conversation_header"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
+    android:id="@+id/notification_header"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/notification_2025_header_height"
+    android:clipChildren="false"
+    android:gravity="center_vertical"
     android:orientation="horizontal"
-    android:paddingTop="@dimen/notification_2025_margin"
+    android:theme="@style/Theme.DeviceDefault.Notification"
+    android:importantForAccessibility="no"
     >
 
-    <TextView
-        android:id="@+id/conversation_text"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Title"
-        android:textSize="16sp"
-        android:singleLine="true"
-        android:layout_weight="1"
-        />
-
-    <TextView
-        android:id="@+id/app_name_divider"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info"
-        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
-        android:text="@string/notification_header_divider_symbol"
-        android:singleLine="true"
-        android:visibility="gone"
-        />
-
-    <!-- App Name -->
-    <com.android.internal.widget.ObservableTextView
-        android:id="@+id/app_name_text"
-        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
-        android:singleLine="true"
-        android:visibility="gone"
-        />
-
-    <TextView
-        android:id="@+id/time_divider"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info"
-        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
-        android:text="@string/notification_header_divider_symbol"
-        android:singleLine="true"
-        android:visibility="gone"
-        />
-
-    <DateTimeView
-        android:id="@+id/time"
-        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Time"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
-        android:showRelative="true"
-        android:singleLine="true"
-        android:visibility="gone"
-        />
-
-    <ViewStub
-        android:id="@+id/chronometer"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
-        android:layout="@layout/notification_template_part_chronometer"
-        android:visibility="gone"
-        />
-
-    <TextView
-        android:id="@+id/verification_divider"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info"
-        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
-        android:text="@string/notification_header_divider_symbol"
-        android:singleLine="true"
-        android:visibility="gone"
-        />
-
     <ImageView
-        android:id="@+id/verification_icon"
-        android:layout_width="@dimen/notification_verification_icon_size"
-        android:layout_height="@dimen/notification_verification_icon_size"
-        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
-        android:baseline="10dp"
-        android:scaleType="fitCenter"
-        android:src="@drawable/ic_notifications_alerted"
+        android:id="@+id/left_icon"
+        android:layout_width="@dimen/notification_2025_left_icon_size"
+        android:layout_height="@dimen/notification_2025_left_icon_size"
+        android:layout_alignParentStart="true"
+        android:layout_margin="@dimen/notification_2025_margin"
+        android:background="@drawable/notification_large_icon_outline"
+        android:clipToOutline="true"
+        android:importantForAccessibility="no"
+        android:scaleType="centerCrop"
         android:visibility="gone"
         />
 
-    <TextView
-        android:id="@+id/verification_text"
-        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info"
+    <include layout="@layout/notification_2025_conversation_icon_container" />
+
+    <!-- extends ViewGroup -->
+    <NotificationTopLineView
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/notification_top_line"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
-        android:layout_weight="100"
-        android:showRelative="true"
-        android:singleLine="true"
-        android:visibility="gone"
+        android:layout_alignParentStart="true"
+        android:layout_toStartOf="@id/expand_button"
+        android:layout_alignWithParentIfMissing="true"
+        android:layout_marginVertical="@dimen/notification_2025_margin"
+        android:clipChildren="false"
+        android:gravity="center_vertical"
+        android:paddingStart="@dimen/notification_2025_content_margin_start"
+        android:theme="@style/Theme.DeviceDefault.Notification"
+        >
+
+        <include layout="@layout/notification_2025_top_line_views" />
+
+    </NotificationTopLineView>
+
+    <FrameLayout
+        android:id="@+id/alternate_expand_target"
+        android:layout_width="@dimen/notification_2025_content_margin_start"
+        android:layout_height="match_parent"
+        android:layout_alignParentStart="true"
+        android:importantForAccessibility="no"
+        android:focusable="false"
         />
 
-    <ImageButton
-        android:id="@+id/feedback"
-        android:layout_width="@dimen/notification_feedback_size"
-        android:layout_height="@dimen/notification_feedback_size"
-        android:layout_marginStart="@dimen/notification_header_separating_margin"
-        android:background="?android:selectableItemBackgroundBorderless"
-        android:contentDescription="@string/notification_feedback_indicator"
-        android:baseline="13dp"
-        android:scaleType="fitCenter"
-        android:src="@drawable/ic_feedback_indicator"
-        android:visibility="gone"
-        />
+    <include layout="@layout/notification_2025_expand_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="top|end"
+        android:layout_alignParentEnd="true" />
 
-    <ImageView
-        android:id="@+id/phishing_alert"
-        android:layout_width="@dimen/notification_2025_badge_size"
-        android:layout_height="@dimen/notification_2025_badge_size"
-        android:layout_marginStart="@dimen/notification_2025_badge_margin"
-        android:baseline="@dimen/notification_2025_badge_baseline"
-        android:scaleType="fitCenter"
-        android:src="@drawable/ic_dialog_alert_material"
-        android:visibility="gone"
-        android:contentDescription="@string/notification_phishing_alert_content_description"
-        />
+    <include layout="@layout/notification_close_button"
+        android:id="@+id/close_button"
+        android:layout_width="@dimen/notification_close_button_size"
+        android:layout_height="@dimen/notification_close_button_size"
+        android:layout_alignParentTop="true"
+        android:layout_alignParentEnd="true" />
 
-    <ImageView
-        android:id="@+id/profile_badge"
-        android:layout_width="@dimen/notification_2025_badge_size"
-        android:layout_height="@dimen/notification_2025_badge_size"
-        android:layout_marginStart="@dimen/notification_2025_badge_margin"
-        android:baseline="@dimen/notification_2025_badge_baseline"
-        android:scaleType="fitCenter"
-        android:visibility="gone"
-        android:contentDescription="@string/notification_work_profile_content_description"
-        />
-
-    <ImageView
-        android:id="@+id/alerted_icon"
-        android:layout_width="@dimen/notification_2025_badge_size"
-        android:layout_height="@dimen/notification_2025_badge_size"
-        android:layout_marginStart="@dimen/notification_2025_badge_margin"
-        android:baseline="@dimen/notification_2025_badge_baseline"
-        android:contentDescription="@string/notification_alerted_content_description"
-        android:scaleType="fitCenter"
-        android:src="@drawable/ic_notifications_alerted"
-        android:visibility="gone"
-        />
-</com.android.internal.widget.ConversationHeaderLinearLayout>
+</NotificationHeaderView>
diff --git a/core/res/res/layout/notification_2025_template_collapsed_call.xml b/core/res/res/layout/notification_2025_template_collapsed_call.xml
index 6f3c15a..ee691e4 100644
--- a/core/res/res/layout/notification_2025_template_collapsed_call.xml
+++ b/core/res/res/layout/notification_2025_template_collapsed_call.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?><!--
-  ~ Copyright (C) 2024 The Android Open Source Project
+  ~ Copyright (C) 2025 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.
@@ -25,55 +25,177 @@
     android:theme="@style/Theme.DeviceDefault.Notification"
     >
 
-    <!-- CallLayout shares visual appearance with ConversationLayout, so shares layouts -->
-    <include layout="@layout/notification_2025_conversation_icon_container" />
-
     <LinearLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:minHeight="@dimen/notification_2025_min_height"
-        android:orientation="horizontal"
+        android:clipChildren="false"
+        android:orientation="vertical"
         >
 
-        <LinearLayout
-            android:id="@+id/notification_main_column"
+        <com.android.internal.widget.NotificationMaxHeightFrameLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:layout_marginStart="@dimen/notification_2025_content_margin_start"
-            android:orientation="vertical"
-            android:paddingBottom="@dimen/notification_2025_margin"
+            android:minHeight="@dimen/notification_2025_min_height"
+            android:clipChildren="false"
             >
 
-            <include
-                layout="@layout/notification_2025_conversation_header"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
+            <ImageView
+                android:id="@+id/left_icon"
+                android:layout_width="@dimen/notification_2025_left_icon_size"
+                android:layout_height="@dimen/notification_2025_left_icon_size"
+                android:layout_alignParentStart="true"
+                android:layout_margin="@dimen/notification_2025_margin"
+                android:background="@drawable/notification_large_icon_outline"
+                android:clipToOutline="true"
+                android:importantForAccessibility="no"
+                android:scaleType="centerCrop"
+                android:visibility="gone"
                 />
 
-            <include layout="@layout/notification_template_text"
-                android:layout_height="wrap_content"
-                android:minHeight="@dimen/notification_text_height"
+            <!-- CallLayout shares visual appearance with ConversationLayout, so shares layouts -->
+            <include layout="@layout/notification_2025_conversation_icon_container" />
+
+            <FrameLayout
+                android:id="@+id/alternate_expand_target"
+                android:layout_width="@dimen/notification_2025_content_margin_start"
+                android:layout_height="match_parent"
+                android:layout_gravity="start"
+                android:importantForAccessibility="no"
+                android:focusable="false"
                 />
 
+            <LinearLayout
+                android:id="@+id/notification_headerless_view_row"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginStart="@dimen/notification_2025_content_margin_start"
+                android:orientation="horizontal"
+                android:clipChildren="false"
+                >
+
+                <LinearLayout
+                    android:id="@+id/notification_headerless_view_column"
+                    android:layout_width="0px"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:layout_weight="1"
+                    android:layout_marginBottom="@dimen/notification_2025_margin"
+                    android:layout_marginTop="@dimen/notification_2025_margin"
+                    android:clipChildren="false"
+                    android:orientation="vertical"
+                    >
+
+                    <NotificationTopLineView
+                        android:id="@+id/notification_top_line"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:minHeight="@dimen/notification_headerless_line_height"
+                        android:clipChildren="false"
+                        android:theme="@style/Theme.DeviceDefault.Notification"
+                        >
+
+                        <!--
+                        NOTE: The notification_2025_top_line_views layout contains the app_name_text.
+                        In order to include the title view at the beginning, the Notification.Builder
+                        has logic to hide that view whenever this title view is to be visible.
+                        -->
+
+                        <TextView
+                            android:id="@+id/title"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginEnd="@dimen/notification_header_separating_margin"
+                            android:ellipsize="end"
+                            android:fadingEdge="horizontal"
+                            android:singleLine="true"
+                            android:textAlignment="viewStart"
+                            android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Title"
+                            />
+
+                        <include layout="@layout/notification_2025_top_line_views" />
+
+                    </NotificationTopLineView>
+
+                    <LinearLayout
+                        android:id="@+id/notification_main_column"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical"
+                        android:clipChildren="false"
+                        >
+                        <com.android.internal.widget.NotificationVanishingFrameLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:minHeight="@dimen/notification_headerless_line_height"
+                            >
+                            <!-- This is the simplest way to keep this text vertically centered without
+                             gravity="center_vertical" which causes jumpiness in expansion animations. -->
+                            <include
+                                layout="@layout/notification_2025_text"
+                                android:layout_width="match_parent"
+                                android:layout_height="@dimen/notification_text_height"
+                                android:layout_gravity="center_vertical"
+                                android:layout_marginTop="0dp"
+                                />
+                        </com.android.internal.widget.NotificationVanishingFrameLayout>
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <ImageView
+                    android:id="@+id/right_icon"
+                    android:layout_width="@dimen/notification_right_icon_size"
+                    android:layout_height="@dimen/notification_right_icon_size"
+                    android:layout_gravity="center_vertical|end"
+                    android:layout_marginTop="@dimen/notification_right_icon_headerless_margin"
+                    android:layout_marginBottom="@dimen/notification_right_icon_headerless_margin"
+                    android:layout_marginStart="@dimen/notification_right_icon_content_margin"
+                    android:background="@drawable/notification_large_icon_outline"
+                    android:clipToOutline="true"
+                    android:importantForAccessibility="no"
+                    android:scaleType="centerCrop"
+                    />
+
+                <FrameLayout
+                    android:id="@+id/expand_button_touch_container"
+                    android:layout_width="wrap_content"
+                    android:layout_height="match_parent"
+                    android:minWidth="@dimen/notification_content_margin_end"
+                    >
+
+                    <include layout="@layout/notification_2025_expand_button"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="top|end"
+                        />
+
+                </FrameLayout>
+
+            </LinearLayout>
+
+            <include layout="@layout/notification_close_button"
+                android:id="@+id/close_button"
+                android:layout_width="@dimen/notification_close_button_size"
+                android:layout_height="@dimen/notification_close_button_size"
+                android:layout_gravity="top|end" />
+
+        </com.android.internal.widget.NotificationMaxHeightFrameLayout>
+
+        <LinearLayout
+            android:id="@+id/notification_action_list_margin_target"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="-20dp"
+            android:clipChildren="false"
+            android:orientation="vertical">
+            <include layout="@layout/notification_template_smart_reply_container"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/notification_content_margin"
+                android:layout_marginStart="@dimen/notification_2025_content_margin_start"
+                android:layout_marginEnd="@dimen/notification_content_margin_end" />
+            <include layout="@layout/notification_material_action_list" />
         </LinearLayout>
-
-        <FrameLayout
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:minWidth="@dimen/notification_content_margin_end"
-            >
-
-            <include
-                layout="@layout/notification_2025_expand_button"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="top|end"
-                />
-
-        </FrameLayout>
-
     </LinearLayout>
 
 </com.android.internal.widget.CallLayout>
diff --git a/core/res/res/layout/notification_2025_template_collapsed_conversation.xml b/core/res/res/layout/notification_2025_template_collapsed_conversation.xml
new file mode 100644
index 0000000..f804111
--- /dev/null
+++ b/core/res/res/layout/notification_2025_template_collapsed_conversation.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2025 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
+  -->
+
+<!-- extends FrameLayout -->
+<com.android.internal.widget.ConversationLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/status_bar_latest_event_content"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:clipChildren="false"
+    android:tag="conversation"
+    >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:clipChildren="false"
+        android:orientation="vertical"
+        >
+
+
+        <com.android.internal.widget.NotificationMaxHeightFrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:minHeight="@dimen/notification_2025_min_height"
+            android:clipChildren="false"
+            >
+
+            <ImageView
+                android:id="@+id/left_icon"
+                android:layout_width="@dimen/notification_2025_left_icon_size"
+                android:layout_height="@dimen/notification_2025_left_icon_size"
+                android:layout_alignParentStart="true"
+                android:layout_margin="@dimen/notification_2025_margin"
+                android:background="@drawable/notification_large_icon_outline"
+                android:clipToOutline="true"
+                android:importantForAccessibility="no"
+                android:scaleType="centerCrop"
+                android:visibility="gone"
+                />
+
+            <include layout="@layout/notification_2025_conversation_icon_container" />
+
+            <FrameLayout
+                android:id="@+id/alternate_expand_target"
+                android:layout_width="@dimen/notification_2025_content_margin_start"
+                android:layout_height="match_parent"
+                android:layout_gravity="start"
+                android:importantForAccessibility="no"
+                android:focusable="false"
+                />
+
+            <!--
+              NOTE: to make the expansion animation of id/notification_messaging happen vertically,
+              its X positioning must be the left edge of the notification, so instead of putting the
+              layout_marginStart on the id/notification_headerless_view_row, we put it on
+              id/notification_top_line, making the layout here just a bit different from the base.
+              -->
+            <LinearLayout
+                android:id="@+id/notification_headerless_view_row"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:orientation="horizontal"
+                android:clipChildren="false"
+                >
+
+                <!--
+                  NOTE: because messaging will always have 2 lines, this LinearLayout should NOT
+                  have the id/notification_headerless_view_column, as that is used for modifying
+                   vertical margins to accommodate the single-line state that base supports
+                  -->
+                <LinearLayout
+                    android:layout_width="0px"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:layout_weight="1"
+                    android:layout_marginBottom="@dimen/notification_2025_margin"
+                    android:layout_marginTop="@dimen/notification_2025_margin"
+                    android:layout_marginStart="@dimen/notification_2025_content_margin_start"
+                    android:clipChildren="false"
+                    android:orientation="vertical"
+                    >
+
+                    <NotificationTopLineView
+                        android:id="@+id/notification_top_line"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:minHeight="@dimen/notification_headerless_line_height"
+                        android:clipChildren="false"
+                        android:theme="@style/Theme.DeviceDefault.Notification"
+                        >
+
+                        <!--
+                        NOTE: The notification_2025_top_line_views layout contains the app_name_text.
+                        In order to include the title view at the beginning, the Notification.Builder
+                        has logic to hide that view whenever this title view is to be visible.
+                        -->
+
+                        <TextView
+                            android:id="@+id/title"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginEnd="@dimen/notification_header_separating_margin"
+                            android:ellipsize="end"
+                            android:fadingEdge="horizontal"
+                            android:singleLine="true"
+                            android:textAlignment="viewStart"
+                            android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Title"
+                            />
+
+                        <include layout="@layout/notification_2025_top_line_views" />
+
+                    </NotificationTopLineView>
+
+                    <LinearLayout
+                        android:id="@+id/notification_main_column"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical"
+                        android:clipChildren="false"
+                        >
+                        <com.android.internal.widget.MessagingLinearLayout
+                            android:id="@+id/notification_messaging"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:clipChildren="false"
+                            android:spacing="@dimen/notification_messaging_spacing" />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <!-- Images -->
+                <com.android.internal.widget.MessagingLinearLayout
+                    android:id="@+id/conversation_image_message_container"
+                    android:layout_width="@dimen/notification_right_icon_size"
+                    android:layout_height="@dimen/notification_right_icon_size"
+                    android:layout_gravity="center_vertical|end"
+                    android:layout_marginTop="@dimen/notification_right_icon_headerless_margin"
+                    android:layout_marginBottom="@dimen/notification_right_icon_headerless_margin"
+                    android:layout_marginStart="@dimen/notification_right_icon_content_margin"
+                    android:forceHasOverlappingRendering="false"
+                    android:spacing="0dp"
+                    android:clipChildren="false"
+                    android:visibility="gone"
+                    />
+
+                <ImageView
+                    android:id="@+id/right_icon"
+                    android:layout_width="@dimen/notification_right_icon_size"
+                    android:layout_height="@dimen/notification_right_icon_size"
+                    android:layout_gravity="center_vertical|end"
+                    android:layout_marginTop="@dimen/notification_right_icon_headerless_margin"
+                    android:layout_marginBottom="@dimen/notification_right_icon_headerless_margin"
+                    android:layout_marginStart="@dimen/notification_right_icon_content_margin"
+                    android:background="@drawable/notification_large_icon_outline"
+                    android:clipToOutline="true"
+                    android:importantForAccessibility="no"
+                    android:scaleType="centerCrop"
+                    />
+
+                <FrameLayout
+                    android:id="@+id/expand_button_touch_container"
+                    android:layout_width="wrap_content"
+                    android:layout_height="match_parent"
+                    android:minWidth="@dimen/notification_content_margin_end"
+                    >
+
+                    <include layout="@layout/notification_2025_expand_button"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="top|end"
+                        />
+
+                </FrameLayout>
+
+            </LinearLayout>
+
+            <include layout="@layout/notification_close_button"
+                android:id="@+id/close_button"
+                android:layout_width="@dimen/notification_close_button_size"
+                android:layout_height="@dimen/notification_close_button_size"
+                android:layout_gravity="top|end" />
+
+        </com.android.internal.widget.NotificationMaxHeightFrameLayout>
+
+    <LinearLayout
+            android:id="@+id/notification_action_list_margin_target"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="-20dp"
+            android:clipChildren="false"
+            android:orientation="vertical">
+        <include layout="@layout/notification_template_smart_reply_container"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/notification_content_margin"
+                android:layout_marginStart="@dimen/notification_2025_content_margin_start"
+                android:layout_marginEnd="@dimen/notification_content_margin_end" />
+        <include layout="@layout/notification_material_action_list" />
+    </LinearLayout>
+</LinearLayout>
+</com.android.internal.widget.ConversationLayout>
diff --git a/core/res/res/layout/notification_2025_template_conversation.xml b/core/res/res/layout/notification_2025_template_conversation.xml
deleted file mode 100644
index 24b6ad0..0000000
--- a/core/res/res/layout/notification_2025_template_conversation.xml
+++ /dev/null
@@ -1,159 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2024 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
-  -->
-
-<!-- extends FrameLayout -->
-<com.android.internal.widget.ConversationLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/status_bar_latest_event_content"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:clipChildren="false"
-    android:tag="conversation"
-    android:theme="@style/Theme.DeviceDefault.Notification"
-    >
-
-    <include layout="@layout/notification_2025_conversation_icon_container" />
-
-    <!-- Wraps entire "expandable" notification -->
-    <com.android.internal.widget.RemeasuringLinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="top"
-        android:clipToPadding="false"
-        android:clipChildren="false"
-        android:orientation="vertical"
-        >
-        <!-- LinearLayout for Expand Button-->
-        <com.android.internal.widget.RemeasuringLinearLayout
-            android:id="@+id/expand_button_and_content_container"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:gravity="start|top"
-            android:orientation="horizontal"
-            android:clipChildren="false"
-            android:clipToPadding="false">
-            <!--TODO: move this into a separate layout and share logic with the header to bring back app opps etc-->
-            <com.android.internal.widget.RemeasuringLinearLayout
-                android:id="@+id/notification_action_list_margin_target"
-                android:layout_width="0dp"
-                android:orientation="vertical"
-                android:layout_height="wrap_content"
-                android:layout_weight="1">
-
-                <!-- Header -->
-
-                <!-- Use layout_marginStart instead of paddingStart to work around strange
-                     measurement behavior on lower display densities. -->
-                <include
-                    layout="@layout/notification_2025_conversation_header"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginBottom="2dp"
-                    android:layout_marginStart="@dimen/notification_2025_content_margin_start"
-                    />
-
-                <!-- Messages -->
-                <com.android.internal.widget.MessagingLinearLayout
-                    android:id="@+id/notification_messaging"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:minHeight="@dimen/notification_text_size"
-                    android:spacing="@dimen/notification_messaging_spacing"
-                    android:clipToPadding="false"
-                    android:clipChildren="false"
-                    />
-            </com.android.internal.widget.RemeasuringLinearLayout>
-
-            <!-- This is where the expand button container will be placed when collapsed-->
-        </com.android.internal.widget.RemeasuringLinearLayout>
-
-        <include layout="@layout/notification_template_smart_reply_container"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="@dimen/notification_content_margin"
-            android:layout_marginStart="@dimen/notification_2025_content_margin_start"
-            android:layout_marginEnd="@dimen/notification_content_margin_end" />
-        <include layout="@layout/notification_material_action_list" />
-    </com.android.internal.widget.RemeasuringLinearLayout>
-
-    <!--expand_button_a11y_container ensures talkback focus order is correct when view is expanded.
-    The -1px of marginTop and 1px of paddingTop make sure expand_button_a11y_container is prior to
-    its sibling view in accessibility focus order.
-    {see android.view.ViewGroup.addChildrenForAccessibility()}
-    expand_button_container will be moved under expand_button_and_content_container when collapsed,
-    this dynamic movement ensures message can flow under expand button when expanded-->
-    <FrameLayout
-        android:id="@+id/expand_button_a11y_container"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="end|top"
-        android:clipChildren="false"
-        android:clipToPadding="false"
-        android:layout_marginTop="-1px"
-        android:paddingTop="1px"
-        >
-        <!--expand_button_container is dynamically placed between here and at the end of the
-        layout. It starts here since only FrameLayout layout params have gravity-->
-        <LinearLayout
-            android:id="@+id/expand_button_container"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:layout_gravity="end|top"
-            android:clipChildren="false"
-            android:clipToPadding="false"
-            android:orientation="vertical">
-            <include layout="@layout/notification_close_button"
-                android:layout_width="@dimen/notification_close_button_size"
-                android:layout_height="@dimen/notification_close_button_size"
-                android:layout_gravity="end"
-                android:layout_marginEnd="20dp"
-                />
-            <!--expand_button_touch_container makes sure that we can nicely center the expand
-            content in the collapsed layout while the parent makes sure that we're never laid out
-            bigger than the messaging content.-->
-            <LinearLayout
-                android:id="@+id/expand_button_touch_container"
-                android:layout_width="wrap_content"
-                android:layout_height="@dimen/conversation_expand_button_height"
-                android:orientation="horizontal"
-                android:layout_gravity="end|top"
-                android:paddingEnd="0dp"
-                android:clipToPadding="false"
-                android:clipChildren="false"
-                >
-                <!-- Images -->
-                <com.android.internal.widget.MessagingLinearLayout
-                    android:id="@+id/conversation_image_message_container"
-                    android:forceHasOverlappingRendering="false"
-                    android:layout_width="40dp"
-                    android:layout_height="40dp"
-                    android:layout_marginStart="@dimen/conversation_image_start_margin"
-                    android:spacing="0dp"
-                    android:layout_gravity="center"
-                    android:clipToPadding="false"
-                    android:clipChildren="false"
-                    />
-                <include layout="@layout/notification_2025_expand_button"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="top|end"
-                    />
-            </LinearLayout>
-        </LinearLayout>
-    </FrameLayout>
-</com.android.internal.widget.ConversationLayout>
diff --git a/core/res/res/layout/notification_2025_template_expanded_call.xml b/core/res/res/layout/notification_2025_template_expanded_call.xml
index 0be6125..bbc2966 100644
--- a/core/res/res/layout/notification_2025_template_expanded_call.xml
+++ b/core/res/res/layout/notification_2025_template_expanded_call.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2024 The Android Open Source Project
+  ~ Copyright (C) 2025 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.
@@ -27,83 +27,47 @@
     >
 
     <!-- CallLayout shares visual appearance with ConversationLayout, so shares layouts -->
-    <include layout="@layout/notification_2025_conversation_icon_container" />
+    <include layout="@layout/notification_2025_conversation_header"/>
 
-    <LinearLayout
+    <com.android.internal.widget.RemeasuringLinearLayout
         android:id="@+id/notification_action_list_margin_target"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginBottom="@dimen/notification_content_margin"
-        android:orientation="vertical"
-        >
+        android:layout_gravity="top"
+        android:clipChildren="false"
+        android:orientation="vertical">
 
-        <LinearLayout
+        <!-- Note: the top margin is being set in code based on the estimated space needed for
+        the header text. -->
+        <com.android.internal.widget.RemeasuringLinearLayout
+            android:id="@+id/notification_main_column"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:layout_gravity="top"
             android:layout_weight="1"
-            android:orientation="horizontal"
-            >
-
-            <LinearLayout
-                android:id="@+id/notification_main_column"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="@dimen/notification_2025_content_margin_start"
-                android:layout_weight="1"
-                android:orientation="vertical"
-                android:minHeight="68dp"
-                >
-
-                <include
-                    layout="@layout/notification_2025_conversation_header"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    />
-
-                <include layout="@layout/notification_template_text_multiline" />
-
-                <include
-                    android:layout_width="match_parent"
-                    android:layout_height="@dimen/notification_progress_bar_height"
-                    android:layout_marginTop="@dimen/notification_progress_margin_top"
-                    layout="@layout/notification_template_progress"
-                    />
-            </LinearLayout>
-
-            <FrameLayout
-                android:layout_width="wrap_content"
-                android:layout_height="match_parent"
-                android:minWidth="@dimen/notification_content_margin_end"
-                >
-
-                <include
-                    layout="@layout/notification_expand_button"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    />
-
-            </FrameLayout>
-
-        </LinearLayout>
-
-        <ViewStub
-            android:layout="@layout/notification_material_reply_text"
-            android:id="@+id/notification_material_reply_container"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            />
-
-        <include
-            layout="@layout/notification_template_smart_reply_container"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
             android:layout_marginStart="@dimen/notification_2025_content_margin_start"
             android:layout_marginEnd="@dimen/notification_content_margin_end"
+            android:orientation="vertical"
+            android:clipChildren="false"
+            >
+
+            <include layout="@layout/notification_template_part_line1"/>
+
+            <include layout="@layout/notification_template_text_multiline" />
+
+        </com.android.internal.widget.RemeasuringLinearLayout>
+
+        <include layout="@layout/notification_template_smart_reply_container"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
             android:layout_marginTop="@dimen/notification_content_margin"
-            />
+            android:layout_marginStart="@dimen/notification_2025_content_margin_start"
+            android:layout_marginEnd="@dimen/notification_content_margin_end" />
 
         <include layout="@layout/notification_material_action_list" />
 
-    </LinearLayout>
+    </com.android.internal.widget.RemeasuringLinearLayout>
+
+    <include layout="@layout/notification_template_right_icon" />
 
 </com.android.internal.widget.CallLayout>
diff --git a/core/res/res/layout/notification_2025_template_expanded_conversation.xml b/core/res/res/layout/notification_2025_template_expanded_conversation.xml
new file mode 100644
index 0000000..d7e8bb3
--- /dev/null
+++ b/core/res/res/layout/notification_2025_template_expanded_conversation.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2025 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
+  -->
+
+<!-- extends FrameLayout -->
+<com.android.internal.widget.ConversationLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/status_bar_latest_event_content"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:clipToPadding="false"
+    android:clipChildren="false"
+    android:tag="conversation"
+    >
+
+    <include layout="@layout/notification_2025_conversation_header"/>
+
+    <com.android.internal.widget.RemeasuringLinearLayout
+            android:id="@+id/notification_action_list_margin_target"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="top"
+            android:clipChildren="false"
+            android:orientation="vertical">
+
+        <!-- Note: the top margin is being set in code based on the estimated space needed for
+        the header text. -->
+        <com.android.internal.widget.RemeasuringLinearLayout
+            android:id="@+id/notification_main_column"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="top"
+            android:layout_weight="1"
+            android:layout_marginEnd="@dimen/notification_content_margin_end"
+            android:orientation="vertical"
+            android:clipChildren="false"
+            >
+
+            <include layout="@layout/notification_template_part_line1"/>
+
+            <com.android.internal.widget.MessagingLinearLayout
+                android:id="@+id/notification_messaging"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:clipChildren="false"
+                android:spacing="@dimen/notification_messaging_spacing" />
+        </com.android.internal.widget.RemeasuringLinearLayout>
+
+        <include layout="@layout/notification_template_smart_reply_container"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/notification_content_margin"
+                android:layout_marginStart="@dimen/notification_2025_content_margin_start"
+                android:layout_marginEnd="@dimen/notification_content_margin_end" />
+
+        <include layout="@layout/notification_material_action_list" />
+
+    </com.android.internal.widget.RemeasuringLinearLayout>
+
+    <include layout="@layout/notification_template_right_icon" />
+
+</com.android.internal.widget.ConversationLayout>
diff --git a/core/res/res/layout/notification_2025_template_expanded_messaging.xml b/core/res/res/layout/notification_2025_template_expanded_messaging.xml
index 177706c..20abfee 100644
--- a/core/res/res/layout/notification_2025_template_expanded_messaging.xml
+++ b/core/res/res/layout/notification_2025_template_expanded_messaging.xml
@@ -36,17 +36,21 @@
             android:clipChildren="false"
             android:orientation="vertical">
 
+        <!-- Note: the top margin is being set in code based on the estimated space needed for
+        the header text. -->
         <com.android.internal.widget.RemeasuringLinearLayout
             android:id="@+id/notification_main_column"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_gravity="top"
             android:layout_weight="1"
-            android:layout_marginTop="@dimen/notification_2025_header_height"
             android:layout_marginEnd="@dimen/notification_content_margin_end"
             android:orientation="vertical"
             android:clipChildren="false"
             >
+
+            <include layout="@layout/notification_template_part_line1"/>
+
             <com.android.internal.widget.MessagingLinearLayout
                 android:id="@+id/notification_messaging"
                 android:layout_width="match_parent"
diff --git a/core/res/res/layout/notification_2025_template_header.xml b/core/res/res/layout/notification_2025_template_header.xml
index 5aae678..72b3798 100644
--- a/core/res/res/layout/notification_2025_template_header.xml
+++ b/core/res/res/layout/notification_2025_template_header.xml
@@ -59,7 +59,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentStart="true"
-        android:layout_toStartOf="@id/expand_button_container"
+        android:layout_toStartOf="@id/expand_button"
         android:layout_alignWithParentIfMissing="true"
         android:layout_marginVertical="@dimen/notification_2025_margin"
         android:clipChildren="false"
@@ -81,30 +81,12 @@
         android:focusable="false"
         />
 
-
-    <LinearLayout
-        android:id="@+id/expand_button_container"
+    <include layout="@layout/notification_2025_expand_button"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_alignParentEnd="true"
-        android:orientation="vertical"
-        >
-        <FrameLayout
-            android:id="@+id/expand_button_spacer"
-            android:layout_width="@dimen/notification_2025_expand_button_pill_width"
-            android:layout_height="@dimen/notification_2025_expand_button_pill_height"
-            android:layout_centerVertical="true"
-            android:layout_alignParentEnd="true"
-            android:layout_margin="@dimen/notification_2025_margin"
-            android:visibility="gone" />
+        android:layout_gravity="top|end"
+        android:layout_alignParentEnd="true" />
 
-        <include layout="@layout/notification_2025_expand_button"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="top|end"
-            android:layout_alignParentEnd="true" />
-
-    </LinearLayout>
     <include layout="@layout/notification_close_button"
         android:id="@+id/close_button"
         android:layout_width="@dimen/notification_close_button_size"
diff --git a/core/res/res/layout/notification_2025_top_line_views.xml b/core/res/res/layout/notification_2025_top_line_views.xml
index 7487346..7431c42 100644
--- a/core/res/res/layout/notification_2025_top_line_views.xml
+++ b/core/res/res/layout/notification_2025_top_line_views.xml
@@ -20,7 +20,7 @@
 <merge
     xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <TextView
+    <com.android.internal.widget.ObservableTextView
         android:id="@+id/app_name_text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
@@ -108,6 +108,42 @@
         android:visibility="gone"
         />
 
+    <TextView
+        android:id="@+id/verification_divider"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info"
+        android:layout_marginStart="@dimen/notification_header_separating_margin"
+        android:layout_marginEnd="@dimen/notification_header_separating_margin"
+        android:text="@string/notification_header_divider_symbol"
+        android:singleLine="true"
+        android:visibility="gone"
+        />
+
+    <ImageView
+        android:id="@+id/verification_icon"
+        android:layout_width="@dimen/notification_2025_badge_size"
+        android:layout_height="@dimen/notification_2025_badge_size"
+        android:layout_marginStart="@dimen/notification_header_separating_margin"
+        android:layout_marginEnd="@dimen/notification_header_separating_margin"
+        android:baseline="@dimen/notification_2025_badge_baseline"
+        android:scaleType="fitCenter"
+        android:visibility="gone"
+        />
+
+    <TextView
+        android:id="@+id/verification_text"
+        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="@dimen/notification_header_separating_margin"
+        android:layout_marginEnd="@dimen/notification_header_separating_margin"
+        android:layout_weight="100"
+        android:showRelative="true"
+        android:singleLine="true"
+        android:visibility="gone"
+        />
+
     <ImageButton
         android:id="@+id/feedback"
         android:layout_width="@dimen/notification_feedback_size"
diff --git a/core/res/res/layout/notification_template_header.xml b/core/res/res/layout/notification_template_header.xml
index b7fd737..5795936 100644
--- a/core/res/res/layout/notification_template_header.xml
+++ b/core/res/res/layout/notification_template_header.xml
@@ -62,7 +62,7 @@
         android:layout_height="match_parent"
         android:layout_alignParentStart="true"
         android:layout_centerVertical="true"
-        android:layout_toStartOf="@id/expand_button_container"
+        android:layout_toStartOf="@id/expand_button"
         android:layout_alignWithParentIfMissing="true"
         android:clipChildren="false"
         android:gravity="center_vertical"
@@ -83,28 +83,12 @@
         android:focusable="false"
         />
 
-    <LinearLayout
-        android:id="@+id/expand_button_container"
+    <include layout="@layout/notification_expand_button"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_alignParentEnd="true"
-        android:orientation="vertical"
-        >
-        <FrameLayout
-            android:id="@+id/expand_button_spacer"
-            android:layout_width="@dimen/notification_expand_button_pill_height"
-            android:layout_height="@dimen/notification_header_height"
-            android:layout_centerVertical="true"
-            android:layout_alignParentEnd="true"
-            android:layout_marginHorizontal="16dp"
-            android:visibility="gone" />
+        android:layout_centerVertical="true"
+        android:layout_alignParentEnd="true" />
 
-        <include layout="@layout/notification_expand_button"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_centerVertical="true"
-            android:layout_alignParentEnd="true" />
-    </LinearLayout>
     <include layout="@layout/notification_close_button"
         android:id="@+id/close_button"
         android:layout_width="@dimen/notification_close_button_size"
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 788d5f7..3203195 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"toegang te verkry tot sensordata oor jou lewenstekens"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Kennisgewings"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"wys kennisgewings"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"UR-nasporingdata"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"toegang tot UR-data oor jou en die omgewing rondom jou te verkry"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"sensitiewe UR-nasporingdata"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"toegang tot sensitiewe nasporingdata, soos oogblik, te verkry"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Venster-inhoud ophaal"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Die inhoud ondersoek van \'n venster waarmee jy interaksie het."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Verken-met-raak aanskakel"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Laat die app toe om jou fotoversameling te wysig."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"lees liggings in jou mediaversameling"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Laat die app toe om liggings in jou mediaversameling te lees."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"jou benaderde oogblik na te spoor"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Laat die app toe om jou benaderde oogblik na te spoor."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"waar jy kyk na te spoor"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Gee die app toegang tot presiese oogblikdata."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"jou gesig na te spoor"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Gee die app toegang tot gesignasporingdata."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"jou hande na te spoor"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Gee die app toegang tot handbewegingnasporingdata."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"jou kop na te spoor"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Gee die app toegang tot kopsporingdata."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"jou onmiddellike omgewing te verstaan"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Gee die app toegang tot nasporingdata oor die omgewing direk rondom jou."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"jou onmiddellike omgewing in fyn detail te verstaan"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Gee die app toegang tot hoogs gedetailleerde spoordata oor die omgewing direk rondom jou."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"toegang tot UR-data te verkry terwyl dit nie op die voorgrond is nie"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Gee die app toegang tot UR-data terwyl dit nie in die voorgrond is nie."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Gebruik biometrie"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Gebruik biometrie of skermslot"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verifieer dat dit jy is"</string>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index ca145e5..f4dabdb 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"ስለአስፈላጊ ምልክቶችዎ ያሉ የዳሳሽ ውሂብ ይድረሱ"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"ማሳወቂያዎች"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"ማሳወቂያዎች አሳይ"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR የመከታተያ ውሂብ"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"ስለ እርስዎ እና በዙሪያዎ ስላለው አካባቢ XR ውሂብ ይድረሱ"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"ልዩ ጥንቃቄ የሚያስፈልገው XR የመከታተያ ውሂብ"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"እንደ የዓይን ትኩረት ያለ ልዩ ጥንቃቄ የሚያስፈልገው የመከታተያ ውሂብ ይድረሱ"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"የመስኮት ይዘት ሰርስረው ያውጡ"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"መስተጋበር የሚፈጥሩት የመስኮት ይዘት ይመርምሩ።"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"በመንካት ያስሱን ያብሩ"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"መተግበሪያው የፎቶ ስብስብዎን እንዲቀይረው ያስችለዋል።"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"አካባቢዎችን ከሚዲያ ስብስብዎ ማንበብ"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"መተግበሪያው አካባቢዎችን ከሚዲያ ስብስብዎ እንዲያነብብ ያስችለዋል።"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"የእርዎን ግምታዊ የዓይን ትኩረት ይከታተሉ"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"መተግበሪያው የእርስዎን ግምታዊ የዓይን ትኩረት እንዲከታተል ይፈቅዳል።"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"የሚመልከቱበትን ቦታ ይከታተሉ"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"መተግበሪያው ትክክለኛ የዓይን ትኩረት ውሂብን እንዲከታተል ይፈቅዳል።"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"መልክዎን ይከታተሉ"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"መተግበሪያው የመልክ መከታተያ ውሂብን እንዲደርስ ይፈቅዳል።"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"እጆችዎን ይከታተሉ"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"መተግበሪያው የእጅ ክትትል ውሂብን እንዲደርስ ይፈቅዳል።"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"ጭንቅላትዎን ይከታተሉ"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"መተግበሪያው የጭንቅላት መከታተያ ውሂብን እንዲደርስ ይፈቅዳል።"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"የእርስዎን ቅርብ አካባቢ ይረዱ"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"መተግበሪያው በቀጥታ በዙሪያዎ ስላለው አካባቢ ውሂብ መከታተልን እንዲደርስ ይፈቅዳል።"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"የእርስዎን ቅርብ አካባቢ በከፍተኛ ዝርዝር ይረዱ"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"መተግበሪያው በቀጥታ በዙሪያዎ ስላለው አካባቢ በከፍተኛ ዝርዝር የመከታተያ ውሂብ እንዲደርስ ይፈቅዳል።"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"የፊት ገፅ ውስጥ ሳይሆን ሳለ XR ውሂብ ይድረሱ"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"መተግበሪያው የፊት ገፅ ውስጥ ሳይሆን XR ውሂብ እንዲደርስ ይፈቅዳል።"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"ባዮሜትሪኮችን ይጠቀሙ"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"ባዮሜትሪክስ ወይም ማያ ገፅ መቆለፊያን ይጠቀሙ"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"እርስዎን መሆንዎን ያረጋግጡ"</string>
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index 397afe2..2b9a20a 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"আপোনাৰ দেহৰ গুৰুত্বপূৰ্ণ অংগসমূহৰ অৱস্থাৰ বিষয়ে ছেন্সৰৰ ডেটা লাভ কৰিব পাৰে"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"জাননী"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"জাননী দেখুৱাওক"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR ট্ৰেকিং ডেটা"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"আপোনাৰ আৰু আপোনাৰ চৌপাশৰ পৰিৱেশ সম্পৰ্কীয় XR ডেটা এক্সেছ কৰা"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"সংবেদনশীল XR ট্ৰেকিং ডেটা"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"চকুৰ দৃষ্টিৰ দৰে সংবেদনশীল ট্ৰেকিং ডেটা এক্সেছ কৰা"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"ৱিণ্ড’ সমল বিচাৰি উলিওৱাৰ"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"আপুনি চাই থকা ৱিণ্ড’খনৰ সমল পৰীক্ষা কৰাৰ।"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"স্পৰ্শৰ দ্বাৰা অন্বেষণ কৰাৰ সুবিধা অন কৰাৰ"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"এপক আপোনাৰ ফট’ সংগ্ৰহ সালসলনি কৰিবলৈ দিয়ে।"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"আপোনাৰ মিডিয়া সংগ্ৰহৰ অৱস্থান পঢ়িবলৈ"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"এপক আপোনাৰ মিডিয়া সংগ্ৰহৰ অৱস্থান পঢ়িবলৈ দিয়ে।"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"আপোনাৰ আনুমানিক চকুৰ দৃষ্টি ট্ৰেক কৰা"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"এপ্‌টোক আপোনাৰ চকুৰ আনুমানিক দৃষ্টি ট্ৰেক কৰিবলৈ দিয়ে।"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"আপুনি কোনফালে চাই আছে সেয়া ট্ৰেক কৰা"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"এপ্‌টোক আপোনাৰ চকুৰ সঠিক দৃষ্টি সম্পৰ্কীয় ডেটা এক্সেছ কৰিবলৈ দিয়ে।"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"আপোনাৰ মুখাৱয়ব ট্ৰেক কৰা"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"এপ্‌টোক মুখাৱয়ব ট্ৰেক কৰাৰ ডেটা এক্সেছ কৰিবলৈ দিয়ে।"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"আপোনাৰ হাত ট্ৰেক কৰা"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"এপ্‌টোক হাতৰ ট্ৰেকিং সম্পৰ্কীয় ডেটা এক্সেছ কৰিবলৈ দিয়ে।"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"আপোনাৰ মূৰ ট্ৰেক কৰা"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"এপ্‌টোক হে’ড ট্ৰেকিং সম্পৰ্কীয় ডেটা এক্সেছ কৰিবলৈ দিয়ে।"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"আপোনাৰ একেবাৰেই আশ-পাশৰ পৰিৱেশ বুজা"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"এপ্‌টোক আপোনাৰ একেবাৰেই আশা-পাশৰ পৰিৱেশ সম্পৰ্কীয় ট্ৰেকিং ডেটা এক্সেছ কৰিবলৈ দিয়ে।"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"বিস্তৃত সবিশেষৰ সৈতে আপোনাৰ একেবাৰেই আশ-পাশৰ পৰিৱেশ বুজা"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"এপ্‌টোক বিতং সবিশেষৰ সৈতে আপোনাৰ একেবাৰেই আশা-পাশৰ পৰিৱেশ সম্পৰ্কীয় ট্ৰেকিং ডেটা এক্সেছ কৰিবলৈ দিয়ে।"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"অগ্ৰভূমিত নথকাৰ সময়ত XR ডেটা এক্সেছ কৰা"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"অগ্ৰভূমিত নথকাৰ সময়ত এপ্‌টোক XR ডেটা এক্সেছ কৰিবলৈ দিয়ে।"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"বায়\'মেট্ৰিক ব্যৱহাৰ কৰক"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"বায়\'মেট্ৰিক অথবা স্ক্ৰীন লক ব্যৱহাৰ কৰক"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"এইয়া আপুনিয়েই বুলি সত্যাপন কৰক"</string>
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index 96c77e4..e5bfb29 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"Həyati əlamətlər haqqında sensor dataya daxil olun"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Bildirişlər"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"bildirişləri göstərmək"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR izləmə datası"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"siz və ətrafınızdakı mühit haqqında XR datasına giriş"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"həssas XR izləmə datası"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"baxış kimi həssas izləmə datasına giriş"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Pəncərənin məzmununu əldə edin"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Əlaqədə olduğunuz pəncərənin məzmununu nəzərdən keçirin."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Toxunuşla öyrənmə funksiyasını aktiv edin"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Tətbiqin foto kolleksiyanıza düzəliş etməsinə icazə verir."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"media kolleksiyanızdan məkanları oxuyun"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Tətbiqin media kolleksiyanızdan məkanları oxumasına icazə verin."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"təxmini baxışınızı izləmək"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Tətbiqə təxmini baxışınızı izləmək icazəsi verir."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"baxdığınız yeri izləmək"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Tətbiqə dəqiq baxış datasına daxil olmaq icazəsi verir."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"üzünüzü izləmək"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Tətbiqə üz izləmə datasına daxil olmaq icazəsi verir."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"əllərinizi izləmək"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Tətbiqə əl izləmə datasına daxil olmaq icazəsi verir."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"başınızı izləmək"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Tətbiqə baş izləmə datasına daxil olmaq icazəsi verir."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"yaxın ətrafınızı anlamaq"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Tətbiqə ətrafınızdakı mühit haqqında izləmə datasına daxil olmaq icazəsi verir."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"yaxın ətrafınızı yüksək detallarla anlamaq"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Tətbiqə çox yüksək detallar ilə ətrafınızdakı mühit haqqında izləmə datasına daxil olmaq icazəsi verir."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"ön planda olmadıqda XR datasına giriş"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Tətbiqə ön planda olmadıqda XR datasına daxil olmaq icazəsi verir."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Biometrik məlumatlardan istifadə edin"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Biometrik məlumatlardan və ya ekran kilidindən istifadə edin"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Kimliyinizi doğrulayın"</string>
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index 6a68f8d..3e67233 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"pristupa podacima senzora o vitalnim funkcijama"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Obaveštenja"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"prikazivanje obaveštenja"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"podaci o praćenju proširene stvarnosti"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"pristupa podacima proširene stvarnosti o vama i okruženju oko vas"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"osetljivi podaci o XR praćenju"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"pristupa osetljivim podacima o praćenju, na primer podacima o pogledu"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"da preuzima sadržaj prozora"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Proverava sadržaj prozora sa kojim ostvarujete interakciju."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"da uključi Istraživanja dodirom"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Dozvoljava aplikaciji da menja kolekciju slika."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"čitanje lokacija iz medijske kolekcije"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Dozvoljava aplikaciji da čita lokacije iz medijske kolekcije."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"praćenje približnih podataka o pogledu"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Dozvoljava aplikaciji da prati približne podatke o pogledu."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"praćenje pogleda"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Dozvoljava aplikaciji da pristupa preciznim podacima o pogledu."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"praćenje lica"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Dozvoljava aplikaciji da pristupa podacima o praćenju lica."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"praćenje ruku"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Dozvoljava aplikaciji da pristupa podacima o praćenju ruku."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"praćenje glave"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Dozvoljava aplikaciji da pristupa podacima o praćenju glave."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"razumevanje neposrednog okruženja"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Dozvoljava aplikaciji da pristupa podacima o praćenju vašeg neposrednog okruženja."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"razumevanje neposrednog okruženja sa mnoštvom detalja"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Dozvoljava aplikaciji da pristupa podacima o praćenju vašeg neposrednog okruženja koji sadrže mnoštvo detalja."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"pristup podacima proširene stvarnosti kada nije u prvom planu"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Dozvoljava aplikaciji da pristupa podacima proširene stvarnosti kada nije u prvom planu."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Koristite biometriju"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Koristite biometriju ili otključavanje ekrana"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Potvrdite identitet"</string>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 69271ba..d01af94 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -355,14 +355,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"атрымліваць з датчыка даныя асноўных фізіялагічных паказчыкаў"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Апавяшчэнні"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"паказваць апавяшчэнні"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"даныя XR адсочвання"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"атрымліваць доступ да даных XR пра вас і ваша блізкае асяроддзе"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"канфідэнцыяльныя даныя XR адсочвання"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"атрымліваць доступ да канфідэнцыяльных даных адсочвання, напрыклад позірку"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Атрымліваць змесціва вакна"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Аналізаваць змесціва актыўнага вакна."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Уключаць Азнаямленне дотыкам"</string>
@@ -658,38 +654,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Праграма зможа змяняць фотакалекцыю."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"паказваць месцазнаходжанне ў калекцыі мультымедыя"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Праграма зможа паказваць месцазнаходжанне ў калекцыі мультымедыя."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"адсочваць прыблізны напрамак позірку"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Дазваляе праграме адсочваць прыблізны напрамак позірку."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"адсочваць, куды вы гледзіце"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Дазваляе праграме атрымліваць доступ да дакладных даных позірку."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"адсочваць рухі твару"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Дазваляе праграме атрымліваць доступ да даных адсочвання рухаў твару."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"адсочваць рухі рук"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Дазваляе праграме атрымліваць доступ да даных адсочвання рухаў рук."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"адсочваць рухі галавы"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Дазваляе праграме атрымліваць доступ да даных адсочвання рухаў галавы."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"счытваць ваша блізкае асяроддзе"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Дазваляе праграме атрымліваць доступ да даных адсочвання вашага блізкага асяроддзя."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"счытваць ваша блізкае асяроддзе з высокай дэталізацыяй"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Дазваляе праграме атрымліваць доступ да даных адсочвання вашага блізкага асяроддзя з вялікай дэталізацыяй."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"атрымліваць доступ да даных XR, калі праграма не ў актыўным рэжыме"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Дазваляе праграме атрымліваць доступ да даных XR, калі яна працуе не ў актыўным рэжыме."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Выкарыстоўваць біяметрыю"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Выкарыстоўваць біяметрыю ці блакіроўку экрана"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Спраўдзіце, што гэта вы"</string>
@@ -1846,7 +1826,7 @@
     <string name="hearing_device_notification_switch_button" msgid="3619524619430941300">"Пераключыцца"</string>
     <string name="hearing_device_notification_settings_button" msgid="6673651052880279178">"Налады"</string>
     <string name="user_switched" msgid="7249833311585228097">"Бягучы карыстальнік <xliff:g id="NAME">%1$s</xliff:g>."</string>
-    <string name="user_switching_message" msgid="1912993630661332336">"Пераход у рэжым \"<xliff:g id="NAME">%1$s</xliff:g>\"..."</string>
+    <string name="user_switching_message" msgid="1912993630661332336">"Пераключэнне на карыстальніка \"<xliff:g id="NAME">%1$s</xliff:g>\"…"</string>
     <string name="user_logging_out_message" msgid="7216437629179710359">"<xliff:g id="NAME">%1$s</xliff:g> выходзіць з сістэмы…"</string>
     <string name="owner_name" msgid="8713560351570795743">"Уладальнік"</string>
     <string name="guest_name" msgid="8502103277839834324">"Госць"</string>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 1581ab8..0083dde 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"достъп до сензорните данни за жизнените ви показатели"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Известия"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"показване на известията"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"Данни за XR за проследяване"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"достъп до данните за XR за вас и заобикалящата ви среда"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"поверителни данни за XR за проследяване"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"достъп до поверителните данни за проследяване, като например погледа"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Извлича съдържанието от прозореца"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Инспектира съдържанието на прозорец, с който взаимодействате."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Включи изследването чрез докосване"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Разрешава на приложението да променя колекцията ви от снимки."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"да чете местоположенията от мултимедийната ви колекция"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Разрешава на приложението да чете местоположенията от мултимедийната ви колекция."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"проследяване на погледа ви с ниска точност"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Разрешава на приложението да проследява погледа ви с ниска точност."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"проследяване на погледа ви"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Разрешава на приложението да осъществява достъп до данните за погледа ви с висока точност."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"проследяване на лицето ви"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Разрешава на приложението да осъществява достъп до данните за проследяване на лицето."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"проследяване на ръцете ви"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Разрешава на приложението да осъществява достъп до данните за проследяване на ръцете."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"проследяване на движенията на главата ви"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Разрешава на приложението да осъществява достъп до данните за проследяване на движенията на главата."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"разбиране на заобикалящата ви среда"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Разрешава на приложението да осъществява достъп до данните за проследяване на заобикалящата ви среда."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"разпознаване на заобикалящата ви среда с висока детайлност"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Разрешава на приложението да осъществява достъп до данните за проследяване на заобикалящата ви среда с много висока детайлност."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"достъп до данните за XR, когато не е на преден план"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Разрешава на приложението да осъществява достъп до данните за XR, когато не е на преден план."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Използване на биометр. данни"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Използване на биометрични данни или опцията за заключване на екрана"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Потвърдете, че сте вие"</string>
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index c05ea6d..298be51 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"আপনার অত্যাবশ্যক লক্ষণগুলির সম্পর্কে সেন্সর ডেটা অ্যাক্সেস করে"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"বিজ্ঞপ্তি"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"বিজ্ঞপ্তি দেখুন"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR ট্র্যাকিং ডেটা"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"আপনার এবং আপনার চারপাশের পরিবেশ সম্পর্কে XR ডেটা অ্যাক্সেস করুন"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"সংবেদনশীল XR ট্র্যাকিং ডেটা"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"সংবেদনশীল ট্র্যাকিং ডেটা অ্যাক্সেস করুন, যেমন চোখের দৃষ্টি"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"উইন্ডোর কন্টেন্ট ফিরিয়ে আনুন"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"ব্যবহার করছেন এমন একটি উইন্ডোর কন্টেন্ট পরীক্ষা করে৷"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"স্পর্শের মাধ্যমে অন্বেষণ করা চালু করুন"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"অ্যাপকে আপনার ফটো সংগ্রহ পরিবর্তন করার অনুমতি দিন।"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"ডিয়া সংগ্রহ থেকে লোকেশন দেখতে দিন"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"আপনার মিডিয়া সংগ্রহ থেকে লোকেশন দেখতে অ্যাপকে অনুমতি দিন।"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"আপনার আনুমানিক চোখের দৃষ্টি ট্র্যাক করুন"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"অ্যাপটিকে আপনার আনুমানিক চোখের দৃষ্টি ট্র্যাক করার অনুমতি দেয়।"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"কোনদিকে দেখছেন তা ট্র্যাক করুন"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"অ্যাপটিকে আপনার চোখের দৃষ্টি সম্পর্কিত নির্দিষ্ট ডেটা অ্যাক্সেস করার অনুমতি দেয়।"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"নিজের ফেস ট্র্যাক করুন"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"অ্যাপটিকে ফেস ট্র্যাকিং ডেটা অ্যাক্সেস করার অনুমতি দেয়।"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"হাত ট্র্যাক করুন"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"অ্যাপটিকে হ্যান্ড ট্র্যাকিং ডেটা অ্যাক্সেস করার অনুমতি দেয়।"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"আপনার মাথা ট্র্যাক করুন"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"অ্যাপটিকে হেড ট্র্যাকিং ডেটা অ্যাক্সেস করার অনুমতি দেয়।"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"আপনার চারপাশের পরিবেশ সম্পর্কে বুঝুন"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"অ্যাপটিকে সরাসরি আপনার চারপাশের পরিবেশ সম্পর্কে ট্র্যাকিং ডেটা অ্যাক্সেস করার অনুমতি দেয়।"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"সূক্ষ্ম বিশদ বিবরণ সহ আপনার চারপাশের পরিবেশ সম্পর্কে বুঝুন"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"অ্যাপটিকে সরাসরি আপনার চারপাশের পরিবেশ সম্পর্কে সূক্ষ্ম বিবরণ সহ ট্র্যাকিং ডেটা অ্যাক্সেস করার অনুমতি দেয়।"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"ফোরগ্রাউন্ডে না থাকাকালীন XR ডেটা অ্যাক্সেস করুন"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"অ্যাপটিকে ফোরগ্রাউন্ডে না থাকাকালীন XR ডেটা অ্যাক্সেস করার অনুমতি দেয়।"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"বায়োমেট্রিক্স ব্যবহার করুন"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"বায়োমেট্রিক্স অথবা স্ক্রিন লক ব্যবহার করুন"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"আপনার পরিচয় যাচাই করুন"</string>
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index ebef234..6a54f65 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"pristupa podacima senzora o vašim vitalnim funkcijama"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Obavještenja"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"prikaz obavještenja"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"podaci o XR praćenju"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"pristup XR podacima o vama i vašoj okolini"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"osjetljivi podaci o XR praćenju"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"pristup osjetljivim podacima o praćenju, npr. praćenju pogleda"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"preuzimati sadržaj prozora"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Pregleda sadržaj prozora koji trenutno koristite."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"uključiti Istraživanje dodirom"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Omogućava aplikaciji da mijenja vašu kolekciju fotografija."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"čitanje lokacija iz kolekcije medija"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Omogućava aplikaciji da čita lokacije iz vaše kolekcije medija."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"približno praćenje vašeg pogleda"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Dozvoljava aplikaciji da približno prati vaš pogled."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"praćenje u šta gledate"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Dozvoljava aplikaciji da pristupa preciznim podacima o pogledu."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"praćenje vašeg lica"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Dozvoljava aplikaciji da pristupa podacima o praćenju lica."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"praćenje vaših ruku"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Dozvoljava aplikaciji da pristupa podacima o praćenju ruku."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"praćenje položaja vaše glave"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Dozvoljava aplikaciji da pristupa podacima o praćenju položaja glave."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"utvrđivanje vaše neposredne okoline"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Dozvoljava aplikaciji da pristupa podacima o praćenju vaše neposredne okoline."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"veoma detaljno utvrđivanje vaše neposredne okoline"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Dozvoljava aplikaciji da pristupa podacima o veoma detaljnom praćenju vaše neposredne okoline."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"pristup XR podacima dok aplikacija nije u prvom planu"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Dozvoljava aplikaciji da pristupa XR podacima dok nije u prvom planu."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Koristi biometriju"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Koristi biometriju ili zaključavanje ekrana"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Potvrdite identitet"</string>
@@ -2187,7 +2167,7 @@
     <string name="etws_primary_default_message_tsunami" msgid="5828171463387976279">"Odmah se evakuirajte iz priobalnih područja i područja oko rijeka na sigurnije mjesto kao što su viši predjeli."</string>
     <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="4888224011071875068">"Ostanite smireni i potražite sklonište u blizini."</string>
     <string name="etws_primary_default_message_test" msgid="4583367373909549421">"Test poruka za hitne slučajeve"</string>
-    <string name="notification_reply_button_accessibility" msgid="5235776156579456126">"Odgovori"</string>
+    <string name="notification_reply_button_accessibility" msgid="5235776156579456126">"Odgovorite"</string>
     <string name="etws_primary_default_message_others" msgid="7958161706019130739"></string>
     <string name="mmcc_authentication_reject" msgid="4891965994643876369">"SIM kartica nije dozvoljena za govor"</string>
     <string name="mmcc_imsi_unknown_in_hlr" msgid="227760698553988751">"SIM kartica nije dodijeljena za govor"</string>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 6ddfeaf..63fbb07 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"accedir a les dades del sensor sobre les constants vitals"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notificacions"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"mostra notificacions"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"dades de seguiment d\'XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"accedir a les dades d\'XR sobre tu i l\'entorn que t\'envolta"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"dades de seguiment d\'XR sensibles"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"accedir a les dades de seguiment sensibles, com ara la mirada"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Recuperar el contingut de la finestra"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspeccionar el contingut d\'una finestra amb què estàs interaccionant."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Activar Exploració tàctil"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Permet que l\'aplicació modifiqui la teva col·lecció de fotos."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"llegir les ubicacions de les teves col·leccions multimèdia"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Permet que l\'aplicació llegeixi les ubicacions de les teves col·leccions multimèdia."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"seguir la teva mirada aproximada"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Permet que l\'aplicació segueixi la teva mirada aproximada."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"seguir on estàs mirant"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Permet que l\'aplicació accedeixi a les dades precises de la mirada."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"seguir la teva cara"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Permet que l\'aplicació accedeixi a les dades de seguiment de la cara."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"seguir les teves mans"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Permet que l\'aplicació accedeixi a les dades de seguiment de mans."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"seguir el teu cap"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Permet que l\'aplicació accedeixi a les dades de seguiment del cap."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"entendre l\'entorn que t\'envolta directament"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Permet que l\'aplicació accedeixi a les dades de seguiment de l\'entorn que t\'envolta directament."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"entendre l\'entorn que t\'envolta directament amb molt de detall"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Permet que l\'aplicació accedeixi a les dades de seguiment de l\'entorn que t\'envolta directament amb molt de detall."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"accedir a les dades d\'XR quan no s\'utilitzi en primer pla"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Permet que l\'aplicació accedeixi a les dades d\'XR quan no s\'utilitzi en primer pla."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Utilitza la biometria"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Fes servir la biometria o el bloqueig de pantalla"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verifica la teva identitat"</string>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 5e596fc..5d0edf3 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -355,14 +355,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"přístup k datům ze senzorů vašich životních funkcí"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Oznámení"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"zobrazovat oznámení"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"data pro rozšířenou realitu"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"přístup k datům o vás a okolním prostředí pro rozšířenou realitu"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"citlivá data pro rozšířenou realitu"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"přístup k citlivým datům o sledování, jako je například směr pohledu"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Načítat obsah oken"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Může prozkoumávat obsah oken, se kterými pracujete."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Zapnout funkci Prozkoumání dotykem"</string>
@@ -658,38 +654,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Umožňuje aplikaci upravit vaši sbírku fotek."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"čtení míst ze sbírky médií"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Umožňuje aplikaci číst místa z vaší sbírky médií."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"sledování přibližného směru pohledu"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Umožňuje aplikaci sledovat, kam se přibližně díváte."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"sledování, kam se díváte"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Umožňuje aplikaci přistupovat k přesným údajům o tom, kam se díváte."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"sledování obličeje"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Umožňuje aplikaci přistupovat k datům o sledování obličeje."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"sledování rukou"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Umožňuje aplikaci přistupovat k datům o sledování rukou."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"sledování hlavy"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Umožňuje aplikaci přistupovat k datům o sledování hlavy."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"porozumění bezprostřednímu okolí"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Umožňuje aplikaci přistupovat k datům o prostředí kolem vás."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"detailní porozumění bezprostřednímu okolí"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Umožňuje aplikaci přistupovat k velmi detailním datům o prostředí kolem vás."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"přístup k datům pro rozšířenou realitu na pozadí"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Umožňuje aplikaci přistupovat k datům pro rozšířenou reality, když není v popředí."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Použít biometrii"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Použít biometrii nebo zámek obrazovky"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Potvrďte, že jste to vy"</string>
@@ -2144,7 +2124,7 @@
     <string name="app_category_video" msgid="2590183854839565814">"Filmy a video"</string>
     <string name="app_category_image" msgid="7307840291864213007">"Fotky a obrázky"</string>
     <string name="app_category_social" msgid="2278269325488344054">"Sociální sítě a komunikace"</string>
-    <string name="app_category_news" msgid="1172762719574964544">"Zprávy a časopisy"</string>
+    <string name="app_category_news" msgid="1172762719574964544">"Noviny a časopisy"</string>
     <string name="app_category_maps" msgid="6395725487922533156">"Mapy a navigace"</string>
     <string name="app_category_productivity" msgid="1844422703029557883">"Produktivita"</string>
     <string name="app_category_accessibility" msgid="6643521607848547683">"Přístupnost"</string>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 8cc1cfe..a853076 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"få adgang til sensordata om dine vitale værdier"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notifikationer"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"vise notifikationer"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR-sporingsdata"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"tilgå XR-data om dig og dine nærmeste omgivelser"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"følsomme XR-sporingsdata"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"tilgå følsomme sporingsdata, f.eks. øjenbevægelser"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Hente indholdet i vinduet"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Undersøge indholdet i et vindue, du interagerer med."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Aktivere Udforsk ved berøring"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Tillader, at appen kan ændre din billedsamling."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"læse lokationer fra din mediesamling"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Tillader, at appen kan læse lokationer fra din mediesamling."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"registrer dine omtrentlige øjenbevægelser"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Tillader, at appen registrerer dine omtrentlige øjenbevægelser."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"registrer, hvor du kigger hen"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Tillader, at appen kan få adgang til præcise data om øjenbevægelser."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"registrer dit ansigt"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Tillader, at appen kan få adgang til data om ansigtssporing."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"registrer dine hænder"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Tillader, at appen kan få adgang til data om registrering af håndbevægelser."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"registrer dit hoved"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Tillader, at appen kan få adgang til data om registrering af hovedbevægelser."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"forstå dine nærmeste omgivelser"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Tillader, at appen kan få adgang til sporingsdata om omgivelser i nærheden."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"forstå dine nærmeste omgivelser i detaljer"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Tillader, at appen kan få adgang til sporingsdata om omgivelser i nærheden med meget detaljerede oplysninger."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"tilgå XR-data, når appen ikke kører i forgrunden"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Tillader, at appen kan få adgang til XR-data, når den ikke kører i forgrunden."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Brug biometri"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Brug biometri eller skærmlås"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verificer, at det er dig"</string>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 7d5672b..81a331d 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"auf Sensordaten zu deinen Vitaldaten zugreifen"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Benachrichti­gun­gen"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"Benachrichtigungen anzeigen"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR-Trackingdaten"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"auf XR-Daten zu dir und deiner Umgebung zugreifen"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"sensible XR-Trackingdaten"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"auf sensible Trackingdaten wie Daten zu Blickbewegungen zugreifen"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Fensterinhalte abrufen"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Die Inhalte eines Fensters, mit dem du interagierst, werden abgerufen."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"\"Tippen &amp; Entdecken\" aktivieren"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Ermöglicht der App, deine Fotosammlung zu ändern."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"Standorte aus meiner Mediensammlung abrufen"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Ermöglicht der App, Standorte aus deiner Mediensammlung abzurufen."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"ungefähre Blickbewegungen erfassen"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Ermöglicht der App, deine ungefähren Blickbewegungen zu erfassen."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"erfassen, wo du gerade hinschaust"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Ermöglicht der App, auf präzise Daten zu Blickbewegungen zuzugreifen."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"Gesichtsbewegungen erfassen"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Ermöglicht der App, auf Daten zur Erfassung von Gesichtsbewegungen zuzugreifen."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"Handbewegungen erfassen"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Ermöglicht der App, auf Daten zur Erfassung von Handbewegungen zuzugreifen."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"Kopfbewegungen erfassen"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Ermöglicht der App, auf Daten zur Erfassung von Kopfbewegungen zuzugreifen."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"auf Daten zu deiner unmittelbaren Umgebung zugreifen"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Ermöglicht der App, auf Trackingdaten zu deiner unmittelbaren Umgebung zuzugreifen."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"auf sehr detaillierte Daten zu deiner unmittelbaren Umgebung zugreifen"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Ermöglicht der App, auf sehr detaillierte Trackingdaten zu deiner unmittelbaren Umgebung zuzugreifen."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"auf XR-Daten zugreifen, wenn die App im Hintergrund ausgeführt wird"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Ermöglicht der App, auf XR-Daten zuzugreifen, wenn sie im Hintergrund ausgeführt wird."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Biometrisches Verfahren nutzen"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Biometrisches Verfahren oder Displaysperre verwenden"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Deine Identität bestätigen"</string>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 84ca5b7..f4fb932 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"πρόσβαση στα δεδομένα αισθητήρα σχετικά με τις ζωτικές ενδείξεις σας"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Ειδοποιήσεις"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"εμφάνιση ειδοποιήσεων"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"Δεδομένα παρακολούθησης XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"πρόσβαση σε δεδομένα XR για εσάς και το περιβάλλον γύρω σας"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"ευαίσθητα δεδομένα παρακολούθησης XR"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"πρόσβαση σε ευαίσθητα δεδομένα παρακολούθησης, όπως είναι η εστίαση των ματιών"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Ανάκτηση του περιεχομένου του παραθύρου"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Έλεγχος του περιεχομένου ενός παραθύρου με το οποίο αλληλεπιδράτε."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Ενεργοποίηση της \"Εξερεύνησης με άγγιγμα\""</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Επιτρέπει στην εφαρμογή να τροποποιήσει τη συλλογή φωτογραφιών σας."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"ανάγνωση τοποθεσιών από τη συλλογή πολυμέσων σας"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Επιτρέπει στην εφαρμογή να διαβάσει τοποθεσίες από τη συλλογή πολυμέσων σας."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"παρακολούθηση της εστίασης των ματιών κατά προσέγγιση"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Επιτρέπει στην εφαρμογή να παρακολουθεί την εστίαση των ματιών κατά προσέγγιση."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"παρακολούθηση του σημείου που κοιτάτε"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε ακριβή δεδομένα της εστίασης των ματιών."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"παρακολούθηση του προσώπου"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε δεδομένα παρακολούθησης προσώπου."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"παρακολούθηση των κινήσεων των χεριών"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε δεδομένα παρακολούθησης χεριού."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"παρακολούθηση της κίνησης του κεφαλιού"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε δεδομένα παρακολούθησης κίνησης κεφαλιού."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"κατανόηση του άμεσου περιβάλλοντος"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε δεδομένα παρακολούθησης του περιβάλλοντος γύρω σας."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"κατανόηση του άμεσου περιβάλλοντος με μεγάλη λεπτομέρεια"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε δεδομένα παρακολούθησης του περιβάλλοντος γύρω σας με εξαιρετική λεπτομέρεια."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"πρόσβαση σε δεδομένα XR, όταν δεν βρίσκεται στο προσκήνιο"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Επιτρέπει στην εφαρμογή να έχει πρόσβαση σε δεδομένα XR, όταν δεν βρίσκεται στο προσκήνιο."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Χρήση βιομετρικών"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Χρήση βιομετρικών ή κλειδώματος οθόνης"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Επαλήθευση ταυτότητας"</string>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index ef7238c..3b4f52c 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"access sensor data about your vital signs"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notifications"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"show notifications"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR tracking data"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"access XR data about you and the environment around you"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"sensitive XR tracking data"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"access sensitive tracking data, such as eye gaze"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Retrieve window content"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspect the content of a window you\'re interacting with."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Turn on Explore by Touch"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Allows the app to modify your photo collection."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"read locations from your media collection"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Allows the app to read locations from your media collection."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"track your approximate eye gaze"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Allows the app to track your approximate eye gaze."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"track where you are looking"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Allows the app to access precise eye-gaze data."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"track your face"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Allows the app to access face-tracking data."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"track your hands"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Allows the app to access hand-tracking data."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"track your head"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Allows the app to access head-tracking data."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"understand your immediate environment"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Allows the app to access tracking data about the environment directly around you."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"understand your immediate environment at high detail"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Allows the app to access tracking data about the environment directly around you with very high detail."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"access XR data while not in the foreground"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Allows the app to access XR data while not in the foreground."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Use biometrics"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Use biometrics or screen lock"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verify that it’s you"</string>
diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml
index 7e83739..79020c58 100644
--- a/core/res/res/values-en-rCA/strings.xml
+++ b/core/res/res/values-en-rCA/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"access sensor data about your vital signs"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notifications"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"show notifications"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR tracking data"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"access XR data about you and the environment around you"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"sensitive XR tracking data"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"access sensitive tracking data, such as eye gaze"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Retrieve window content"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspect the content of a window you\'re interacting with."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Turn on Explore by Touch"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Allows the app to modify your photo collection."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"read locations from your media collection"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Allows the app to read locations from your media collection."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"track your approximate eye gaze"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Allows the app to track your approximate eye gaze."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"track where you are looking"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Allows the app to access precise eye gaze data."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"track your face"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Allows the app to access face tracking data."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"track your hands"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Allows the app to access hand tracking data."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"track your head"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Allows the app to access head tracking data."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"understand your immediate environment"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Allows the app to access tracking data about the environment directly around you."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"understand your immediate environment at high detail"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Allows the app to access tracking data about the environment directly around you with very high detail."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"access XR data while not in the foreground"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Allows the app to access XR data while not in the foreground."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Use biometrics"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Use biometrics or screen lock"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verify it’s you"</string>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 5b99b57..2c5cf4d 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"access sensor data about your vital signs"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notifications"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"show notifications"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR tracking data"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"access XR data about you and the environment around you"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"sensitive XR tracking data"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"access sensitive tracking data, such as eye gaze"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Retrieve window content"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspect the content of a window that you\'re interacting with."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Turn on Explore by Touch"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Allows the app to modify your photo collection."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"read locations from your media collection"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Allows the app to read locations from your media collection."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"track your approximate eye gaze"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Allows the app to track your approximate eye gaze."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"track where you are looking"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Allows the app to access precise eye-gaze data."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"track your face"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Allows the app to access face-tracking data."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"track your hands"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Allows the app to access hand-tracking data."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"track your head"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Allows the app to access head-tracking data."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"understand your immediate environment"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Allows the app to access tracking data about the environment directly around you."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"understand your immediate environment at high detail"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Allows the app to access tracking data about the environment directly around you with very high detail."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"access XR data while not in the foreground"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Allows the app to access XR data while not in the foreground."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Use biometrics"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Use biometrics or screen lock"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verify that it’s you"</string>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 5ba765b..65ebd0d 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"access sensor data about your vital signs"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notifications"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"show notifications"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR tracking data"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"access XR data about you and the environment around you"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"sensitive XR tracking data"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"access sensitive tracking data, such as eye gaze"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Retrieve window content"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspect the content of a window you\'re interacting with."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Turn on Explore by Touch"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Allows the app to modify your photo collection."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"read locations from your media collection"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Allows the app to read locations from your media collection."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"track your approximate eye gaze"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Allows the app to track your approximate eye gaze."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"track where you are looking"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Allows the app to access precise eye-gaze data."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"track your face"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Allows the app to access face-tracking data."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"track your hands"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Allows the app to access hand-tracking data."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"track your head"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Allows the app to access head-tracking data."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"understand your immediate environment"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Allows the app to access tracking data about the environment directly around you."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"understand your immediate environment at high detail"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Allows the app to access tracking data about the environment directly around you with very high detail."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"access XR data while not in the foreground"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Allows the app to access XR data while not in the foreground."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Use biometrics"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Use biometrics or screen lock"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verify that it’s you"</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index d3258dd..c9bb39c 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -282,7 +282,7 @@
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Modo silencioso"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"El sonido está Desactivado"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"El sonido está Activado"</string>
-    <string name="global_actions_toggle_airplane_mode" msgid="6911684460146916206">"Modo de avión"</string>
+    <string name="global_actions_toggle_airplane_mode" msgid="6911684460146916206">"Modo avión"</string>
     <string name="global_actions_airplane_mode_on_status" msgid="5508025516695361936">"El modo avión está Activado"</string>
     <string name="global_actions_airplane_mode_off_status" msgid="8522219771500505475">"El modo avión está Desactivado"</string>
     <string name="global_action_settings" msgid="4671878836947494217">"Configuración"</string>
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"acceder a los datos de sensores acerca de tus signos vitales"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notificaciones"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"mostrar notificaciones"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"datos de seguimiento de realidad extendida"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"acceder a datos de realidad extendida sobre ti y el entorno que te rodea"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"datos sensibles de seguimiento de realidad extendida"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"acceder a datos de seguimiento sensibles, como la mirada"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Recuperar el contenido de las ventanas"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspeccionará el contenido de la ventana con la que estés interactuando."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Activar la Exploración táctil"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Permite que la app modifique tu colección de fotos."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"leer ubicaciones de tu colección de contenido multimedia"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Permite que la app lea las ubicaciones de tu colección de contenido multimedia."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"seguimiento aproximado de la mirada"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Permite que la app haga un seguimiento aproximado de tu mirada."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"seguimiento de la dirección de la mirada"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Permite que la app acceda a datos precisos de la mirada."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"seguimiento de tu rostro"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Permite que la app acceda a los datos de seguimiento de rostros."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"seguimiento de tus manos"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Permite que la app acceda a los datos de seguimiento de manos."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"seguimiento de tu cabeza"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Permite que la app acceda a los datos de seguimiento de la cabeza."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"comprensión de tu entorno inmediato"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Permite que la app acceda a los datos de seguimiento del entorno que te rodea directamente."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"comprensión de tu entorno inmediato con gran detalle"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Permite que la app acceda a datos de seguimiento del entorno que te rodea directamente con mucho detalle."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"acceso a los datos de realidad extendida cuando no está en primer plano"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Permite que la app acceda a los datos de realidad extendida cuando no está en primer plano."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Usar datos biométricos"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Usar datos biométricos o bloqueo de pantalla"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Comprueba que eres tú"</string>
@@ -2260,7 +2240,7 @@
     <string name="mime_type_spreadsheet_ext" msgid="8720173181137254414">"Hoja de cálculo <xliff:g id="EXTENSION">%1$s</xliff:g>"</string>
     <string name="mime_type_presentation" msgid="1145384236788242075">"Presentación"</string>
     <string name="mime_type_presentation_ext" msgid="8761049335564371468">"Presentación <xliff:g id="EXTENSION">%1$s</xliff:g>"</string>
-    <string name="bluetooth_airplane_mode_toast" msgid="2066399056595768554">"La conexión Bluetooth permanecerá activa durante el modo de avión"</string>
+    <string name="bluetooth_airplane_mode_toast" msgid="2066399056595768554">"La conexión Bluetooth permanecerá activa durante el modo avión"</string>
     <string name="car_loading_profile" msgid="8219978381196748070">"Cargando"</string>
     <string name="file_count" msgid="3220018595056126969">"{count,plural, =1{{file_name} y # archivo más}many{{file_name} y # archivos más}other{{file_name} y # archivos más}}"</string>
     <string name="chooser_no_direct_share_targets" msgid="1511722103987329028">"No hay personas recomendadas con quienes compartir"</string>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index c021a8a..63fc276 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"acceder a datos de sensores de tus constantes vitales"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notificaciones"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"mostrar notificaciones"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"datos de seguimiento de RE"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"acceder a datos de RE sobre ti y el entorno que te rodea"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"datos de seguimiento de RE sensibles"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"acceder a datos de seguimiento sensibles, como la mirada"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Comprobar el contenido de la ventana"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspecciona el contenido de una ventana con la que estés interactuando."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Activar la exploración táctil"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Permite que la aplicación modifique tu colección de fotos."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"leer las ubicaciones de tu colección de contenido multimedia"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Permite que la aplicación lea las ubicaciones de tu colección de contenido multimedia."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"hacer un seguimiento de tu mirada de forma aproximada"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Permite que la aplicación haga un seguimiento de tu mirada de forma aproximada."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"hacer un seguimiento de hacia dónde miras"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Permite que la aplicación acceda a los datos precisos de la mirada."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"hacer un seguimiento de tu cara"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Permite que la aplicación acceda a los datos de seguimiento facial."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"hacer un seguimiento de tus manos"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Permite que la aplicación acceda a los datos de seguimiento de manos."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"hacer un seguimiento de tu cabeza"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Permite que la aplicación acceda a los datos de seguimiento de cabeza."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"entender tu entorno inmediato"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Permite que la aplicación acceda a los datos de seguimiento sobre el entorno que te rodea de forma directa."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"entender tu entorno inmediato con un nivel alto de detalle"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Permite que la aplicación acceda a datos de seguimiento sobre el entorno que te rodea de forma directa con un nivel de detalle muy alto."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"acceder a datos de RE cuando no está en primer plano"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Permite que la aplicación acceda a los datos de RE cuando no está en primer plano."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Usar biometría"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Usar biometría o bloqueo de pantalla"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verifica que eres tú"</string>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index ae21583..c9b29c3a 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"juurdepääs anduri andmetele teie eluliste näitajate kohta"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Märguanded"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"märguannete kuvamine"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR-i jälgimise andmed"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"juurdepääs XR-i andmetele teie ja teid ümbritseva keskkonna kohta"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"delikaatsed XR-i jälgimise andmed"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"juurdepääs delikaatsetele jälgimisandmetele, näiteks pilgule"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Akna sisu toomine"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Kasutatava akna sisu kontrollimine."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Puudutusega sirvimise sisselülitamine"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Võimaldab rakendusel muuta teie fotokogu."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"Lugeda teie meediakogus olevaid asukohti"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Võimaldab rakendusel lugeda teie meediakogus olevaid asukohti."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"ligikaudse pilgu jälgimine"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Võimaldab rakendusel teie pilku ligikaudselt jälgida."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"pilgu suuna jälgimine"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Võimaldab rakendusel juurde pääseda täpsetele pilguandmetele."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"näo jälgimine"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Võimaldab rakendusel juurde pääseda näo jälgimise andmetele."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"käteliigutuste jälgimine"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Võimaldab rakendusel juurde pääseda käeliigutuste jälgimise andmetele."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"pea jälgimine"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Võimaldab rakendusel juurde pääseda peajälgimise andmetele."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"vahetu keskkonna mõistmine"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Võimaldab rakendusel juurde pääseda teie vahetu keskkonna jälgimisandmetele."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"vahetu keskkonna väga üksikasjalik mõistmine"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Võimaldab rakendusel pääseda väga üksikasjalikult juurde teie vahetu keskkonna jälgimisandmetele."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"juurdepääs XR-i andmetele, kui see pole esiplaanil"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Võimaldab rakendusel pääseda juurde XR-i andmetele, kui see pole esiplaanil."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Biomeetria kasutamine"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Biomeetria või ekraaniluku kasutamine"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Kinnitage oma isik"</string>
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index a78754f..88bb3c9 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"atzitu bizi-konstanteei buruzko sentsorearen datuak"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Jakinarazpenak"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"jakinarazpenak erakutsi"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"EHko jarraipen-datuak"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"zuri eta inguruko inguruneari buruzko EHko datuak erabili"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"kontuzko EHko jarraipen-datuak"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"kontuzko jarraipen-datuak erabili, hala nola begiradari buruzkoak"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Leihoko edukia eskuratu."</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Arakatu irekita daukazun leihoko edukia."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"\"Arakatu ukituta\" aktibatu."</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Argazki bilduma aldatzeko baimena ematen dio aplikazioari."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"multimedia-edukien bildumako kokapena irakurri"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Multimedia-edukien bildumako kokapena irakurtzeko baimena ematen dio aplikazioari."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"begiradaren gutxi gorabeherako datuen jarraipena egin"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Zure begiradaren gutxi gorabeherako datuen jarraipena egiteko baimena ematen dio aplikazioari."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"begiradaren jarraipena egin"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Zure begiradaren datu zehatzen jarraipena egiteko baimena ematen dio aplikazioari."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"aurpegiaren jarraipena egin"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Aurpegiaren jarraipen-datuak erabiltzeko baimena ematen dio aplikazioari."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"eskuen jarraipena egin"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Eskuen jarraipen-datuak erabiltzeko baimena ematen dio aplikazioari."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"buruaren jarraipena egin"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Buruaren jarraipen-datuak erabiltzeko baimena ematen dio aplikazioari."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"inguruan duzun ingurunea aztertu"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Inguruan duzun ingurunearen jarraipen datuak erabiltzeko baimena ematen dio aplikazioari."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"inguruan duzun ingurunea xehetasunez aztertu"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Inguruan duzun ingurunearen jarraipen datu oso xeheak erabiltzeko baimena ematen dio aplikazioari."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"aurreko planoan egon gabe ere EHko datuak erabili"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Aurreko planoan ez badago ere EHko datuak erabiltzeko baimena ematen dio aplikazioari."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Erabili sistema biometrikoak"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Erabili sistema biometrikoak edo pantailaren blokeoa"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Egiaztatu zeu zarela"</string>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index ddde0b2..0c3b755 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"دسترسی به داده‌های حسگر در رابطه با علائم حیاتی شما"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"اعلان‌ها"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"نمایش اعلان"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"داده‌های ردگیری واقعیت گسترده"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"دسترسی به داده‌های واقعیت گسترده درباره شما و محیط اطرافتان"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"داده‌های حساس ردگیری واقعیت گسترده"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"دسترسی به داده‌های حساس ردگیری، مانند جهت نگاه"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"محتوای پنجره را بازیابی کند"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"محتوای پنجره‌ای را که درحال تعامل با آن هستید بررسی می‌کند."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"فعال‌سازی کاوش لمسی"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"به برنامه اجازه می‌دهد مجموعه عکستان را تغییر دهد."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"خواندن مکان‌ها از مجموعه رسانه شما"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"به برنامه اجازه می‌دهد مکان‌ها را از مجموعه رسانه‌تان بخواند."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"ردگیری جهت تقریبی نگاه شما"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"به برنامه اجازه می‌دهد جهت تقریبی نگاه شما را ردگیری کند."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"ردگیری جایی که به آن نگاه می‌کنید"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"به برنامه اجازه می‌دهد به داده‌های دقیق جهت نگاه دسترسی داشته باشد."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"ردگیری چهره شما"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"به برنامه اجازه می‌دهد به داده‌های ردگیری چهره دسترسی داشته باشد."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"ردگیری دست‌های شما"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"به برنامه اجازه می‌دهد به داده‌های ردگیری دست دسترسی داشته باشد."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"ردگیری سر شما"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"به برنامه اجازه می‌دهد به داده‌های ردگیری سر دسترسی داشته باشد."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"پی بردن به محیط مجاور شما"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"به برنامه اجازه می‌دهد به داده‌های ردگیری مربوط به محیط مجاور شما دسترسی داشته باشد."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"پی بردن به محیط مجاور شما با جزئیات بالا"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"به برنامه اجازه می‌دهد به داده‌های ردگیری مربوط به محیط مجاور شما با جزئیات بسیار بالا دسترسی داشته باشد."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"دسترسی به داده‌های واقعیت گسترده هنگام اجرا نشدن در پیش‌زمینه"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"به برنامه اجازه می‌دهد هنگام اجرا نشدن در پیش‌زمینه به داده‌های واقعیت گسترده دسترسی داشته باشد."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"استفاده از داده‌های زیست‌سنجشی"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"استفاده از داده‌های زیست‌سنجشی یا قفل صفحه"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"تأیید کنید این شمایید"</string>
@@ -1824,7 +1804,7 @@
     <string name="reduce_bright_colors_feature_name" msgid="3222994553174604132">"بسیار کم‌نور"</string>
     <string name="hearing_aids_feature_name" msgid="1125892105105852542">"دستگاه‌های کمک‌شنوایی"</string>
     <string name="hearing_device_status_disconnected" msgid="497547752953543832">"متصل نیست"</string>
-    <string name="hearing_device_status_connected" msgid="2149385149669918764">"متصل"</string>
+    <string name="hearing_device_status_connected" msgid="2149385149669918764">"وصل شد"</string>
     <string name="hearing_device_status_active" msgid="4770378695482566032">"فعال"</string>
     <string name="hearing_device_status_loading" msgid="5717083847663109747">"درحال بار کردن"</string>
     <string name="accessibility_shortcut_enabling_service" msgid="5473495203759847687">"کلیدهای میزان صدا پایین نگه داشته شد. <xliff:g id="SERVICE_NAME">%1$s</xliff:g> روشن شد."</string>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index b17ab23..b12fd5c 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"pääsy anturidataan elintoiminnoistasi"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Ilmoitukset"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"näyttää ilmoituksia"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR-seurantadata"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"pääsy XR-dataan, joka liittyy sinuun ja ympäristöösi"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"arkaluontoinen XR-seurantadata"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"pääsy arkaluontoiseen seurantadataan, esim. katseenseurantadataan"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Noutaa ikkunan sisältöä"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Tarkistaa käyttämäsi ikkunan sisältö."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Ottaa kosketuksella tutkimisen käyttöön"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Antaa sovelluksen muokata kuvakokoelmaasi."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"lukea mediakokoelmasi sijainteja"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Antaa sovelluksen lukea mediakokoelmasi sijainteja."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"seuraa katsetta likimääräisesti"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Sallii sovelluksen seurata katsettasi likimääräisesti."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"seuraa sitä, mihin katsot"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Sallii sovellukselle pääsyn tarkkaan katsedataan."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"seuraa kasvojasi"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Sallii sovellukselle pääsyn kasvojen seurantadataan."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"seuraa käsiäsi"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Sallii sovellukselle pääsyn kädenseurantadataan."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"seuraa päätäsi"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Sallii sovellukselle pääsyn päänseurantadataan."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"ymmärtää välitöntä ympäristöäsi"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Sallii sovellukselle pääsyn ympäristöösi liittyvään seurantadataan."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"ymmärtää välittömän ympäristösi yksityiskohtaisesti"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Sallii sovellukselle pääsyn erittäin yksityiskohtaiseen, välittömään ympäristöösi liittyvään seurantadataan."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"pääsy XR-dataan, kun sovellus ei ole etualalla."</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Sallii sovellukselle pääsyn XR-dataan, kun sovellus ei ole etualalla."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Käytä biometriikkaa"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Käytä biometriikkaa tai näytön lukitusta"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Vahvista henkilöllisyytesi"</string>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 7145e57..b9c8b64 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"accéder aux données des capteurs sur vos signes vitaux"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notifications"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"afficher les notifications"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"données de suivi de RE"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"accès aux données de RE sur vous et l\'environnement qui vous entoure"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"données de suivi de RE sensibles"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"accède aux données de suivi sensibles, comme le regard"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Récupérer le contenu d\'une fenêtre"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspecter le contenu d\'une fenêtre avec laquelle vous interagissez."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Activer la fonctionnalité Explorer au toucher"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Autorise l\'appli à modifier votre collection de photos."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"lire les positions issues de votre collection multimédia"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Autorise l\'appli à lire les positions indiquées dans votre collection multimédia."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"suivre votre regard approximatif"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Permet à l\'appli de suivre votre regard approximatif."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"suivre où vous regardez"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Permet à l\'appli d\'accéder à des données précises sur le regard."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"suivre votre visage"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Permet à l\'appli d\'accéder aux données de suivi du visage."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"suivre vos mains"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Permet à l\'appli d\'accéder aux données de suivi des mains."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"suivre votre tête"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Permet à l\'appli d\'accéder aux données de suivi de la tête."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"comprendre votre environnement immédiat"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Permet à l\'appli d\'accéder aux données de suivi sur l\'environnement directement autour de vous."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"comprendre votre environnement immédiat dans les moindres détails"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Permet à l\'appli d\'accéder aux données de suivi sur l\'environnement directement autour de vous avec des détails très précis."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"accéder aux données de RE sans être en avant-plan"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Permet à l\'appli d\'accéder aux données de RE lorsqu\'elle n\'est pas en avant-plan."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Utiliser les données biométriques"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Utiliser les données biométriques ou le verrouillage de l\'écran"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Confirmez que c\'est vous"</string>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index a71348a..9952d04 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"accéder aux données des capteurs relatives à vos signes vitaux"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notifications"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"afficher des notifications"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"Données de suivi XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"accéder aux données XR vous concernant et concernant l\'environnement qui vous entoure"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"données de suivi XR sensibles"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"accéder à des données de suivi sensibles, comme le suivi du regard"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Récupérer le contenu d\'une fenêtre"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspecte le contenu d\'une fenêtre avec laquelle vous interagissez."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Activer la fonctionnalité Explorer au toucher"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Autorise l\'application à modifier votre bibliothèque photo."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"consulter des positions issues de votre bibliothèque multimédia"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Autorise l\'application à consulter des positions issues de votre bibliothèque multimédia."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"suivre approximativement votre regard"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Autorise l\'appli à suivre approximativement votre regard."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"suivre votre regard"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Autorise l\'appli à accéder à des données sur le suivi précis du regard."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"suivre votre visage"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Autorise l\'appli à accéder aux données de suivi du visage."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"suivre vos mains"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Autorise l\'appli à accéder aux données de suivi des mains."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"suivre votre tête"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Autorise l\'appli à accéder aux données de suivi de la tête."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"comprendre votre environnement immédiat"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Autorise l\'appli à accéder aux données de suivi sur l\'environnement qui vous entoure directement."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"comprendre votre environnement immédiat avec précision"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Autorise l\'appli à accéder à des données de suivi très détaillées sur l\'environnement qui vous entoure directement."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"accéder aux données XR sans être au premier plan"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Autorise l\'appli à accéder aux données XR lorsqu\'elle n\'est pas au premier plan."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Utiliser la biométrie"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Utiliser la biométrie ou le verrouillage de l\'écran"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Confirmez votre identité"</string>
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index e8090b8..a2d29c9 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"acceder aos datos dos sensores sobre as túas constantes vitais"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notificacións"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"mostrar notificacións"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"datos de seguimento de RE"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"acceder aos datos de realidade estendida sobre ti e o ambiente que te rodea"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"datos de seguimento de RE confidenciais"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"acceder a datos de seguimento confidenciais, como a mirada"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Recuperar contido da ventá"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspecciona o contido dunha ventá coa que estás interactuando."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Activar a exploración táctil"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Permite que a aplicación modifique a túa colección de fotos."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"ler localizacións da túa colección multimedia"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Permite que a aplicación lea as localizacións da túa colección multimedia."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"facer un seguimento aproximado da mirada"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Permite que a aplicación faga un seguimento aproximado da mirada."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"facer un seguimento da dirección da mirada"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Permite que a aplicación acceda aos datos precisos da mirada."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"facer un seguimento da cara"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Permite que a aplicación acceda aos datos de seguimento da cara."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"facer un seguimento das mans"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Permite que a aplicación acceda aos datos de seguimento das mans."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"facer un seguimento da cabeza"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Permite que a aplicación acceda aos datos de seguimento da cabeza."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"entender o teu ambiente próximo"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Permite que a aplicación acceda aos datos de seguimento do ambiente que te rodea directamente."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"entender o teu ambiente próximo con moito detalle"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Permite que a aplicación acceda aos datos de seguimento do ambiente que te rodea directamente con moito detalle."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"acceder os datos de realidade estendida cando non estea en primeiro plano"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Permite que a aplicación acceda aos datos de realidade estendida cando non estea en primeiro plano."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Utilizar desbloqueo biométrico"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Utilizar desbloqueo biométrico ou credencial do dispositivo"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verifica a túa identidade"</string>
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index 3ddc9da..bb07484 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"તમારા મહત્વપૂર્ણ ચિહ્નો વિશે સેન્સર ડેટા ઍક્સેસ કરો"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"નોટિફિકેશન"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"નોટિફિકેશન બતાવો"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR ટ્રૅકિંગ ડેટા"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"તમારા અને તમારી આસપાસના વાતાવરણ વિશેનો XR ડેટા ઍક્સેસ કરો"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"સંવેદનશીલ XR ટ્રૅકિંગ ડેટા"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"નજર જેવો સંવેદનશીલ ટ્રૅકિંગ ડેટા ઍક્સેસ કરો"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"વિંડો કન્ટેન્ટ પુનઃપ્રાપ્ત કરો"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"તમે જેની સાથે ક્રિયા-પ્રતિક્રિયા કરી રહ્યાં છો તે વિંડોનું કન્ટેન્ટ તપાસો."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"સ્પર્શ કરીને શોધખોળ કરવું ચાલુ કરો"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"એપને તમારો ફોટો સંગ્રહ સંશોધિત કરવાની મંજૂરી આપે છે."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"આપના મીડિયા સંગ્રહમાંથી સ્થાનો વાંચવા"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"એપને તમારા મીડિયા સંગ્રહમાંથી સ્થાનો વાંચવાની મંજૂરી આપે છે."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"તમારી અંદાજિત નજરને ટ્રૅક કરો"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"ઍપને તમારી અંદાજિત નજર ટ્રૅક કરવાની મંજૂરી આપે છે."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"તમે ક્યાં જુઓ છો, તે ટ્રૅક કરો"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"ઍપને નજરનો ચોક્કસ ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"તમારા ચહેરાને ટ્રૅક કરો"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"ઍપને ચહેરો ટ્રૅક કરવાની સુવિધાનો ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"તમારા હાથને ટ્રૅક કરો"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"ઍપને હાથ ટ્રૅક કરવાની સુવિધાનો ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"તમારા માથાને ટ્રૅક કરો"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"ઍપને હૅડ ટ્રૅકિંગની સુવિધાનો ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"તમારી સાવ નજીકના વાતાવરણને સમજો"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"ઍપને સીધા તમારી આસપાસના વાતાવરણ વિશેનો ટ્રૅકિંગ ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"તમારી સાવ નજીકના વાતાવરણને ખૂબ વિગતવાર સમજો"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"ઍપને સીધા તમારી આસપાસના વાતાવરણ વિશેનો ટ્રૅકિંગ ડેટા ખૂબ જ વિગતવાર ઍક્સેસ કરવાની મંજૂરી આપે છે."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"ફૉરગ્રાઉન્ડમાં ન હોય ત્યારે XR ડેટા ઍક્સેસ કરો"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"ફૉરગ્રાઉન્ડમાં ન હોય ત્યારે ઍપને XR ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"બાયોમેટ્રિક્સનો ઉપયોગ કરો"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"બાયોમેટ્રિક્સ અથવા સ્ક્રીન લૉકનો ઉપયોગ કરો"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"આ તમે જ છો તેની ચકાસણી કરો"</string>
@@ -1844,7 +1824,7 @@
     <string name="hearing_device_notification_switch_button" msgid="3619524619430941300">"સ્વિચ કરો"</string>
     <string name="hearing_device_notification_settings_button" msgid="6673651052880279178">"સેટિંગ"</string>
     <string name="user_switched" msgid="7249833311585228097">"વર્તમાન વપરાશકર્તા <xliff:g id="NAME">%1$s</xliff:g>."</string>
-    <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> પર સ્વિચ કરી રહ્યાં છે…"</string>
+    <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> પર સ્વિચ કરી રહ્યાં છીએ…"</string>
     <string name="user_logging_out_message" msgid="7216437629179710359">"<xliff:g id="NAME">%1$s</xliff:g> લોગ આઉટ થઈ રહ્યાં છે…"</string>
     <string name="owner_name" msgid="8713560351570795743">"માલિક"</string>
     <string name="guest_name" msgid="8502103277839834324">"અતિથિ"</string>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index a587509..538e86c 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"अपने महत्वपूर्ण संकेतों के बारे में सेंसर डेटा को ऐक्सेस करें"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"सूचनाएं"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"सूचनाएं दिखाएं"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"एक्सआर ट्रैकिंग डेटा"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"अपने और अपने आस-पास के माहौल के बारे में एक्सआर डेटा ऐक्सेस करें"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"संवेदनशील एक्सआर ट्रैकिंग डेटा"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"संवेदनशील ट्रैकिंग डेटा को ऐक्सेस करें, जैसे कि आंखों की गतिविधि"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"विंडो का कॉन्टेंट वापस पाएं"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"विंडो पर नज़र आ रहे कॉन्टेंट की जांच करें."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"छूकर, किसी चीज़ से जुड़ी जानकारी सुनने की सुविधा चालू करें"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"इससे ऐप्लिकेशन को आपके फ़ोटो संग्रह में बदलाव करने की मंज़ूरी दी जाती है."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"अपने मीडिया संग्रह से जगह की जानकारी ऐक्सेस करने की अनुमति दें"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"इससे ऐप्लिकेशन को आपके मीडिया संग्रह से जगह की जानकारी ऐक्सेस करने की अनुमति दी जाती है."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"आंखों की गतिविधियां ट्रैक करें"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"इससे ऐप्लिकेशन को, आपकी आंखों की गतिविधियों को ट्रैक करने की अनुमति मिलती है."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"किस ओर देखा जा रहा है, यह ट्रैक करें"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"इससे ऐप्लिकेशन को, आंखों की गतिविधियों का सटीक डेटा ऐक्सेस करने की अनुमति मिलती है."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"चेहरे को ट्रैक करें"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"इससे ऐप्लिकेशन को, फ़ेस ट्रैकिंग का डेटा ऐक्सेस करने की अनुमति मिलती है."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"हाथों को ट्रैक करें"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"इससे ऐप्लिकेशन को, हैंड ट्रैकिंग का डेटा ऐक्सेस करने की अनुमति मिलती है."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"सिर को ट्रैक करें"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"इससे ऐप्लिकेशन को, हेड ट्रैकिंग डेटा को ऐक्सेस करने की अनुमति मिलती है."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"अपने आस-पास के माहौल की जानकारी पाएं"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"इससे ऐप्लिकेशन को, आपके आस-पास के माहौल के ट्रैकिंग डेटा को ऐक्सेस करने की अनुमति मिलती है."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"अपने आस-पास के माहौल के बारे में छोटी से छोटी जानकारी पाएं"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"इससे ऐप्लिकेशन को, आपके आस-पास के माहौल के बारे में छोटी से छोटी जानकारी के साथ ट्रैकिंग डेटा ऐक्सेस करने की अनुमति मिलती है."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"ऐप्लिकेशन पर, फ़ोरग्राउंड के काम न करने पर भी एक्सआर डेटा ऐक्सेस करें"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"इससे ऐप्लिकेशन को, एक्सआर डेटा ऐक्सेस करने की अनुमति मिलती है, भले ही उसमें फ़ोरग्राउंड में काम न कर रहा हो."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"बायोमेट्रिक्स इस्तेमाल करें"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"बायोमेट्रिक्स या स्क्रीन लॉक का क्रेडेंशियल इस्तेमाल करें"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"अपनी पहचान की पुष्टि करें"</string>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index cfea6ab..cde062a 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"pristupiti podacima senzora o vašim vitalnim znakovima"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Obavijesti"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"prikazati obavijesti"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR podaci o praćenju"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"pristup XR podacima o vama i vašem okruženju"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"osjetljivi XR podaci o praćenju"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"pristup osjetljivim podacima o praćenju, kao što je pogled"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Dohvaćati sadržaj prozora"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Pregledat će sadržaj prozora koji upotrebljavate."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Uključiti značajku Istraži dodirom"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Omogućuje aplikaciji izmjenu vaše zbirke fotografija."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"čitanje lokacija iz vaše medijske zbirke"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Omogućuje aplikaciji čitanje lokacija iz vaše medijske zbirke."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"praćenje približnog pogleda"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Aplikaciji omogućuje praćenje približnih podataka o pogledu."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"praćenje toga gdje gledate"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Aplikaciji omogućuje pristup preciznim podacima o pogledu."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"praćenje lica"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Aplikaciji omogućuje pristup podacima o praćenju lica."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"praćenje pokreta ruku"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Aplikaciji omogućuje pristup podacima o praćenju ruku."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"praćenje pokreta glave"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Aplikaciji omogućuje pristup podacima o praćenju pokreta glave."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"stjecanje uvida u neposredno okruženje"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Aplikaciji omogućuje pristup podacima o praćenju o vašem neposrednom okruženju."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"stjecanje detaljnih uvida u neposredno okruženje"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Aplikaciji omogućuje pristup detaljnim podacima o praćenju o vašem neposrednom okruženju."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"pristup XR podacima dok nije u prednjem planu"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Aplikaciji omogućuje pristup XR podacima dok nije u prednjem planu."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Upotreba biometrije"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Upotreba biometrijske autentifikacije ili zaključavanja zaslona"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Potvrdite da ste to vi"</string>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 24389d6..1acf7bc 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"az érzékelők által mért, életjelekkel kapcsolatos adatok elérése"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Értesítések"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"értesítések megjelenítése"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR-nyomonkövetési adatok"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"hozzáférés az Önre és a környezetére vonatkozó XR-adatokhoz"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"bizalmas XR-nyomonkövetési adatok"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"hozzáférés bizalmas nyomon követési adatokhoz, például a szemmozgáshoz"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Ablaktartalom lekérdezése"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"A használt ablak tartalmának vizsgálata."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Felfedezés érintéssel bekapcsolása"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Engedélyezi az alkalmazásnak a fényképgyűjtemény módosítását."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"helyek olvasása a médiagyűjteményből"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Engedélyezi az alkalmazásnak a helyek médiagyűjteményből való olvasását."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"a szemmozgás hozzávetőleges nyomon követése"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Lehetővé teszi az alkalmazás számára a szemmozgás hozzávetőleges nyomon követését."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"annak nyomon követése, hogy Ön hová néz"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Lehetővé teszi az alkalmazás számára, hogy hozzáférjen a szemmozgással kapcsolatos pontos adatokhoz."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"arc nyomon követése"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Lehetővé teszi az alkalmazás számára, hogy hozzáférjen az arckövetési adatokhoz."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"kézmozgás nyomon követése"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Lehetővé teszi az alkalmazás számára, hogy hozzáférjen a kézmozgáskövetési adatokhoz."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"fej nyomon követése"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Lehetővé teszi az alkalmazás számára, hogy hozzáférjen a fejkövetési adatokhoz."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"a közvetlen környezet megértése"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Lehetővé teszi az alkalmazás számára, hogy hozzáférjen az Ön közvetlen környezetére vonatkozó nyomon követési adatokhoz."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"a közvetlen környezetének nagyon pontos megértése"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Lehetővé teszi az alkalmazás számára, hogy hozzáférjen az Ön közvetlen környezetére vonatkozó nagyon pontos nyomon követési adatokhoz."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"hozzáférés az XR-adatokhoz, amikor nincs az előtérben"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Lehetővé teszi az alkalmazás számára, hogy hozzáférjen az XR-adatokhoz, amikor nincs az előtérben."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Biometriai feloldás használata"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"A folytatás biometriai feloldással vagy képernyőzárral lehetséges"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Igazolja, hogy Ön az"</string>
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index 1125dc9..041042f 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"օգտագործել սենսորների տվյալները ձեր օրգանիզմի վիճակի մասին"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Ծանուցումներ"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"ցուցադրել ծանուցումներ"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR հետագծման տվյալներ"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"մուտք գործեք XR տվյալներ ձեր և ձեզ շրջապատող միջավայրի մասին"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"զգայուն XR հետագծման տվյալներ"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"մուտք գործել հետևելու զգայուն տվյալներ, ինչպիսիք են աչքի հայացքը"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Առբերել պատուհանի բովանդակությունը"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Վերլուծել գործող պատուհանի բովանդակությունը"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Միացնել Հպման միջոցով հետազոտումը"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Թույլ է տալիս հավելվածին փոփոխել ձեր լուսանկարների հավաքածուն:"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"ճանաչել տեղադրության մասին տվյալները մեդիա բովանդակության հավաքածուից"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Թույլ է տալիս հավելվածին ճանաչել տեղադրության մասին տվյալները ձեր մեդիա բովանդակության հավաքածուից:"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"հետևեք ձեր աչքերի մոտավոր հայացքին"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Թույլ է տալիս հավելվածին հետևել ձեր աչքերի մոտավոր հայացքին։"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"հետևեք, թե որտեղ եք փնտրում"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Թույլ է տալիս հավելվածին մուտք գործել աչքի հայացքի ճշգրիտ տվյալներ։"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"հետևեք ձեր դեմքին"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Թույլ է տալիս հավելվածին մուտք գործել դեմքերի հետագծման տվյալներ։"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"հետագծեք ձեր ձեռքերի շարժումները"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Թույլ է տալիս հավելվածին մուտք գործել ձեռքի հետագծման տվյալներ։"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"հետևեք ձեր գլխին"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Թույլ է տալիս հավելվածին մուտք գործել գլխի հետագծման տվյալներ։"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"հասկացեք ձեր անմիջական միջավայրը"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Թույլ է տալիս հավելվածին մուտք գործել անմիջականորեն ձեր շուրջը գտնվող միջավայրի հետագծման տվյալներ։"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"հասկացեք ձեր անմիջական միջավայրը մանրամասնությամբ"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Թույլ է տալիս հավելվածին մուտք գործել անմիջականորեն ձեր շուրջը գտնվող միջավայրի հետագծման տվյալներ՝ մանրամասների հետագծմամբ։"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"մուտք գործեք XR տվյալներ, երբ առաջին պլանում չեք"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Թույլ է տալիս հավելվածին մուտք գործել XR տվյալներ, մինչդեռ առաջին պլանում չէ։"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Կենսաչափական համակարգեր"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Օգտագործել կենսաչափական համակարգեր կամ էկրանի կողպում"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Հաստատեք ձեր ինքնությունը"</string>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 2cd5472..b02d5ee 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"mengakses data sensor tentang tanda-tanda vital"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notifikasi"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"tampilkan notifikasi"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"Data pelacakan XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"mengakses data XR tentang Anda dan lingkungan di sekitar Anda"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"data pelacakan XR sensitif"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"mengakses data pelacakan sensitif, seperti pandangan mata"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Membaca konten di jendela"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Memeriksa konten di jendela yang sedang Anda buka."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Mengaktifkan Jelajahi dengan Sentuhan"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Mengizinkan aplikasi untuk memodifikasi koleksi foto Anda."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"membaca lokasi dari koleksi media Anda"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Mengizinkan aplikasi untuk membaca lokasi dari koleksi media Anda."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"melacak perkiraan pandangan mata Anda"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Mengizinkan aplikasi melacak perkiraan pandangan mata Anda."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"melacak arah yang Anda lihat"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Mengizinkan aplikasi mengakses data pandangan mata yang akurat."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"melacak wajah Anda"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Mengizinkan aplikasi mengakses data pelacakan wajah."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"melacak gerak tangan Anda"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Mengizinkan aplikasi mengakses data pelacakan gerak tangan."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"melacak gerak kepala Anda"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Mengizinkan aplikasi mengakses data pelacakan gerak kepala."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"memahami lingkungan sekitar Anda"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Mengizinkan aplikasi mengakses data pelacakan tentang lingkungan di sekitar Anda."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"memahami lingkungan sekitar Anda secara mendetail"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Mengizinkan aplikasi mengakses data pelacakan tentang lingkungan di sekitar Anda secara mendetail."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"mengakses data XR saat tidak berada di latar depan"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Mengizinkan aplikasi mengakses data XR saat tidak berada di latar depan."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Gunakan biometrik"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Gunakan biometrik atau kunci layar"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verifikasi diri Anda"</string>
@@ -743,7 +723,7 @@
   </string-array>
     <string name="fingerprint_error_vendor_unknown" msgid="4170002184907291065">"Terjadi error. Coba lagi."</string>
     <string name="fingerprint_icon_content_description" msgid="4741068463175388817">"Ikon sidik jari"</string>
-    <string name="device_unlock_notification_name" msgid="2632928999862915709">"Buka kunci perangkat"</string>
+    <string name="device_unlock_notification_name" msgid="2632928999862915709">"Pembuka kunci perangkat"</string>
     <string name="alternative_unlock_setup_notification_title" msgid="6241508547901933544">"Coba cara lain untuk membuka kunci"</string>
     <string name="alternative_face_setup_notification_content" msgid="3384959224091897331">"Gunakan Buka dengan Wajah saat sidik jari Anda tidak dikenali, seperti saat jari Anda basah"</string>
     <string name="alternative_fp_setup_notification_content" msgid="7454096947415721639">"Gunakan Buka dengan Sidik Jari saat wajah Anda tidak dikenali, seperti saat pencahayaan tidak cukup"</string>
diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml
index a89a50f..d66721a 100644
--- a/core/res/res/values-is/strings.xml
+++ b/core/res/res/values-is/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"aðgangur að skynjaragögnum um lífsmörk þín"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Tilkynningar"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"sýna tilkynningar"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"víðveruleikarakningargögn"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"aðgangur að víðveruleikagögnum um þig og umhverfi þitt"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"viðkvæm víðveruleikarakningargögn"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"aðgangur að viðkvæmum rakningargögnum, eins og augnhreyfingum"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Sækja innihald glugga"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Kanna innihald glugga sem þú ert að nota."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Kveikja á snertikönnun"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Leyfir forritinu að breyta myndasafninu þínu."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"lesa staðsetningar úr efnissafninu þínu"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Leyfir forritinu að lesa staðsetningar úr efnissafninu þínu."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"fylgjast með áætluðum augnhreyfingum þínum"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Leyfir forritinu að fylgjast með áætluðum augnhreyfingum þínum."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"fylgjast með því hvert þú horfir"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Leyfir forritinu að fá aðgang að gögnum um nákvæmar augnhreyfingar þínar."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"fylgjast með andliti þínu"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Leyfir forritinu að fá aðgang að gögnum um greiningu andlitshreyfinga."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"rekja handahreyfingarnar þínar"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Leyfir forritinu að fá aðgang að gögnum um greiningu handahreyfinga."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"fylgjast með höfðinu á þér"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Leyfir forritinu að fá aðgang að gögnum um vöktun höfuðhreyfinga."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"átta sig á nánasta umhverfi þínu"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Veitir forritinu aðgang að rakningargögnum um nánasta umhverfi þitt."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"átta sig á nánasta umhverfi þínu í miklum smáatriðum"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Leyfir forritinu að fá aðgang að rakningargögnum um nánasta umhverfi þitt í miklum smáatriðum."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"fá aðgang að víðveruleikagögnum þegar það er ekki í forgrunni"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Leyfir forritinu að fá aðgang að víðveruleikagögnum þegar það er ekki í forgrunni."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Nota lífkenni"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Nota lífkenni eða skjálás"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Staðfestu hver þú ert"</string>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 47ef283..7506002 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"Possono accedere ai dati dei sensori relativi ai tuoi parametri vitali"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notifiche"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"Visualizzazione di notifiche"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"dati di tracciamento XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"accesso ai dati XR relativi a te e all\'ambiente circostante"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"dati di tracciamento XR sensibili"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"accesso a dati di tracciamento sensibili, come lo sguardo"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Recuperare contenuti della finestra"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Esamina i contenuti di una finestra con cui interagisci."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Attivare Esplora al tocco"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Consente all\'app di modificare la tua raccolta di foto."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"lettura delle posizioni dalla tua raccolta multimediale"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Consente all\'app di leggere le posizioni dalla tua raccolta multimediale."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"tracciamento approssimativo dello sguardo"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Consente all\'app di tracciare approssimativamente il tuo sguardo."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"tracciamento del punto osservato"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Consente all\'app di accedere a dati precisi sullo sguardo."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"tracciamento del volto"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Consente all\'app di accedere ai dati di tracciamento del volto."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"tracciamento delle mani"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Consente all\'app di accedere ai dati di tracciamento delle mani."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"tracciamento della testa"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Consente all\'app di accedere ai dati di tracciamento della testa."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"comprensione dell\'ambiente circostante"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Consente all\'app di accedere ai dati di tracciamento sull\'ambiente direttamente intorno a te."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"comprensione dell\'ambiente circostante in modo dettagliato"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Consente all\'app di accedere ai dati di tracciamento sull\'ambiente direttamente intorno a te molto dettagliatamente."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"accesso ai dati XR non in primo piano"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Consente all\'app di accedere ai dati XR non in primo piano."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Usa la biometria"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Usa la biometria o il blocco schermo"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verifica la tua identità"</string>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 7e37dff..7ad10c8 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"バイタルサインに関するセンサーデータへのアクセス"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"通知"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"通知を表示"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR トラッキング データ"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"ユーザーと周囲の環境に関する XR データへのアクセス"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"機密性の高い XR トラッキング データ"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"視線などの機密性の高いトラッキング データへのアクセス"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"ウィンドウコンテンツの取得"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"ユーザーがアクセスしているウィンドウのコンテンツを検査します。"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"タッチガイドの有効化"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"写真コレクションの変更をアプリに許可します。"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"メディア コレクションの位置情報の読み取り"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"メディア コレクションの位置情報の読み取りをアプリに許可します。"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"おおまかな視線のトラッキング"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"おおまかな視線のトラッキングをアプリに許可します。"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"視線の移動のトラッキング"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"正確な視線データへのアクセスをアプリに許可します。"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"顔トラッキング"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"顔トラッキング データへのアクセスをアプリに許可します。"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"ハンド トラッキング"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"ハンド トラッキング データへのアクセスをアプリに許可します。"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"ヘッド トラッキング"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"ヘッド トラッキング データへのアクセスをアプリに許可します。"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"周囲の環境を把握"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"周囲の環境に関するトラッキング データへのアクセスをアプリに許可します。"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"周囲の環境を詳細に把握"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"周囲の環境に関する非常に詳細なトラッキング データへのアクセスをアプリに許可します。"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"フォアグラウンドで実行されていないときに XR データにアクセス"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"フォアグラウンドで実行されていないときに XR データへのアクセスをアプリに許可します。"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"生体認証の使用"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"生体認証または画面ロックの使用"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"本人確認"</string>
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index 5ecf5b7..fcdfc01 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"თქვენი სასიცოცხლო ფუნქციების შესახებ სენსორის მონაცემებზე წვდომა"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"შეტყობინებები"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"შეტყობინებების ჩვენება"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR თვალყურის დევნების მონაცემები"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"წვდომა თქვენ და მიმდებარე გარემოს შესახებ XR მონაცემებზე"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"XR თვალყურის დევნების სენსიტ. მონაცემები"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"წვდომა თვალყურის დევნების სენსიტიურ მონაცემებზე, როგორიცაა მზერის მიმართულება"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"ფანჯრის კონტენტის მოძიება"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"იმ ფანჯრის კონტენტის შემოწმება, რომელშიც მუშაობთ."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"„შეხებით აღმოჩენის“ ჩართვა"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"აპი შეძლებს თქვენი ფოტოკოლექციის შეცვლას."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"მდებარეობების გაცნობა თქვენი მედიაკოლექციიდან"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"აპი შეძლებს მდებარეობების გაცნობას თქვენი მედიაკოლექციიდან."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"თქვენი მზერის მიახლოებითი მიმართულების თვალყურის დევნება"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"ნებართვას აძლევს აპს, თვალყური ადევნოს თქვენი მზერის სავარაუდო მიმართულებას."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"მზერის მიმართულების თვალყურის დევნება"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"ნებართვას აძლევს აპს, მოიპოვოს წვდომა მზერის მიმართულების ზუსტ მონაცემებზე."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"თქვენი სახის თვალყურის დევნება"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"ნებართვას აძლევს აპს, მოიპოვოს წვდომა სახის თვალყურის დევნების მონაცემებზე."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"თქვენი ხელების მოძრაობაზე თვალის დევნება"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"ნებართვას აძლევს აპს, მოიპოვოს წვდომა ხელების მოძრაობაზე თვალყურის დევნების მონაცემებზე."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"თქვენი თავის მოძრაობაზე თვალყურის დევნება"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"ნებართვას აძლევს აპს, მოიპოვოს წვდომა თავის მოძრაობაზე თვალყურის დევნების მონაცემებზე."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"უშუალო გარემოს გაგება"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"ნებართვას აძლევს აპს, მოიპოვოს წვდომა თქვენ მიმდებარე გარემოზე თვალყურის დევნების მონაცემებზე."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"უშუალო გარემოს გაგება ზედმიწევნით დეტალურად"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"ნებართვას აძლევს აპს, მოიპოვოს წვდომა თქვენ მიმდებარე გარემოზე თვალყურის დევნების მონაცემებზე ზედმიწევნით დეტალურად."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"XR მონაცემებზე წვდომა უკანა პლანზე ყოფნისას"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"ნებართვას აძლევს აპს, მოიპოვოს წვდომა XR მონაცემებზე, უკანა პლანზე ყოფნისას."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"გამოიყენეთ ბიომეტრიული სისტემა"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"გამოიყენეთ ბიომეტრიული სისტემა ან ეკრანის დაბლოკვა"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"დაადასტურეთ ვინაობა"</string>
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index 98addd0..e60ce5d 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"ағза күйінің көрсеткіштері туралы сенсор деректеріне қатынасу"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Хабарландырулар"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"хабарландыруларды көрсету"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"бақылауға арналған XR деректері"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"сіз және айналаңыздағы орта туралы XR деректерін пайдалану"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"бақылауға арналған құпия XR деректері"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"қарау бағыты сияқты құпия қадағалау деректерін пайдалану"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Терезе контентін оқып отыру"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Ашық тұрған терезе контентін тексеру."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Түртілген элементтерді дыбыстау функциясын қосу"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Қолданбаға суреттер жинағын өзгертуге мүмкіндік береді."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"медиамазмұн жинағынан геодеректерді оқу"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Қолданбаға медиамазмұн жинағынан геодеректерді оқуға мүмкіндік береді."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"болжалды қарау бағытын қадағалау"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Қолданбаға болжалды қарау бағытын қадағалау рұқсаты беріледі."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"қараған бағытты қадағалау"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Қолданбаға қарау бағытының нақты деректерін пайдалану рұқсаты беріледі."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"бетті қадағалау"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Қолданбаға бетті қадағалау деректерін пайдалану рұқсаты беріледі."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"қол қимылын аңду"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Қолданбаға қол қимылын аңду деректерін пайдалану рұқсаты беріледі."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"бас қозғалысын қадағалау"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Қолданбаға бас қозғалысын қадағалау деректерін пайдалану рұқсаты беріледі."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"сізді қоршаған айналаны түсіне білу"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Қолданбаға сіздің айналаңыздағы ортаны бақылау деректерін пайдалану рұқсаты беріледі."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"сізді қоршаған айналаны терең түсіне білу"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Қолданбаға сіздің айналаңыздағы ортаны бақылаудың толық деректерін пайдалану рұқсаты беріледі."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"экрандық режимнен тыс кезде XR деректерін пайдалану"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Қолданба экрандық режимде тұрмаған кезде, оған XR деректерін пайдалану рұқсаты беріледі."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Биометриканы пайдалану"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Биометриканы немесе экран құлпын пайдалану"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Cіз екеніңізді растаңыз"</string>
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index 7d0f7785..ad10175 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"ចូលដំណើរការទិន្នន័យឧបករណ៍ចាប់សញ្ញាអំពីស្ថានភាពសុខភាពរបស់អ្នក"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"ការ​ជូនដំណឹង"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"បង្ហាញ​ការជូនដំណឹង"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"ទិន្នន័យតាមដាន XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"ចូលប្រើទិន្នន័យ XR អំពីអ្នក និងមជ្ឈដ្ឋានជុំវិញអ្នក"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"ទិន្នន័យតាមដាន XR ដែលរសើប"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"ចូលប្រើទិន្នន័យតាមដានដែលរសើប ដូចជាការសម្លឹងមើល"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"ទាញយក​ខ្លឹមសារ​វិនដូ"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"ពិនិត្យ​ខ្លឹមសារវិនដូ​ដែល​អ្នក​កំពុង​ធ្វើអន្តរកម្ម​ជា​មួយ។"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"បើក​ការ​រក​មើល​​ដោយ​ប៉ះ"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"អនុញ្ញាតឱ្យ​កម្មវិធី​កែប្រែ​បណ្ដុំ​រូបថត​របស់​អ្នក។"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"អាន​ទីតាំង​ពី​បណ្ដុំ​មេឌៀ​របស់​អ្នក"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"អនុញ្ញាតឱ្យ​កម្មវិធី​អាន​ទីតាំង​ពីបណ្ដុំ​មេឌៀ​របស់​អ្នក។"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"តាមដានការសម្លឹងមើលប្រហាក់ប្រហែលរបស់អ្នក"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"អនុញ្ញាតឱ្យកម្មវិធីតាមដានការសម្លឹងមើលប្រហាក់ប្រហែលរបស់អ្នក។"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"តាមដានកន្លែងដែលអ្នកកំពុងមើល"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យនៃការសម្លឹងមើលជាក់លាក់។"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"តាមដានមុខរបស់អ្នក"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យតាមដានមុខ។"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"តាមដានដៃរបស់អ្នក"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យតាមដានចលនាដៃ។"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"តាមដានក្បាលរបស់អ្នក"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យតាមដានចលនាក្បាល។"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"យល់ដឹងអំពីមជ្ឈដ្ឋានបច្ចុប្បន្នរបស់អ្នក"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យតាមដានអំពីមជ្ឈដ្ឋានជុំវិញអ្នកដោយផ្ទាល់។"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"យល់ដឹងអំពីមជ្ឈដ្ឋានបច្ចុប្បន្នរបស់អ្នកដោយមានភាពលម្អិតកម្រិតខ្ពស់"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យតាមដានអំពីមជ្ឈដ្ឋានជុំវិញអ្នកដោយផ្ទាល់ដោយមានភាពលម្អិតកម្រិតខ្ពស់ខ្លាំង។"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"ចូលប្រើទិន្នន័យ XR ពេលមិននៅផ្ទៃខាងមុខ"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើទិន្នន័យ XR ពេលមិននៅផ្ទៃខាងមុខ។"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"ប្រើ​ជីវមាត្រ"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"ប្រើជីវមាត្រ ឬ​ការចាក់សោអេក្រង់"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"ផ្ទៀងផ្ទាត់ថាជាអ្នក"</string>
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index e3caae5..5711aa6 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"ನಿಮ್ಮ ಮುಖ್ಯ ಲಕ್ಷಣಗಳ ಕುರಿತು ಸೆನ್ಸಾರ್ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಿ"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"ನೋಟಿಫಿಕೇಶನ್‌ಗಳು"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಿ"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾ"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"ನಿಮ್ಮ ಮತ್ತು ನಿಮ್ಮ ಸುತ್ತಲಿನ ಪರಿಸರದ ಕುರಿತು XR ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಿ"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"ಸೂಕ್ಷ್ಮವಾದ XR ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾ"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"ಕಣ್ಣಿನ ನೋಟದಂತಹ ಸೂಕ್ಷ್ಮವಾದ ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಿ"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"ವಿಂಡೋ ವಿಷಯವನ್ನು ಹಿಂಪಡೆಯುತ್ತದೆ"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"ನೀವು ಸಂವಹನ ನಡೆಸುತ್ತಿರುವ ವಿಂಡೋದ ಕಂಟೆಂಟ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಿ."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"ಸ್ಪರ್ಶ-ಎಕ್ಸ್‌ಪ್ಲೋರ್ ಆನ್ ಮಾಡುತ್ತದೆ"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"ನಿಮ್ಮ ಫೋಟೋ ಸಂಗ್ರಹಣೆಯನ್ನು ಮಾರ್ಪಡಿಸಲು ಆ್ಯಪ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"ನಿಮ್ಮ ಮೀಡಿಯಾ ಸಂಗ್ರಹಣೆಯಿಂದ ಸ್ಥಳಗಳನ್ನು ಓದಿ"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"ನಿಮ್ಮ ಮೀಡಿಯಾ ಸಂಗ್ರಹಣೆಯಿಂದ ಸ್ಥಳಗಳನ್ನು ಓದಲು ಆ್ಯಪ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"ನಿಮ್ಮ ಕಣ್ಣಿನ ಅಂದಾಜು ನೋಟವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"ನಿಮ್ಮ ಕಣ್ಣಿನ ಅಂದಾಜು ನೋಟವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"ನೀವು ಎಲ್ಲಿ ನೋಡುತ್ತಿದ್ದೀರಿ ಎಂಬುದನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"ಕಣ್ಣಿನ ನಿಖರವಾದ ನೋಟದ ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"ನಿಮ್ಮ ಮುಖವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"ಫೇಸ್ ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"ನಿಮ್ಮ ಕೈಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"ಹ್ಯಾಂಡ್ ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"ನಿಮ್ಮ ತಲೆಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"ಹೆಡ್ ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"ನಿಮ್ಮ ಸುತ್ತಲಿನ ಪರಿಸರವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"ನಿಮ್ಮ ಸುತ್ತಲಿನ ಪರಿಸರದ ಕುರಿತು ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾವನ್ನು ನೇರವಾಗಿ ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"ನಿಮ್ಮ ಸುತ್ತಲಿನ ಪರಿಸರವನ್ನು ಇನ್ನಷ್ಟು ವಿವರವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"ನಿಮ್ಮ ಸುತ್ತಲಿನ ಪರಿಸರದ ಕುರಿತು ಟ್ರ್ಯಾಕಿಂಗ್ ಡೇಟಾವನ್ನು ಹೆಚ್ಚಿನ ವಿವರಗಳೊಂದಿಗೆ ನೇರವಾಗಿ ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"ಮುನ್ನೆಲೆಯಲ್ಲಿ ಇಲ್ಲದಿರುವಾಗ XR ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಿ"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"ಮುನ್ನೆಲೆಯಲ್ಲಿ ಇಲ್ಲದಿರುವಾಗ XR ಡೇಟಾವನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"ಬಯೋಮೆಟ್ರಿಕ್ಸ್ ಬಳಸಿ"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"ಬಯೋಮೆಟ್ರಿಕ್ಸ್ ಅಥವಾ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಅನ್ನು ಬಳಸಿ"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"ಇದು ನೀವೇ ಎಂದು ಪರಿಶೀಲಿಸಿ"</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index ffbe631..bb8c022 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"생체 신호에 관한 센서 데이터에 액세스"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"알림"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"알림 표시"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR 추적 데이터"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"사용자 및 주변 환경에 대한 XR 데이터에 액세스"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"민감한 XR 추적 데이터"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"시선 추적과 같은 민감한 추적 데이터에 액세스"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"창 콘텐츠 가져오기"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"상호작용 중인 창의 콘텐츠를 검사합니다."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"터치하여 탐색 사용"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"앱에서 사진 컬렉션을 수정하도록 허용합니다."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"미디어 컬렉션에서 위치 읽기"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"앱에서 미디어 컬렉션의 위치를 읽도록 허용합니다."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"대략적인 시선 추적"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"앱이 대략적인 시선을 추적하도록 허용합니다."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"시선 추적"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"앱이 정확한 시선 데이터에 액세스하도록 허용합니다."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"얼굴 추적"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"앱이 얼굴 트래킹 데이터에 액세스하도록 허용합니다."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"손 추적"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"앱이 핸드 트래킹 데이터에 액세스하도록 허용합니다."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"머리 추적"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"앱이 헤드 트래킹 데이터에 액세스하도록 허용합니다."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"주변 환경 파악"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"앱이 주변 환경에 대한 추적 데이터에 직접 액세스하도록 허용합니다."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"주변 환경 상세 파악"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"앱이 주변 환경에 대한 매우 상세한 추적 데이터에 액세스하도록 허용합니다."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"포그라운드에 있지 않을 때 XR 데이터에 액세스"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"앱이 포그라운드에 있지 않을 때 XR 데이터에 액세스하도록 허용합니다."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"생체 인식 사용"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"생체 인식 또는 화면 잠금을 사용"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"본인 확인"</string>
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index 5f19cf7..3fe442f 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"организмдин абалына көз салган сенсордун дайындарына мүмкүнчүлүк алуу"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Билдирмелер"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"билдирмелерди көрсөтүү"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"кеңейтилген чындыкка көз салуу дайындары"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"сиз жана айланаңыздагы чөйрө жөнүндө кеңейтилген чындык дайындарына кирүү"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"купуя XR көз салуу дайындары"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"көз караш сыяктуу купуя көз салуу дайындарына кирүү"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Терезедеги нерселерди алып туруу"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Учурда ачылып турган терезедеги маалыматты талдайт."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"\"Сыйпалап изилдөө\" мүмкүнчүлүгүн иштетет"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Колдонмого сүрөт жыйнагыңызды өзгөртүүгө мүмкүнчүлүк берет."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"медиа жыйнагыңыз сакталган жерлерди окуу"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Колдонмого медиа жыйнагыңыз сакталган жерлерди окууга мүмкүнчүлүк берет."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"көз карашыңыздын болжолдуу багытына көз салуу"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Колдонмого көз карашыңыздын болжолдуу багытына көз салуу мүмкүнчүлүгүн берет."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"кайда карап жатканыңызга көз салуу"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Колдонмого көз карашыңыздын багыты боюнча так маалыматка кирүү мүмкүнчүлүгүн берет."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"жүзүңүзгө көз салуу"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Колдонмого жүзгө көз салуу боюнча так маалыматка кирүү мүмкүнчүлүгүн берет."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"колдоруңузга көз салуу"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Колдонмого колдорго көз салуу боюнча маалыматка кирүү мүмкүнчүлүгүн берет."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"башыңыздын кыймылына көз салуу"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Колдонмого баштын кыймылына көз салуу мүмкүнчүлүгүн берет."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"жакын айлана-чөйрөңүздү түшүнүү"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Колдонмого айлана-чөйрөңүзгө көз салуу дайындарына кирүү мүмкүнчүлүгүн берет."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"айлана-чөйрөңүзгө көз салуу дайындарынын толук чоо-жайын түшүнүү"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Колдонмого айлана-чөйрөңүзгө көз салуу дайындарынын толук чоо-жайына кирүү мүмкүнчүлүгүн берет."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"фондук режиминде кеңейтилген чындык дайындарына кирүү мүмкүнчүлүгү"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Колдонмого фондук режиминде кеңейтилген чындык дайындарына кирүү мүмкүнчүлүгүн берет."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Биометрикалык параметрлерди колдонуу"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Биометрикалык жөндөөнү же экрандын кулпусун колдонуу"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Өзүңүздү ырастаңыз"</string>
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index fa1ff2b..1658a78 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"ເຂົ້າ​ຫາ​ຂໍ້​ມູນ​ເຊັນ​ເຊີ​ກ່ຽວ​ກັບ​ສັນ​ຍານ​ຊີບ​ຂອງ​ທ່ານ"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"ການແຈ້ງເຕືອນ"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"ສະແດງການແຈ້ງເຕືອນ"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"ຂໍ້ມູນການຕິດຕາມ XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"ເຂົ້າເຖິງຂໍ້ມູນ XR ກ່ຽວກັບທ່ານ ແລະ ສະພາບແວດລ້ອມອ້ອມຕົວທ່ານ"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"ຂໍ້ມູນການຕິດຕາມ XR ທີ່ມີຄວາມລະອຽດອ່ອນ"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"ເຂົ້າເຖິງຂໍ້ມູນການຕິດຕາມທີ່ມີຄວາມລະອຽດອ່ອນ ເຊັ່ນ: ການຈ້ອງດ້ວຍຕາ"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"ດຶງຂໍ້ມູນເນື້ອຫາໃນໜ້າຈໍ"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"ກວດກາເນື້ອຫາຂອງໜ້າຈໍທີ່ທ່ານກຳລັງມີປະຕິສຳພັນນຳ."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"ເປີດໃຊ້ \"ການສຳຫຼວດໂດຍສຳຜັດ\""</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"ອະນຸຍາດໃຫ້ແອັບແກ້ໄຂຄໍເລັກຊັນຮູບຂອງທ່ານ."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"ອ່ານສະຖານທີ່ຈາກຄໍເລັກຊັນມີເດຍຂອງທ່ານ"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"ອະນຸຍາດໃຫ້ແອັບອ່ານສະຖານທີ່ຈາກຄໍເລັກຊັນມີເດຍຂອງທ່ານ."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"ຕິດຕາມການຈ້ອງດ້ວຍຕາໂດຍປະມານຂອງທ່ານ"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"ອະນຸຍາດໃຫ້ແອັບຕິດຕາມການຈ້ອງດ້ວຍຕາໂດຍປະມານຂອງທ່ານ."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"ຕິດຕາມຕຳແໜ່ງທີ່ທ່ານເບິ່ງ"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນການຈ້ອງດ້ວຍຕາຢ່າງລະອຽດ."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"ຕິດຕາມໃບໜ້າຂອງທ່ານ"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນການຕິດຕາມໃບໜ້າ."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"ຕິດຕາມມືຂອງທ່ານ"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນການຕິດຕາມມື."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"ຕິດຕາມຫົວຂອງທ່ານ"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນການຕິດຕາມຫົວ."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"ເຂົ້າໃຈສະພາບແວດລ້ອມທີ່ຢູ່ໃກ້ຕົວທ່ານ"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນການຕິດຕາມກ່ຽວກັບສະພາບແວດລ້ອມອ້ອມຕົວທ່ານໂດຍກົງ."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"ເຂົ້າໃຈສະພາບແວດລ້ອມທີ່ຢູ່ໃກ້ຕົວທ່ານແບບລາຍລະອຽດສູງ"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນການຕິດຕາມກ່ຽວກັບສະພາບແວດລ້ອມອ້ອມຕົວທ່ານໂດຍກົງທີ່ມີລາຍລະອຽດສູງຫຼາຍ."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"ເຂົ້າເຖິງຂໍ້ມູນ XR ໃນລະຫວ່າງທີ່ບໍ່ໄດ້ເຮັດວຽກຢູ່ໃນເບື້ອງໜ້າ"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງຂໍ້ມູນ XR ໃນລະຫວ່າງທີ່ບໍ່ໄດ້ເຮັດວຽກຢູ່ໃນເບື້ອງໜ້າ."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"ໃຊ້ລະບົບຊີວະມິຕິ"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"ໃຊ້ລະບົບຊີວະມິຕິ ຫຼື ການລັອກໜ້າຈໍ"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"ຢັ້ງຢືນວ່າແມ່ນທ່ານ"</string>
@@ -1844,7 +1824,7 @@
     <string name="hearing_device_notification_switch_button" msgid="3619524619430941300">"ປ່ຽນ"</string>
     <string name="hearing_device_notification_settings_button" msgid="6673651052880279178">"ການຕັ້ງຄ່າ"</string>
     <string name="user_switched" msgid="7249833311585228097">"ຜູ່ໃຊ້ປັດຈຸບັນ <xliff:g id="NAME">%1$s</xliff:g> ."</string>
-    <string name="user_switching_message" msgid="1912993630661332336">"ກຳລັງສະຫຼັບໄປຫາ<xliff:g id="NAME">%1$s</xliff:g>…"</string>
+    <string name="user_switching_message" msgid="1912993630661332336">"ກຳລັງສະຫຼັບໄປຫາ <xliff:g id="NAME">%1$s</xliff:g>…"</string>
     <string name="user_logging_out_message" msgid="7216437629179710359">"ກຳລັງອອກຈາກລະບົບ <xliff:g id="NAME">%1$s</xliff:g>…"</string>
     <string name="owner_name" msgid="8713560351570795743">"ເຈົ້າຂອງ"</string>
     <string name="guest_name" msgid="8502103277839834324">"ແຂກ"</string>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index b9303fa..57db157 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -355,14 +355,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"pasiekti jutiklių duomenis apie gyvybinius ženklus"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Pranešimai"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"rodyti pranešimus"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR stebėjimo duomenys"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"pasiekti XR duomenis apie jus ir aplinką"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"neskelbtini XR stebėjimo duomenys"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"pasiekti neskelbtinus stebėjimo duomenis, pvz., žvilgsnį"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Gauti lango turinį"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Tikrinti lango, su kuriuo sąveikaujate, turinį."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Įjungti „Naršyti paliečiant“"</string>
@@ -658,38 +654,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Programai leidžiama keisti nuotraukų kolekciją."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"skaityti vietoves iš medijos kolekcijos"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Programai leidžiama skaityti vietoves iš medijos kolekcijos."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"stebėti apytikslį žvilgsnį"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Leidžiama programai stebėti apytikslį žvilgsnį."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"stebėti, kur žiūrite"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Leidžiama programai pasiekti tikslius žvilgsnio duomenis."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"stebėti veidą"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Leidžiama programai pasiekti veido stebėjimo duomenis."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"stebėti rankas"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Leidžiama programai pasiekti rankų stebėjimo duomenis."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"stebėti galvos judesius"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Leidžiama programai pasiekti galvos stebėjimo duomenis."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"suprasti artimiausią aplinką"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Leidžiama programai pasiekti stebėjimo duomenis apie aplinką, esančią tiesiogiai aplink jus."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"suprasti artimiausią aplinką labai detaliai"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Leidžiama programai pasiekti labai išsamius stebėjimo duomenis apie aplinką, esančią tiesiogiai aplink jus."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"pasiekti XR duomenis, kai programa veikia ne priekiniame plane"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Leidžiama programai pasiekti XR duomenis, kai ji nėra priekiniame plane."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Naudoti biometrinius duomenis"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Naudoti biometrinius duomenis arba ekrano užraktą"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Patvirtinkite, kad tai jūs"</string>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 3a1df4b..764e8c9 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"piekļūt sensoru datiem par jūsu veselības rādījumiem"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Paziņojumi"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"rādīt paziņojumus"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"PR izsekošanas dati"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"piekļūt PR datiem par jums un vidi ap jums"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"sensitīvi PR izsekošanas dati"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"piekļūt sensitīviem izsekošanas datiem, piemēram, acu kustībām"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Izgūt loga saturu."</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Skatīt tā loga saturu, ar kuru mijiedarbojaties."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Aktivizēt funkciju “Pārlūkot pieskaroties”."</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Ļauj lietotnei pārveidot jūsu fotoattēlu kolekciju."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"Lasīt atrašanās vietas no jūsu multivides kolekcijas"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Ļauj lietotnei lasīt atrašanās vietas no jūsu multivides kolekcijas."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"izsekot aptuvenām acu kustībām"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Ļauj lietotnei izsekot aptuvenām acu kustībām."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"izsekot, kur skatāties"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Ļauj lietotnei piekļūt precīziem acu kustību izsekošanas datiem."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"izsekot jūsu sejas kustībām"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Ļauj lietotnei piekļūt sejas kustību izsekošanas datiem."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"izsekot jūsu roku kustībām"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Ļauj lietotnei piekļūt roku kustību izsekošanas datiem."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"izsekot jūsu galvas kustībām"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Ļauj lietotnei piekļūt galvas kustību reģistrēšanas datiem."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"izprast jūsu tuvāko apkārtni"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Ļauj lietotnei piekļūt izsekošanas datiem par vidi tieši ap jums."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"detalizēti izprast jūsu tuvāko apkārtni"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Ļauj lietotnei piekļūt ļoti detalizētiem izsekošanas datiem par vidi tieši ap jums."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"piekļūt PR datiem, kamēr lietotne nedarbojas priekšplānā"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Ļauj lietotnei piekļūt PR datiem, kamēr lietotne nedarbojas priekšplānā."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Biometrijas izmantošana"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Biometrijas vai ekrāna bloķēšanas izmantošana"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Apstipriniet, ka tas esat jūs"</string>
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index c6d51c7..4600935 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"пристапува до податоците од сензорите за виталните функции"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Известувања"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"да прикажува известувања"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR-податоци за следење"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"да пристапува до XR-податоци за вас и околината околу вас"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"чувствителни XR-податоци за следење"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"да пристапува до чувствителни податоци за следење, како што е погледот"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"да ги вчитува содржините од прозорците"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"да ги проверува содржините од прозорецот што го користите"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"да вклучи „Истражувај со допир“"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Дозволува апликацијата да ја менува вашата збирка на фотографии."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"да чита локации од вашата збирка на аудиовизуелни содржини"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Дозволува апликацијата да чита локации од вашата збирка на аудиовизуелни содржини."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"да го следи вашиот приближен поглед"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Дозволува апликацијата да го следи вашиот приближен поглед."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"да следи каде гледате"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Дозволува апликацијата да пристапува до податоци за прецизен поглед."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"да го следи вашиот лик"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Дозволува апликацијата да пристапува до податоците за следење лик."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"да ги следи вашите раце"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Дозволува апликацијата да пристапува до податоците за следење на раце."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"да го следи вашето движење"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Дозволува апликацијата да пристапува до податоците за следење на движење."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"да ја разбере вашата непосредна околина"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Дозволува апликацијата да пристапува до податоците за следење на околината директно околу вас."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"да ја разбере вашата непосредна околина со многу детали"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Дозволува апликацијата да пристапува до податоците за следење на околината директно околу вас со многу детали."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"да пристапува до XR-податоци кога не е во преден план"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Дозволува апликацијата да пристапува до XR-податоците кога не е во преден план."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Користи биометрика"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Користи биометрика или заклучен екран"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Потврдете дека сте вие"</string>
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index 17fa98b..d9ec167 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"നിങ്ങളുടെ ജീവാധാര ലക്ഷണങ്ങളെ കുറിച്ചുള്ള സെൻസർ വിവരങ്ങൾ ആക്സസ് ചെയ്യുക"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"അറിയിപ്പുകൾ"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"അറിയിപ്പുകൾ കാണിക്കുക"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR ട്രാക്കിംഗ് ഡാറ്റ"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"നിങ്ങളെ കുറിച്ചും നിങ്ങളുടെ ചുറ്റുപാടുകളെകുറിച്ചുമുള്ള XR ഡാറ്റ ആക്സസ് ചെയ്യുക"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"സെൻസിറ്റീവ് XR ട്രാക്കിംഗ് ഡാറ്റ"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"നോട്ടം പോലുള്ള, സൂക്ഷ്‌മമായി കൈകാര്യം ചെയ്യേണ്ട ട്രാക്കിംഗ് ഡാറ്റ ആക്സസ് ചെയ്യുക"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"വിൻഡോ ഉള്ളടക്കം വീണ്ടെടുക്കുക"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"നിങ്ങൾ സംവദിക്കുന്ന ഒരു വിൻഡോയുടെ ഉള്ളടക്കം പരിശോധിക്കുക."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"സ്‌പർശനം വഴി പര്യവേക്ഷണം ചെയ്യുക, ഓണാക്കുക"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"നിങ്ങളുടെ ഫോട്ടോ ശേഖരം പരിഷ്‌ക്കരിക്കുന്നതിന് ആപ്പിനെ അനുവദിക്കുന്നു."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"നിങ്ങളുടെ മീഡിയ ശേഖരത്തിൽ നിന്നും ലൊക്കേഷനുകൾ റീഡ് ചെയ്യുക"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"നിങ്ങളുടെ മീഡിയ ശേഖരത്തിൽ നിന്നും ലൊക്കേഷനുകൾ റീഡ് ചെയ്യുന്നതിന് ആപ്പിനെ അനുവദിക്കുന്നു."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"നിങ്ങളുടെ നോട്ടത്തിന്റെ ഏകദേശ ഡാറ്റ ട്രാക്ക് ചെയ്യുക"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"നിങ്ങളുടെ നോട്ടത്തിന്റെ ഏകദേശ ഡാറ്റ ട്രാക്ക് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"നിങ്ങൾ എവിടേയ്ക്കാണ് നോക്കുന്നതെന്ന് ട്രാക്ക് ചെയ്യുക"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"നോട്ടത്തിന്റെ കൃത്യമായ ഡാറ്റ ആക്സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"നിങ്ങളുടെ മുഖം ട്രാക്ക് ചെയ്യുക"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"മുഖ ട്രാക്കിംഗ് ഡാറ്റ ആക്സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"നിങ്ങളുടെ കൈകൾ ട്രാക്ക് ചെയ്യുക"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"കൈചലനം ട്രാക്കിംഗ് ഡാറ്റ ആക്സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"നിങ്ങളുടെ തല ട്രാക്ക് ചെയ്യുക"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"തല ട്രാക്കിംഗ് ഡാറ്റ ആക്സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുക."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"നിങ്ങളുടെ ഏറ്റവുമടുത്തുള്ള ചുറ്റുപാടുകൾ മനസ്സിലാക്കുക"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"നിങ്ങളുടെ ചുറ്റുപാടുകളെക്കുറിച്ചുള്ള ട്രാക്കിംഗ് ഡാറ്റ നേരിട്ട് ആക്‌സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"നിങ്ങളുടെ ഏറ്റവുമടുത്തുള്ള ചുറ്റുപാടുകൾ വളരെ വിശദമായി മനസ്സിലാക്കുക"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"നിങ്ങളുടെ ചുറ്റുപാടുകളെക്കുറിച്ചുള്ള വളരെ വിശദമായ ട്രാക്കിംഗ് ഡാറ്റ നേരിട്ട് ആക്‌സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"ഫോർഗ്രൗണ്ടിൽ ഇല്ലാത്തപ്പോൾ XR ഡാറ്റ ആക്‌സസ് ചെയ്യുക"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"ഫോർഗ്രൗണ്ടിൽ ഇല്ലാത്തപ്പോൾ XR ഡാറ്റ ആക്‌സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"ബയോമെട്രിക്‌സ് ഉപയോഗിക്കുക"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"ബയോമെട്രിക്‌സ് അല്ലെങ്കിൽ സ്‌ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"ഇത് നിങ്ങളാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക"</string>
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index 48b2aa8..05f4f05 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"таны биеийн байдлын талаарх мэдрэгч бүхий өгөгдөлд нэвтрэх"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Мэдэгдэл"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"мэдэгдэл харуулах"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR-н хяналтын өгөгдөл"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"таны болон таны орчны талаарх XR-н өгөгдөлд хандах"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"XR-н хяналтын эмзэг өгөгдөл"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"нүдний харц зэрэг хяналтын эмзэг өгөгдөлд хандах"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Цонхны агуулгыг авах"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Таны харилцан үйлчлэх цонхны контентоос шалгах."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Хүрэлтээр сонсохыг асаах"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Таны зургийн цуглуулгыг тохируулах зөвшөөрлийг аппад олгодог."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"медиа цуглуулгаасаа байршлыг унших"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Таны медиа цуглуулгаас байршлыг унших зөвшөөрлийг аппад олгодог."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"таны нүдний барагцаалсан харцыг хянах"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Аппад таны нүдний барагцаалсан харцыг хянахыг зөвшөөрнө."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"таны хаашаа харж байгааг хянах"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Аппад таны нүдний нарийвчилсан харцын өгөгдөлд хандахыг зөвшөөрнө."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"таны царайг хянах"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Аппад царай хяналтын өгөгдөлд хандахыг зөвшөөрнө."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"таны гарыг хянах"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Аппад гар хяналтын өгөгдөлд хандахыг зөвшөөрнө."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"таны толгойг хянах"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Аппад толгойн хяналтын өгөгдөлд хандахыг зөвшөөрнө."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"таны яг байгаа орчныг ойлгох"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Аппад таны яг байгаа орчны талаарх хяналтын өгөгдөлд хандахыг зөвшөөрнө."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"таны яг байгаа орчныг өндөр нарийвчлалтай ойлгох"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Аппад таны яг байгаа орчны талаарх маш өндөр нарийвчлалтай хяналтын өгөгдөлд хандахыг зөвшөөрнө."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"дэвсгэрт байхдаа XR-н өгөгдөлд хандах"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Аппад дэвсгэрт байхдаа XR-н өгөгдөлд хандахыг зөвшөөрнө."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Биометр ашиглах"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Биометр эсвэл дэлгэцийн түгжээ ашиглах"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Өөрийгөө мөн гэдгийг баталгаажуулаарай"</string>
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index 03400f2..df7688e 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"आपल्‍या महत्त्वाच्या मापनांविषयी सेन्सर डेटा अ‍ॅक्सेस करा"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"सूचना"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"सूचना दाखवा"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR ट्रॅकिंग डेटा"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"तुमच्याबद्दल आणि तुमच्या सभोवतालच्या वातावरणाबद्दल XR डेटा अ‍ॅक्सेस करा"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"संवेदनशील XR ट्रॅकिंग डेटा"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"संवेदनशील ट्रॅकिंग डेटा अ‍ॅक्सेस करा, जसे की डोळ्यांची हालचाल"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"विंडोमधील आशय पुन्हा मिळवा"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"तुम्ही वापरत असलेल्‍या विंडोमधील आशय तपासा."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"स्पर्श करून अन्वेषण सुरू करा"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"ॲपला तुमच्या फोटो संग्रहामध्ये सुधारणा करण्याची अनुमती देते."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"तुमच्या मीडिया संग्रहातून स्थाने वाचा"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"ॲपला तुमच्या मीडिया संग्रहामध्येील स्थाने वाचण्यासाठी अनुमती देते."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"तुमच्या डोळ्यांची अंदाजे हालचाल ट्रॅक करा"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"अ‍ॅपला तुमच्या डोळ्यांची अंदाजे हालचाल ट्रॅक करण्याची अनुमती देते."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"तुम्ही कुठे पाहत आहात ते ट्रॅक करा"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"अ‍ॅपला तुमच्या डोळ्यांच्या अचूक हालचालीचा डेटा अ‍ॅक्सेस करण्याची अनुमती देते."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"तुमचा चेहरा ट्रॅक करा"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"अ‍ॅपला फेस ट्रॅकिंग डेटा अ‍ॅक्सेस करण्याची अनुमती देते."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"तुमचे हात ट्रॅक करा"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"अ‍ॅपला हँड ट्रॅकिंग डेटा अ‍ॅक्सेस करण्याची अनुमती देते."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"तुमचे डोके ट्रॅक करा"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"अ‍ॅपला हेड ट्रॅकिंग डेटा अ‍ॅक्सेस करण्याची अनुमती देते."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"तुमच्या आजूबाजूचे वातावरण समजून घ्या"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"तुमच्या सभोवतालच्या वातावरणाबद्दलचा ट्रॅकिंग डेटा अ‍ॅक्सेस करण्यासाठी अ‍ॅपला अनुमती देते."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"तुमच्या आजूबाजूचे वातावरण सविस्तरपणे समजून घ्या"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"अ‍ॅपला तुमच्या सभोवतालच्या वातावरणाबद्दलचा ट्रॅकिंग डेटा अत्यंत तपशिलवार अ‍ॅक्सेस करण्याची अनुमती देते."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"फोरग्राउंडमध्ये नसताना XR डेटा अ‍ॅक्सेस करा"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"फोरग्राउंडमध्ये नसतानाही अ‍ॅपला XR डेटा अ‍ॅक्सेस करण्याची अनुमती देते."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"बायोमेट्रिक वापरा"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"बायोमेट्रिक किंवा स्क्रीन लॉक वापरा"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"हे तुम्हीच आहात याची पडताळणी करा"</string>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index 889324c..7d77268 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"akses data penderia tentang tanda vital anda"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Pemberitahuan"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"tunjukkan pemberitahuan"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"Data penjejakan XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"mengakses data XR tentang anda dan persekitaran di sekeliling anda"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"Data penjejakan XR sensitif"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"mengakses data penjejakan sensitif, seperti renungan mata"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Dapatkan kembali kandungan tetingkap"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Periksa kandungan tetingkap yang berinteraksi dengan anda."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Hidupkan Teroka melalui Sentuhan"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Membenarkan apl mengubah suai koleksi foto anda."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"baca lokasi daripada koleksi media anda"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Membenarkan apl membaca lokasi daripada koleksi media anda."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"Menjejaki anggaran renungan mata anda"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Membenarkan apl menjejaki anggaran renungan mata anda."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"menjejaki tempat yang anda lihat"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Membenarkan apl menjejaki data renungan mata yang tepat."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"menjejaki wajah anda"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Membenarkan apl mengakses data penjejakan wajah."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"menjejaki tangan anda"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Membenarkan apl mengakses data penjejakan tangan."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"menjejaki kepala anda"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Membenarkan apl mengakses data penjejakan kepala."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"memahami persekitaran berhampiran anda"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Membenarkan apl untuk mengakses data penjejakan tentang persekitaran secara langsung di sekeliling anda."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"memahami persekitaran berhampiran anda pada butiran yang tinggi"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Membenarkan apl mengakses data penjejakan tentang persekitaran secara langsung di sekeliling anda dengan butiran yang amat tinggi."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"mengakses data XR semasa tidak di latar depan"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Membenarkan apl mengakses data XR semasa tidak di latar depan."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Gunakan biometrik"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Gunakan biometrik atau kunci skrin"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Sahkan diri anda"</string>
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index 67f0841..b2b6011 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"သင်၏အရေးကြီးသော ကျန်းမာရေးလက္ခဏာဆိုင်ရာ အာရုံခံကိရိယာဒေတာကို ရယူရန်"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"အကြောင်းကြားချက်များ"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"အကြောင်းကြားချက်များ ပြနိုင်သည်"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR ခြေရာခံခြင်းဒေတာ"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"သင်နှင့် သင့်ဘေးနားရှိ ပတ်ဝန်းကျင်အကြောင်း XR ဒေတာကို သုံးခွင့်"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"သတိထားရမည့် XR ခြေရာခံခြင်းဒေတာ"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"မျက်လုံးအကြည့်ကဲ့သို့သော သတိထားရမည့် ခြေရာခံခြင်းဒေတာကို သုံးခွင့်"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"ဝင်းဒိုးတွင် ပါရှိသည်များကို ပြန်လည်ရယူရန်"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"သင်အသုံးပြုနေသော ဝင်းဒိုးတွင် ပါရှိသည်များကို ကြည့်ရှုစစ်ဆေးသည်။"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"တို့ထိခြင်းဖြင့် ရှာဖွေမှုကို ဖွင့်ရန်"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"အက်ပ်အား သင့်ဓာတ်ပုံစုစည်းမှုကို ပြုပြင်ခွင့်ပေးသည်။"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"သင့်မီဒီယာစုစည်းမှုမှ တည်နေရာများကို ဖတ်ခြင်း"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"အက်ပ်အား သင့်မီဒီယာစုစည်းမှုမှ တည်နေရာများကို ဖတ်ခွင့်ပေးသည်။"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"ခန့်မှန်းခြေ မျက်လုံးအကြည့်ကို စောင့်ကြည့်ခြင်း"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"သင်၏ ခန့်မှန်းခြေမျက်လုံးအကြည့်ကို အက်ပ်အား စောင့်ကြည့်ခွင့်ပြုသည်။"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"သင်ကြည့်နေသည့်နေရာကို စောင့်ကြည့်ခြင်း"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"တိကျသော မျက်လုံးအကြည့်ဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"သင့်မျက်နှာကို စောင့်ကြည့်ခြင်း"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"မျက်နှာခြေရာခံခြင်းဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"သင့်လက်များကို စောင့်ကြည့်ခြင်း"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"လက်ဟန်ခြေရာခံခြင်းဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"သင့်ခေါင်းကို စောင့်ကြည့်ခြင်း"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"ဦးခေါင်းလှုပ်ရှားမှု မှတ်သားခြင်းဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"သင့်အနီးဆုံးပတ်ဝန်းကျင်ကို နားလည်ခြင်း"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"သင့်ဘေးနားရှိ ပတ်ဝန်းကျင်အကြောင်း ခြေရာခံခြင်းဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"သင့်အနီးဆုံးပတ်ဝန်းကျင်၏ အတွင်းကျကျအသေးစိတ်ကို နားလည်ခြင်း"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"သင့်ဘေးနားရှိ ပတ်ဝန်းကျင်အကြောင်း အတွင်းကျကျအသေးစိတ် ခြေရာခံခြင်းဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"မျက်နှာစာတွင် ဖွင့်မထားချိန်၌ XR ဒေတာကို သုံးခွင့်"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"မျက်နှာစာတွင် ဖွင့်မထားချိန်၌ XR ဒေတာကို အက်ပ်အား သုံးခွင့်ပြုသည်။"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"ဇီဝမက်ထရစ်အချက်အလက်များ သုံးခြင်း"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"ဇီဝမက်ထရစ်အချက်အလက်များ (သို့) ဖန်သားပြင်လော့ခ်ချခြင်းကို သုံးခြင်း"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"သင်ဖြစ်ကြောင်း အတည်ပြုပါ"</string>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 44458ba..3022fca 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"få tilgang til sensordata om de vitale tegnene dine"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Varsler"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"vise varsler"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR-sporingsdata"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"lese XR-data om deg og omgivelsene dine"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"sensitive XR-sporingsdata"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"lese sensitive sporingsdata, for eksempel øyebevegelser"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"hente innhold i vinduer"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Appen analyserer innholdet i vinduer du samhandler med."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"slå på berøringsutforsking"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Lar appen gjøre endringer i bildesamlingen din."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"lese posisjoner fra mediesamlingen din"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Lar appen lese posisjoner fra mediesamlingen din."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"spore omtrentlige øyebevegelser"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Lar appen spore de omtrentlige øyebevegelsene dine."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"spore hvor du ser"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Gir appen tilgang til nøyaktige data om øyebevegelser."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"spore ansiktet ditt"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Gir appen tilgang til data for ansiktssporing."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"spore hendene dine"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Gir appen tilgang til data for håndsporing."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"spore hodet ditt"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Gir appen tilgang til data for hodesporing."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"forstå omgivelsene like rundt deg"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Gir appen tilgang til sporingsdata om omgivelsene like rundt deg."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"forstå omgivelsene like rundt deg med høyt detaljnivå"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Gir appen tilgang til sporingsdata om omgivelsene like rundt deg med svært høyt detaljnivå."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"bruke XR-data når appen ikke er i forgrunnen"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Gir appen tilgang til XR-data når den ikke er i forgrunnen."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Bruk biometri"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Bruk biometri eller skjermlås"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Bekreft at det er deg"</string>
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index 2591a15..93ead6d 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"तपाईंको महत्त्वपूर्ण संकेत बारे सेन्सर डेटा पहुँच गर्नुहोस्"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"नोटिफिकेसनहरू"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"सूचनाहरू देखाउनुहोस्"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR सम्बन्धी ट्रयाकिङ डेटा"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"तपाईं र तपाईंको वरपरको वातावरणका बारेमा XR सम्बन्धी डेटा एक्सेस गर्ने"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"XR सम्बन्धी संवेदनशील ट्रयाकिङ डेटा"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"संवेदनशील ट्रयाकिङ डेटा (जस्तै, आँखाको गतिविधि) एक्सेस गर्ने"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"विन्डो सामग्रीको पुनःबहाली गर्नुहोस्।"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"तपाईँको अन्तरक्रिया भइरहेको विन्डोको सामग्रीको निरीक्षण गर्नुहोस्।"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"छोएर गरिने खोजलाई सुचारु गर्नुहोस्"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"यसले एपलाई तपाईंको तस्बिरको सङ्ग्रह परिमार्जन गर्न दिन्छ।"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"आफ्नो मिडियाको सङ्ग्रहका स्थानहरू पढ्नुहोस्‌"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"यसले एपलाई तपाईंको मिडिया सङ्ग्रहका स्थानहरू पढ्न दिन्छ।"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"तपाईंको आँखाको गतिविधिसम्बन्धी अनुमानित डेटा ट्रयाक गर्ने"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"तपाईंले यो अनुमति दिनुभयो भने यो एपले तपाईंको आँखाको गतिविधिसम्बन्धी अनुमानित डेटा ट्रयाक गर्न सक्छ।"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"तपाईं कहाँ हेरिरहनुभएको छ भन्ने कुरा ट्रयाक गर्ने"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"तपाईंले यो अनुमति दिनुभयो भने यो एपले आँखाको गतिविधिसम्बन्धी सटीक डेटा एक्सेस गर्न सक्छ।"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"तपाईंको अनुहार ट्रयाक गर्ने"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"तपाईंले यो अनुमति दिनुभयो भने यो एपले फेस ट्रयाकिङ डेटा एक्सेस गर्न सक्छ।"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"तपाईंका हातहरू ट्र्याक गर्ने"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"तपाईंले यो अनुमति दिनुभयो भने यो एपले ह्यान्ड ट्र्याकिङ डेटा एक्सेस गर्न सक्छ।"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"तपाईंको टाउको ट्रयाक गर्ने"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"तपाईंले यो अनुमति दिनुभयो भने यो एपले हेड ट्रयाकिङ डेटा एक्सेस गर्न सक्छ।"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"तपाईंको वरपरको वातावरणका बारेमा बुझ्ने"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"तपाईंले यो अनुमति दिनुभयो भने यो एपले तपाईंको वरपरको वातावरणसम्बन्धी ट्रयाकिङ डेटा एक्सेस गर्न सक्छ।"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"तपाईंको वरपरको वातावरणका ससाना विवरणहरू पनि बुझ्ने"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"तपाईंले यो अनुमति दिनुभयो भने यो एपले तपाईंको वरपरको वातावरणका बारेमा ससाना विवरणहरू समावेश गरिएको ट्रयाकिङ डेटा एक्सेस गर्न सक्छ।"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"फोरग्राउन्डमा नचलिरहेका बेला XR सम्बन्धी डेटा एक्सेस गर्ने"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"तपाईंले यो अनुमति दिनुभयो भने यो एप फोरग्राउन्डमा नचलिरहेका बेला पनि यो एपले XR सम्बन्धी डेटा एक्सेस गर्न सक्छ।"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"बायोमेट्रिक्स प्रयोग गर्नुहोस्"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"बायोमेट्रिक्स वा स्क्रिन लक प्रयोग गर्नुहोस्"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"यो व्यक्ति तपाईं नै हो भन्ने प्रमाणित गर्नुहोस्"</string>
@@ -1091,7 +1071,7 @@
     <string name="lockscreen_glogin_too_many_attempts" msgid="3775904917743034195">"निकै धेरै कोसिसहरू"</string>
     <string name="lockscreen_glogin_instructions" msgid="4695162942525531700">"अनलक गर्नको लागि, तपाईँको Google खातासँग साइन इन गर्नुहोस्।"</string>
     <string name="lockscreen_glogin_username_hint" msgid="6916101478673157045">"प्रयोगकर्तानाम (इमेल)"</string>
-    <string name="lockscreen_glogin_password_hint" msgid="3031027901286812848">"पासवर्ड:"</string>
+    <string name="lockscreen_glogin_password_hint" msgid="3031027901286812848">"पासवर्ड"</string>
     <string name="lockscreen_glogin_submit_button" msgid="3590556636347843733">"साइन इन गर्नुहोस्"</string>
     <string name="lockscreen_glogin_invalid_input" msgid="4369219936865697679">"अमान्य प्रयोगकर्तानाम वा पासवर्ड"</string>
     <string name="lockscreen_glogin_account_recovery_hint" msgid="1683405808525090649">"तपाईँको एक-पटके टेक्स्ट म्यासेज वा पासवर्ड बिर्सनुभयो?\n भ्रमण गर्नुहोस"<b>"google.com/accounts/recovery"</b></string>
@@ -1844,7 +1824,7 @@
     <string name="hearing_device_notification_switch_button" msgid="3619524619430941300">"बदल्नुहोस्"</string>
     <string name="hearing_device_notification_settings_button" msgid="6673651052880279178">"सेटिङ"</string>
     <string name="user_switched" msgid="7249833311585228097">"अहिलेको प्रयोगकर्ता <xliff:g id="NAME">%1$s</xliff:g>।"</string>
-    <string name="user_switching_message" msgid="1912993630661332336">"स्विच गरेर <xliff:g id="NAME">%1$s</xliff:g> बनाइँदै..."</string>
+    <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> मा स्विच गरिँदै छ…"</string>
     <string name="user_logging_out_message" msgid="7216437629179710359">"लग आउट गर्दै <xliff:g id="NAME">%1$s</xliff:g>…"</string>
     <string name="owner_name" msgid="8713560351570795743">"मालिक"</string>
     <string name="guest_name" msgid="8502103277839834324">"अतिथि"</string>
diff --git a/core/res/res/values-night/colors.xml b/core/res/res/values-night/colors.xml
index 7b9b2d6..e19ee23 100644
--- a/core/res/res/values-night/colors.xml
+++ b/core/res/res/values-night/colors.xml
@@ -50,6 +50,8 @@
     <!-- Color for various surfaces related to system-wide blur -->
     <color name="surface_effect_0">@color/surface_effect_0_color</color>
     <color name="surface_effect_1">@color/surface_effect_1_color</color>
+    <color name="surface_effect_2">@color/surface_effect_2_color</color>
+    <color name="surface_effect_3">@color/surface_effect_3_color</color>
 
     <!-- Color for side fps toast dark theme-->
     <color name="side_fps_toast_background">#2E3132</color>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index bbdc1bb..fc12906 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"toegang krijgen tot sensorgegevens over je vitale functies"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Meldingen"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"meldingen tonen"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR-trackinggegevens"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"toegang tot XR-gegevens over jou en de omgeving om je heen"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"gevoelige XR-trackinggegevens"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"toegang tot gevoelige trackinggegevens, zoals oogbewegingen"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Content van vensters ophalen"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"De content inspecteren van een venster waarmee je interactie hebt."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Verkennen via aanraking aanzetten"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Hiermee sta je de app toe je fotocollectie aan te passen."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"locaties van je mediacollecties bekijken"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Hiermee sta je de app toe locaties van je mediacollectie te bekijken."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"je oogbewegingen bij benadering volgen"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Hiermee kan de app je oogbewegingen bij benadering volgen."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"volgen waar je naar kijkt"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Hiermee kan de app toegang krijgen tot nauwkeurige gegevens voor oogbewegingen."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"je gezicht volgen"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Hiermee kan de app toegang krijgen tot gegevens voor gezichtstracking."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"je handen volgen"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Hiermee kan de app toegang krijgen tot gegevens voor handtracking."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"je hoofd volgen"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Hiermee kan de app toegang krijgen tot gegevens voor hoofdtracking."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"je directe omgeving begrijpen"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Hiermee kan de app toegang krijgen tot trackinggegevens over de omgeving direct om je heen."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"je directe omgeving begrijpen met veel details"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Hiermee kan de app toegang krijgen tot trackinggegevens over de omgeving direct om je heen met veel details."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"toegang tot XR-gegevens terwijl de app niet op de voorgrond wordt gebruikt"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Hiermee kan de app toegang krijgen tot XR-gegevens terwijl de app niet op de voorgrond wordt gebruikt."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Biometrische gegevens gebruiken"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Biometrische gegevens of schermvergrendeling gebruiken"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Je identiteit bevestigen"</string>
diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml
index a1b24eb..3200f40 100644
--- a/core/res/res/values-or/strings.xml
+++ b/core/res/res/values-or/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"ଆପଣଙ୍କ ଗୁରୁତପୂର୍ଣ୍ଣ ସଂକେତଗୁଡ଼ିକ ବିଷୟରେ ସେନ୍ସର୍‍ ଡାଟା ଆକ୍ସେସ୍‍ କରେ"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ଦେଖାନ୍ତୁ"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR ଟ୍ରାକିଂ ଡାଟା"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"ଆପଣଙ୍କ ଚାରିପାଖର ପରିବେଶ ଏବଂ ଆପଣଙ୍କ ବିଷୟରେ XR ଡାଟା ଆକ୍ସେସ କରନ୍ତୁ"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"ସମ୍ବେଦନଶୀଳ XR ଟ୍ରାକିଂ ଡାଟା"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"ସମ୍ବେଦନଶୀଳ ଟ୍ରାକିଂ ଡାଟା ଆକ୍ସେସ କରନ୍ତୁ, ଯେପରି କି ଆଇ ଗେଜ"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"ୱିଣ୍ଡୋ କଣ୍ଟେଣ୍ଟ ହାସଲ କରନ୍ତୁ"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"ଆପଣ କାମ କରୁଥିବା ୱିଣ୍ଡୋର କଣ୍ଟେଣ୍ଟକୁ ଯାଞ୍ଚ କରନ୍ତୁ।"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"ସ୍ପର୍ଶ ଦ୍ୱାରା ଏକ୍ସପ୍ଲୋର୍‍ ଅନ୍‍ କରନ୍ତୁ"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"ଆପଣଙ୍କ ଫଟୋ ସଂଗ୍ରହ ପରିବର୍ତ୍ତନ କରିବାକୁ ଆପ୍‍ ଅନୁମତି ଦେଇଥାଏ।"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"ଆପଣଙ୍କ ମିଡିଆ ସଂଗ୍ରହ ଠାରୁ ଲୋକେସନ୍‍ଗୁଡିକୁ ପଢନ୍ତୁ"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"ଆପଣଙ୍କ ମିଡିଆ ସଂଗ୍ରହ ଠାରୁ ଅବସ୍ଥାନଗୁଡିକୁ ପଢିବାକୁ ଆପ୍‍ ଅନୁମତି ଦେଇଥାଏ।"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"ଆପଣଙ୍କର ଆନୁମାନିକ ଆଇ ଗେଜ ଟ୍ରାକ କରନ୍ତୁ"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"ଆପଣଙ୍କର ଆନୁମାନିକ ଆଇ ଗେଜ ଟ୍ରାକ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"ଆପଣ କେଉଁଠିକୁ ଦେଖୁଛନ୍ତି ତାହା ଟ୍ରାକ କରନ୍ତୁ"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"ଆପଣଙ୍କର ସଠିକ ଆଇ ଗେଜ ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"ଆପଣଙ୍କର ମୁହଁକୁ ଟ୍ରାକ କରନ୍ତୁ"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"ଫେସ ଟ୍ରାକିଂ ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"ଆପଣଙ୍କର ହାତକୁ ଟ୍ରାକ କରନ୍ତୁ"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"ହେଣ୍ଡ ଟ୍ରାକିଂ ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"ଆପଣଙ୍କର ମୁଣ୍ଡକୁ ଟ୍ରାକ କରନ୍ତୁ"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"ହେଡ ଟ୍ରାକିଂ ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"ଆପଣଙ୍କର ଅତିନିକଟର ପରିବେଶ ବିଷୟରେ ବୁଝନ୍ତୁ"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"ଆପଣଙ୍କ ଚାରିପାଖର ପରିବେଶ ବିଷୟରେ ଟ୍ରାକିଂ ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"ଅଧିକ ବିବରଣୀ ସହ ଆପଣଙ୍କର ଅତିନିକଟର ପରିବେଶ ବିଷୟରେ ବୁଝନ୍ତୁ"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"ବହୁତ ଅଧିକ ସହ ଆପଣଙ୍କ ଚାରିପାଖର ପରିବେଶ ବିଷୟରେ ଟ୍ରାକିଂ ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"ଫୋରଗ୍ରାଉଣ୍ଡରେ ନଥିବା ବେଳେ XR ଡାଟା ଆକ୍ସେସ କରନ୍ତୁ"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"ଫୋରଗ୍ରାଉଣ୍ଡରେ ନଥିବା ବେଳେ XR ଡାଟା ଆକ୍ସେସ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"ବାୟୋମେଟ୍ରିକ୍ସ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"ବାୟୋମେଟ୍ରିକ୍ସ ବା ସ୍କ୍ରିନ୍ ଲକ୍ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"ଏହା ଆପଣ ବୋଲି ଯାଞ୍ଚ କରନ୍ତୁ"</string>
@@ -1246,7 +1226,7 @@
     <string name="delete" msgid="1514113991712129054">"ଡିଲିଟ କରନ୍ତୁ"</string>
     <string name="copyUrl" msgid="6229645005987260230">"URL କପି କରନ୍ତୁ"</string>
     <string name="selectTextMode" msgid="3225108910999318778">"ଟେକ୍ସଟ୍‍ ଚୟନ କରନ୍ତୁ"</string>
-    <string name="undo" msgid="3175318090002654673">"ପୂର୍ବ ପରି କରନ୍ତୁ"</string>
+    <string name="undo" msgid="3175318090002654673">"ଅନଡୁ କରନ୍ତୁ"</string>
     <string name="redo" msgid="7231448494008532233">"ପୁଣି କରନ୍ତୁ"</string>
     <string name="autofill" msgid="511224882647795296">"ଅଟୋଫିଲ୍‌"</string>
     <string name="textSelectionCABTitle" msgid="5151441579532476940">"ଟେକ୍ସଟ୍‍ ଚୟନ"</string>
@@ -1844,7 +1824,7 @@
     <string name="hearing_device_notification_switch_button" msgid="3619524619430941300">"ସୁଇଚ କରନ୍ତୁ"</string>
     <string name="hearing_device_notification_settings_button" msgid="6673651052880279178">"ସେଟିଂସ"</string>
     <string name="user_switched" msgid="7249833311585228097">"ବର୍ତ୍ତମାନର ୟୁଜର୍‌ ହେଉଛନ୍ତି <xliff:g id="NAME">%1$s</xliff:g>।"</string>
-    <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>ରେ ସ୍ୱିଚ କରନ୍ତୁ…"</string>
+    <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>ରେ ସୁଇଚ ହେଉଛି…"</string>
     <string name="user_logging_out_message" msgid="7216437629179710359">"<xliff:g id="NAME">%1$s</xliff:g>ଙ୍କୁ ଲଗଆଉଟ୍‍ କରାଯାଉଛି…"</string>
     <string name="owner_name" msgid="8713560351570795743">"ମାଲିକ"</string>
     <string name="guest_name" msgid="8502103277839834324">"ଅତିଥି"</string>
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index 70dcd66..cee65af 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"ਆਪਣੇ ਸਰੀਰ ਦੇ ਅਹਿਮ ਚਿੰਨ੍ਹਾਂ ਬਾਰੇ ਸੰਵੇਦਕ ਡਾਟਾ ਤੱਕ ਪਹੁੰਚ ਕਰਨ"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"ਸੂਚਨਾਵਾਂ"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"ਸੂਚਨਾਵਾਂ ਦਿਖਾਓ"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR ਟਰੈਕਿੰਗ ਡਾਟਾ"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"ਆਪਣੇ ਅਤੇ ਆਪਣੇ ਆਲੇ-ਦੁਆਲੇ ਦੇ ਵਾਤਾਵਰਨ ਬਾਰੇ XR ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰੋ"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"ਸੰਵੇਦਨਸ਼ੀਲ XR ਟਰੈਕਿੰਗ ਡਾਟਾ"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"ਸੰਵੇਦਨਸ਼ੀਲ ਟਰੈਕਿੰਗ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰੋ, ਜਿਵੇਂ ਕਿ ਅੱਖਾਂ ਦੀ ਹਲਚਲ"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"ਵਿੰਡੋ ਸਮੱਗਰੀ ਮੁੜ-ਪ੍ਰਾਪਤ ਕਰਨਾ"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"ਉਸ ਵਿੰਡੋ ਸਮੱਗਰੀ ਦੀ ਜਾਂਚ ਕਰੋ, ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਅੰਤਰਕਿਰਿਆ ਕਰ ਰਹੇ ਹੋ"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"\'ਸਪੱਰਸ਼ ਰਾਹੀਂ ਪੜਚੋਲ ਕਰੋ\' ਚਾਲੂ ਕਰਨਾ"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਫ਼ੋਟੋ ਸੰਗ੍ਰਹਿ ਨੂੰ ਸੋਧਣ ਦਿੰਦੀ ਹੈ।"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"ਤੁਹਾਡੇ ਮੀਡੀਆ ਸੰਗ੍ਰਹਿ ਦੇ ਟਿਕਾਣਿਆਂ ਨੂੰ ਪੜ੍ਹਨਾ"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਮੀਡੀਆ ਸੰਗ੍ਰਹਿ ਦੇ ਟਿਕਾਣਿਆਂ ਨੂੰ ਪੜ੍ਹਨ ਦਿੰਦੀ ਹੈ।"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"ਆਪਣੀ ਅੰਦਾਜ਼ਨ ਅੱਖਾਂ ਦੀ ਹਲਚਲ ਨੂੰ ਟਰੈਕ ਕਰੋ"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਤੁਹਾਡੀਆਂ ਅੱਖਾਂ ਦੀ ਹਲਚਲ ਨੂੰ ਟਰੈਕ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"ਇਹ ਟਰੈਕ ਕਰੋ ਕਿ ਤੁਸੀਂ ਕਿੱਥੇ ਦੇਖ ਰਹੇ ਹੋ"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਤੁਹਾਡੀਆਂ ਅੱਖਾਂ ਦੀ ਹਲਚਲ ਦੇ ਸਟੀਕ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"ਆਪਣੇ ਚਿਹਰੇ ਨੂੰ ਟਰੈਕ ਕਰੋ"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਚਿਹਰਾ ਟਰੈਕਿੰਗ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"ਆਪਣੇ ਹੱਥਾਂ ਨੂੰ ਟਰੈਕ ਕਰੋ"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਹੱਥ ਟਰੈਕਿੰਗ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"ਆਪਣੇ ਸਿਰ ਨੂੰ ਟਰੈਕ ਕਰੋ"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਹੈੱਡ ਟਰੈਕਿੰਗ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"ਆਪਣੇ ਮੌਜੂਦਾ ਵਾਤਾਵਰਨ ਨੂੰ ਸਮਝੋ"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਆਲੇ-ਦੁਆਲੇ ਦੇ ਵਾਤਾਵਰਨ ਦੇ ਟਰੈਕਿੰਗ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"ਆਪਣੇ ਮੌਜੂਦਾ ਵਾਤਾਵਰਨ ਨੂੰ ਬਰੀਕੀ ਨਾਲ ਸਮਝੋ"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"ਇਸ ਨਾਲ ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਆਲੇ-ਦੁਆਲੇ ਦੇ ਵਾਤਾਵਰਨ ਬਾਰੇ ਬਰੀਕੀ ਨਾਲ ਟਰੈਕਿੰਗ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ।"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"ਫੋਰਗ੍ਰਾਊਂਡ ਸੇਵਾ ਨਾ ਹੋਣ \'ਤੇ ਵੀ XR ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰੋ"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"ਇਸ ਨਾਲ ਐਪ ਨੂੰ XR ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ, ਭਾਵੇਂ ਉਸ ਵਿੱਚ ਫੋਰਗ੍ਰਾਊਂਡ ਸੇਵਾ ਨਾ ਹੋਵੇ।"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"ਬਾਇਓਮੈਟ੍ਰਿਕ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"ਬਾਇਓਮੈਟ੍ਰਿਕ ਜਾਂ ਸਕ੍ਰੀਨ ਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"</string>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index c92c2bb..0c6eb46 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -355,14 +355,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"dostęp do danych czujnika podstawowych funkcji życiowych"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Powiadomienia"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"pokazuj powiadomienia"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"dane śledzenia XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"dostęp do danych XR dotyczących Ciebie i Twojego otoczenia"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"wrażliwe dane śledzenia XR"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"dostęp do wrażliwych danych śledzenia, takich jak ruchy gałek ocznych"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Pobieranie zawartości okna"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Sprawdzanie zawartości okna, z którego korzystasz."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Włączenie czytania dotykiem"</string>
@@ -658,38 +654,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Zezwala aplikacji na modyfikowanie kolekcji zdjęć."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"odczytywanie lokalizacji z kolekcji multimediów"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Zezwala aplikacji na odczytywanie lokalizacji z kolekcji multimediów."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"śledzenie przybliżonych ruchów gałek ocznych"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Zezwala aplikacji na śledzenie przybliżonych ruchów gałek ocznych."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"śledzenie punktu skupienia wzroku"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Zezwala aplikacji na dostęp do dokładnych danych o ruchach gałek ocznych."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"śledzenie twarzy"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Zezwala aplikacji na dostęp do danych śledzenia twarzy."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"śledzenie rąk"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Zezwala aplikacji na dostęp do danych śledzenia rąk."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"śledzenie ruchów głowy"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Zezwala aplikacji na dostęp do danych śledzenia ruchów głowy."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"analizowanie bliskiego otoczenia"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Zezwala aplikacji na dostęp do danych śledzenia bliskiego otoczenia."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"bardzo szczegółowe analizowanie bliskiego otoczenia"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Zezwala aplikacji na dostęp do bardzo szczegółowych danych śledzenia bliskiego otoczenia."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"dostęp do danych XR, gdy aplikacja nie jest na pierwszym planie"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Zezwala aplikacji na dostęp do danych XR, gdy nie jest ona na pierwszym planie."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Używaj biometrii"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Używaj biometrii lub blokady ekranu"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Potwierdź, że to Ty"</string>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index 99c4375..4fe1c96 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"acesse dados do sensor sobre seus sinais vitais"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notificações"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"mostrar notificações"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"Dados de rastreamento de XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"acessar dados de XR sobre você e o ambiente ao seu redor"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"dados de rastreamento sensíveis de XR"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"acessar dados de rastreamento sensíveis, como o olhar"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Acessar conteúdo de uma janela"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspeciona o conteúdo de uma janela com a qual você está interagindo."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Ativar Explorar por toque"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Permite que o app modifique sua coleção de fotos."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"ler locais na sua coleção de mídias"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Permite que o app leia os locais na sua coleção de mídias."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"rastrear seu olhar aproximado"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Permite que o app rastreie seu olhar aproximado."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"rastrear para onde você está olhando"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Permite que o app acesse dados precisos de olhar."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"rastrear seu rosto"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Permite que o app acesse dados de rastreamento do rosto."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"rastrear suas mãos"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Permite que o app acesse dados de rastreamento das mãos."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"rastrear sua cabeça"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Permite que o app acesse dados de rastreamento da cabeça."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"entender o ambiente diretamente ao seu redor"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Permite que o app acesse dados de rastreamento sobre o ambiente diretamente ao seu redor."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"entender o ambiente diretamente ao seu redor com riqueza de detalhes"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Permite que o app acesse dados de rastreamento sobre o ambiente diretamente ao seu redor com riqueza de detalhes."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"acessar dados de XR sem estar em primeiro plano"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Permite que o app acesse dados de XR sem estar em primeiro plano."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Usar biometria"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Usar biometria ou bloqueio de tela"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Confirme que é você"</string>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index a453546..e17b96f 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"aceder a dados do sensor acerca dos seus sinais vitais"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notificações"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"mostrar notificações"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"dados de monitorização de XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"aceder a dados de XR sobre si e o ambiente à sua volta"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"dados de monitoriz. de XR confidenciais"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"aceder a dados de monitorização confidenciais, como o olhar"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Obter conteúdo da janela"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspecionar o conteúdo de uma janela com a qual está a interagir."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Ativar Explorar Através do Toque"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Permite que a app modifique a sua coleção de fotos."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"ler as localizações a partir da sua coleção de multimédia"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Permite que a app leia as localizações a partir da sua coleção de multimédia."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"monitorizar o seu olhar aproximado"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Permite que a app monitorize o seu olhar aproximado."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"monitorizar para onde está a olhar"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Permite que a app aceda a dados precisos do olhar."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"monitorizar o seu rosto"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Permite que a app aceda a dados de monitorização facial."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"monitorizar as suas mãos"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Permite que a app aceda a dados de monitorização das mãos."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"monitorizar a sua cabeça"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Permite que a app aceda a dados de posição da cabeça."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"compreender o seu ambiente imediato"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Permite que a app aceda a dados de monitorização sobre o ambiente diretamente à sua volta."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"compreender o seu ambiente imediato com grande detalhe"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Permite que a app aceda a dados de monitorização sobre o ambiente diretamente à sua volta com detalhes muito precisos."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"aceder aos dados de XR quando não estiver em primeiro plano"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Permite que app aceda a dados de XR quando não está em primeiro plano."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Usar a biometria"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Usar a biometria ou o bloqueio de ecrã"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Confirme a sua identidade"</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 99c4375..4fe1c96 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"acesse dados do sensor sobre seus sinais vitais"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notificações"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"mostrar notificações"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"Dados de rastreamento de XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"acessar dados de XR sobre você e o ambiente ao seu redor"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"dados de rastreamento sensíveis de XR"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"acessar dados de rastreamento sensíveis, como o olhar"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Acessar conteúdo de uma janela"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspeciona o conteúdo de uma janela com a qual você está interagindo."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Ativar Explorar por toque"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Permite que o app modifique sua coleção de fotos."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"ler locais na sua coleção de mídias"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Permite que o app leia os locais na sua coleção de mídias."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"rastrear seu olhar aproximado"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Permite que o app rastreie seu olhar aproximado."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"rastrear para onde você está olhando"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Permite que o app acesse dados precisos de olhar."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"rastrear seu rosto"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Permite que o app acesse dados de rastreamento do rosto."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"rastrear suas mãos"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Permite que o app acesse dados de rastreamento das mãos."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"rastrear sua cabeça"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Permite que o app acesse dados de rastreamento da cabeça."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"entender o ambiente diretamente ao seu redor"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Permite que o app acesse dados de rastreamento sobre o ambiente diretamente ao seu redor."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"entender o ambiente diretamente ao seu redor com riqueza de detalhes"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Permite que o app acesse dados de rastreamento sobre o ambiente diretamente ao seu redor com riqueza de detalhes."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"acessar dados de XR sem estar em primeiro plano"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Permite que o app acesse dados de XR sem estar em primeiro plano."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Usar biometria"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Usar biometria ou bloqueio de tela"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Confirme que é você"</string>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 28728b5..596a3ed 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"să acceseze datele de la senzori despre semnele vitale"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Notificări"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"să afișeze notificări"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"Date de urmărire XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"să acceseze date XR despre tine și mediul din jur;"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"date de urmărire XR sensibile;"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"să acceseze date de urmărire sensibile, cum ar fi privirea;"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"să preia conținutul ferestrei"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Inspectează conținutul unei ferestre cu care interacționezi."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"să activeze funcția Explorează prin atingere"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Permite aplicației să-ți modifice colecția de fotografii."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"să citească locațiile din colecția media"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Permite aplicației să citească locațiile din colecția ta media."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"să-ți urmărească privirea aproximativă;"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Permite aplicației să-ți urmărească privirea aproximativă."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"să urmărească unde te uiți;"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Permite aplicației să acceseze date exacte despre privire."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"să-ți urmărească fața;"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Permite aplicației să acceseze date de urmărire a feței."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"să-ți urmărească mâinile;"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Permite aplicației să acceseze date de urmărire a mâinilor."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"să-ți urmărească mișcările capului;"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Permite aplicației să acceseze date de urmărire a mișcărilor capului."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"să înțeleagă mediul imediat apropiat;"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Permite aplicației să acceseze date de urmărire despre mediul din jurul tău."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"să înțeleagă mediul imediat apropiat în detaliu;"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Permite aplicației să acceseze date de urmărire despre mediul din jurul tău, cu detalii foarte precise."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"să acceseze date XR când nu ești în prim-plan;"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Permite aplicației să acceseze datele XR când nu ești în prim-plan."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Folosește sistemele biometrice"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Folosește sistemele biometrice sau blocarea ecranului"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Confirmă-ți identitatea"</string>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index f587a73..5104ca1 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -355,14 +355,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"доступ к данным датчиков о состоянии организма"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Уведомления"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"показ уведомлений"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"данные XR для отслеживания"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"доступ к данным расширенной реальности с информацией о вас и окружающей обстановке"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"конфиденц. данные XR для отслеживания"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"доступ к конфиденциальным данным для отслеживания, например направления взгляда"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Получать содержимое окна"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Анализировать содержимое активного окна."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Включать Изучение касанием"</string>
@@ -658,38 +654,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Приложение сможет вносить изменения в вашу фотоколлекцию."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"Доступ к геоданным в медиаколлекции"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Приложение получит доступ к геоданным в вашей медиаколлекции."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"отслеживание примерного направления взгляда"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Приложение сможет отслеживать примерное направление взгляда."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"отслеживание направления взгляда"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Приложение получит доступ к точным данным о направлении взгляда."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"отслеживание лица"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Приложение получит доступ к данным для отслеживания лица."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"отслеживание рук"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Приложение получит доступ к данным для отслеживания рук."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"отслеживание движения головы"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Приложение получит доступ к данным для отслеживания движений головы."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"понимание обстановки вокруг вас"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Приложение получит доступ к данным для отслеживания обстановки вокруг вас."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"глубокое понимание обстановки вокруг вас"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Приложение получит доступ к подробным данным для отслеживания обстановки вокруг вас."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"доступ к данным XR в фоновом режиме"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Приложение получит доступ к данным расширенной реальности в фоновом режиме."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Использовать биометрию"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Использовать биометрию или блокировку экрана"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Подтвердите, что это вы"</string>
@@ -2302,7 +2282,7 @@
     <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Групповой чат"</string>
     <string name="unread_convo_overflow" msgid="920517615597353833">"<xliff:g id="MAX_UNREAD_COUNT">%1$d</xliff:g>+"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Личный"</string>
-    <string name="resolver_work_tab" msgid="2690019516263167035">"Рабочее"</string>
+    <string name="resolver_work_tab" msgid="2690019516263167035">"Рабочий"</string>
     <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Просмотр личных данных"</string>
     <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Просмотр рабочих данных"</string>
     <string name="resolver_cross_profile_blocked" msgid="3014597376026044840">"Заблокировано вашим администратором"</string>
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index f30a483..8df50b7 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"ඔබේ ජෛව ලක්ෂණ පිළිබඳ සංවේදක දත්ත වෙත පිවිසෙන්න"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"දැනුම්දීම්"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"දැනුම්දීම් පෙන්වන්න"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR ලුහුබැඳීමේ දත්ත"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"ඔබ සහ ඔබ අවට පරිසරය පිළිබඳ XR දත්ත වෙත ප්‍රවේශ වන්න"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"සංවේදී XR ලුහුබැඳීමේ දත්ත"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"ඇස් බැල්ම වැනි සංවේදී ලුහුබැඳීමේ දත්ත වෙත ප්‍රවේශ වීම"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"කවුළු අන්න්තර්ගතය ලබාගන්න"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"ඔබ අන්තර්ක්‍රියාකාරී වන කවුළුවේ අන්තර්ගතය පරීක්ෂා කරන්න."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"ස්පර්ශයෙන් ගවේෂණය සක්‍රිය කරන්න"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"ඔබගේ ඡායාරූප එකතුව වෙනස් කිරීමට යෙදුමට ඉඩ දෙයි."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"ඔබගේ මාධ්‍ය එකතුවෙන් ස්ථාන කියවන්න"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"ඔබගේ මාධ්‍ය එකතුවෙන් ස්ථාන කියවීමට යෙදුමට ඉඩ දෙයි."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"ඔබේ ආසන්න ඇස් බැල්ම ලුහුබඳින්න"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"ඔබගේ ආසන්න ඇස් බැල්ම ලුහුබැඳීමට යෙදුමට ඉඩ දෙයි."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"ඔබ බලන තැන ලුහුබඳින්න"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"යෙදුමට නිරවද්‍ය ඇස් බැල්ම දත්ත වෙත ප්‍රවේශ වීමට ඉඩ දෙයි."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"ඔබේ මුහුණ ලුහුබඳින්න"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"මුහුණු ලුහුබැඳීමේ දත්ත වෙත ප්‍රවේශ වීමට යෙදුමට ඉඩ දෙන්න."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"ඔබේ දෑත් ලුහුබඳින්න"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"හස්තීයව ලුහුබැඳීමේ දත්ත වෙත ප්‍රවේශ වීමට යෙදුමට ඉඩ දෙන්න."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"ඔබේ හිස ලුහුබඳින්න"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"යෙදුමට හිස ලුහුබැඳීමේ දත්ත වෙත ප්‍රවේශ වීමට ඉඩ දෙන්න."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"ඔබේ ආසන්න පරිසරය තේරුම් ගන්න"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"ඔබ වටා ඇති පරිසරය පිළිබඳ ලුහුබැඳීමේ දත්ත වෙත කෙලින්ම ප්‍රවේශ වීමට යෙදුමට ඉඩ දෙන්න."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"ඔබේ ආසන්න පරිසරය ඉතා විස්තරාත්මකව තේරුම් ගන්න"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"ඉතා ඉහළ විස්තර සහිතව ඔබ වටා ඇති පරිසරය පිළිබඳ ලුහුබැඳීමේ දත්ත වෙත ප්‍රවේශ වීමට යෙදුමට ඉඩ දෙයි."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"පෙරබිමෙහි නොමැති විට XR දත්ත වෙත ප්‍රවේශ වන්න"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"පෙරබිමෙහි නොමැති විට XR දත්ත වෙත ප්‍රවේශ වීමට යෙදුමට ඉඩ දෙයි."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"ජෛවමිතික භාවිත කරන්න"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"ජෛවමිතික හෝ තිර අගුල භාවිත කරන්න"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"එය ඔබ බව තහවුරු කරන්න"</string>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 49600ce..1d5b4e5 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -355,14 +355,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"prístup k dátam senzorov vašich životných funkcií"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Upozornenia"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"zobrazovať upozornenia"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"údaje sledovania UR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"prístup k údajom UR o vás a prostredí okolo vás"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"citlivé údaje sledovania UR"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"prístup k citlivým údajom sledovania, ako je pohľad"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Načítať obsah okna"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Môžete preskúmať obsah okna, s ktorým pracujete."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Zapnúť funkciu Preskúmanie dotykom"</string>
@@ -658,38 +654,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Umožňuje aplikácii upravovať zbierku fotiek."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"čítať polohy zo zbierky médií"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Umožňuje aplikácii čítať polohy zo zbierky médií."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"sledovať približný smer vášho pohľadu"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Umožňuje aplikácii sledovať približný smer vášho pohľadu."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"sledovať, kam sa pozeráte"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Umožňuje aplikácii získať prístup k presným údajom o pohľade."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"sledovať vašu tvár"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Umožňuje aplikácii získať prístup k údajom sledovania tváre."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"sledovať vaše ruky"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Umožňuje aplikácii získať prístup k údajom sledovania rúk."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"sledovať vašu hlavu"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Umožňuje aplikácii získať prístup k údajom sledovania hlavy."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"porozumieť, čo je vo vašom bezprostrednom okolí"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Umožňuje aplikácii získať prístup k údajom sledovania prostredia vo vašom okolí."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"veľmi presne porozumieť, čo je vo vašom okolí"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Umožňuje aplikácii získať prístup k veľmi podrobným údajom sledovania prostredia vo vašom okolí."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"získať k údajom UR, keď aplikácia nie je spustená na popredí"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Umožňuje aplikácii získať prístup k údajom UR, keď nie je na popredí."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Použiť biometrické údaje"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Použiť biometrické údaje alebo zámku obrazovky"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Potvrďte, že ste to vy"</string>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index c8dc4ee..3f9592b 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -355,14 +355,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"dostop do podatkov tipala o vaših vitalnih znakih"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Obvestila"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"prikaz obvestil"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"Podatki o sledenju za RR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"dostop do podatkov razširjene resničnosti (RR) o vas in vaši okolici"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"občutljivi podatki o sledenju za RR"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"dostop do občutljivih podatkov o sledenju, na primer o smeri pogleda"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Pridobiti vsebino okna"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Preverjanje vsebine okna, ki ga uporabljate."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Vklopiti raziskovanje z dotikom"</string>
@@ -658,38 +654,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Aplikaciji omogoča spreminjanje zbirke fotografij."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"branje lokacij v predstavnostni zbirki"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Aplikaciji omogoča branje lokacij v predstavnostni zbirki."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"sledenje približni smeri pogleda"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Aplikaciji omogoča sledenje približni smeri pogleda."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"sledenje smeri vašega pogleda"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Aplikaciji omogoča dostop do natančnih podatkov o smeri pogleda."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"sledenje obrazu"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Aplikaciji omogoča dostop do podatkov o sledenju obrazu."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"sledenje premikom dlani"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Aplikaciji omogoča dostop do podatkov o sledenju premikom dlani."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"spremljanje premikov glave"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Aplikaciji omogoča dostop do podatkov o spremljanju premikov glave."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"razumevanje vaše neposredne okolice"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Aplikaciji omogoča dostop do podatkov o spremljanju vaše neposredne okolice."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"zelo podrobno razumevanje vaše neposredne okolice"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Aplikaciji omogoča dostop do zelo podrobnih podatkov o spremljanju vaše neposredne okolice."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"dostop do podatkov razširjene resničnosti (RR), ko se aplikacija ne izvaja v ospredju"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Aplikaciji omogoča dostop do podatkov razširjene resničnosti (RR), ko se aplikacija ne izvaja v ospredju."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Uporaba biometrike"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Uporaba biometrike ali odklepanja s poverilnico"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Potrdite, da ste res vi"</string>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 5481023..d6ad76b 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -354,14 +354,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"приступа подацима сензора о виталним функцијама"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Обавештења"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"приказивање обавештења"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"подаци о праћењу проширене стварности"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"приступа подацима проширене стварности о вама и окружењу око вас"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"осетљиви подаци о XR праћењу"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"приступа осетљивим подацима о праћењу, на пример подацима о погледу"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"да преузима садржај прозора"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Проверава садржај прозора са којим остварујете интеракцију."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"да укључи Истраживања додиром"</string>
@@ -657,38 +653,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Дозвољава апликацији да мења колекцију слика."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"читање локација из медијске колекције"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Дозвољава апликацији да чита локације из медијске колекције."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"праћење приближних података о погледу"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Дозвољава апликацији да прати приближне податке о погледу."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"праћење погледа"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Дозвољава апликацији да приступа прецизним подацима о погледу."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"праћење лица"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Дозвољава апликацији да приступа подацима о праћењу лица."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"праћење руку"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Дозвољава апликацији да приступа подацима о праћењу руку."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"праћење главе"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Дозвољава апликацији да приступа подацима о праћењу главе."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"разумевање непосредног окружења"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Дозвољава апликацији да приступа подацима о праћењу вашег непосредног окружења."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"разумевање непосредног окружења са мноштвом детаља"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Дозвољава апликацији да приступа подацима о праћењу вашег непосредног окружења који садрже мноштво детаља."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"приступ подацима проширене стварности када није у првом плану"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Дозвољава апликацији да приступа подацима проширене стварности када није у првом плану."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Користите биометрију"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Користите биометрију или откључавање екрана"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Потврдите идентитет"</string>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 38634d5..3d88850 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"få åtkomst till sensordata om dina vitalparametrar"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Aviseringar"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"visa aviseringar"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR-spårningsdata"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"få åtkomst till XR-data om dig och din omgivning"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"känslig XR-spårningsdata"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"få åtkomst till känslig spårningsdata, som ögonrörelser"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Hämta fönsterinnehåll"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Granska innehållet i ett fönster som du interagerar med."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Aktivera Explore by touch"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Tillåter att appen gör ändringar i din fotosamling."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"läsa av platser i din mediesamling"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Tillåter att appen läser av platser i din mediesamling."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"spåra dina ungefärliga ögonrörelser"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Tillåter att appen spårar dina ungefärliga ögonrörelser."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"spåra var du tittar"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Tillåter att appen får åtkomst till exakta ögonrörelser."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"spåra ditt ansikte"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Tillåter att appen får åtkomst till data om ansiktsspårning."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"spåra dina händer"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Tillåter att appen får åtkomst till data om handspårning."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"spåra ditt huvud"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Tillåter att appen får åtkomst till data om huvudföljning."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"förstå din omgivning"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Tillåter att appen får åtkomst till spårningsdata om omgivningen runtomkring dig."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"förstå din omgivning i detalj"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Tillåter att appen får åtkomst till spårningsdata om omgivningen runtomkring dig i mycket hög detalj."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"få åtkomst till XR-data när appen inte är i förgrunden"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Tillåter att appen får åtkomst till XR-data när den inte är i förgrunden."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Använd biometri"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Använd biometrisk data eller skärmlåset"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verifiera din identitet"</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index b6eab89..6d67618 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"fikia data ya kitambuzi kuhusu alama zako muhimu"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Arifa"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"kuonyesha arifa"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"data ya ufuatiliaji wa XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"kufikia data ya XR kukuhusu na mazingira yaliyo karibu nawe"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"data nyeti ya ufuatiliaji wa XR"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"kufikia data nyeti ya ufuatiliaji, kama vile mahali ambako macho yanaangalia"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Kufikia maudhui ya dirisha"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Kuchunguza maudhui ya dirisha unalotumia."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Kuwasha \'Chunguza kwa Kugusa\'"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Inaruhusu programu kubadilisha mkusanyiko wa picha zako."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"kusoma maeneo kwenye mkusanyiko wa vipengee vyako"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Inaruhusu programu kusoma maeneo kwenye mkusanyiko wa vipengee vyako."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"kufuatilia kadirio la data ya mahali ambako macho yanaangalia"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Huruhusu programu ifuatilie kadirio la data ya mahali ambako macho yako yanaangalia."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"kufuatilia mahali unakoangalia"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Huruhusu programu ifikie data mahususi ya mahali ambako macho yako yanaangalia."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"kufuatilia mijongeo ya uso wako"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Huruhusu programu ifikie data ya ufuatiliaji wa mijongeo ya uso."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"kufuatilia mijongeo ya mikono yako"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Huruhusu programu ifikie data ya ufuatiliaji wa mijongeo ya mikono."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"kufuatilia mijongeo ya kichwa chako"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Huruhusu programu ifikie data ya ufuatiliaji wa mijongeo ya kichwa."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"kufahamu mazingira yaliyo karibu nawe"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Huruhusu programu ifikie data ya ufuatiliaji kuhusu mazingira yaliyo karibu nawe."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"kufahamu mazingira yaliyo karibu nawe kwa usahihi zaidi"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Huruhusu programu ifikie data ya ufuatiliaji kuhusu mazingira yaliyo karibu nawe kwa usahihi zaidi."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"kufikia data ya XR wakati haipo mbele ya skrini ya kifaa"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Huruhusu programu ifikie data ya XR wakati haitumiki mbele ya skrini ya kifaa."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Tumia bayometriki"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Tumia bayometriki au mbinu ya kufunga skrini"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Thibitisha kuwa ni wewe"</string>
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index d48f4a2..6a8179c 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"உங்கள் உடல் இயக்கம் பற்றி உணர்விகள் கூறும் தகவலைப் பார்க்கலாம்"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"அறிவிப்புகள்"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"அறிவிப்புகளைக் காட்டும்"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR கண்காணிப்புத் தரவு"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"உங்களையும் உங்கள் சுற்றுச்சூழலையும் பற்றிய XR தரவை அணுகும்"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"பாதுகாக்க வேண்டிய XR கண்காணிப்புத் தரவு"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"கண் பார்வை போன்ற பாதுகாக்க வேண்டிய கண்காணிப்புத் தரவை அணுகும்"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"சாளர உள்ளடக்கத்தைப் பெறும்"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"நீங்கள் பணியாற்றிக் கொண்டிருக்கும் சாளரத்தின் உள்ளடக்கத்தைப் பார்க்கலாம்."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"தொடுவதன் மூலம் அறிவதை இயக்கும்"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"உங்களின் படத் தொகுப்பை மாற்ற ஆப்ஸை அனுமதிக்கும்."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"மீடியா தொகுப்பிலிருந்து இடங்களை அறிதல்"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"உங்களின் மீடியா தொகுப்பிலிருந்து இடங்களை அறிந்துகொள்ள ஆப்ஸை அனுமதிக்கும்."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"உங்கள் தோராயமான கண் பார்வைத் தரவைக் கண்காணிக்கும்"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"உங்கள் தோராயமான கண் பார்வையின் தரவைக் கண்காணிக்க ஆப்ஸை அனுமதிக்கும்."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"எங்கே பார்க்கிறீர்கள் என்பதைக் கண்காணித்தல்"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"துல்லியமான கண் பார்வையின் தரவை அணுக ஆப்ஸை அனுமதிக்கும்."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"உங்கள் முகத்தைக் கண்காணித்தல்"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"முகக் கண்காணிப்புத் தரவை அணுக ஆப்ஸை அனுமதிக்கும்."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"உங்கள் கைகளைக் கண்காணித்தல்"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"கை அசைவு அறிதல் தரவை அணுக ஆப்ஸை அனுமதிக்கும்."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"உங்கள் தலையைக் கண்காணித்தல்"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"ஹெட் டிராக்கிங் தரவை அணுக ஆப்ஸை அனுமதிக்கும்."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"உங்களின் சுற்றுச்சூழலைப் புரிந்துகொள்ளுதல்"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"உங்களின் சுற்றுச்சூழல் தரவை அணுக ஆப்ஸை அனுமதிக்கும்."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"உங்களின் சுற்றுச்சூழலை மிக விரிவான விவரத்துடன் புரிந்துகொள்ளுதல்"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"உங்கள் சுற்றுச்சூழல் பற்றிய மிக விரிவான விவரங்களுடன் கூடிய தரவை நேரடியாக அணுக ஆப்ஸை அனுமதிக்கும்."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"முன்புலத்தில் இல்லாதபோது XR தரவை அணுகுதல்"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"முன்புலத்தில் இல்லாதபோது XR தரவை அணுக ஆப்ஸை அனுமதிக்கும்."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"பயோமெட்ரிக்ஸைப் பயன்படுத்து"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"பயோமெட்ரிக்ஸையோ திரைப் பூட்டையோ பயன்படுத்து"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"நீங்கள்தான் என உறுதிசெய்க"</string>
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index 84e56d2..11611ea 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"మీ అత్యంత కీలకమైన గుర్తుల గురించి సెన్సార్ డేటాను యాక్సెస్ చేస్తుంది"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"నోటిఫికేషన్‌లు"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"నోటిఫికేషన్‌లను చూపండి"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR ట్రాకింగ్ డేటా"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"మీ గురించి, మీ చుట్టూ ఉన్న పరిసరాల గురించి XR డేటాను యాక్సెస్ చేయండి"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"సున్నితమైన XR ట్రాకింగ్ డేటా"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"కంటి చూపు వంటి సున్నితమైన ట్రాకింగ్ డేటాను యాక్సెస్ చేయండి"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"విండో కంటెంట్‍ను తిరిగి పొందుతుంది"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"మీరు పరస్పర చర్య చేస్తున్న విండో కంటెంట్‌‍ను పరిశీలిస్తుంది."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"తాకడం ద్వారా విశ్లేషణను ఆన్ చేయండి"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"మీ ఫోటో సేకరణను ఎడిట్ చేయడానికి యాప్‌ను అనుమతిస్తుంది."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"మీ మీడియా సేకరణ నుండి లొకేషన్లను చదవండి"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"మీ మీడియా సేకరణ నుండి లొకేషన్లను చదవడానికి యాప్‌ను అనుమతిస్తుంది."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"మీ సుమారు కంటి చూపును ట్రాక్ చేయండి"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"మీ సుమారు కంటి చూపును ట్రాక్ చేయడానికి యాప్‌ను అనుమతిస్తుంది."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"మీరు ఎక్కడ చూస్తున్నారో ట్రాక్ చేయండి"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"కంటి చూపునకు సంబంధించిన ఖచ్చితమైన డేటాను యాక్సెస్ చేయడానికి యాప్‌ను అనుమతిస్తుంది."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"మీ ముఖాన్ని ట్రాక్ చేయండి"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"ఫేస్ ట్రాకింగ్ డేటాను యాక్సెస్ చేయడానికి యాప్‌ను అనుమతిస్తుంది."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"మీ చేతి కదలికలను ట్రాక్ చేయండి"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"హ్యాండ్ ట్రాకింగ్ డేటాను యాక్సెస్ చేయడానికి యాప్‌ను అనుమతిస్తుంది."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"మీ తలను ట్రాక్ చేయండి"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"హెడ్ ట్రాకింగ్ డేటాను యాక్సెస్ చేయడానికి యాప్‌ను అనుమతిస్తుంది."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"మీ చుట్టూ ఉన్న పరిసరాలను అర్థం చేసుకోండి"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"మీ చుట్టూ ఉన్న పర్యావరణం గురించి ట్రాకింగ్ డేటాను నేరుగా యాక్సెస్ చేయడానికి యాప్‌ను అనుమతిస్తుంది."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"మీ చుట్టూ ఉన్న పరిసరాలను చాలా వివరంగా అర్థం చేసుకోండి"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"మీ చుట్టూ ఉన్న పర్యావరణం గురించి ట్రాకింగ్ డేటాను చాలా ఎక్కువ వివరాలతో యాక్సెస్ చేయడానికి యాప్‌ను అనుమతిస్తుంది."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"ముందుభాగంలో లేనప్పుడు XR డేటాను యాక్సెస్ చేయండి"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"ముందుభాగంలో లేనప్పుడు XR డేటాను యాక్సెస్ చేయడానికి యాప్‌ను అనుమతిస్తుంది."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"బయోమెట్రిక్స్‌ను ఉపయోగించండి"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"బయోమెట్రిక్స్‌ను లేదా స్క్రీన్ లాక్‌ను ఉపయోగించండి"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"ఈ చర్య చేస్తోంది మీరేనని వెరిఫై చేయండి"</string>
@@ -715,8 +695,8 @@
     <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"ప్రతిసారి మీ వేలిని కొద్ది కొద్దిగా జరపండి"</string>
   <string-array name="fingerprint_acquired_vendor">
   </string-array>
-    <string name="fingerprint_error_not_match" msgid="4599441812893438961">"వేలిముద్ర గుర్తించబడలేదు"</string>
-    <string name="fingerprint_udfps_error_not_match" msgid="8236930793223158856">"వేలిముద్ర గుర్తించబడలేదు"</string>
+    <string name="fingerprint_error_not_match" msgid="4599441812893438961">"వేలిముద్ర (ఫింగర్-ప్రింట్) మ్యాచ్ కాలేదు"</string>
+    <string name="fingerprint_udfps_error_not_match" msgid="8236930793223158856">"వేలిముద్ర (ఫింగర్-ప్రింట్) మ్యాచ్ కాలేదు"</string>
     <string name="fingerprint_dialog_use_fingerprint_instead" msgid="5590293588784953188">"ముఖం గుర్తించలేదు. బదులుగా వేలిముద్ర ఉపయోగించండి."</string>
     <string name="fingerprint_authenticated" msgid="2024862866860283100">"వేలిముద్ర ప్రమాణీకరించబడింది"</string>
     <string name="face_authenticated_no_confirmation_required" msgid="8867889115112348167">"ముఖం ప్రమాణీకరించబడింది"</string>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index e16a28a..d854025 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"เข้าถึงข้อมูลเซ็นเซอร์เกี่ยวกับสัญญาณชีพของคุณ"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"การแจ้งเตือน"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"แสดงการแจ้งเตือน"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"ข้อมูลการติดตาม XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"เข้าถึงข้อมูล XR เกี่ยวกับคุณและสภาพแวดล้อมรอบตัว"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"ข้อมูลการติดตาม XR ที่มีความละเอียดอ่อน"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"เข้าถึงข้อมูลการติดตามที่มีความละเอียดอ่อน เช่น การจ้องด้วยตา"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"เรียกข้อมูลเนื้อหาของหน้าต่าง"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"ตรวจสอบเนื้อหาของหน้าต่างที่คุณกำลังโต้ตอบอยู่"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"เปิด \"แตะเพื่อสำรวจ\""</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"อนุญาตให้แอปแก้ไขคอลเล็กชันรูปภาพของคุณ"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"อ่านตำแหน่งจากคอลเล็กชันสื่อของคุณ"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"อนุญาตให้แอปอ่านตำแหน่งจากคอลเล็กชันสื่อของคุณ"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"ติดตามการจ้องด้วยตาโดยประมาณ"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"อนุญาตให้แอปติดตามข้อมูลการจ้องด้วยตาโดยประมาณ"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"ติดตามตำแหน่งที่คุณมอง"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"อนุญาตให้แอปเข้าถึงข้อมูลการจ้องด้วยตาอย่างละเอียด"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"ติดตามการเคลื่อนไหวของใบหน้า"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"อนุญาตให้แอปเข้าถึงข้อมูลการติดตามการเคลื่อนไหวของใบหน้า"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"ติดตามการเคลื่อนไหวของมือ"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"อนุญาตให้แอปเข้าถึงข้อมูลการติดตามการเคลื่อนไหวของมือ"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"ติดตามการเคลื่อนไหวของศีรษะ"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"อนุญาตให้แอปเข้าถึงข้อมูลการติดตามการเคลื่อนไหวของศีรษะ"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"เข้าใจสภาพแวดล้อมที่อยู่ใกล้ตัวคุณ"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"อนุญาตให้แอปเข้าถึงข้อมูลการติดตามเกี่ยวกับสภาพแวดล้อมรอบตัวคุณโดยตรง"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"เข้าใจสภาพแวดล้อมที่อยู่ใกล้ตัวคุณอย่างละเอียด"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"อนุญาตให้แอปเข้าถึงข้อมูลการติดตามเกี่ยวกับสภาพแวดล้อมรอบตัวคุณโดยตรงที่มีรายละเอียดสูงมาก"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"เข้าถึงข้อมูล XR ขณะที่ไม่ได้ทำงานอยู่ในเบื้องหน้า"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"อนุญาตให้แอปเข้าถึงข้อมูล XR ขณะที่ไม่ได้ทำงานอยู่ในเบื้องหน้า"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"ใช้ข้อมูลไบโอเมตริก"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"ใช้ข้อมูลไบโอเมตริกหรือการล็อกหน้าจอ"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"ยืนยันว่าเป็นตัวคุณ"</string>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 98de106..78f44c8 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"i-access ang data ng sensor tungkol sa iyong vital signs"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Mga Notification"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"magpakita ng mga notification"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"Data ng pag-track ng XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"i-access ang XR data tungkol sa iyo at sa kapaligiran sa paligid mo"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"Sensitibong data ng pag-track ng XR"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"i-access ang sensitibong data sa pag-track, gaya ng pagtitig"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Kunin ang content ng window"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Siyasatin ang nilalaman ng isang window kung saan ka nakikipag-ugnayan."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"I-on ang Explore by Touch"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Pinapayagan ang app na baguhin ang iyong koleksyon ng larawan."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"basahin ang mga lokasyon mula sa iyong koleksyon ng media"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Pinapayagan ang app na basahin ang mga lokasyon mula sa iyong koleksyon ng media."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"i-track ang iyong tinatayang pagtitig"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Nagbibigay-daan sa app na i-track ang iyong tinatayang pagtitig."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"i-track kung saan ka nakatingin"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Nagbibigay-daan sa app na ma-access ang tumpak na data ng pagtitig."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"i-track ang iyong mukha"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Nagbibigay-daan sa app na i-access ang data ng pag-track sa mukha."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"i-track ang iyong mga kamay"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Nagbibigay-daan sa app na i-access ang data ng pag-track sa kamay."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"i-track ang iyong ulo"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Nagbibigay-daan sa app na i-access ang data ng pag-track ng ulo."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"maunawaan ang iyong kapaligiran"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Nagbibigay-daan sa app na i-access ang data ng pag-track tungkol sa kapaligirang direktang nasa paligid mo."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"maunawaan ang iyong kapaligiran sa mataas na detalye"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Binibigyang-daan ang app na i-access ang data ng pag-track tungkol sa kapaligirang direktang nasa paligid mo na may napakataas na detalye."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"i-access ang XR data habang wala sa foreground"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Nagbibigay-daan sa app na i-access ang XR data habang wala sa foreground."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Gumamit ng biometrics"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Gumamit ng biometrics o lock ng screen"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"I-verify na ikaw ito"</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 2ec15ca..b575d9f 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"hayati belirtilerinizle ilgili sensör verilerine erişme"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Bildirimler"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"bildirimleri göster"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR takip verileri"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"sizinle ve çevrenizdeki ortamla ilgili XR verilerine erişme"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"hassas XR takip verileri"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"göz hareketleri gibi hassas takip verilerine erişme"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Pencere içeriğini alma"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Etkileşim kurduğunuz pencerenin içeriğini inceler."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Dokunarak Keşfet\'i açma"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Uygulamanın fotoğraf koleksiyonunuzu değiştirmesine izin verir."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"medya koleksiyonunuzdaki konumları okuma"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Uygulamanın medya koleksiyonunuzdaki konumları okumasına izin verir."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"yaklaşık göz hareketinizi takip etme"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Uygulamanın, yaklaşık göz hareketinizi takip etmesine izin verir."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"baktığınız noktayı takip etme"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Uygulamanın, tam göz hareketiyle ilgili verilere erişmesine izin verir."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"yüzünüzü takip etme"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Uygulamanın, yüz takibi verilerine erişmesine izin verir."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"ellerinizi takip etme"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Uygulamanın, el takibi verilerine erişmesine izin verir."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"başınızı takip etme"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Uygulamanın, baş takibi verilerine erişmesine izin verir."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"yakın çevrenizi anlama"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Uygulamanın, hemen etrafınızdaki ortamla ilgili takip verilerine erişmesine izin verir."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"yakın çevrenizi ayrıntılı bir şekilde anlama"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Uygulamanın, hemen etrafınızdaki ortamla ilgili takip verilerine çok ayrıntılı bir şekilde erişmesine izin verir."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"ön planda değilken XR verilerine erişme"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Uygulamanın, ön planda değilken XR verilerine erişmesine izin verir."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Biyometri kullan"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Biyometri veya ekran kilidi kullan"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Kimliğinizi doğrulayın"</string>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 9aeee9c..737c245 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -355,14 +355,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"отримувати доступ до інформації датчиків про ваші життєві показники"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Сповіщення"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"показувати сповіщення"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"дані відстеження розширеної реальності"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"отримувати доступ до даних розширеної реальності про вас і оточення"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"чутливі дані відстеж. розшир. реальності"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"отримувати доступ до чутливих даних відстеження, наприклад даних про напрямок погляду"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Отримувати вміст вікна"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Перевіряти вміст вікна, з яким ви взаємодієте."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Увімкнути функцію дослідження дотиком"</string>
@@ -658,38 +654,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Додаток зможе змінювати вашу колекцію фотографій."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"розпізнавати геодані з колекції медіа-вмісту"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Додаток зможе розпізнавати геодані з вашої колекції медіа-вмісту."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"відстежувати приблизний напрямок вашого погляду"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Дозволяє додатку відстежувати приблизний напрямок вашого погляду."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"відстежувати напрямок вашого погляду"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Дозволяє додатку отримувати точні дані про напрямок погляду."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"відстежувати рухи вашого обличчя"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Дозволяє додатку отримувати доступ до даних відстеження рухів обличчя."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"відстежувати ваші руки"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Дозволяє додатку отримувати доступ до даних відстеження рук."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"відстежувати рухи вашої голови"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Дозволяє додатку отримувати доступ до даних відстеження руху голови."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"розпізнавати об’єкти у вашому найближчому оточенні"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Дозволяє додатку отримувати доступ до даних про оточення навколо вас."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"розпізнавати об’єкти у вашому оточенні з високою деталізацією"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Дозволяє додатку отримувати доступ до дуже детальних даних про оточення навколо вас."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"отримувати доступ до даних розширеної реальності у фоновому режимі"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Дозволяє додатку отримувати доступ до даних розширеної реальності у фоновому режимі."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Доступ через біометрію"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Використовувати біометрію або дані для розблокування екрана"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Підтвердьте, що це ви"</string>
@@ -1846,7 +1826,7 @@
     <string name="hearing_device_notification_switch_button" msgid="3619524619430941300">"Перемкнути"</string>
     <string name="hearing_device_notification_settings_button" msgid="6673651052880279178">"Налаштування"</string>
     <string name="user_switched" msgid="7249833311585228097">"Поточний користувач: <xliff:g id="NAME">%1$s</xliff:g>."</string>
-    <string name="user_switching_message" msgid="1912993630661332336">"Перехід у режим \"<xliff:g id="NAME">%1$s</xliff:g>\"…"</string>
+    <string name="user_switching_message" msgid="1912993630661332336">"Перехід в обліковий запис \"<xliff:g id="NAME">%1$s</xliff:g>\"…"</string>
     <string name="user_logging_out_message" msgid="7216437629179710359">"Вихід з облікового запису користувача <xliff:g id="NAME">%1$s</xliff:g>…"</string>
     <string name="owner_name" msgid="8713560351570795743">"Власник"</string>
     <string name="guest_name" msgid="8502103277839834324">"Гість"</string>
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index f934b87..82292bf 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"اپنی علامات حیات کے متعلق سنسر ڈیٹا تک رسائی حاصل کریں"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"اطلاعات"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"اطلاعات دکھائیں"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"‏‫XR ٹریکنگ ڈیٹا"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"‏اپنے اور اپنے آس پاس کے ماحول کے بارے میں XR ڈیٹا تک رسائی حاصل کریں"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"‏حساس XR ٹریکنگ ڈیٹا"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"آنکھوں جیسے حساس ٹریکنگ ڈیٹا تک رسائی حاصل کریں"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"ونڈو مواد بازیافت کرنے کی"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"کسی ایسی ونڈو کے مواد کا معائنہ کریں جس کے ساتھ آپ تعامل کر رہے ہیں۔"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"ٹچ کے ذریعے دریافت کریں کو آن کرنے کی"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"ایپ کو آپ کی تصویر کے مجموعے میں ترمیم کی اجازت دیتا ہے۔"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"اپنی میڈيا کے مجموعے سے مقامات پڑھیں"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"ایپ کو آپ کی میڈيا کے مجموعے سے مقامات پڑھنے کی اجازت دیتا ہے۔"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"اپنی آنکھوں کی تخمینی نگاہوں کو ٹریک کریں"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"ایپ کو آپ کی تخمینی نگاہوں کو ٹریک کرنے کی اجازت ملتی ہے۔"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"وہ جگہ ٹریک کریں جہاں آپ دیکھ رہے ہیں"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"ایپ کو آنکھوں کے عین مطابق ڈیٹا تک رسائی کی اجازت ملتی ہے۔"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"اپنے چہرے کو ٹریک کریں"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"ایپ کو ایپس کو فیس ٹریکنگ ڈیٹا تک رسائی کی اجازت ملتی ہے۔"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"اپنے ہاتھوں کو ٹریک کریں"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"ایپ کو ہینڈ ٹریکنگ ڈیٹا تک رسائی کی اجازت ملتی ہے۔"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"اپنے سر کو ٹریک کریں"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"ایپ کو ہیڈ ٹریکنگ ڈیٹا تک رسائی کی اجازت ملتی ہے۔"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"اپنے آس پاس کے ماحول کو سمجھیں"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"ایپ کو براہ راست آپ کے آس پاس کے ماحول کے بارے میں ٹریکنگ ڈیٹا تک رسائی کی اجازت ملتی ہے۔"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"اپنے آس پاس کے ماحول کو اعلیٰ تفصیل سے سمجھیں"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"ایپ کو بہت زیادہ تفصیل کے ساتھ براہ راست آپ کے آس پاس کے ماحول کے بارے میں ٹریکنگ ڈیٹا تک رسائی کی اجازت ملتی ہے۔"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"‏‫XR ڈیٹا تک رسائی حاصل کریں جبکہ پیش منظر میں نہ ہو"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"‏ایپ کو پیش منظر میں نہ ہوتے ہوئے XR ڈیٹا تک رسائی کی اجازت ملتی ہے۔"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"بایو میٹرکس استعمال کریں"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"بایو میٹرکس یا اسکرین لاک استعمال کریں"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"توثیق کریں کہ یہ آپ ہیں"</string>
@@ -1844,7 +1824,7 @@
     <string name="hearing_device_notification_switch_button" msgid="3619524619430941300">"سوئچ کریں"</string>
     <string name="hearing_device_notification_settings_button" msgid="6673651052880279178">"ترتیبات"</string>
     <string name="user_switched" msgid="7249833311585228097">"موجودہ صارف <xliff:g id="NAME">%1$s</xliff:g>۔"</string>
-    <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> پر سوئچ کیا جا رہا ہے…"</string>
+    <string name="user_switching_message" msgid="1912993630661332336">"‫<xliff:g id="NAME">%1$s</xliff:g> پر سوئچ کیا جا رہا ہے…"</string>
     <string name="user_logging_out_message" msgid="7216437629179710359">"<xliff:g id="NAME">%1$s</xliff:g> لاگ آؤٹ ہو رہا ہے…"</string>
     <string name="owner_name" msgid="8713560351570795743">"مالک"</string>
     <string name="guest_name" msgid="8502103277839834324">"مہمان"</string>
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index 942be79..0e66165 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"organizm holati haqidagi sezgich ma’lumotlariga kirish"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Bildirishnomalar"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"bildirishnomalarni chiqarish"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR kuzatuv maʼlumotlari"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"siz va atrofingizdagi muhit haqidagi XR maʼlumotlarga kirish"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"nozik XR kuzatuv maʼlumotlari"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"nigoh kabi nozik kuzatuv maʼlumotlariga kirish"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Oynadagi kontentni o‘qiydi"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Joriy oynadagi kontent mazmunini aniqlaydi."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Teginib o‘rganish xizmatini yoqadi"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Ilovaga suratlar to‘plamingizni o‘zgartirishga ruxsat beradi."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"multimedia to‘plamidan joylashuv axborotini o‘qish"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Ilovaga multimedia to‘plamingizdan joylashuv axborotini o‘qishga ruxsat beradi."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"taxminiy nigohni kuzatish"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Ilovaga taxminiy nigohingizni kuzatish imkonini beradi."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"qayerga qarayotganingizni kuzatish"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Ilovaga nigohga oid aniq maʼlumotlarga kirish imkonini beradi."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"yuzingizni kuzatish"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Ilovaga yuz harakatini kuzatish maʼlumotlariga kirish imkonini beradi."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"qoʻllaringiz harakatini kuzatish"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Ilovaga qoʻl harakatini kuzatish maʼlumotlariga kirish imkonini beradi."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"boshingiz harakatini kuzatish"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Ilovaga bosh harakatini kuzatish maʼlumotlariga kirish imkonini beradi."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"atrofingizdagi vaziyatni chuqur tushunish"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Ilovaga bevosita atrofingizdagi muhit haqidagi kuzatuv maʼlumotlariga kirish imkonini beradi."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"atrofingizdagi vaziyatni juda yuqori aniqlikda chuqur tushunish"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Ilovaga bevosita atrofingizdagi juda yuqori aniqlikda muhit haqidagi kuzatuv maʼlumotlariga kirish imkonini beradi."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"XR maʼlumotlariga faol rejimda emasligida kirish"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Ilovaga faol rejimda emasligida XR maʼlumotlariga kirish imkonini beradi."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Biometrik tasdiqlash"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Biometrika yoki ekran qulfi"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Oʻzingizni taniting"</string>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 947a9b4..754e66e 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"truy cập dữ liệu cảm biến về dấu hiệu sinh tồn của bạn"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Thông báo"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"hiển thị thông báo"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"dữ liệu theo dõi XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"truy cập vào dữ liệu XR về bạn và môi trường xung quanh bạn"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"dữ liệu theo dõi XR mang tính nhạy cảm"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"truy cập vào dữ liệu theo dõi mang tính nhạy cảm, chẳng hạn như vị trí ánh mắt"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Truy xuất nội dung cửa sổ"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Kiểm tra nội dung của cửa sổ bạn đang tương tác."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Bật tính năng Khám phá bằng cách chạm"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Cho phép ứng dụng này sửa đổi bộ sưu tập ảnh của bạn."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"đọc vị trí từ bộ sưu tập phương tiện"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Cho phép ứng dụng này đọc vị trí từ bộ sưu tập phương tiện của bạn."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"theo dõi vị trí gần đúng của ánh mắt bạn"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Cho phép ứng dụng này theo dõi vị trí gần đúng của ánh mắt bạn."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"theo dõi vị trí bạn đang nhìn"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Cho phép ứng dụng này truy cập vào dữ liệu vị trí chính xác của ánh mắt."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"theo dõi cử động của khuôn mặt"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Cho phép ứng dụng này truy cập vào dữ liệu theo dõi cử động của khuôn mặt."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"theo dõi cử động của tay"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Cho phép ứng dụng này truy cập vào dữ liệu theo dõi cử động của tay."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"theo dõi cử động của đầu"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Cho phép ứng dụng này truy cập vào dữ liệu theo dõi cử động của đầu."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"hiểu về môi trường ngay xung quanh bạn"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Cho phép ứng dụng này truy cập vào dữ liệu theo dõi về môi trường ngay xung quanh bạn."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"hiểu cụ thể về môi trường ngay xung quanh bạn"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Cho phép ứng dụng này truy cập vào dữ liệu theo dõi cụ thể về môi trường ngay xung quanh bạn."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"truy cập vào dữ liệu XR khi không ở chế độ nền trước"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Cho phép ứng dụng này truy cập vào dữ liệu thực tế mở rộng (XR) khi không ở chế độ nền trước."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Dùng dữ liệu sinh trắc học"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Dùng dữ liệu sinh trắc học hoặc phương thức khóa màn hình"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Xác minh danh tính của bạn"</string>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 46c53eb..1f625ad 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"访问与您的生命体征相关的传感器数据"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"通知"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"显示通知"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"扩展现实跟踪数据"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"访问有关您和您周围环境的扩展现实数据"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"敏感的扩展现实跟踪数据"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"访问视线等敏感的跟踪数据"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"检索窗口内容"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"检测您与之互动的窗口的内容。"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"启用触摸浏览"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"允许该应用修改您的照片收藏。"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"从您的媒体收藏中读取位置信息"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"允许该应用从您的媒体收藏中读取位置信息。"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"跟踪您的大致视线"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"允许应用跟踪您的大致视线。"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"跟踪您的视线方向"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"允许应用访问精确的视线跟踪数据。"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"跟踪您的面部表情"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"允许应用访问面部跟踪数据。"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"跟踪您的手部动作"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"允许应用访问手部跟踪数据。"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"跟踪您的头部动作"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"允许应用访问头部追踪数据。"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"了解您周围的环境"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"允许应用访问关于您周围环境的跟踪数据。"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"详细了解您周围的环境"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"允许应用访问关于您周围环境的详细跟踪数据。"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"不在前台时访问扩展现实数据"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"允许应用不在前台时访问扩展现实数据。"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"使用生物识别"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"使用生物识别或屏幕锁定凭据"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"验证是您本人在操作"</string>
@@ -1067,7 +1047,7 @@
     <string name="lockscreen_transport_stop_description" msgid="1449552232598355348">"停止"</string>
     <string name="lockscreen_transport_rew_description" msgid="7680106856221622779">"快退"</string>
     <string name="lockscreen_transport_ffw_description" msgid="4763794746640196772">"快进"</string>
-    <string name="emergency_calls_only" msgid="3057351206678279851">"只能拨打紧急呼叫电话"</string>
+    <string name="emergency_calls_only" msgid="3057351206678279851">"只能拨打紧急求助电话"</string>
     <string name="lockscreen_network_locked_message" msgid="2814046965899249635">"网络已锁定"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="2867953953604224166">"SIM 卡已用 PUK 码锁定。"</string>
     <string name="lockscreen_sim_puk_locked_instructions" msgid="5307979043730860995">"请参阅《用户指南》或与客服人员联系。"</string>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index d013a47..fc2783c 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"存取與你生命體徵相關的感應器資料"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"通知"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"顯示通知"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"XR 追蹤資料"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"存取與你和周遭環境相關的 XR 資料"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"敏感的 XR 追蹤資料"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"存取敏感的追蹤資料，例如視線"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"擷取視窗內容"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"檢查你使用中的視窗內容。"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"開啟「輕觸探索」功能"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"允許應用程式修改你的相片集。"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"讀取媒體集的位置"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"允許應用程式讀取媒體集的位置。"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"追蹤視線的概略方向"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"允許應用程式追蹤你概略的視線。"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"追蹤視線"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"允許應用程式存取精確的視線資料。"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"追蹤面孔"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"允許應用程式存取面孔追蹤資料。"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"追蹤手勢"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"允許應用程式存取手勢追蹤資料。"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"追蹤頭部"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"允許應用程式存取頭部追蹤資料。"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"瞭解當下環境"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"允許應用程式存取與你周遭環境相關的追蹤資料。"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"詳細瞭解當下環境"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"允許應用程式存取與你周遭環境相關的極詳細追蹤資料。"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"在非前景執行時存取 XR 資料"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"允許應用程式在非前景執行時存取 XR 資料。"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"使用生物識別"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"使用生物識別或螢幕鎖定"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"驗證是你本人"</string>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index f1c9dcd..c53aaa1 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"存取與你生命徵象相關的感應器資料"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"通知"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"顯示通知"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"延展實境追蹤資料"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"存取與你和周遭環境相關的延展實境資料"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"敏感的延展實境追蹤資料"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"存取敏感的追蹤資料，例如視線"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"擷取視窗內容"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"檢查你存取的視窗內容。"</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"啟用輕觸探索功能"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"允許應用程式修改你的相片收藏。"</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"讀取你的媒體收藏的位置資訊"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"允許應用程式讀取你的媒體收藏的位置資訊。"</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"追蹤視線的大概方向"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"允許應用程式追蹤你視線的大概方向。"</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"追蹤視線"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"允許應用程式存取視線精確方向的資料。"</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"追蹤臉部"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"允許應用程式存取臉部追蹤資料。"</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"追蹤手勢"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"允許應用程式存取手勢追蹤資料。"</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"追蹤頭部"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"允許應用程式存取頭部追蹤資料。"</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"瞭解當下環境"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"允許應用程式存取與你周遭環境相關的追蹤資料。"</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"深入瞭解當下環境"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"允許應用程式存取與你周遭環境相關的詳細追蹤資料。"</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"在非前景執行時存取延展實境資料"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"允許應用程式在非前景執行時存取延展實境資料。"</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"使用生物辨識功能"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"使用生物辨識或螢幕鎖定功能"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"驗證你的身分"</string>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 5732cec..079bf67 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -353,14 +353,10 @@
     <string name="permgroupdesc_sensors" msgid="2610631290633747752">"finyelela idatha yesizweli mayelana nezimpawu zakho ezibalulekile"</string>
     <string name="permgrouplab_notifications" msgid="5472972361980668884">"Izaziso"</string>
     <string name="permgroupdesc_notifications" msgid="4608679556801506580">"bonisa izaziso"</string>
-    <!-- no translation found for permgrouplab_xr_tracking (7418994009794287471) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking (6777198859446500821) -->
-    <skip />
-    <!-- no translation found for permgrouplab_xr_tracking_sensitive (1194833982988144536) -->
-    <skip />
-    <!-- no translation found for permgroupdesc_xr_tracking_sensitive (9178027369004805829) -->
-    <skip />
+    <string name="permgrouplab_xr_tracking" msgid="7418994009794287471">"Idatha yokulandelela ye-XR"</string>
+    <string name="permgroupdesc_xr_tracking" msgid="6777198859446500821">"finyelela idatha ye-XR emayelana nawe nendawo ekuzungezile"</string>
+    <string name="permgrouplab_xr_tracking_sensitive" msgid="1194833982988144536">"idatha ebucayi yokulandelela i-XR"</string>
+    <string name="permgroupdesc_xr_tracking_sensitive" msgid="9178027369004805829">"finyelela idatha yokulandelela ebucayi, efana nokubuka kweso"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="7554282892101587296">"Thola okuqukethwe kwewindi"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="6195610527625237661">"Hlola okuqukethwe kwewindi ohlanganyela nalo."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="327598364696316213">"Vula ukuhlola ngokuthinta"</string>
@@ -656,38 +652,22 @@
     <string name="permdesc_imagesWrite" msgid="5195054463269193317">"Ivumela uhlelo lwakho lokusebenza ukuthi lilungise iqoqo lakho lesithombe."</string>
     <string name="permlab_mediaLocation" msgid="7368098373378598066">"funda izindawo kusukela kuqoqo lakho lemidiya"</string>
     <string name="permdesc_mediaLocation" msgid="597912899423578138">"Ivumela uhlelo lokusebenza ukuthi lifunde izindawo kusukela kuqoqo lakho lemidiya."</string>
-    <!-- no translation found for permlab_eye_tracking_coarse (7989596289790269059) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_coarse (870510233930553355) -->
-    <skip />
-    <!-- no translation found for permlab_eye_tracking_fine (6914457357027049512) -->
-    <skip />
-    <!-- no translation found for permdesc_eye_tracking_fine (5788889152304524730) -->
-    <skip />
-    <!-- no translation found for permlab_face_tracking (2272048395128283324) -->
-    <skip />
-    <!-- no translation found for permdesc_face_tracking (2622783922311211866) -->
-    <skip />
-    <!-- no translation found for permlab_hand_tracking (6478233866595566940) -->
-    <skip />
-    <!-- no translation found for permdesc_hand_tracking (8639715900104966456) -->
-    <skip />
-    <!-- no translation found for permlab_head_tracking (1309731456372087270) -->
-    <skip />
-    <!-- no translation found for permdesc_head_tracking (231597390513699188) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_coarse (6518646430502858641) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_coarse (4508880777646198656) -->
-    <skip />
-    <!-- no translation found for permlab_scene_understanding_fine (409126403264393251) -->
-    <skip />
-    <!-- no translation found for permdesc_scene_understanding_fine (6223368011593524179) -->
-    <skip />
-    <!-- no translation found for permlab_xr_tracking_in_background (7117098718465619023) -->
-    <skip />
-    <!-- no translation found for permdesc_xr_tracking_in_background (939504041387836853) -->
-    <skip />
+    <string name="permlab_eye_tracking_coarse" msgid="7989596289790269059">"landelela ukuthi iso lakho libheke ngakuphi"</string>
+    <string name="permdesc_eye_tracking_coarse" msgid="870510233930553355">"Ivumela i-app ukuthi ilandelele ukubuka kwakho kweso."</string>
+    <string name="permlab_eye_tracking_fine" msgid="6914457357027049512">"landelela lapho obheke khona"</string>
+    <string name="permdesc_eye_tracking_fine" msgid="5788889152304524730">"Ivumela i-app ifinyelele idatha yokubuka kweso okunembile."</string>
+    <string name="permlab_face_tracking" msgid="2272048395128283324">"landelela ubuso bakho"</string>
+    <string name="permdesc_face_tracking" msgid="2622783922311211866">"Ivumela i-app ukuthi ifinyelele idatha yokulandelela ukunyakaza kobuso."</string>
+    <string name="permlab_hand_tracking" msgid="6478233866595566940">"landelela izandla zakho"</string>
+    <string name="permdesc_hand_tracking" msgid="8639715900104966456">"Ivumela i-app ukuthi ifinyelele idatha yokulandelela ukunyakaza kwesandla."</string>
+    <string name="permlab_head_tracking" msgid="1309731456372087270">"landelela ikhanda lakho"</string>
+    <string name="permdesc_head_tracking" msgid="231597390513699188">"Ivumela i-app ukuthi ifinyelele idatha yokulandelela ukunyakaza kwekhanda."</string>
+    <string name="permlab_scene_understanding_coarse" msgid="6518646430502858641">"qonda indawo okuyo eseduze"</string>
+    <string name="permdesc_scene_understanding_coarse" msgid="4508880777646198656">"Ivumela i-app ukuthi ifinyelele idatha elandelela indawo ekuzungezile."</string>
+    <string name="permlab_scene_understanding_fine" msgid="409126403264393251">"qonda indawo yakho eseduze ngemininingwane ephezulu"</string>
+    <string name="permdesc_scene_understanding_fine" msgid="6223368011593524179">"Ivumela i-app ukuthi ifinyelele idatha elandelela indawo ekuzungezile ngemininingwane ephezulu kakhulu."</string>
+    <string name="permlab_xr_tracking_in_background" msgid="7117098718465619023">"finyelela idatha ye-XR ngenkathi ungekho ngaphambili"</string>
+    <string name="permdesc_xr_tracking_in_background" msgid="939504041387836853">"Ivumela i-app ukuba ifinyelele idatha ye-XR ngenkathi ingekho ngaphambili."</string>
     <string name="biometric_app_setting_name" msgid="3339209978734534457">"Sebenzisa i-biometrics"</string>
     <string name="biometric_or_screen_lock_app_setting_name" msgid="5348462421758257752">"Sebenzisa i-biometrics noma ukukhiya isikrini"</string>
     <string name="biometric_dialog_default_title" msgid="55026799173208210">"Qinisekisa ukuthi nguwe"</string>
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index 15230c2..9983c45 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -853,11 +853,14 @@
             element.
          <aside class="note"><b>Note:</b>
             <ul>
+                <li>To improve the layout of apps on form factors with smallest width >= 600dp, the
+                    system ignores this attribute for apps that target Android 16 (API level 36) or
+                    higher.</li>
                 <li>Device manufacturers can configure devices to override (ignore) this attribute
                     to improve the layout of apps.</li>
                 <li>On devices with Android 16 (API level 36) or higher installed, virtual device
-                    owners (limited to select trusted and privileged apps) can configure devices
-                    they manage to override (ignore) this attribute to improve app layout. See also
+                    owners (select trusted and privileged apps) can configure devices they manage to
+                    override (ignore) this attribute to improve app layout. See also
                     <a href="https://source.android.com/docs/core/permissions/app-streaming">
                     Companion app streaming</a>.</li>
              </ul>
@@ -1482,19 +1485,20 @@
                 <li>On Android 11 (API level 30) and lower, the value of
                     {@link android.R.attr#screenOrientation} is ignored for resizeable activities
                     in multi-window mode.</li>
+                <li>To improve the layout of apps on form factors with smallest width >= 600dp, the
+                    system ignores this attribute for apps that target Android 16 (API level 36) or
+                    higher.</li>
                 <li>Device manufacturers can configure devices to override (ignore) this attribute
                     to force apps to resize. The override does not affect the app's support for
-                    multi-window mode. See
-                    <a href="{@docRoot}guide/practices/device-compatibility-mode">Device
-                    compatibility mode</a>.</li>
+                    multi-window mode.</li>
                 <li>On devices with Android 16 (API level 36) or higher installed, virtual device
-                    owners (limited to select trusted and privileged apps) can configure devices
-                    they manage to override (ignore) this attribute to force apps to resize. See
-                    <a href="{@docRoot}guide/practices/device-compatibility-mode">Device
-                    compatibility mode</a>. See also
-                    <a href="https://source.android.com/docs/core/permissions/app-streaming">
+                    owners (select trusted and privileged apps) can configure devices they manage to
+                    override (ignore) this attribute to force apps to resize. See
+                    also <a href="https://source.android.com/docs/core/permissions/app-streaming">
                     Companion app streaming</a>.</li>
             </ul>
+            <p>See <a href="{@docRoot}guide/practices/device-compatibility-mode"> Device
+            compatibility mode</a>.</p>
          </aside> -->
     <attr name="resizeableActivity" format="boolean" />
 
@@ -1519,18 +1523,19 @@
             <ul>
                 <li>This attribute is ignored if the activity has
                     {@link android.R.attr#resizeableActivity} set to {@code true}.</li>
+                <li>To improve the layout of apps on form factors with smallest width >= 600dp, the
+                    system ignores this attribute for apps that target Android 16 (API level 36) or
+                    higher.</li>
                 <li>Device manufacturers can configure devices to override (ignore) this attribute
-                    to improve the layout of apps. See
-                    <a href="{@docRoot}guide/practices/device-compatibility-mode#override_any_orientation_to_user">
-                    Device compatibility mode</a>.</li>
+                    to improve the layout of apps.</li>
                 <li>On devices with Android 16 (API level 36) or higher installed, virtual device
-                    owners (limited to select trusted and privileged apps) can configure devices
-                    they manage to override (ignore) this attribute to improve app layout. See
-                    <a href="{@docRoot}guide/practices/device-compatibility-mode#override_any_orientation_to_user">
-                    Device compatibility mode</a>. See also
+                    owners (select trusted and privileged apps) can configure devices they manage to
+                    override (ignore) this attribute to improve app layout. See
                     <a href="https://source.android.com/docs/core/permissions/app-streaming">
                     Companion app streaming</a>.</li>
             </ul>
+            <p>See <a href="{@docRoot}guide/practices/device-compatibility-mode"> Device
+            compatibility mode</a>.</p>
          </aside> -->
     <attr name="maxAspectRatio" format="float" />
 
@@ -1540,24 +1545,25 @@
          <p>Minimum aspect ratio, expressed as (longer dimension / shorter dimension) in decimal
             form. For example, if the minimum aspect ratio is 4:3, set value to 1.33.
          <p>Value needs to be greater or equal to 1.0, otherwise it is ignored.
-         <aside class="note"><b>Note:</b>
+          <aside class="note"><b>Note:</b>
             <ul>
                 <li>This attribute is ignored if the activity has
                     {@link android.R.attr#resizeableActivity} set to {@code true}.</li>
+                <li>To improve the layout of apps on form factors with smallest width >= 600dp, the
+                    system ignores this attribute for apps that target Android 16 (API level 36) or
+                    higher.</li>
                 <li>Device manufacturers can configure devices to override (ignore) this attribute
-                    to improve the layout of apps. See
-                    <a href="{@docRoot}guide/practices/device-compatibility-mode">Device
-                    compatibility mode</a>.</li>
+                    to improve the layout of apps.</li>
                 <li>On devices with Android 16 (API level 36) or higher installed, virtual device
-                    owners (limited to select trusted and privileged apps) can configure devices
-                    they manage to override (ignore) this attribute to improve app layout. See
-                    <a href="{@docRoot}guide/practices/device-compatibility-mode">Device
-                    compatibility mode</a>. See also
+                    owners (select trusted and privileged apps) can configure devices they manage to
+                    override (ignore) this attribute to improve app layout. See
                     <a href="https://source.android.com/docs/core/permissions/app-streaming">
                     Companion app streaming</a>.</li>
             </ul>
+            <p>See <a href="{@docRoot}guide/practices/device-compatibility-mode"> Device
+            compatibility mode</a>.</p>
          </aside> -->
-    <attr name="minAspectRatio" format="float" />
+   <attr name="minAspectRatio" format="float" />
 
     <!-- This value indicates how tasks rooted at this activity will behave in lockTask mode.
          While in lockTask mode the system will not launch non-permitted tasks until
diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml
index 864daf9..4e93c44 100644
--- a/core/res/res/values/colors.xml
+++ b/core/res/res/values/colors.xml
@@ -585,6 +585,8 @@
     <!-- Color for various surfaces related to system-wide blur -->
     <color name="surface_effect_0">@color/surface_effect_0_color</color>
     <color name="surface_effect_1">@color/surface_effect_1_color</color>
+    <color name="surface_effect_2">@color/surface_effect_2_color</color>
+    <color name="surface_effect_3">@color/surface_effect_3_color</color>
 
     <!-- Color for system bars -->
     <color name="navigation_bar_compatible">@android:color/black</color>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 2188469..1cb38be 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -3165,11 +3165,6 @@
          1 : boot to the first switchable full user for initial boot (unprovisioned device), else to the headless system user, i.e. user 0. -->
     <integer name="config_hsumBootStrategy">0</integer>
 
-    <!-- Whether to boot system with the headless system user, i.e. user 0. If set to true,
-         system will be booted with the headless system user, or user 0. It has no effect if device
-         is not in Headless System User Mode (HSUM). -->
-    <bool name="config_bootToHeadlessSystemUser">false</bool>
-
     <!-- Whether multiple admins are allowed on the device. If set to true, new users can be created
          with admin privileges and admin privileges can be granted/revoked from existing users. -->
     <bool name="config_enableMultipleAdmins">false</bool>
diff --git a/core/res/res/values/config_telephony.xml b/core/res/res/values/config_telephony.xml
index f2ec56c..59ed25a 100644
--- a/core/res/res/values/config_telephony.xml
+++ b/core/res/res/values/config_telephony.xml
@@ -64,6 +64,13 @@
     <integer name="auto_data_switch_performance_stability_time_threshold_millis">120000</integer>
     <java-symbol type="integer" name="auto_data_switch_performance_stability_time_threshold_millis" />
 
+    <!-- Define the bar for switching data back to the default SIM when both SIMs are out of service
+         in milliseconds. A value of 0 means an immediate switch, otherwise for a negative value,
+         the threshold defined by auto_data_switch_availability_stability_time_threshold_millis
+         will be used instead. -->
+    <integer name="auto_data_switch_availability_switchback_stability_time_threshold_millis">150000</integer>
+    <java-symbol type="integer" name="auto_data_switch_availability_switchback_stability_time_threshold_millis" />
+
     <!-- Define the maximum retry times when a validation for switching failed.-->
     <integer name="auto_data_switch_validation_max_retry">7</integer>
     <java-symbol type="integer" name="auto_data_switch_validation_max_retry" />
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 9acb242..a1961ae 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -268,6 +268,9 @@
      72dp (content margin) - 12dp (action padding) - 4dp (button inset) -->
     <dimen name="notification_2025_actions_margin_start">56dp</dimen>
 
+    <!-- Notification action button text size -->
+    <dimen name="notification_2025_action_text_size">16sp</dimen>
+
     <!-- The margin on the end of most content views (ignores the expander) -->
     <dimen name="notification_content_margin_end">16dp</dimen>
 
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 7a93ca1..6a83bae 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -5009,6 +5009,9 @@
     <!-- Title of hearing aids feature, shown in the warning dialog about the accessibility shortcut. [CHAR LIMIT=none] -->
     <string name="hearing_aids_feature_name">Hearing devices</string>
 
+    <!-- Title of autoclick feature, shown in the warning dialog about the accessibility shortcut. [CHAR LIMIT=none] -->
+    <string name="autoclick_feature_name">Autoclick</string>
+
     <!-- Text of hearing device disconnected state. [CHAR LIMIT=20] -->
     <string name="hearing_device_status_disconnected">Disconnected</string>
 
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 26f0ab3..c8c1e73 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -368,7 +368,6 @@
   <java-symbol type="bool" name="config_enableMultipleAdmins"/>
   <java-symbol type="bool" name="config_allowAlarmsOnStoppedUsers"/>
   <java-symbol type="bool" name="config_showNotificationForBackgroundUserAlarms"/>
-  <java-symbol type="bool" name="config_bootToHeadlessSystemUser"/>
   <java-symbol type="bool" name="config_omnipresentCommunalUser"/>
   <java-symbol type="bool" name="config_enableNewAutoSelectNetworkUI"/>
   <java-symbol type="bool" name="config_disableUsbPermissionDialogs"/>
@@ -535,6 +534,8 @@
 
   <java-symbol type="color" name="surface_effect_0" />
   <java-symbol type="color" name="surface_effect_1" />
+  <java-symbol type="color" name="surface_effect_2" />
+  <java-symbol type="color" name="surface_effect_3" />
   <java-symbol type="color" name="tab_indicator_text_v4" />
 
   <java-symbol type="dimen" name="accessibility_touch_slop" />
@@ -3235,8 +3236,6 @@
   <java-symbol type="id" name="header_text" />
   <java-symbol type="id" name="header_text_secondary" />
   <java-symbol type="id" name="expand_button" />
-  <java-symbol type="id" name="expand_button_spacer" />
-  <java-symbol type="id" name="expand_button_container" />
   <java-symbol type="id" name="expand_button_pill" />
   <java-symbol type="id" name="expand_button_pill_colorized_layer" />
   <java-symbol type="id" name="expand_button_number" />
@@ -3264,6 +3263,7 @@
   <java-symbol type="dimen" name="notification_content_margin" />
   <java-symbol type="dimen" name="notification_2025_margin" />
   <java-symbol type="dimen" name="notification_2025_content_margin_top" />
+  <java-symbol type="dimen" name="notification_2025_content_margin_start" />
   <java-symbol type="dimen" name="notification_2025_expand_button_horizontal_icon_padding" />
   <java-symbol type="dimen" name="notification_2025_expand_button_reduced_end_padding" />
   <java-symbol type="dimen" name="notification_progress_margin_horizontal" />
@@ -3790,6 +3790,7 @@
   <java-symbol type="string" name="accessibility_shortcut_disabling_service" />
   <java-symbol type="string" name="color_inversion_feature_name" />
   <java-symbol type="string" name="color_correction_feature_name" />
+  <java-symbol type="string" name="autoclick_feature_name"/>
   <java-symbol type="string" name="reduce_bright_colors_feature_name" />
   <java-symbol type="string" name="config_defaultAccessibilityService" />
   <java-symbol type="string" name="config_defaultSelectToSpeakService" />
@@ -4705,7 +4706,8 @@
   <java-symbol type="dimen" name="conversation_icon_container_top_padding" />
   <java-symbol type="dimen" name="conversation_icon_container_top_padding_small_avatar" />
   <java-symbol type="layout" name="notification_template_material_conversation" />
-  <java-symbol type="layout" name="notification_2025_template_conversation" />
+  <java-symbol type="layout" name="notification_2025_template_collapsed_conversation" />
+  <java-symbol type="layout" name="notification_2025_template_expanded_conversation" />
   <java-symbol type="dimen" name="button_padding_horizontal_material" />
   <java-symbol type="dimen" name="button_inset_horizontal_material" />
   <java-symbol type="layout" name="conversation_face_pile_layout" />
diff --git a/core/tests/coretests/Android.bp b/core/tests/coretests/Android.bp
index 4c49ff8..05fb5735 100644
--- a/core/tests/coretests/Android.bp
+++ b/core/tests/coretests/Android.bp
@@ -249,8 +249,14 @@
 android_ravenwood_test {
     name: "FrameworksCoreTestsRavenwood",
     libs: [
-        "android.test.base.stubs.system",
-        "android.test.runner.stubs.system",
+        "android.test.base.stubs",
+        "android.test.mock.stubs",
+        "android.test.runner.stubs",
+        "android.view.flags-aconfig-java",
+        "ext",
+        "framework",
+        "framework-res",
+        "org.apache.http.legacy.stubs",
     ],
     static_libs: [
         "androidx.annotation_annotation",
@@ -264,6 +270,7 @@
         "flag-junit",
         "flag-junit",
         "perfetto_trace_java_protos",
+        "platform-compat-test-rules",
         "platform-test-annotations",
         "testng",
     ],
@@ -278,8 +285,12 @@
         "src/android/content/res/*.java",
         "src/android/content/res/*.kt",
         "src/android/database/CursorWindowTest.java",
+        "src/android/graphics/*.java",
+        "src/android/graphics/*.kt",
         "src/android/os/**/*.java",
         "src/android/telephony/PinResultTest.java",
+        "src/android/text/**/*.java",
+        "src/android/text/**/*.kt",
         "src/android/util/**/*.java",
         "src/android/view/DisplayAdjustmentsTests.java",
         "src/android/view/DisplayInfoTest.java",
@@ -288,20 +299,21 @@
         "src/com/android/internal/os/**/*.java",
         "src/com/android/internal/power/EnergyConsumerStatsTest.java",
         "src/com/android/internal/ravenwood/**/*.java",
-
-        // Pull in R.java from FrameworksCoreTests-resonly, not from FrameworksCoreTests,
-        // to avoid having a dependency to FrameworksCoreTests.
-        // This way, when updating source files and running this test, we don't need to
-        // rebuild the entire FrameworksCoreTests, which would be slow.
         "src/com/android/internal/util/**/*.java",
 
         ":FrameworksCoreTestDoubles-sources",
         ":FrameworksCoreTests-aidl",
         ":FrameworksCoreTests-helpers",
+
+        // Pull in R.java from FrameworksCoreTests-resonly, not from FrameworksCoreTests,
+        // to avoid having a dependency to FrameworksCoreTests.
+        // This way, when updating source files and running this test, we don't need to
+        // rebuild the entire FrameworksCoreTests, which would be slow.
         ":FrameworksCoreTests-resonly{.aapt.srcjar}",
     ],
     exclude_srcs: [
         "src/android/content/res/FontScaleConverterActivityTest.java",
+        "src/android/graphics/GraphicsPerformanceTests.java",
     ],
     resource_apk: "FrameworksCoreTests-resonly",
     aidl: {
@@ -313,6 +325,7 @@
         "res/xml/power_profile_test_cpu_legacy.xml",
         "res/xml/power_profile_test_modem.xml",
     ],
+    sdk_version: "core_platform",
     auto_gen_config: true,
     team: "trendy_team_ravenwood",
 }
diff --git a/core/tests/coretests/src/android/content/res/FontScaleConverterTest.kt b/core/tests/coretests/src/android/content/res/FontScaleConverterTest.kt
index 0e5d926..2c61442 100644
--- a/core/tests/coretests/src/android/content/res/FontScaleConverterTest.kt
+++ b/core/tests/coretests/src/android/content/res/FontScaleConverterTest.kt
@@ -17,10 +17,8 @@
 package android.content.res
 
 import android.platform.test.annotations.Presubmit
-import android.platform.test.ravenwood.RavenwoodRule
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.google.common.truth.Truth.assertWithMessage
-import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 
@@ -28,9 +26,6 @@
 @RunWith(AndroidJUnit4::class)
 class FontScaleConverterTest {
 
-    @get:Rule
-    val ravenwoodRule: RavenwoodRule = RavenwoodRule.Builder().build()
-
     @Test
     fun straightInterpolation() {
         val table = createTable(8f to 8f, 10f to 10f, 20f to 20f)
diff --git a/core/tests/coretests/src/android/graphics/BitmapFactoryTest.java b/core/tests/coretests/src/android/graphics/BitmapFactoryTest.java
index 84bdbe0..263307e 100644
--- a/core/tests/coretests/src/android/graphics/BitmapFactoryTest.java
+++ b/core/tests/coretests/src/android/graphics/BitmapFactoryTest.java
@@ -20,7 +20,9 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
+import android.os.MemoryFile;
 import android.os.ParcelFileDescriptor;
+import android.platform.test.annotations.DisabledOnRavenwood;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
@@ -37,6 +39,7 @@
     // tests that we can decode bitmaps from MemoryFiles
     @SmallTest
     @Test
+    @DisabledOnRavenwood(blockedBy = MemoryFile.class)
     public void testBitmapParcelFileDescriptor() throws Exception {
         Bitmap bitmap1 = Bitmap.createBitmap(
                 new int[] { Color.BLUE }, 1, 1, Bitmap.Config.RGB_565);
diff --git a/core/tests/coretests/src/android/graphics/BitmapTest.java b/core/tests/coretests/src/android/graphics/BitmapTest.java
index 0126d36..61c3d78 100644
--- a/core/tests/coretests/src/android/graphics/BitmapTest.java
+++ b/core/tests/coretests/src/android/graphics/BitmapTest.java
@@ -22,6 +22,7 @@
 import static org.junit.Assert.fail;
 
 import android.hardware.HardwareBuffer;
+import android.platform.test.annotations.DisabledOnRavenwood;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
@@ -252,6 +253,7 @@
                     | GraphicBuffer.USAGE_SW_WRITE_OFTEN;
 
     @Test
+    @DisabledOnRavenwood(blockedBy = HardwareBuffer.class)
     public void testWrapHardwareBufferWithSrgbColorSpace() {
         GraphicBuffer buffer = GraphicBuffer.create(10, 10, PixelFormat.RGBA_8888, GRAPHICS_USAGE);
         Canvas canvas = buffer.lockCanvas();
@@ -265,6 +267,7 @@
     }
 
     @Test
+    @DisabledOnRavenwood(blockedBy = HardwareBuffer.class)
     public void testWrapHardwareBufferWithDisplayP3ColorSpace() {
         GraphicBuffer buffer = GraphicBuffer.create(10, 10, PixelFormat.RGBA_8888, GRAPHICS_USAGE);
         Canvas canvas = buffer.lockCanvas();
diff --git a/core/tests/coretests/src/android/graphics/PaintTest.java b/core/tests/coretests/src/android/graphics/PaintTest.java
index 56760d7..deb5157 100644
--- a/core/tests/coretests/src/android/graphics/PaintTest.java
+++ b/core/tests/coretests/src/android/graphics/PaintTest.java
@@ -24,6 +24,7 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.platform.test.annotations.RequiresFlagsEnabled;
 import android.platform.test.flag.junit.CheckFlagsRule;
 import android.platform.test.flag.junit.DeviceFlagsValueProvider;
@@ -97,6 +98,7 @@
 
     @SmallTest
     @Test
+    @DisabledOnRavenwood(bug = 391381043)
     public void testHintingWidth() {
         final Typeface fontTypeface = Typeface.createFromAsset(
                 InstrumentationRegistry.getInstrumentation().getContext().getAssets(), FONT_PATH);
@@ -143,6 +145,7 @@
     }
 
     @Test
+    @DisabledOnRavenwood(bug = 391381043)
     public void testHasGlyph_variationSelectors() {
         final Typeface fontTypeface = Typeface.createFromAsset(
                 InstrumentationRegistry.getInstrumentation().getContext().getAssets(),
diff --git a/core/tests/coretests/src/android/graphics/TypefaceSystemFallbackTest.java b/core/tests/coretests/src/android/graphics/TypefaceSystemFallbackTest.java
index 2b6eda8f..dc3376e 100644
--- a/core/tests/coretests/src/android/graphics/TypefaceSystemFallbackTest.java
+++ b/core/tests/coretests/src/android/graphics/TypefaceSystemFallbackTest.java
@@ -35,9 +35,9 @@
 import android.text.FontConfig;
 import android.util.ArrayMap;
 
-import androidx.test.InstrumentationRegistry;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import com.android.text.flags.Flags;
 
@@ -63,9 +63,6 @@
 @SmallTest
 @RunWith(AndroidJUnit4.class)
 public class TypefaceSystemFallbackTest {
-    private static final String SYSTEM_FONT_DIR = "/system/fonts/";
-    private static final String SYSTEM_FONTS_XML = "/system/etc/fonts.xml";
-
     private static final String[] TEST_FONT_FILES = {
         "a3em.ttf",  // Supports "a","b","c". The width of "a" is 3em,  others are 1em.
         "b3em.ttf",  // Supports "a","b","c". The width of "b" is 3em,  others are 1em.
@@ -118,8 +115,6 @@
 
     @Before
     public void setUp() {
-        final AssetManager am =
-                InstrumentationRegistry.getInstrumentation().getContext().getAssets();
         for (final String fontFile : TEST_FONT_FILES) {
             final String sourceInAsset = "fonts/" + fontFile;
             copyAssetToFile(sourceInAsset, new File(TEST_FONT_DIR, fontFile));
@@ -216,7 +211,8 @@
         FontConfig fontConfig;
         try {
             fontConfig = FontListParser.parse(
-                    SYSTEM_FONTS_XML, SYSTEM_FONT_DIR, null, TEST_OEM_DIR, null, 0, 0);
+                    SystemFonts.LEGACY_FONTS_XML, SystemFonts.SYSTEM_FONT_DIR,
+                    null, TEST_OEM_DIR, null, 0, 0);
         } catch (IOException | XmlPullParserException e) {
             throw new RuntimeException(e);
         }
diff --git a/core/tests/coretests/src/android/graphics/TypefaceTest.java b/core/tests/coretests/src/android/graphics/TypefaceTest.java
index 80efa51..0c8b5ab 100644
--- a/core/tests/coretests/src/android/graphics/TypefaceTest.java
+++ b/core/tests/coretests/src/android/graphics/TypefaceTest.java
@@ -26,6 +26,7 @@
 import android.graphics.fonts.FontFamily;
 import android.graphics.fonts.SystemFonts;
 import android.os.SharedMemory;
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.text.FontConfig;
 import android.util.ArrayMap;
 
@@ -196,6 +197,7 @@
 
     @SmallTest
     @Test
+    @DisabledOnRavenwood(blockedBy = SharedMemory.class)
     public void testSerialize() throws Exception {
         FontConfig fontConfig = SystemFonts.getSystemPreinstalledFontConfig();
         Map<String, FontFamily[]> fallbackMap = SystemFonts.buildSystemFallback(fontConfig);
diff --git a/core/tests/coretests/src/android/hardware/display/DisplayManagerGlobalTest.java b/core/tests/coretests/src/android/hardware/display/DisplayManagerGlobalTest.java
index 9383807..de5f0ff 100644
--- a/core/tests/coretests/src/android/hardware/display/DisplayManagerGlobalTest.java
+++ b/core/tests/coretests/src/android/hardware/display/DisplayManagerGlobalTest.java
@@ -56,6 +56,7 @@
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 
+import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.Executor;
 import java.util.function.Consumer;
 
@@ -116,7 +117,8 @@
     @Test
     public void testDisplayListenerIsCalled_WhenDisplayEventOccurs() throws RemoteException {
         mDisplayManagerGlobal.registerDisplayListener(mDisplayListener, mHandler,
-                ALL_DISPLAY_EVENTS, /* packageName= */ null);
+                ALL_DISPLAY_EVENTS, /* packageName= */ null,
+                /* isEventFilterExplicit */ true);
         Mockito.verify(mDisplayManager)
                 .registerCallbackWithEventMask(mCallbackCaptor.capture(), anyLong());
         IDisplayManagerCallback callback = mCallbackCaptor.getValue();
@@ -151,7 +153,7 @@
         mDisplayManagerGlobal.registerDisplayListener(mDisplayListener, mHandler,
                 INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE
                         | INTERNAL_EVENT_FLAG_DISPLAY_STATE,
-                null);
+                null, /* isEventFilterExplicit */ true);
         Mockito.verify(mDisplayManager)
                 .registerCallbackWithEventMask(mCallbackCaptor.capture(), anyLong());
         IDisplayManagerCallback callback = mCallbackCaptor.getValue();
@@ -172,11 +174,85 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_DELAY_IMPLICIT_RR_REGISTRATION_UNTIL_RR_ACCESSED)
+    public void test_refreshRateRegistration_implicitRRCallbacksEnabled()
+            throws RemoteException {
+        DisplayManager.DisplayListener displayListener1 =
+                Mockito.mock(DisplayManager.DisplayListener.class);
+        // Subscription without supplied events doesn't subscribe to RR events
+        mDisplayManagerGlobal.registerDisplayListener(displayListener1, mHandler,
+                ALL_DISPLAY_EVENTS, /* packageName= */ null,
+                /* isEventFilterExplicit */ false);
+        Mockito.verify(mDisplayManager)
+                .registerCallbackWithEventMask(mCallbackCaptor.capture(), eq(ALL_DISPLAY_EVENTS));
+
+        // After registering to refresh rate changes, subscription without supplied events subscribe
+        // to RR events
+        mDisplayManagerGlobal.registerForRefreshRateChanges();
+        DisplayManager.DisplayListener displayListener2 =
+                Mockito.mock(DisplayManager.DisplayListener.class);
+        mDisplayManagerGlobal.registerDisplayListener(displayListener2, mHandler,
+                ALL_DISPLAY_EVENTS, /* packageName= */ null,
+                /* isEventFilterExplicit */ false);
+        Mockito.verify(mDisplayManager)
+                .registerCallbackWithEventMask(mCallbackCaptor.capture(), eq(ALL_DISPLAY_EVENTS
+                        | INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE));
+
+        // Assert all the existing listeners are also subscribed to RR events
+        CopyOnWriteArrayList<DisplayManagerGlobal.DisplayListenerDelegate> delegates =
+                mDisplayManagerGlobal.getDisplayListeners();
+        for (DisplayManagerGlobal.DisplayListenerDelegate delegate: delegates) {
+            assertEquals(ALL_DISPLAY_EVENTS | INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE,
+                    delegate.mInternalEventFlagsMask);
+        }
+
+        // Subscription to RR when events are supplied doesn't happen
+        DisplayManager.DisplayListener displayListener3 =
+                Mockito.mock(DisplayManager.DisplayListener.class);
+        mDisplayManagerGlobal.registerDisplayListener(displayListener3, mHandler,
+                ALL_DISPLAY_EVENTS, /* packageName= */ null,
+                /* isEventFilterExplicit */ true);
+        Mockito.verify(mDisplayManager)
+                .registerCallbackWithEventMask(mCallbackCaptor.capture(), eq(ALL_DISPLAY_EVENTS));
+
+        // Assert one listeners are not subscribed to RR events
+        delegates =  mDisplayManagerGlobal.getDisplayListeners();
+        int subscribedListenersCount = 0;
+        int nonSubscribedListenersCount = 0;
+        for (DisplayManagerGlobal.DisplayListenerDelegate delegate: delegates) {
+            if (delegate.isEventFilterExplicit()) {
+                assertEquals(ALL_DISPLAY_EVENTS, delegate.mInternalEventFlagsMask);
+                nonSubscribedListenersCount++;
+            } else {
+                assertEquals(ALL_DISPLAY_EVENTS | INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE,
+                        delegate.mInternalEventFlagsMask);
+                subscribedListenersCount++;
+            }
+        }
+
+        assertEquals(2, subscribedListenersCount);
+        assertEquals(1, nonSubscribedListenersCount);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_DELAY_IMPLICIT_RR_REGISTRATION_UNTIL_RR_ACCESSED)
+    public void test_refreshRateRegistration_implicitRRCallbacksDisabled()
+            throws RemoteException {
+        mDisplayManagerGlobal.registerDisplayListener(mDisplayListener, mHandler,
+                ALL_DISPLAY_EVENTS, /* packageName= */ null,
+                /* isEventFilterExplicit */ false);
+        Mockito.verify(mDisplayManager)
+                .registerCallbackWithEventMask(mCallbackCaptor.capture(), eq(ALL_DISPLAY_EVENTS
+                        | INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE));
+    }
+
+    @Test
     public void testDisplayListenerIsNotCalled_WhenClientIsNotSubscribed() throws RemoteException {
         // First we subscribe to all events in order to test that the subsequent calls to
         // registerDisplayListener will update the event mask.
         mDisplayManagerGlobal.registerDisplayListener(mDisplayListener, mHandler,
-                ALL_DISPLAY_EVENTS, /* packageName= */ null);
+                ALL_DISPLAY_EVENTS, /* packageName= */ null,
+                /* isEventFilterExplicit */ true);
         Mockito.verify(mDisplayManager)
                 .registerCallbackWithEventMask(mCallbackCaptor.capture(), anyLong());
         IDisplayManagerCallback callback = mCallbackCaptor.getValue();
@@ -184,21 +260,24 @@
         int displayId = 1;
         mDisplayManagerGlobal.registerDisplayListener(mDisplayListener, mHandler,
                 ALL_DISPLAY_EVENTS
-                        & ~DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_ADDED, null);
+                        & ~DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_ADDED, null,
+                        /* isEventFilterExplicit */ true);
         callback.onDisplayEvent(displayId, DisplayManagerGlobal.EVENT_DISPLAY_ADDED);
         waitForHandler();
         Mockito.verifyZeroInteractions(mDisplayListener);
 
         mDisplayManagerGlobal.registerDisplayListener(mDisplayListener, mHandler,
                 ALL_DISPLAY_EVENTS
-                        & ~DISPLAY_CHANGE_EVENTS, null);
+                        & ~DISPLAY_CHANGE_EVENTS, null,
+                        /* isEventFilterExplicit */ true);
         callback.onDisplayEvent(displayId, DisplayManagerGlobal.EVENT_DISPLAY_BASIC_CHANGED);
         waitForHandler();
         Mockito.verifyZeroInteractions(mDisplayListener);
 
         mDisplayManagerGlobal.registerDisplayListener(mDisplayListener, mHandler,
                 ALL_DISPLAY_EVENTS
-                        & ~DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_REMOVED, null);
+                        & ~DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_REMOVED, null,
+                        /* isEventFilterExplicit */ true);
         callback.onDisplayEvent(displayId, DisplayManagerGlobal.EVENT_DISPLAY_REMOVED);
         waitForHandler();
         Mockito.verifyZeroInteractions(mDisplayListener);
@@ -218,11 +297,34 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_DELAY_IMPLICIT_RR_REGISTRATION_UNTIL_RR_ACCESSED)
+    public void test_registerNativeRefreshRateCallbacks_enablesRRImplicitRegistrations()
+            throws RemoteException {
+        // Registering the display listener without supplied events doesn't subscribe to RR events
+        mDisplayManagerGlobal.registerDisplayListener(mDisplayListener, mHandler,
+                ALL_DISPLAY_EVENTS, /* packageName= */ null,
+                /* isEventFilterExplicit */ false);
+        Mockito.verify(mDisplayManager)
+                .registerCallbackWithEventMask(mCallbackCaptor.capture(), eq(ALL_DISPLAY_EVENTS));
+
+        // Native subscription for refresh rates is done
+        mDisplayManagerGlobal.registerNativeChoreographerForRefreshRateCallbacks();
+
+        // Registering the display listener without supplied events subscribe to RR events
+        mDisplayManagerGlobal.registerDisplayListener(mDisplayListener, mHandler,
+                ALL_DISPLAY_EVENTS, /* packageName= */ null,
+                /* isEventFilterExplicit */ false);
+        Mockito.verify(mDisplayManager)
+                .registerCallbackWithEventMask(mCallbackCaptor.capture(), eq(ALL_DISPLAY_EVENTS
+                        | INTERNAL_EVENT_FLAG_DISPLAY_REFRESH_RATE));
+    }
+
+    @Test
     public void testDisplayManagerGlobalRegistersWithDisplayManager_WhenThereAreListeners()
             throws RemoteException {
         mDisplayManagerGlobal.registerDisplayListener(mDisplayListener, mHandler,
                 DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_BRIGHTNESS_CHANGED,
-                null);
+                null, /* isEventFilterExplicit */ true);
         InOrder inOrder = Mockito.inOrder(mDisplayManager);
 
         inOrder.verify(mDisplayManager)
@@ -260,9 +362,10 @@
         mDisplayManagerGlobal.registerDisplayListener(mDisplayListener, mHandler,
                 DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_ADDED
                         | DisplayManagerGlobal.INTERNAL_EVENT_FLAG_DISPLAY_REMOVED,
-                null /* packageName */);
+                null /* packageName */, /* isEventFilterExplicit */ true);
         mDisplayManagerGlobal.registerDisplayListener(mDisplayListener2, mHandler,
-                DISPLAY_CHANGE_EVENTS, null /* packageName */);
+                DISPLAY_CHANGE_EVENTS, null /* packageName */,
+                /* isEventFilterExplicit */ true);
 
         mDisplayManagerGlobal.handleDisplayChangeFromWindowManager(321);
         waitForHandler();
diff --git a/core/tests/coretests/src/android/os/BundleMergerTest.java b/core/tests/coretests/src/android/os/BundleMergerTest.java
index 43ed821..5379993 100644
--- a/core/tests/coretests/src/android/os/BundleMergerTest.java
+++ b/core/tests/coretests/src/android/os/BundleMergerTest.java
@@ -18,6 +18,7 @@
 
 import static android.os.BundleMerger.STRATEGY_ARRAY_APPEND;
 import static android.os.BundleMerger.STRATEGY_ARRAY_LIST_APPEND;
+import static android.os.BundleMerger.STRATEGY_ARRAY_UNION;
 import static android.os.BundleMerger.STRATEGY_BOOLEAN_AND;
 import static android.os.BundleMerger.STRATEGY_BOOLEAN_OR;
 import static android.os.BundleMerger.STRATEGY_COMPARABLE_MAX;
@@ -28,6 +29,7 @@
 import static android.os.BundleMerger.STRATEGY_NUMBER_INCREMENT_FIRST;
 import static android.os.BundleMerger.STRATEGY_NUMBER_INCREMENT_FIRST_AND_ADD;
 import static android.os.BundleMerger.STRATEGY_REJECT;
+import static android.os.BundleMerger.STRATEGY_STRING_APPEND;
 import static android.os.BundleMerger.merge;
 
 import static org.junit.Assert.assertArrayEquals;
@@ -204,6 +206,33 @@
     }
 
     @Test
+    public void testStrategyArrayUnion() throws Exception {
+        assertArrayEquals(new int[] {},
+                (int[]) merge(STRATEGY_ARRAY_UNION, new int[] {}, new int[] {}));
+        assertArrayEquals(new int[] {10},
+                (int[]) merge(STRATEGY_ARRAY_UNION, new int[] {10}, new int[] {}));
+        assertArrayEquals(new int[] {20},
+                (int[]) merge(STRATEGY_ARRAY_UNION, new int[] {}, new int[] {20}));
+        assertArrayEquals(new int[] {10, 20},
+                (int[]) merge(STRATEGY_ARRAY_UNION, new int[] {10}, new int[] {20}));
+        assertArrayEquals(new int[] {10, 20, 30, 40},
+                (int[]) merge(STRATEGY_ARRAY_UNION, new int[] {10, 30}, new int[] {20, 40}));
+        assertArrayEquals(new int[] {10, 20, 30},
+                (int[]) merge(STRATEGY_ARRAY_UNION, new int[] {10, 30}, new int[] {10, 20}));
+        assertArrayEquals(new int[] {10, 20},
+                (int[]) merge(STRATEGY_ARRAY_UNION, new int[] {10, 20}, new int[] {20}));
+        assertArrayEquals(new String[] {"a", "b"},
+                (String[]) merge(STRATEGY_ARRAY_UNION, new String[] {"a"}, new String[] {"b"}));
+        assertArrayEquals(new String[] {"a", "b", "c"},
+                (String[]) merge(STRATEGY_ARRAY_UNION, new String[] {"a", "b"},
+                        new String[] {"b", "c"}));
+
+        assertThrows(Exception.class, () -> {
+            merge(STRATEGY_ARRAY_UNION, 10, 20);
+        });
+    }
+
+    @Test
     public void testStrategyArrayListAppend() throws Exception {
         assertEquals(arrayListOf(),
                 merge(STRATEGY_ARRAY_LIST_APPEND, arrayListOf(), arrayListOf()));
@@ -224,6 +253,18 @@
     }
 
     @Test
+    public void testStrategyStringAppend() throws Exception {
+        assertEquals("ab", merge(STRATEGY_STRING_APPEND, "a", "b"));
+        assertEquals("abc", merge(STRATEGY_STRING_APPEND, "a", "bc"));
+        assertEquals("abc", merge(STRATEGY_STRING_APPEND, "ab", "c"));
+        assertEquals("a,b,c,", merge(STRATEGY_STRING_APPEND, "a,", "b,c,"));
+
+        assertThrows(Exception.class, () -> {
+            merge(STRATEGY_STRING_APPEND, 10, 20);
+        });
+    }
+
+    @Test
     public void testSetDefaultMergeStrategy() throws Exception {
         final BundleMerger merger = new BundleMerger();
         merger.setDefaultMergeStrategy(STRATEGY_FIRST);
diff --git a/core/tests/coretests/src/android/os/PerfettoTraceTest.java b/core/tests/coretests/src/android/os/PerfettoTraceTest.java
index fb743d2..6915015 100644
--- a/core/tests/coretests/src/android/os/PerfettoTraceTest.java
+++ b/core/tests/coretests/src/android/os/PerfettoTraceTest.java
@@ -108,8 +108,8 @@
         PerfettoTrace.Session session = new PerfettoTrace.Session(true, traceConfig.toByteArray());
 
         PerfettoTrace.instant(FOO_CATEGORY, "event")
-                .addFlow(2)
-                .addTerminatingFlow(3)
+                .setFlow(2)
+                .setTerminatingFlow(3)
                 .addArg("long_val", 10000000000L)
                 .addArg("bool_val", true)
                 .addArg("double_val", 3.14)
diff --git a/core/tests/coretests/src/android/text/AndroidCharacterTest.java b/core/tests/coretests/src/android/text/AndroidCharacterTest.java
index 1c5986a..819a5fb 100644
--- a/core/tests/coretests/src/android/text/AndroidCharacterTest.java
+++ b/core/tests/coretests/src/android/text/AndroidCharacterTest.java
@@ -18,6 +18,7 @@
 
 import static org.junit.Assert.assertArrayEquals;
 
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.platform.test.annotations.Presubmit;
 
 import androidx.test.filters.SmallTest;
@@ -26,6 +27,7 @@
 
 @Presubmit
 @SmallTest
+@DisabledOnRavenwood(reason = "No need to make j.l.Character match behavior of AndroidCharacter")
 public class AndroidCharacterTest {
 
     @Test
diff --git a/core/tests/coretests/src/android/text/SpanColorsTest.java b/core/tests/coretests/src/android/text/SpanColorsTest.java
index d2cb8c1..4cdbd08 100644
--- a/core/tests/coretests/src/android/text/SpanColorsTest.java
+++ b/core/tests/coretests/src/android/text/SpanColorsTest.java
@@ -20,6 +20,7 @@
 
 import android.graphics.Color;
 import android.graphics.drawable.ShapeDrawable;
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.platform.test.annotations.Presubmit;
 import android.text.style.ForegroundColorSpan;
 import android.text.style.ImageSpan;
@@ -35,6 +36,7 @@
 @Presubmit
 @SmallTest
 @RunWith(AndroidJUnit4.class)
+@DisabledOnRavenwood(blockedBy = ShapeDrawable.class)
 public class SpanColorsTest {
     private final TextPaint mWorkPaint = new TextPaint();
     private SpanColors mSpanColors;
diff --git a/core/tests/coretests/src/android/text/SpannableTest.java b/core/tests/coretests/src/android/text/SpannableTest.java
index a3e6a78..710d1e2 100644
--- a/core/tests/coretests/src/android/text/SpannableTest.java
+++ b/core/tests/coretests/src/android/text/SpannableTest.java
@@ -16,10 +16,10 @@
 
 package android.text;
 
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 
 import android.platform.test.annotations.Presubmit;
-import android.test.MoreAsserts;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
@@ -50,13 +50,13 @@
         // but other spans are not, unless the query region is empty, in
         // in which case any abutting spans are returned.
         spans = spannable.getSpans(0, 1, Object.class);
-        MoreAsserts.assertEquals(new Object[]{emptySpan}, spans);
+        assertArrayEquals(new Object[]{emptySpan}, spans);
         spans = spannable.getSpans(0, 2, Object.class);
-        MoreAsserts.assertEquals(new Object[]{emptySpan, unemptySpan}, spans);
+        assertArrayEquals(new Object[]{emptySpan, unemptySpan}, spans);
         spans = spannable.getSpans(1, 2, Object.class);
-        MoreAsserts.assertEquals(new Object[]{emptySpan, unemptySpan}, spans);
+        assertArrayEquals(new Object[]{emptySpan, unemptySpan}, spans);
         spans = spannable.getSpans(2, 2, Object.class);
-        MoreAsserts.assertEquals(new Object[]{unemptySpan}, spans);
+        assertArrayEquals(new Object[]{unemptySpan}, spans);
     }
 
     @Test
diff --git a/core/tests/coretests/src/android/text/StaticLayoutTest.java b/core/tests/coretests/src/android/text/StaticLayoutTest.java
index 3541900..55f38b2 100644
--- a/core/tests/coretests/src/android/text/StaticLayoutTest.java
+++ b/core/tests/coretests/src/android/text/StaticLayoutTest.java
@@ -25,6 +25,7 @@
 import android.graphics.Paint;
 import android.graphics.Paint.FontMetricsInt;
 import android.os.LocaleList;
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.platform.test.annotations.Presubmit;
 import android.text.Layout.Alignment;
 import android.text.method.EditorState;
@@ -726,6 +727,7 @@
     }
 
     @Test
+    @DisabledOnRavenwood(bug = 391342883)
     public void testLocaleSpanAffectsHyphenation() {
         TextPaint paint = new TextPaint();
         paint.setTextLocale(Locale.US);
diff --git a/core/tests/coretests/src/android/text/TextUtilsTest.java b/core/tests/coretests/src/android/text/TextUtilsTest.java
index f552265..e38c880 100644
--- a/core/tests/coretests/src/android/text/TextUtilsTest.java
+++ b/core/tests/coretests/src/android/text/TextUtilsTest.java
@@ -18,6 +18,7 @@
 
 import static android.text.TextUtils.formatSimple;
 
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -28,7 +29,6 @@
 
 import android.os.Parcel;
 import android.platform.test.annotations.Presubmit;
-import android.test.MoreAsserts;
 import android.text.style.StyleSpan;
 import android.text.util.Rfc822Token;
 import android.text.util.Rfc822Tokenizer;
@@ -237,7 +237,7 @@
         for (String s : splitter) {
             strings.add(s);
         }
-        MoreAsserts.assertEquals(expectedStrings, strings.toArray(new String[]{}));
+        assertArrayEquals(expectedStrings, strings.toArray(new String[]{}));
     }
 
     @Test
diff --git a/core/tests/coretests/src/android/text/format/DateFormatTest.java b/core/tests/coretests/src/android/text/format/DateFormatTest.java
index 59af6dd..c16393c 100644
--- a/core/tests/coretests/src/android/text/format/DateFormatTest.java
+++ b/core/tests/coretests/src/android/text/format/DateFormatTest.java
@@ -74,8 +74,9 @@
         DateFormatSymbols dfs = DateFormat.getIcuDateFormatSymbols(Locale.US);
         assertEquals("AM", dfs.getAmPmStrings()[0]);
         assertEquals("PM", dfs.getAmPmStrings()[1]);
-        assertEquals("a", dfs.getAmpmNarrowStrings()[0]);
-        assertEquals("p", dfs.getAmpmNarrowStrings()[1]);
+        // getAmpmNarrowStrings() is a @CorePlatformApi that we should stop using in framework
+        // assertEquals("a", dfs.getAmpmNarrowStrings()[0]);
+        // assertEquals("p", dfs.getAmpmNarrowStrings()[1]);
     }
 
     @Test
diff --git a/core/tests/coretests/src/android/text/format/DateIntervalFormatTest.java b/core/tests/coretests/src/android/text/format/DateIntervalFormatTest.java
index a07d399..e542734 100644
--- a/core/tests/coretests/src/android/text/format/DateIntervalFormatTest.java
+++ b/core/tests/coretests/src/android/text/format/DateIntervalFormatTest.java
@@ -40,6 +40,7 @@
 import android.icu.util.Calendar;
 import android.icu.util.TimeZone;
 import android.icu.util.ULocale;
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.platform.test.annotations.Presubmit;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -686,6 +687,7 @@
     }
 
     @Test
+    @DisabledOnRavenwood(bug = 391381043)
     public void testIsLibcoreVFlagEnabled() {
         // This flag has been fully ramped. It should never be false.
         assertTrue(DateIntervalFormat.isLibcoreVFlagEnabled());
diff --git a/core/tests/coretests/src/android/text/format/DateUtilsTest.java b/core/tests/coretests/src/android/text/format/DateUtilsTest.java
index 47be893..a853d4a 100644
--- a/core/tests/coretests/src/android/text/format/DateUtilsTest.java
+++ b/core/tests/coretests/src/android/text/format/DateUtilsTest.java
@@ -21,6 +21,7 @@
 import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.os.LocaleList;
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.platform.test.annotations.Presubmit;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -116,6 +117,7 @@
     }
 
     @Test
+    @DisabledOnRavenwood(reason = "DateFormat.set24HourTimePref is not available on host JVM")
     public void testFormatSameDayTime() {
         // This test assumes a default DateFormat.is24Hour setting.
         DateFormat.set24HourTimePref(null);
diff --git a/core/tests/coretests/src/android/text/format/TimeMigrationUtilsTest.java b/core/tests/coretests/src/android/text/format/TimeMigrationUtilsTest.java
index c8cb5f3..49f3373 100644
--- a/core/tests/coretests/src/android/text/format/TimeMigrationUtilsTest.java
+++ b/core/tests/coretests/src/android/text/format/TimeMigrationUtilsTest.java
@@ -18,6 +18,7 @@
 
 import static org.junit.Assert.assertEquals;
 
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.platform.test.annotations.Presubmit;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -72,6 +73,7 @@
      * Compares TimeMigrationUtils.formatSimpleDateTime() with the code it is replacing.
      */
     @Test
+    @DisabledOnRavenwood(blockedBy = Time.class)
     public void formatMillisAsDateTime_matchesOldBehavior() {
         // A selection of interesting locales.
         Locale[] locales = new Locale[] {
diff --git a/core/tests/coretests/src/android/text/format/TimeTest.java b/core/tests/coretests/src/android/text/format/TimeTest.java
index 6138ea1..29c5899 100644
--- a/core/tests/coretests/src/android/text/format/TimeTest.java
+++ b/core/tests/coretests/src/android/text/format/TimeTest.java
@@ -20,6 +20,7 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.platform.test.annotations.Presubmit;
 import android.util.Log;
 import android.util.TimeFormatException;
@@ -34,6 +35,7 @@
 @Presubmit
 @SmallTest
 @RunWith(AndroidJUnit4.class)
+@DisabledOnRavenwood(blockedBy = Time.class)
 public class TimeTest {
 
     @Test
diff --git a/core/tests/coretests/src/android/text/method/BackspaceTest.java b/core/tests/coretests/src/android/text/method/BackspaceTest.java
index a7ff244..646e8f9 100644
--- a/core/tests/coretests/src/android/text/method/BackspaceTest.java
+++ b/core/tests/coretests/src/android/text/method/BackspaceTest.java
@@ -16,6 +16,7 @@
 
 package android.text.method;
 
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.platform.test.annotations.Presubmit;
 import android.text.InputType;
 import android.util.KeyUtils;
@@ -41,6 +42,7 @@
 @Presubmit
 @SmallTest
 @RunWith(AndroidJUnit4.class)
+@DisabledOnRavenwood(blockedBy = EditText.class)
 public class BackspaceTest {
     private EditText mTextView;
 
diff --git a/core/tests/coretests/src/android/text/method/EditorState.java b/core/tests/coretests/src/android/text/method/EditorState.java
index 4eff7a4..633fa11 100644
--- a/core/tests/coretests/src/android/text/method/EditorState.java
+++ b/core/tests/coretests/src/android/text/method/EditorState.java
@@ -16,7 +16,7 @@
 
 package android.text.method;
 
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -181,4 +181,3 @@
         Assert.assertEquals(expected.mSelectionEnd, mSelectionEnd);
     }
 }
-
diff --git a/core/tests/coretests/src/android/text/method/ForwardDeleteTest.java b/core/tests/coretests/src/android/text/method/ForwardDeleteTest.java
index 1e4024d..8044fd7 100644
--- a/core/tests/coretests/src/android/text/method/ForwardDeleteTest.java
+++ b/core/tests/coretests/src/android/text/method/ForwardDeleteTest.java
@@ -16,6 +16,7 @@
 
 package android.text.method;
 
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.platform.test.annotations.Presubmit;
 import android.text.InputType;
 import android.util.KeyUtils;
@@ -40,6 +41,7 @@
 @Presubmit
 @SmallTest
 @RunWith(AndroidJUnit4.class)
+@DisabledOnRavenwood(blockedBy = EditText.class)
 public class ForwardDeleteTest {
     private EditText mTextView;
 
diff --git a/core/tests/coretests/src/android/text/method/InsertModeTransformationMethodTest.java b/core/tests/coretests/src/android/text/method/InsertModeTransformationMethodTest.java
index e2c1902..37ad204 100644
--- a/core/tests/coretests/src/android/text/method/InsertModeTransformationMethodTest.java
+++ b/core/tests/coretests/src/android/text/method/InsertModeTransformationMethodTest.java
@@ -19,6 +19,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.platform.test.annotations.Presubmit;
 import android.platform.test.annotations.RequiresFlagsDisabled;
 import android.platform.test.annotations.RequiresFlagsEnabled;
@@ -44,6 +45,7 @@
 @Presubmit
 @SmallTest
 @RunWith(AndroidJUnit4.class)
+@DisabledOnRavenwood(blockedBy = View.class)
 public class InsertModeTransformationMethodTest {
     private static View sView;
     private static final String TEXT = "abc def";
diff --git a/core/tests/coretests/src/android/text/util/LinkifyTest.java b/core/tests/coretests/src/android/text/util/LinkifyTest.java
index 52f3b2e..98bdb0b 100644
--- a/core/tests/coretests/src/android/text/util/LinkifyTest.java
+++ b/core/tests/coretests/src/android/text/util/LinkifyTest.java
@@ -23,6 +23,7 @@
 import android.content.Context;
 import android.content.res.Configuration;
 import android.os.LocaleList;
+import android.platform.test.annotations.DisabledOnRavenwood;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.method.LinkMovementMethod;
@@ -46,6 +47,7 @@
  */
 @SmallTest
 @RunWith(AndroidJUnit4.class)
+@DisabledOnRavenwood(blockedBy = Linkify.class)
 public class LinkifyTest {
 
     private static final LocaleList LOCALE_LIST_US = new LocaleList(Locale.US);
diff --git a/core/tests/coretests/src/android/view/InsetsControllerTest.java b/core/tests/coretests/src/android/view/InsetsControllerTest.java
index 4516e9c..af87af0 100644
--- a/core/tests/coretests/src/android/view/InsetsControllerTest.java
+++ b/core/tests/coretests/src/android/view/InsetsControllerTest.java
@@ -1195,6 +1195,23 @@
         });
     }
 
+    @Test
+    public void testAnimatingTypes() throws Exception {
+        prepareControls();
+
+        final int types = navigationBars() | statusBars();
+        InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
+            clearInvocations(mTestHost);
+            mController.hide(types);
+            // quickly jump to final state by cancelling it.
+            mController.cancelExistingAnimations();
+        });
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+
+        verify(mTestHost, times(1)).updateAnimatingTypes(eq(types));
+        verify(mTestHost, times(1)).updateAnimatingTypes(eq(0) /* animatingTypes */);
+    }
+
     private void waitUntilNextFrame() throws Exception {
         final CountDownLatch latch = new CountDownLatch(1);
         Choreographer.getMainThreadInstance().postCallback(Choreographer.CALLBACK_COMMIT,
diff --git a/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java b/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java
index e6361e1..6adceb9 100644
--- a/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java
+++ b/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java
@@ -230,7 +230,9 @@
                     new InsetsSourceControl(ID_STATUS_BAR, statusBars(), mLeash,
                             false /* initialVisible */, new Point(), Insets.NONE),
                     new int[1], hideTypes, new int[1], new int[1]);
-            assertTrue(mRemoveSurfaceCalled);
+            if (!android.view.inputmethod.Flags.refactorInsetsController()) {
+                assertTrue(mRemoveSurfaceCalled);
+            }
             assertEquals(0, hideTypes[0]);
         });
 
diff --git a/core/tests/coretests/src/android/view/OrientationEventListenerFrameworkTest.java b/core/tests/coretests/src/android/view/OrientationEventListenerFrameworkTest.java
new file mode 100644
index 0000000..5f06a70
--- /dev/null
+++ b/core/tests/coretests/src/android/view/OrientationEventListenerFrameworkTest.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright (C) 2025 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.view;
+
+import static com.android.window.flags.Flags.FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import android.annotation.NonNull;
+import android.app.WindowConfiguration;
+import android.content.Context;
+import android.content.res.CompatibilityInfo;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.hardware.input.InputSensorInfo;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+
+import java.util.ArrayList;
+
+/**
+ * Test {@link OrientationEventListener}.
+ *
+ * <p>Build/Install/Run:
+ *  atest FrameworksCoreTests:OrientationEventListenerFrameworkTest
+ */
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class OrientationEventListenerFrameworkTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private Context mContext;
+    private SensorManager mSensorManager;
+
+    @Before
+    public void setup() {
+        mContext = mock(Context.class);
+        mSensorManager = mock(SensorManager.class);
+        doReturn(mSensorManager).when(mContext).getSystemService(Context.SENSOR_SERVICE);
+    }
+
+    @After
+    public void tearDown() {
+        // Reset the override rotation for tests that use the default value.
+        CompatibilityInfo.setOverrideDisplayRotation(WindowConfiguration.ROTATION_UNDEFINED);
+    }
+
+    @Test
+    public void testConstructor() {
+        new TestOrientationEventListener(mContext);
+
+        new TestOrientationEventListener(mContext, SensorManager.SENSOR_DELAY_UI);
+    }
+
+    @Test
+    public void testEnableAndDisable() {
+        final TestOrientationEventListener listener = new TestOrientationEventListener(mContext);
+        listener.enable();
+        listener.disable();
+    }
+
+    @Test
+    @EnableFlags(FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING)
+    public void testSensorOrientationUpdate() {
+        final Sensor mockSensor = setupMockAccelerometerSensor();
+        final TestOrientationEventListener listener = new TestOrientationEventListener(mContext);
+
+        listener.enable();
+
+        sendSensorEventWithOrientation270(mockSensor);
+
+        assertEquals(1, listener.mReportedOrientations.size());
+        assertEquals(270, (int) listener.mReportedOrientations.get(0));
+    }
+
+    @Test
+    @EnableFlags(FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING)
+    public void testSensorOrientationUpdate_overriddenDisplayRotationReportedWhenSet() {
+        final Sensor mockSensor = setupMockAccelerometerSensor();
+        final TestOrientationEventListener listener = new TestOrientationEventListener(mContext);
+
+        listener.enable();
+
+        // This should change the reported sensor rotation.
+        CompatibilityInfo.setOverrideDisplayRotation(Surface.ROTATION_180);
+
+        sendSensorEventWithOrientation270(mockSensor);
+
+        assertEquals(1, listener.mReportedOrientations.size());
+        assertEquals(180, (int) listener.mReportedOrientations.get(0));
+    }
+
+    @Test
+    @EnableFlags(FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING)
+    public void testSensorOrientationUpdate_overriddenDisplayRotationIsNegativeFromSensor() {
+        final Sensor mockSensor = setupMockAccelerometerSensor();
+        final TestOrientationEventListener listener = new TestOrientationEventListener(mContext);
+
+        listener.enable();
+
+        // Display rotation is counted in the opposite direction from the sensor orientation, thus
+        // this call should change the reported sensor rotation to 90, as 360 - 270 = 90.
+        CompatibilityInfo.setOverrideDisplayRotation(Surface.ROTATION_270);
+
+        sendSensorEventWithOrientation270(mockSensor);
+
+        assertEquals(1, listener.mReportedOrientations.size());
+        assertEquals(90, (int) listener.mReportedOrientations.get(0));
+    }
+
+    @Test
+    @DisableFlags(FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING)
+    public void testSensorOrientationUpdate_notOverriddenWhenCameraFeatureDisabled() {
+        final Sensor mockSensor = setupMockAccelerometerSensor();
+        final TestOrientationEventListener listener = new TestOrientationEventListener(mContext);
+
+        listener.enable();
+
+        CompatibilityInfo.setOverrideDisplayRotation(Surface.ROTATION_180);
+
+        sendSensorEventWithOrientation270(mockSensor);
+
+        assertEquals(1, listener.mReportedOrientations.size());
+        // Sensor unchanged by override because the feature is disabled.
+        assertEquals(270, (int) listener.mReportedOrientations.get(0));
+    }
+
+    @NonNull
+    private Sensor setupMockAccelerometerSensor() {
+        final Sensor mockSensor = new Sensor(mock(InputSensorInfo.class));
+        doReturn(mockSensor).when(mSensorManager).getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+        return mockSensor;
+    }
+
+    @NonNull
+    private SensorEventListener getRegisteredEventListener() {
+        // Get the SensorEventListenerImpl that has subscribed in `listener.enable()`.
+        final ArgumentCaptor<SensorEventListener> listenerArgCaptor = ArgumentCaptor
+                .forClass(SensorEventListener.class);
+        verify(mSensorManager).registerListener(listenerArgCaptor.capture(), any(), anyInt());
+        return listenerArgCaptor.getValue();
+    }
+
+    private void sendSensorEventWithOrientation270(@NonNull Sensor sensor) {
+        final SensorEventListener sensorEventListener = getRegisteredEventListener();
+        // Arbitrary values that return orientation 270.
+        final SensorEvent sensorEvent = new SensorEvent(sensor, 1, 1L,
+                new float[]{1.0f, 0.0f, 0.0f});
+        sensorEventListener.onSensorChanged(sensorEvent);
+    }
+
+    private static class TestOrientationEventListener extends OrientationEventListener {
+        final ArrayList<Integer> mReportedOrientations = new ArrayList<>();
+
+        TestOrientationEventListener(Context context) {
+            super(context);
+        }
+
+        TestOrientationEventListener(Context context, int rate) {
+            super(context, rate);
+        }
+
+        @Override
+        public void onOrientationChanged(int orientation) {
+            mReportedOrientations.add(orientation);
+        }
+    }
+}
diff --git a/core/tests/coretests/src/android/view/ViewRootImplTest.java b/core/tests/coretests/src/android/view/ViewRootImplTest.java
index c40137f..f5d1e7a 100644
--- a/core/tests/coretests/src/android/view/ViewRootImplTest.java
+++ b/core/tests/coretests/src/android/view/ViewRootImplTest.java
@@ -1054,7 +1054,7 @@
         ViewRootImpl viewRootImpl = mView.getViewRootImpl();
         sInstrumentation.runOnMainSync(() -> {
             mView.invalidate();
-            viewRootImpl.notifyInsetsAnimationRunningStateChanged(true);
+            viewRootImpl.updateAnimatingTypes(Type.systemBars());
             mView.invalidate();
         });
         sInstrumentation.waitForIdleSync();
diff --git a/core/tests/coretests/src/android/widget/RemoteViewsTest.java b/core/tests/coretests/src/android/widget/RemoteViewsTest.java
index 8b0d315..9110898 100644
--- a/core/tests/coretests/src/android/widget/RemoteViewsTest.java
+++ b/core/tests/coretests/src/android/widget/RemoteViewsTest.java
@@ -22,6 +22,7 @@
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
@@ -1065,6 +1066,22 @@
         assertEquals(b1Memory + b2Memory, rv.estimateTotalBitmapMemoryUsage());
     }
 
+    @Test
+    public void remoteResponse_FillInIntentNestedIntentKeysCollected() {
+        Intent fillInIntent = new Intent();
+        fillInIntent.putExtra("extraIntent", new Intent());
+        RemoteViews.RemoteResponse.fromFillInIntent(fillInIntent);
+        assertNotEquals(0, fillInIntent.getExtendedFlags()
+                & Intent.EXTENDED_FLAG_NESTED_INTENT_KEYS_COLLECTED);
+
+        fillInIntent = new Intent();
+        fillInIntent.putExtra("extraIntent", new Intent());
+        RemoteViews rv = new RemoteViews(mPackage, R.layout.remote_views_test);
+        rv.setOnClickFillInIntent(R.id.view, fillInIntent);
+        assertNotEquals(0, fillInIntent.getExtendedFlags()
+                & Intent.EXTENDED_FLAG_NESTED_INTENT_KEYS_COLLECTED);
+    }
+
     private static LayoutInflater.Factory2 createLayoutInflaterFactory(String viewTypeToReplace,
             View replacementView) {
         return new LayoutInflater.Factory2() {
diff --git a/core/tests/coretests/src/com/android/internal/os/KernelSingleUidTimeReaderTest.java b/core/tests/coretests/src/com/android/internal/os/KernelSingleUidTimeReaderTest.java
index 3239598..0ba2d85 100644
--- a/core/tests/coretests/src/com/android/internal/os/KernelSingleUidTimeReaderTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/KernelSingleUidTimeReaderTest.java
@@ -23,6 +23,7 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import android.annotation.SuppressLint;
 import android.platform.test.annotations.IgnoreUnderRavenwood;
 import android.platform.test.ravenwood.RavenwoodRule;
 import android.util.SparseArray;
@@ -287,6 +288,7 @@
                 0, lastUidCpuTimes.size());
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void testAddDeltaFromBpf() {
         LongArrayMultiStateCounter counter = new LongArrayMultiStateCounter(2, 5);
diff --git a/core/tests/coretests/src/com/android/internal/os/LongArrayMultiStateCounterTest.java b/core/tests/coretests/src/com/android/internal/os/LongArrayMultiStateCounterTest.java
index 7e5d0a4..959e121 100644
--- a/core/tests/coretests/src/com/android/internal/os/LongArrayMultiStateCounterTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/LongArrayMultiStateCounterTest.java
@@ -20,6 +20,7 @@
 
 import static org.junit.Assert.assertThrows;
 
+import android.annotation.SuppressLint;
 import android.os.BadParcelableException;
 import android.os.Parcel;
 import android.platform.test.ravenwood.RavenwoodRule;
@@ -176,6 +177,7 @@
         assertCounts(newCounter, 0, new long[]{116, 232, 364, 528});
     }
 
+    @SuppressLint("CheckResult")
     private void assertCounts(LongArrayMultiStateCounter counter, int state, long[] expected) {
         long[] counts = new long[expected.length];
         counter.getCounts(counts, state);
diff --git a/graphics/java/android/graphics/AvoidXfermode.java b/graphics/java/android/graphics/AvoidXfermode.java
index 683c157..5296ee8 100644
--- a/graphics/java/android/graphics/AvoidXfermode.java
+++ b/graphics/java/android/graphics/AvoidXfermode.java
@@ -23,6 +23,7 @@
  * @removed
  */
 @Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class AvoidXfermode extends Xfermode {
 
     // these need to match the enum in AvoidXfermode.h on the native side
diff --git a/graphics/java/android/graphics/BLASTBufferQueue.java b/graphics/java/android/graphics/BLASTBufferQueue.java
index 9b9be244..9f60534 100644
--- a/graphics/java/android/graphics/BLASTBufferQueue.java
+++ b/graphics/java/android/graphics/BLASTBufferQueue.java
@@ -26,6 +26,7 @@
 /**
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class BLASTBufferQueue {
     // Note: This field is accessed by native code.
     public long mNativeObject; // BLASTBufferQueue*
diff --git a/graphics/java/android/graphics/BaseCanvas.java b/graphics/java/android/graphics/BaseCanvas.java
index a2a0f49..0ca58cc 100644
--- a/graphics/java/android/graphics/BaseCanvas.java
+++ b/graphics/java/android/graphics/BaseCanvas.java
@@ -48,6 +48,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public abstract class BaseCanvas {
     /**
      * Should only be assigned in constructors (or setBitmap if software canvas),
diff --git a/graphics/java/android/graphics/BaseRecordingCanvas.java b/graphics/java/android/graphics/BaseRecordingCanvas.java
index 5b1fa7b..0511bd1 100644
--- a/graphics/java/android/graphics/BaseRecordingCanvas.java
+++ b/graphics/java/android/graphics/BaseRecordingCanvas.java
@@ -44,6 +44,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class BaseRecordingCanvas extends Canvas {
 
     public BaseRecordingCanvas(long nativeCanvas) {
diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java
index 0c4ea79..cd5a54c 100644
--- a/graphics/java/android/graphics/Bitmap.java
+++ b/graphics/java/android/graphics/Bitmap.java
@@ -51,6 +51,7 @@
 import java.util.ArrayList;
 import java.util.WeakHashMap;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class Bitmap implements Parcelable {
     private static final String TAG = "Bitmap";
 
diff --git a/graphics/java/android/graphics/BitmapFactory.java b/graphics/java/android/graphics/BitmapFactory.java
index 1c20141..a5535c8 100644
--- a/graphics/java/android/graphics/BitmapFactory.java
+++ b/graphics/java/android/graphics/BitmapFactory.java
@@ -41,6 +41,7 @@
  * Creates Bitmap objects from various sources, including files, streams,
  * and byte-arrays.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class BitmapFactory {
     private static final int DECODE_BUFFER_SIZE = 16 * 1024;
 
diff --git a/graphics/java/android/graphics/BitmapRegionDecoder.java b/graphics/java/android/graphics/BitmapRegionDecoder.java
index 29112af..9b3f715 100644
--- a/graphics/java/android/graphics/BitmapRegionDecoder.java
+++ b/graphics/java/android/graphics/BitmapRegionDecoder.java
@@ -37,6 +37,7 @@
  * to get a decoded Bitmap of the specified region.
  *
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class BitmapRegionDecoder {
     private long mNativeBitmapRegionDecoder;
     private boolean mRecycled;
diff --git a/graphics/java/android/graphics/BitmapShader.java b/graphics/java/android/graphics/BitmapShader.java
index dcfff62..ac3543a 100644
--- a/graphics/java/android/graphics/BitmapShader.java
+++ b/graphics/java/android/graphics/BitmapShader.java
@@ -31,6 +31,7 @@
  * Shader used to draw a bitmap as a texture. The bitmap can be repeated or
  * mirrored by setting the tiling mode.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class BitmapShader extends Shader {
     /**
      * Prevent garbage collection.
diff --git a/graphics/java/android/graphics/BlendMode.java b/graphics/java/android/graphics/BlendMode.java
index c6ae680..c07af4e 100644
--- a/graphics/java/android/graphics/BlendMode.java
+++ b/graphics/java/android/graphics/BlendMode.java
@@ -19,6 +19,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public enum BlendMode {
 
     /**
diff --git a/graphics/java/android/graphics/BlendModeColorFilter.java b/graphics/java/android/graphics/BlendModeColorFilter.java
index d4e2373..d5dd0d3c 100644
--- a/graphics/java/android/graphics/BlendModeColorFilter.java
+++ b/graphics/java/android/graphics/BlendModeColorFilter.java
@@ -23,6 +23,7 @@
  * A color filter that can be used to tint the source pixels using a single
  * color and a specific {@link BlendMode}.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class BlendModeColorFilter extends ColorFilter {
 
     @ColorInt final int mColor;
diff --git a/graphics/java/android/graphics/BlurMaskFilter.java b/graphics/java/android/graphics/BlurMaskFilter.java
index f3064f8..22ed524 100644
--- a/graphics/java/android/graphics/BlurMaskFilter.java
+++ b/graphics/java/android/graphics/BlurMaskFilter.java
@@ -22,6 +22,7 @@
  * inside, or straddles, the original mask's border, is controlled by the
  * Blur enum.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class BlurMaskFilter extends MaskFilter {
 
     public enum Blur {
diff --git a/graphics/java/android/graphics/Camera.java b/graphics/java/android/graphics/Camera.java
index 46640d7..27b695c 100644
--- a/graphics/java/android/graphics/Camera.java
+++ b/graphics/java/android/graphics/Camera.java
@@ -21,6 +21,7 @@
  * generate a matrix that can be applied, for instance, on a
  * {@link Canvas}.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Camera {
     /**
      * Creates a new camera, with empty transformations.
diff --git a/graphics/java/android/graphics/Canvas.java b/graphics/java/android/graphics/Canvas.java
index 28c2ca3..9137150b 100644
--- a/graphics/java/android/graphics/Canvas.java
+++ b/graphics/java/android/graphics/Canvas.java
@@ -54,6 +54,7 @@
  * <a href="{@docRoot}guide/topics/graphics/2d-graphics.html">
  * Canvas and Drawables</a> developer guide.</p></div>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Canvas extends BaseCanvas {
     private static int sCompatibilityVersion = 0;
     private static boolean sCompatibilityRestore = false;
diff --git a/graphics/java/android/graphics/CanvasProperty.java b/graphics/java/android/graphics/CanvasProperty.java
index e949584..755161d 100644
--- a/graphics/java/android/graphics/CanvasProperty.java
+++ b/graphics/java/android/graphics/CanvasProperty.java
@@ -25,6 +25,7 @@
  * TODO: Make public?
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class CanvasProperty<T> {
 
     private VirtualRefBasePtr mProperty;
diff --git a/graphics/java/android/graphics/ColorFilter.java b/graphics/java/android/graphics/ColorFilter.java
index 7050325..918f26d 100644
--- a/graphics/java/android/graphics/ColorFilter.java
+++ b/graphics/java/android/graphics/ColorFilter.java
@@ -23,6 +23,7 @@
  * each pixel drawn with that paint. This is an abstract class that should
  * never be used directly.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class ColorFilter {
 
     private static class NoImagePreloadHolder {
diff --git a/graphics/java/android/graphics/ColorMatrixColorFilter.java b/graphics/java/android/graphics/ColorMatrixColorFilter.java
index bfdf318..cb78a83 100644
--- a/graphics/java/android/graphics/ColorMatrixColorFilter.java
+++ b/graphics/java/android/graphics/ColorMatrixColorFilter.java
@@ -27,6 +27,7 @@
  *
  * @see ColorMatrix
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class ColorMatrixColorFilter extends ColorFilter {
     @UnsupportedAppUsage
     private final ColorMatrix mMatrix = new ColorMatrix();
diff --git a/graphics/java/android/graphics/Compatibility.java b/graphics/java/android/graphics/Compatibility.java
index 747fbf1..f89a4f7 100644
--- a/graphics/java/android/graphics/Compatibility.java
+++ b/graphics/java/android/graphics/Compatibility.java
@@ -21,6 +21,7 @@
  * specified by the app.
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class Compatibility {
     private Compatibility() {}
 
diff --git a/graphics/java/android/graphics/ComposePathEffect.java b/graphics/java/android/graphics/ComposePathEffect.java
index 7d59ece..b380d2e 100644
--- a/graphics/java/android/graphics/ComposePathEffect.java
+++ b/graphics/java/android/graphics/ComposePathEffect.java
@@ -16,6 +16,7 @@
 
 package android.graphics;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class ComposePathEffect extends PathEffect {
 
     /**
diff --git a/graphics/java/android/graphics/ComposeShader.java b/graphics/java/android/graphics/ComposeShader.java
index e714568..57a11d2 100644
--- a/graphics/java/android/graphics/ComposeShader.java
+++ b/graphics/java/android/graphics/ComposeShader.java
@@ -22,6 +22,7 @@
 /** A subclass of shader that returns the composition of two other shaders, combined by
     an {@link android.graphics.Xfermode} subclass.
 */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class ComposeShader extends Shader {
 
     Shader mShaderA;
diff --git a/graphics/java/android/graphics/CornerPathEffect.java b/graphics/java/android/graphics/CornerPathEffect.java
index 8f4d7d9..37f0d29 100644
--- a/graphics/java/android/graphics/CornerPathEffect.java
+++ b/graphics/java/android/graphics/CornerPathEffect.java
@@ -16,6 +16,7 @@
 
 package android.graphics;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class CornerPathEffect extends PathEffect {
 
     /**
diff --git a/graphics/java/android/graphics/DashPathEffect.java b/graphics/java/android/graphics/DashPathEffect.java
index ef3ebe8..ff3c376 100644
--- a/graphics/java/android/graphics/DashPathEffect.java
+++ b/graphics/java/android/graphics/DashPathEffect.java
@@ -16,6 +16,7 @@
 
 package android.graphics;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class DashPathEffect extends PathEffect {
 
     /**
diff --git a/graphics/java/android/graphics/DiscretePathEffect.java b/graphics/java/android/graphics/DiscretePathEffect.java
index 3b3c9c9..77f9845 100644
--- a/graphics/java/android/graphics/DiscretePathEffect.java
+++ b/graphics/java/android/graphics/DiscretePathEffect.java
@@ -16,6 +16,7 @@
 
 package android.graphics;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class DiscretePathEffect extends PathEffect {
 
     /**
diff --git a/graphics/java/android/graphics/DrawFilter.java b/graphics/java/android/graphics/DrawFilter.java
index c7fdcb2..505a830 100644
--- a/graphics/java/android/graphics/DrawFilter.java
+++ b/graphics/java/android/graphics/DrawFilter.java
@@ -22,6 +22,7 @@
  * can disable/enable antialiasing, or change the color for everything this is
  * drawn.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class DrawFilter {
 
     /**
diff --git a/graphics/java/android/graphics/EmbossMaskFilter.java b/graphics/java/android/graphics/EmbossMaskFilter.java
index 003678a..f0a661f 100644
--- a/graphics/java/android/graphics/EmbossMaskFilter.java
+++ b/graphics/java/android/graphics/EmbossMaskFilter.java
@@ -16,6 +16,7 @@
 
 package android.graphics;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class EmbossMaskFilter extends MaskFilter {
     /**
      * Create an emboss maskfilter
diff --git a/graphics/java/android/graphics/FontFamily.java b/graphics/java/android/graphics/FontFamily.java
index 88f0e8e..09022ee 100644
--- a/graphics/java/android/graphics/FontFamily.java
+++ b/graphics/java/android/graphics/FontFamily.java
@@ -41,6 +41,7 @@
  * @deprecated Use {@link android.graphics.fonts.FontFamily} instead.
  */
 @Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class FontFamily {
 
     private static String TAG = "FontFamily";
diff --git a/graphics/java/android/graphics/FontListParser.java b/graphics/java/android/graphics/FontListParser.java
index 13c4a94..8d0f128 100644
--- a/graphics/java/android/graphics/FontListParser.java
+++ b/graphics/java/android/graphics/FontListParser.java
@@ -48,6 +48,7 @@
  * Parser for font config files.
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class FontListParser {
     private static final String TAG = "FontListParser";
 
diff --git a/graphics/java/android/graphics/ForceDarkType.java b/graphics/java/android/graphics/ForceDarkType.java
index 396b037..d21aef3 100644
--- a/graphics/java/android/graphics/ForceDarkType.java
+++ b/graphics/java/android/graphics/ForceDarkType.java
@@ -29,6 +29,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class ForceDarkType {
     /**
      * Force dark disabled: normal, default operation.
diff --git a/graphics/java/android/graphics/FrameInfo.java b/graphics/java/android/graphics/FrameInfo.java
index 3b8f466..5202138 100644
--- a/graphics/java/android/graphics/FrameInfo.java
+++ b/graphics/java/android/graphics/FrameInfo.java
@@ -38,6 +38,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class FrameInfo {
 
     public long[] frameInfo = new long[FRAME_INFO_SIZE];
diff --git a/graphics/java/android/graphics/Gainmap.java b/graphics/java/android/graphics/Gainmap.java
index 63ca3b8..7fc13db 100644
--- a/graphics/java/android/graphics/Gainmap.java
+++ b/graphics/java/android/graphics/Gainmap.java
@@ -86,6 +86,7 @@
  * for these functions cancels out and does not affect the result, so other bases may be used
  * if preferred.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class Gainmap implements Parcelable {
 
     /** @hide */
diff --git a/graphics/java/android/graphics/GraphicBuffer.java b/graphics/java/android/graphics/GraphicBuffer.java
index 6705b25..4982851 100644
--- a/graphics/java/android/graphics/GraphicBuffer.java
+++ b/graphics/java/android/graphics/GraphicBuffer.java
@@ -28,6 +28,7 @@
  * @hide
  */
 @SuppressWarnings("UnusedDeclaration")
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class GraphicBuffer implements Parcelable {
     // Note: keep usage flags in sync with GraphicBuffer.h and gralloc.h
     public static final int USAGE_SW_READ_NEVER = 0x0;
diff --git a/graphics/java/android/graphics/GraphicsProtos.java b/graphics/java/android/graphics/GraphicsProtos.java
index 6bc41d3..fa7eaf9 100644
--- a/graphics/java/android/graphics/GraphicsProtos.java
+++ b/graphics/java/android/graphics/GraphicsProtos.java
@@ -24,6 +24,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class GraphicsProtos {
     /** GraphicsProtos can never be an instance */
     private GraphicsProtos() {}
diff --git a/graphics/java/android/graphics/GraphicsStatsService.java b/graphics/java/android/graphics/GraphicsStatsService.java
index 7a012bc..d0b9998 100644
--- a/graphics/java/android/graphics/GraphicsStatsService.java
+++ b/graphics/java/android/graphics/GraphicsStatsService.java
@@ -74,6 +74,7 @@
  *    for the process to use.
  *
  *  @hide */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class GraphicsStatsService extends IGraphicsStats.Stub {
     public static final String GRAPHICS_STATS_SERVICE = "graphicsstats";
 
diff --git a/graphics/java/android/graphics/HardwareBufferRenderer.java b/graphics/java/android/graphics/HardwareBufferRenderer.java
index e04f13c..8179870 100644
--- a/graphics/java/android/graphics/HardwareBufferRenderer.java
+++ b/graphics/java/android/graphics/HardwareBufferRenderer.java
@@ -55,6 +55,7 @@
  * HardwareBufferRenderer will never clear contents before each draw invocation so previous contents
  * in the {@link HardwareBuffer} target will be preserved across renders.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class HardwareBufferRenderer implements AutoCloseable {
 
     private static final ColorSpace DEFAULT_COLORSPACE = ColorSpace.get(Named.SRGB);
diff --git a/graphics/java/android/graphics/HardwareRenderer.java b/graphics/java/android/graphics/HardwareRenderer.java
index ef6b728..3444f84 100644
--- a/graphics/java/android/graphics/HardwareRenderer.java
+++ b/graphics/java/android/graphics/HardwareRenderer.java
@@ -79,6 +79,7 @@
  * Failure to do so will cause the render thread to stall on that surface, blocking all
  * HardwareRenderer instances.</p>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class HardwareRenderer {
     private static final String LOG_TAG = "HardwareRenderer";
 
diff --git a/graphics/java/android/graphics/HardwareRendererObserver.java b/graphics/java/android/graphics/HardwareRendererObserver.java
index d5a6a2f..9926378 100644
--- a/graphics/java/android/graphics/HardwareRendererObserver.java
+++ b/graphics/java/android/graphics/HardwareRendererObserver.java
@@ -28,6 +28,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class HardwareRendererObserver {
     private final long[] mFrameMetrics;
     private final Handler mHandler;
diff --git a/graphics/java/android/graphics/ImageDecoder.java b/graphics/java/android/graphics/ImageDecoder.java
index 6395179..419929a 100644
--- a/graphics/java/android/graphics/ImageDecoder.java
+++ b/graphics/java/android/graphics/ImageDecoder.java
@@ -44,6 +44,7 @@
 import android.net.Uri;
 import android.os.Build;
 import android.os.Trace;
+import android.ravenwood.annotation.RavenwoodIgnore;
 import android.system.ErrnoException;
 import android.system.Os;
 import android.util.DisplayMetrics;
@@ -173,6 +174,7 @@
  *  });
  *  </pre>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class ImageDecoder implements AutoCloseable {
     /**
      *  Source of encoded image data.
@@ -1987,6 +1989,7 @@
      * Check if HEVC decoder is supported by the device.
      */
     @SuppressWarnings("AndroidFrameworkCompatChange")
+    @RavenwoodIgnore(blockedBy = MediaCodecList.class)
     private static boolean isHevcDecoderSupported() {
         synchronized (sIsHevcDecoderSupportedLock) {
             if (sIsHevcDecoderSupportedInitialized) {
@@ -2010,6 +2013,7 @@
      * Checks if the device supports decoding 10-bit AV1.
      */
     @SuppressWarnings("AndroidFrameworkCompatChange")  // This is not an app-visible API.
+    @RavenwoodIgnore(blockedBy = MediaCodecList.class)
     private static boolean isP010SupportedForAV1() {
         synchronized (sIsP010SupportedLock) {
             if (sIsP010SupportedFlagsInitialized) {
@@ -2025,6 +2029,7 @@
      * This method is called by JNI.
      */
     @SuppressWarnings("unused")
+    @RavenwoodIgnore(blockedBy = MediaCodecList.class)
     private static boolean isP010SupportedForHEVC() {
         synchronized (sIsP010SupportedLock) {
             if (sIsP010SupportedFlagsInitialized) {
diff --git a/graphics/java/android/graphics/ImageFormat.java b/graphics/java/android/graphics/ImageFormat.java
index b4899f9..4c9f5ac 100644
--- a/graphics/java/android/graphics/ImageFormat.java
+++ b/graphics/java/android/graphics/ImageFormat.java
@@ -24,6 +24,7 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class ImageFormat {
      /** @hide */
      @Retention(RetentionPolicy.SOURCE)
diff --git a/graphics/java/android/graphics/LayerRasterizer.java b/graphics/java/android/graphics/LayerRasterizer.java
index 25155ab..1a44248 100644
--- a/graphics/java/android/graphics/LayerRasterizer.java
+++ b/graphics/java/android/graphics/LayerRasterizer.java
@@ -20,6 +20,7 @@
  * @removed feature is not supported by hw-accerlerated or PDF backends
  */
 @Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class LayerRasterizer extends Rasterizer {
     public LayerRasterizer() { }
 
diff --git a/graphics/java/android/graphics/LeakyTypefaceStorage.java b/graphics/java/android/graphics/LeakyTypefaceStorage.java
index 618e60d..25a84369 100644
--- a/graphics/java/android/graphics/LeakyTypefaceStorage.java
+++ b/graphics/java/android/graphics/LeakyTypefaceStorage.java
@@ -32,6 +32,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class LeakyTypefaceStorage {
     private static final Object sLock = new Object();
 
diff --git a/graphics/java/android/graphics/LightingColorFilter.java b/graphics/java/android/graphics/LightingColorFilter.java
index fe73a1a..1afdc77 100644
--- a/graphics/java/android/graphics/LightingColorFilter.java
+++ b/graphics/java/android/graphics/LightingColorFilter.java
@@ -40,6 +40,7 @@
  * </pre>
  * The result is pinned to the <code>[0..255]</code> range for each channel.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class LightingColorFilter extends ColorFilter {
     @ColorInt
     private int mMul;
diff --git a/graphics/java/android/graphics/LinearGradient.java b/graphics/java/android/graphics/LinearGradient.java
index 0879371..c6566c9 100644
--- a/graphics/java/android/graphics/LinearGradient.java
+++ b/graphics/java/android/graphics/LinearGradient.java
@@ -24,6 +24,7 @@
 import android.os.Build;
 
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class LinearGradient extends Shader {
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
     private float mX0;
diff --git a/graphics/java/android/graphics/MaskFilter.java b/graphics/java/android/graphics/MaskFilter.java
index d474315..b490650 100644
--- a/graphics/java/android/graphics/MaskFilter.java
+++ b/graphics/java/android/graphics/MaskFilter.java
@@ -21,6 +21,7 @@
  * an alpha-channel mask before drawing it. A subclass of MaskFilter may be
  * installed into a Paint. Blur and emboss are implemented as subclasses of MaskFilter.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class MaskFilter {
 
     protected void finalize() throws Throwable {
diff --git a/graphics/java/android/graphics/Mesh.java b/graphics/java/android/graphics/Mesh.java
index 6be8332..f4d841b 100644
--- a/graphics/java/android/graphics/Mesh.java
+++ b/graphics/java/android/graphics/Mesh.java
@@ -37,6 +37,7 @@
  * for the mesh. Once generated, a mesh object can be drawn through
  * {@link Canvas#drawMesh(Mesh, BlendMode, Paint)}
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Mesh {
     private long mNativeMeshWrapper;
     private boolean mIsIndexed;
diff --git a/graphics/java/android/graphics/MeshSpecification.java b/graphics/java/android/graphics/MeshSpecification.java
index b1aae7f..9c7e948 100644
--- a/graphics/java/android/graphics/MeshSpecification.java
+++ b/graphics/java/android/graphics/MeshSpecification.java
@@ -72,6 +72,7 @@
  * These should be kept in mind when generating a mesh specification, as exceeding them will
  * lead to errors.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class MeshSpecification {
     long mNativeMeshSpec;
 
diff --git a/graphics/java/android/graphics/Movie.java b/graphics/java/android/graphics/Movie.java
index 9c9535d..cefe391 100644
--- a/graphics/java/android/graphics/Movie.java
+++ b/graphics/java/android/graphics/Movie.java
@@ -27,6 +27,7 @@
  * @deprecated Prefer {@link android.graphics.drawable.AnimatedImageDrawable}.
  */
 @Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Movie {
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
     private long mNativeMovie;
diff --git a/graphics/java/android/graphics/NinePatch.java b/graphics/java/android/graphics/NinePatch.java
index 382269f..00df23f 100644
--- a/graphics/java/android/graphics/NinePatch.java
+++ b/graphics/java/android/graphics/NinePatch.java
@@ -32,6 +32,7 @@
  * using a WYSIWYG graphics editor.
  * </p>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class NinePatch {
     /**
      * Struct of inset information attached to a 9 patch bitmap.
diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java
index 3d4dccf..a0ca098 100644
--- a/graphics/java/android/graphics/Paint.java
+++ b/graphics/java/android/graphics/Paint.java
@@ -66,6 +66,7 @@
  * The Paint class holds the style and color information about how to draw
  * geometries, text and bitmaps.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Paint {
     private static final String TAG = "Paint";
 
diff --git a/graphics/java/android/graphics/PaintFlagsDrawFilter.java b/graphics/java/android/graphics/PaintFlagsDrawFilter.java
index 2326611..f4c49b1 100644
--- a/graphics/java/android/graphics/PaintFlagsDrawFilter.java
+++ b/graphics/java/android/graphics/PaintFlagsDrawFilter.java
@@ -16,6 +16,7 @@
 
 package android.graphics;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class PaintFlagsDrawFilter extends DrawFilter {
     /**
      * Subclass of DrawFilter that affects every paint by first clearing
diff --git a/graphics/java/android/graphics/PathDashPathEffect.java b/graphics/java/android/graphics/PathDashPathEffect.java
index 2b6a6ed..dc92e6c 100644
--- a/graphics/java/android/graphics/PathDashPathEffect.java
+++ b/graphics/java/android/graphics/PathDashPathEffect.java
@@ -16,6 +16,7 @@
 
 package android.graphics;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class PathDashPathEffect extends PathEffect {
 
     public enum Style {
diff --git a/graphics/java/android/graphics/PathEffect.java b/graphics/java/android/graphics/PathEffect.java
index 3292501..9bb7193 100644
--- a/graphics/java/android/graphics/PathEffect.java
+++ b/graphics/java/android/graphics/PathEffect.java
@@ -21,6 +21,7 @@
  * the geometry of a drawing primitive before it is transformed by the
  * canvas' matrix and drawn.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class PathEffect {
 
     protected void finalize() throws Throwable {
diff --git a/graphics/java/android/graphics/PathIterator.java b/graphics/java/android/graphics/PathIterator.java
index d7caabf..1ed70d0 100644
--- a/graphics/java/android/graphics/PathIterator.java
+++ b/graphics/java/android/graphics/PathIterator.java
@@ -34,6 +34,7 @@
  * <code>PathIterator</code> can be used to query a given {@link Path} object, to discover its
  * operations and point values.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class PathIterator implements Iterator<PathIterator.Segment> {
 
     private final float[] mPointsArray;
@@ -47,9 +48,11 @@
     private static final boolean IS_DALVIK = "dalvik".equalsIgnoreCase(
             System.getProperty("java.vm.name"));
 
-    private static final NativeAllocationRegistry sRegistry =
-            NativeAllocationRegistry.createMalloced(
-                    PathIterator.class.getClassLoader(), nGetFinalizer());
+    private static class NoImagePreloadHolder {
+        private static final NativeAllocationRegistry sRegistry =
+                NativeAllocationRegistry.createMalloced(
+                        PathIterator.class.getClassLoader(), nGetFinalizer());
+    }
 
     /**
      * The <code>Verb</code> indicates the operation for a given segment of a path. These
@@ -69,6 +72,11 @@
     public static final int VERB_CLOSE = 5;
     public static final int VERB_DONE = 6;
 
+
+    static {
+        // Keep <cinit> exist in bytecode
+    }
+
     /**
      * Returns a {@link PathIterator} object for this path, which can be used to query the
      * data (operations and points) in the path. Iterators can only be used on Path objects
@@ -90,7 +98,7 @@
             mPointsArray = new float[POINT_ARRAY_SIZE];
             mPointsAddress = 0;
         }
-        sRegistry.registerNativeAllocation(this, mNativeIterator);
+        NoImagePreloadHolder.sRegistry.registerNativeAllocation(this, mNativeIterator);
     }
 
     /**
diff --git a/graphics/java/android/graphics/PathMeasure.java b/graphics/java/android/graphics/PathMeasure.java
index 2c6cfa5..4d123db 100644
--- a/graphics/java/android/graphics/PathMeasure.java
+++ b/graphics/java/android/graphics/PathMeasure.java
@@ -16,6 +16,7 @@
 
 package android.graphics;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class PathMeasure {
     private Path mPath;
 
diff --git a/graphics/java/android/graphics/Picture.java b/graphics/java/android/graphics/Picture.java
index ee4165b..54eb2bc 100644
--- a/graphics/java/android/graphics/Picture.java
+++ b/graphics/java/android/graphics/Picture.java
@@ -33,6 +33,7 @@
  * <p class="note"><strong>Note:</strong> Prior to API level 23 a picture cannot
  * be replayed on a hardware accelerated canvas.</p>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Picture {
     private PictureCanvas mRecordingCanvas;
     // TODO: Figure out if this was a false-positive
diff --git a/graphics/java/android/graphics/PixelXorXfermode.java b/graphics/java/android/graphics/PixelXorXfermode.java
index 27884e0..6427852 100644
--- a/graphics/java/android/graphics/PixelXorXfermode.java
+++ b/graphics/java/android/graphics/PixelXorXfermode.java
@@ -20,6 +20,7 @@
  * @removed
  */
 @Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class PixelXorXfermode extends Xfermode {
 
     public PixelXorXfermode(int opColor) {
diff --git a/graphics/java/android/graphics/PorterDuff.java b/graphics/java/android/graphics/PorterDuff.java
index eb940e2..730a804 100644
--- a/graphics/java/android/graphics/PorterDuff.java
+++ b/graphics/java/android/graphics/PorterDuff.java
@@ -26,6 +26,7 @@
  *
  * Consider using {@link BlendMode} instead as it provides a wider variety of tinting options
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class PorterDuff {
     /**
      * {@usesMathJax}
diff --git a/graphics/java/android/graphics/PorterDuffColorFilter.java b/graphics/java/android/graphics/PorterDuffColorFilter.java
index 0700f21..777ef6c 100644
--- a/graphics/java/android/graphics/PorterDuffColorFilter.java
+++ b/graphics/java/android/graphics/PorterDuffColorFilter.java
@@ -25,6 +25,7 @@
  * A color filter that can be used to tint the source pixels using a single
  * color and a specific {@link PorterDuff Porter-Duff composite mode}.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class PorterDuffColorFilter extends ColorFilter {
     @ColorInt
     private int mColor;
diff --git a/graphics/java/android/graphics/PorterDuffXfermode.java b/graphics/java/android/graphics/PorterDuffXfermode.java
index 83d0507..e10d7370 100644
--- a/graphics/java/android/graphics/PorterDuffXfermode.java
+++ b/graphics/java/android/graphics/PorterDuffXfermode.java
@@ -23,6 +23,7 @@
  * information on the available alpha compositing and blending modes.</p>
  *
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class PorterDuffXfermode extends Xfermode {
     /**
      * Create an xfermode that uses the specified porter-duff mode.
diff --git a/graphics/java/android/graphics/PostProcessor.java b/graphics/java/android/graphics/PostProcessor.java
index 6fed39b..066214a 100644
--- a/graphics/java/android/graphics/PostProcessor.java
+++ b/graphics/java/android/graphics/PostProcessor.java
@@ -37,6 +37,7 @@
  *
  *  <p>Supplied to ImageDecoder via {@link ImageDecoder#setPostProcessor setPostProcessor}.</p>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public interface PostProcessor {
     /**
      *  Do any processing after (for example) decoding.
diff --git a/graphics/java/android/graphics/RadialGradient.java b/graphics/java/android/graphics/RadialGradient.java
index e582e66..06e92ea 100644
--- a/graphics/java/android/graphics/RadialGradient.java
+++ b/graphics/java/android/graphics/RadialGradient.java
@@ -24,6 +24,7 @@
 import android.compat.annotation.UnsupportedAppUsage;
 import android.os.Build;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class RadialGradient extends Shader {
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
     private float mX;
diff --git a/graphics/java/android/graphics/Rasterizer.java b/graphics/java/android/graphics/Rasterizer.java
index 5750954..5e67da5 100644
--- a/graphics/java/android/graphics/Rasterizer.java
+++ b/graphics/java/android/graphics/Rasterizer.java
@@ -24,6 +24,7 @@
 /**
  * @removed feature is not supported by hw-accerlerated or PDF backends
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Rasterizer {
 
     protected void finalize() throws Throwable { }
diff --git a/graphics/java/android/graphics/RecordingCanvas.java b/graphics/java/android/graphics/RecordingCanvas.java
index cc5b3b9..a56f461 100644
--- a/graphics/java/android/graphics/RecordingCanvas.java
+++ b/graphics/java/android/graphics/RecordingCanvas.java
@@ -33,6 +33,7 @@
  * {@link RenderNode#endRecording()} is called. It must not be retained beyond that as it is
  * internally reused.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class RecordingCanvas extends BaseRecordingCanvas {
     // The recording canvas pool should be large enough to handle a deeply nested
     // view hierarchy because display lists are generated recursively.
diff --git a/graphics/java/android/graphics/Region.java b/graphics/java/android/graphics/Region.java
index 2970873..e2215d4 100644
--- a/graphics/java/android/graphics/Region.java
+++ b/graphics/java/android/graphics/Region.java
@@ -23,6 +23,7 @@
 import android.os.Parcelable;
 import android.util.Pools.SynchronizedPool;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Region implements Parcelable {
 
     private static final int MAX_POOL_SIZE = 10;
diff --git a/graphics/java/android/graphics/RegionIterator.java b/graphics/java/android/graphics/RegionIterator.java
index 443b23c..5d74487 100644
--- a/graphics/java/android/graphics/RegionIterator.java
+++ b/graphics/java/android/graphics/RegionIterator.java
@@ -16,6 +16,7 @@
 
 package android.graphics;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class RegionIterator {
 
     /**
diff --git a/graphics/java/android/graphics/RenderEffect.java b/graphics/java/android/graphics/RenderEffect.java
index b8a4685..06bfb82 100644
--- a/graphics/java/android/graphics/RenderEffect.java
+++ b/graphics/java/android/graphics/RenderEffect.java
@@ -30,6 +30,7 @@
  * Additionally a {@link RenderEffect} can be applied to a View's backing RenderNode through
  * {@link android.view.View#setRenderEffect(RenderEffect)}
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class RenderEffect {
 
     private static class RenderEffectHolder {
diff --git a/graphics/java/android/graphics/RenderNode.java b/graphics/java/android/graphics/RenderNode.java
index 03a8b30..fa41876 100644
--- a/graphics/java/android/graphics/RenderNode.java
+++ b/graphics/java/android/graphics/RenderNode.java
@@ -192,6 +192,7 @@
  * top-level content is desired, and finally calling {@link Surface#unlockCanvasAndPost(Canvas)}.
  * </p>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class RenderNode {
 
     // Use a Holder to allow static initialization in the boot image.
diff --git a/graphics/java/android/graphics/RuntimeColorFilter.java b/graphics/java/android/graphics/RuntimeColorFilter.java
index a64acfe..06aecc3 100644
--- a/graphics/java/android/graphics/RuntimeColorFilter.java
+++ b/graphics/java/android/graphics/RuntimeColorFilter.java
@@ -37,6 +37,7 @@
  * </pre>
  */
 @FlaggedApi(Flags.FLAG_RUNTIME_COLOR_FILTERS_BLENDERS)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class RuntimeColorFilter extends ColorFilter {
 
     private String mAgsl;
diff --git a/graphics/java/android/graphics/RuntimeShader.java b/graphics/java/android/graphics/RuntimeShader.java
index db2376e..6464f72 100644
--- a/graphics/java/android/graphics/RuntimeShader.java
+++ b/graphics/java/android/graphics/RuntimeShader.java
@@ -248,6 +248,7 @@
  * the bitmap), remember that the coordinates are local to the canvas.</p>
  *
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class RuntimeShader extends Shader {
 
     private static class NoImagePreloadHolder {
diff --git a/graphics/java/android/graphics/RuntimeXfermode.java b/graphics/java/android/graphics/RuntimeXfermode.java
index c8a0b1a..1e20bd3 100644
--- a/graphics/java/android/graphics/RuntimeXfermode.java
+++ b/graphics/java/android/graphics/RuntimeXfermode.java
@@ -39,6 +39,7 @@
  * </pre>
  */
 @FlaggedApi(Flags.FLAG_RUNTIME_COLOR_FILTERS_BLENDERS)
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class RuntimeXfermode extends Xfermode {
 
     private static class NoImagePreloadHolder {
diff --git a/graphics/java/android/graphics/Shader.java b/graphics/java/android/graphics/Shader.java
index 4d6bead..369fab4 100644
--- a/graphics/java/android/graphics/Shader.java
+++ b/graphics/java/android/graphics/Shader.java
@@ -29,6 +29,7 @@
  * paint.setShader(shader). After that any object (other than a bitmap) that is
  * drawn with that paint will get its color(s) from the shader.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Shader {
 
     private static class NoImagePreloadHolder {
diff --git a/graphics/java/android/graphics/SumPathEffect.java b/graphics/java/android/graphics/SumPathEffect.java
index 8fedc31..3543e10 100644
--- a/graphics/java/android/graphics/SumPathEffect.java
+++ b/graphics/java/android/graphics/SumPathEffect.java
@@ -16,6 +16,7 @@
 
 package android.graphics;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SumPathEffect extends PathEffect {
 
     /**
diff --git a/graphics/java/android/graphics/SurfaceTexture.java b/graphics/java/android/graphics/SurfaceTexture.java
index 5caedba..df384ea 100644
--- a/graphics/java/android/graphics/SurfaceTexture.java
+++ b/graphics/java/android/graphics/SurfaceTexture.java
@@ -78,6 +78,7 @@
  * frame-available callback is called on an arbitrary thread, so unless special care is taken {@link
  * #updateTexImage} should not be called directly from the callback.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SurfaceTexture {
     private final Looper mCreatorLooper;
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
diff --git a/graphics/java/android/graphics/SweepGradient.java b/graphics/java/android/graphics/SweepGradient.java
index 3a29395..9421925 100644
--- a/graphics/java/android/graphics/SweepGradient.java
+++ b/graphics/java/android/graphics/SweepGradient.java
@@ -23,6 +23,7 @@
 import android.compat.annotation.UnsupportedAppUsage;
 import android.os.Build;
 
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class SweepGradient extends Shader {
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
     private float mCx;
diff --git a/graphics/java/android/graphics/TableMaskFilter.java b/graphics/java/android/graphics/TableMaskFilter.java
index 204f970..ca7627c 100644
--- a/graphics/java/android/graphics/TableMaskFilter.java
+++ b/graphics/java/android/graphics/TableMaskFilter.java
@@ -21,6 +21,7 @@
 /**
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TableMaskFilter extends MaskFilter {
 
     public TableMaskFilter(byte[] table) {
diff --git a/graphics/java/android/graphics/TemporaryBuffer.java b/graphics/java/android/graphics/TemporaryBuffer.java
index ef3f7f7..681c48e 100644
--- a/graphics/java/android/graphics/TemporaryBuffer.java
+++ b/graphics/java/android/graphics/TemporaryBuffer.java
@@ -23,6 +23,7 @@
 /**
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TemporaryBuffer {
     @UnsupportedAppUsage
     public static char[] obtain(int len) {
diff --git a/graphics/java/android/graphics/TextureLayer.java b/graphics/java/android/graphics/TextureLayer.java
index ac1bd69..981b78a 100644
--- a/graphics/java/android/graphics/TextureLayer.java
+++ b/graphics/java/android/graphics/TextureLayer.java
@@ -29,6 +29,7 @@
  *
  * @hide TODO: Make this a SystemApi for b/155905258
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class TextureLayer implements AutoCloseable {
     private HardwareRenderer mRenderer;
     private VirtualRefBasePtr mFinalizer;
diff --git a/graphics/java/android/graphics/Typeface.java b/graphics/java/android/graphics/Typeface.java
index 874b847..d1aca34 100644
--- a/graphics/java/android/graphics/Typeface.java
+++ b/graphics/java/android/graphics/Typeface.java
@@ -42,6 +42,7 @@
 import android.os.Trace;
 import android.provider.FontRequest;
 import android.provider.FontsContract;
+import android.ravenwood.annotation.RavenwoodReplace;
 import android.system.ErrnoException;
 import android.system.OsConstants;
 import android.text.FontConfig;
@@ -86,6 +87,7 @@
  * textSize, textSkewX, textScaleX to specify
  * how text appears when drawn (and measured).
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Typeface {
 
     private static String TAG = "Typeface";
@@ -93,9 +95,11 @@
     /** @hide */
     public static final boolean ENABLE_LAZY_TYPEFACE_INITIALIZATION = true;
 
-    private static final NativeAllocationRegistry sRegistry =
-            NativeAllocationRegistry.createMalloced(
-            Typeface.class.getClassLoader(), nativeGetReleaseFunc());
+    private static class NoImagePreloadHolder {
+        static final NativeAllocationRegistry sRegistry =
+                NativeAllocationRegistry.createMalloced(
+                        Typeface.class.getClassLoader(), nativeGetReleaseFunc());
+    }
 
     /** The default NORMAL typeface object */
     public static final Typeface DEFAULT = null;
@@ -1284,7 +1288,7 @@
         }
 
         native_instance = ni;
-        mCleaner = sRegistry.registerNativeAllocation(this, native_instance);
+        mCleaner = NoImagePreloadHolder.sRegistry.registerNativeAllocation(this, native_instance);
         mStyle = nativeGetStyle(ni);
         mWeight = nativeGetWeight(ni);
         mIsVariationInstance = nativeIsVariationInstance(ni);
@@ -1560,9 +1564,23 @@
     }
 
     static {
+        staticInitializer();
+    }
+
+    @RavenwoodReplace(reason = "Prevent circular reference on host side JVM", bug = 337329128)
+    private static void staticInitializer() {
+        init();
+    }
+
+    private static void staticInitializer$ravenwood() {
+        /* no-op */
+    }
+
+    /** @hide */
+    public static void init() {
         // Preload Roboto-Regular.ttf in Zygote for improving app launch performance.
-        preloadFontFile("/system/fonts/Roboto-Regular.ttf");
-        preloadFontFile("/system/fonts/RobotoStatic-Regular.ttf");
+        preloadFontFile(SystemFonts.SYSTEM_FONT_DIR + "Roboto-Regular.ttf");
+        preloadFontFile(SystemFonts.SYSTEM_FONT_DIR + "RobotoStatic-Regular.ttf");
 
         String locale = SystemProperties.get("persist.sys.locale", "en-US");
         String script = ULocale.addLikelySubtags(ULocale.forLanguageTag(locale)).getScript();
@@ -1642,6 +1660,21 @@
         setSystemFontMap(typefaceMap);
     }
 
+    /**
+     * {@link #loadPreinstalledSystemFontMap()} does not actually initialize the native
+     * system font APIs. Add a new method to actually load the font files without going
+     * through SharedMemory.
+     *
+     * @hide
+     */
+    public static void loadNativeSystemFonts() {
+        synchronized (SYSTEM_FONT_MAP_LOCK) {
+            for (var type : sSystemFontMap.values()) {
+                nativeAddFontCollections(type.native_instance);
+            }
+        }
+    }
+
     static {
         if (!ENABLE_LAZY_TYPEFACE_INITIALIZATION) {
             loadPreinstalledSystemFontMap();
diff --git a/graphics/java/android/graphics/Xfermode.java b/graphics/java/android/graphics/Xfermode.java
index fb689e4..eda9e3c 100644
--- a/graphics/java/android/graphics/Xfermode.java
+++ b/graphics/java/android/graphics/Xfermode.java
@@ -28,4 +28,5 @@
  * specified in the Modes enum. When an Xfermode is assigned to a Paint, then
  * objects drawn with that paint have the xfermode applied.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class Xfermode {}
diff --git a/graphics/java/android/graphics/YuvImage.java b/graphics/java/android/graphics/YuvImage.java
index b0c7f20..2b7f404 100644
--- a/graphics/java/android/graphics/YuvImage.java
+++ b/graphics/java/android/graphics/YuvImage.java
@@ -32,6 +32,7 @@
  * To compress a rectangle region in the YUV data, users have to specify the
  * region by left, top, width and height.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class YuvImage {
 
     /**
diff --git a/graphics/java/android/graphics/fonts/Font.java b/graphics/java/android/graphics/fonts/Font.java
index 2893177..8be3400 100644
--- a/graphics/java/android/graphics/fonts/Font.java
+++ b/graphics/java/android/graphics/fonts/Font.java
@@ -44,6 +44,7 @@
 import java.io.InputStream;
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
+import java.nio.channels.Channels;
 import java.nio.channels.FileChannel;
 import java.util.Arrays;
 import java.util.Collections;
@@ -54,6 +55,7 @@
 /**
  * A font class can be used for creating FontFamily.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class Font {
     private static final String TAG = "Font";
 
@@ -293,7 +295,14 @@
                 int capacity = assetStream.available();
                 ByteBuffer buffer = ByteBuffer.allocateDirect(capacity);
                 buffer.order(ByteOrder.nativeOrder());
-                assetStream.read(buffer.array(), buffer.arrayOffset(), assetStream.available());
+                if (buffer.hasArray()) {
+                    assetStream.read(buffer.array(), buffer.arrayOffset(), assetStream.available());
+                } else {
+                    // Direct buffer does not have a backing array on Ravenwood,
+                    // wrap it with a channel and read from it
+                    var ch = Channels.newChannel(assetStream);
+                    ch.read(buffer.duplicate());
+                }
 
                 if (assetStream.read() != -1) {
                     throw new IOException("Unable to access full contents of " + path);
diff --git a/graphics/java/android/graphics/fonts/FontCustomizationParser.java b/graphics/java/android/graphics/fonts/FontCustomizationParser.java
index b7bf055..732a5f3 100644
--- a/graphics/java/android/graphics/fonts/FontCustomizationParser.java
+++ b/graphics/java/android/graphics/fonts/FontCustomizationParser.java
@@ -43,6 +43,7 @@
  *
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class FontCustomizationParser {
     private static final String TAG = "FontCustomizationParser";
 
diff --git a/graphics/java/android/graphics/fonts/FontFamily.java b/graphics/java/android/graphics/fonts/FontFamily.java
index 5a7b0bb..0ab4639 100644
--- a/graphics/java/android/graphics/fonts/FontFamily.java
+++ b/graphics/java/android/graphics/fonts/FontFamily.java
@@ -66,6 +66,7 @@
  * </p>
  *
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class FontFamily {
 
     private static final String TAG = "FontFamily";
diff --git a/graphics/java/android/graphics/fonts/FontFileUtil.java b/graphics/java/android/graphics/fonts/FontFileUtil.java
index abcafb6..305ab3b 100644
--- a/graphics/java/android/graphics/fonts/FontFileUtil.java
+++ b/graphics/java/android/graphics/fonts/FontFileUtil.java
@@ -32,6 +32,7 @@
  * Provides a utility for font file operations.
  * @hide
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class FontFileUtil {
 
     private FontFileUtil() {}  // Do not instantiate
diff --git a/graphics/java/android/graphics/fonts/FontStyle.java b/graphics/java/android/graphics/fonts/FontStyle.java
index 48969aa..b3ddbed 100644
--- a/graphics/java/android/graphics/fonts/FontStyle.java
+++ b/graphics/java/android/graphics/fonts/FontStyle.java
@@ -44,6 +44,7 @@
  * </p>
  *
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class FontStyle {
     private static final String TAG = "FontStyle";
 
diff --git a/graphics/java/android/graphics/fonts/FontVariationAxis.java b/graphics/java/android/graphics/fonts/FontVariationAxis.java
index 30a248b..1d71594 100644
--- a/graphics/java/android/graphics/fonts/FontVariationAxis.java
+++ b/graphics/java/android/graphics/fonts/FontVariationAxis.java
@@ -31,6 +31,7 @@
 /**
  * Class that holds information about single font variation axis.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class FontVariationAxis {
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
     private final int mTag;
diff --git a/graphics/java/android/graphics/fonts/SystemFonts.java b/graphics/java/android/graphics/fonts/SystemFonts.java
index 0e25c34..599c426 100644
--- a/graphics/java/android/graphics/fonts/SystemFonts.java
+++ b/graphics/java/android/graphics/fonts/SystemFonts.java
@@ -25,6 +25,7 @@
 import android.graphics.FontListParser;
 import android.graphics.Typeface;
 import android.os.LocaleList;
+import android.ravenwood.annotation.RavenwoodReplace;
 import android.text.FontConfig;
 import android.util.ArrayMap;
 import android.util.Log;
@@ -32,6 +33,7 @@
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.ravenwood.RavenwoodEnvironment;
 
 import org.xmlpull.v1.XmlPullParserException;
 
@@ -50,23 +52,46 @@
 /**
  * Provides the system font configurations.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class SystemFonts {
     private static final String TAG = "SystemFonts";
 
-    private static final String FONTS_XML = "/system/etc/font_fallback.xml";
-    private static final String LEGACY_FONTS_XML = "/system/etc/fonts.xml";
+    private static final String FONTS_XML = getFontsXmlDir() + "font_fallback.xml";
+    /** @hide */
+    public static final String LEGACY_FONTS_XML = getFontsXmlDir() + "fonts.xml";
 
     /** @hide */
-    public static final String SYSTEM_FONT_DIR = "/system/fonts/";
+    public static final String SYSTEM_FONT_DIR = getSystemFontDir();
     private static final String OEM_XML = "/product/etc/fonts_customization.xml";
     /** @hide */
     public static final String OEM_FONT_DIR = "/product/fonts/";
 
+    private static final String DEVICE_FONTS_XML_DIR = "/system/etc/";
+    private static final String DEVICE_FONT_DIR = "/system/fonts/";
+
     private SystemFonts() {}  // Do not instansiate.
 
     private static final Object LOCK = new Object();
     private static @GuardedBy("sLock") Set<Font> sAvailableFonts;
 
+    @RavenwoodReplace
+    private static String getFontsXmlDir() {
+        return DEVICE_FONTS_XML_DIR;
+    }
+
+    private static String getFontsXmlDir$ravenwood() {
+        return RavenwoodEnvironment.getInstance().getRavenwoodRuntimePath() + "fonts/";
+    }
+
+    @RavenwoodReplace
+    private static String getSystemFontDir() {
+        return DEVICE_FONT_DIR;
+    }
+
+    private static String getSystemFontDir$ravenwood() {
+        return RavenwoodEnvironment.getInstance().getRavenwoodRuntimePath() + "fonts/";
+    }
+
     /**
      * Returns all available font files in the system.
      *
diff --git a/graphics/java/android/graphics/pdf/OWNERS b/graphics/java/android/graphics/pdf/OWNERS
index 057dc0d..24557b4 100644
--- a/graphics/java/android/graphics/pdf/OWNERS
+++ b/graphics/java/android/graphics/pdf/OWNERS
@@ -4,4 +4,3 @@
 djsollen@google.com
 sumir@google.com
 svetoslavganov@android.com
-svetoslavganov@google.com
diff --git a/graphics/java/android/graphics/text/GraphemeBreak.java b/graphics/java/android/graphics/text/GraphemeBreak.java
index f82b2fd..0bc1e3b 100644
--- a/graphics/java/android/graphics/text/GraphemeBreak.java
+++ b/graphics/java/android/graphics/text/GraphemeBreak.java
@@ -17,6 +17,7 @@
 package android.graphics.text;
 
 /** @hide */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class GraphemeBreak {
     private GraphemeBreak() { }
 
diff --git a/graphics/java/android/graphics/text/LineBreakConfig.java b/graphics/java/android/graphics/text/LineBreakConfig.java
index 5a1086c..fa3cfbd 100644
--- a/graphics/java/android/graphics/text/LineBreakConfig.java
+++ b/graphics/java/android/graphics/text/LineBreakConfig.java
@@ -24,12 +24,13 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SuppressLint;
-import android.app.ActivityThread;
 import android.os.Build;
 import android.os.LocaleList;
 import android.os.Parcel;
 import android.os.Parcelable;
 
+import dalvik.system.VMRuntime;
+
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.Objects;
@@ -41,6 +42,7 @@
  * <a href="https://www.w3.org/TR/css-text-3/#line-break-property" class="external">
  * line-break property</a> for more information.
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class LineBreakConfig implements Parcelable {
     /**
      * No hyphenation preference is specified.
@@ -484,8 +486,7 @@
      * @hide
      */
     public static @LineBreakStyle int getResolvedLineBreakStyle(@Nullable LineBreakConfig config) {
-        final int targetSdkVersion = ActivityThread.currentApplication().getApplicationInfo()
-                .targetSdkVersion;
+        final int targetSdkVersion = VMRuntime.getRuntime().getTargetSdkVersion();
         final int defaultStyle;
         final int vicVersion = Build.VERSION_CODES.VANILLA_ICE_CREAM;
         if (targetSdkVersion >= vicVersion) {
@@ -519,8 +520,7 @@
      */
     public static @LineBreakWordStyle int getResolvedLineBreakWordStyle(
             @Nullable LineBreakConfig config) {
-        final int targetSdkVersion = ActivityThread.currentApplication().getApplicationInfo()
-                .targetSdkVersion;
+        final int targetSdkVersion = VMRuntime.getRuntime().getTargetSdkVersion();
         final int defaultWordStyle;
         final int vicVersion = Build.VERSION_CODES.VANILLA_ICE_CREAM;
         if (targetSdkVersion >= vicVersion) {
diff --git a/graphics/java/android/graphics/text/LineBreaker.java b/graphics/java/android/graphics/text/LineBreaker.java
index 94de066..29135b8 100644
--- a/graphics/java/android/graphics/text/LineBreaker.java
+++ b/graphics/java/android/graphics/text/LineBreaker.java
@@ -91,6 +91,7 @@
  * </pre>
  * </p>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class LineBreaker {
     /** @hide */
     @IntDef(prefix = { "BREAK_STRATEGY_" }, value = {
diff --git a/graphics/java/android/graphics/text/MeasuredText.java b/graphics/java/android/graphics/text/MeasuredText.java
index 884268a..f58d531 100644
--- a/graphics/java/android/graphics/text/MeasuredText.java
+++ b/graphics/java/android/graphics/text/MeasuredText.java
@@ -56,6 +56,7 @@
  * </pre>
  * </p>
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class MeasuredText {
     private static final String TAG = "MeasuredText";
 
diff --git a/graphics/java/android/graphics/text/PositionedGlyphs.java b/graphics/java/android/graphics/text/PositionedGlyphs.java
index 43216ba..31125ff 100644
--- a/graphics/java/android/graphics/text/PositionedGlyphs.java
+++ b/graphics/java/android/graphics/text/PositionedGlyphs.java
@@ -46,6 +46,7 @@
  * @see TextRunShaper#shapeTextRun(char[], int, int, int, int, float, float, boolean, Paint)
  * @see TextRunShaper#shapeTextRun(CharSequence, int, int, int, int, float, float, boolean, Paint)
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public final class PositionedGlyphs {
     private static class NoImagePreloadHolder {
         private static final NativeAllocationRegistry REGISTRY =
diff --git a/graphics/java/android/graphics/text/TextRunShaper.java b/graphics/java/android/graphics/text/TextRunShaper.java
index 19ea04a..f1e3d67 100644
--- a/graphics/java/android/graphics/text/TextRunShaper.java
+++ b/graphics/java/android/graphics/text/TextRunShaper.java
@@ -40,6 +40,7 @@
  * @see android.text.TextShaper#shapeText(CharSequence, int, int, TextDirectionHeuristic, TextPaint,
  * TextShaper.GlyphsConsumer)
  */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
 public class TextRunShaper {
     private TextRunShaper() {}  // Do not instantiate
 
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
index b0fadb0..e141f70 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
@@ -107,7 +107,6 @@
 import androidx.window.extensions.layout.WindowLayoutComponentImpl;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.window.flags.Flags;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -421,9 +420,6 @@
     public void setActivityStackAttributesCalculator(
             @NonNull Function<ActivityStackAttributesCalculatorParams, ActivityStackAttributes>
                     calculator) {
-        if (!Flags.activityEmbeddingOverlayPresentationFlag()) {
-            return;
-        }
         synchronized (mLock) {
             mActivityStackAttributesCalculator = calculator;
         }
@@ -431,9 +427,6 @@
 
     @Override
     public void clearActivityStackAttributesCalculator() {
-        if (!Flags.activityEmbeddingOverlayPresentationFlag()) {
-            return;
-        }
         synchronized (mLock) {
             mActivityStackAttributesCalculator = null;
         }
@@ -623,9 +616,6 @@
     @Override
     public void updateActivityStackAttributes(@NonNull ActivityStack.Token activityStackToken,
                                               @NonNull ActivityStackAttributes attributes) {
-        if (!Flags.activityEmbeddingOverlayPresentationFlag()) {
-            return;
-        }
         Objects.requireNonNull(activityStackToken);
         Objects.requireNonNull(attributes);
 
@@ -652,9 +642,6 @@
     @Nullable
     public ParentContainerInfo getParentContainerInfo(
             @NonNull ActivityStack.Token activityStackToken) {
-        if (!Flags.activityEmbeddingOverlayPresentationFlag()) {
-            return null;
-        }
         Objects.requireNonNull(activityStackToken);
         synchronized (mLock) {
             final TaskFragmentContainer container = getContainer(activityStackToken.getRawToken());
@@ -670,9 +657,6 @@
     @Override
     @Nullable
     public ActivityStack.Token getActivityStackToken(@NonNull String tag) {
-        if (!Flags.activityEmbeddingOverlayPresentationFlag()) {
-            return null;
-        }
         Objects.requireNonNull(tag);
         synchronized (mLock) {
             final TaskFragmentContainer taskFragmentContainer =
@@ -3152,8 +3136,7 @@
                 final TaskFragmentContainer launchedInTaskFragment;
                 if (launchingActivity != null) {
                     final String overlayTag = options.getString(KEY_OVERLAY_TAG);
-                    if (Flags.activityEmbeddingOverlayPresentationFlag()
-                            && overlayTag != null) {
+                    if (overlayTag != null) {
                         launchedInTaskFragment = createOrUpdateOverlayTaskFragmentIfNeeded(wct,
                                 options, intent, launchingActivity);
                     } else {
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
index eb59d6ef..f2c1115 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
@@ -62,7 +62,6 @@
 
 import com.android.internal.R;
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.window.flags.Flags;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -465,9 +464,6 @@
     void setTaskFragmentIsolatedNavigation(@NonNull WindowContainerTransaction wct,
                                            @NonNull TaskFragmentContainer container,
                                            boolean isolatedNavigationEnabled) {
-        if (!Flags.activityEmbeddingOverlayPresentationFlag() && container.isOverlay()) {
-            return;
-        }
         if (container.isIsolatedNavigationEnabled() == isolatedNavigationEnabled) {
             return;
         }
@@ -488,9 +484,6 @@
     void setTaskFragmentPinned(@NonNull WindowContainerTransaction wct,
                                @NonNull TaskFragmentContainer container,
                                boolean pinned) {
-        if (!Flags.activityEmbeddingOverlayPresentationFlag() && container.isOverlay()) {
-            return;
-        }
         if (container.isPinned() == pinned) {
             return;
         }
@@ -692,7 +685,7 @@
         final TaskContainer taskContainer = container.getTaskContainer();
         final int windowingMode = taskContainer.getWindowingModeForTaskFragment(relativeBounds);
         updateTaskFragmentWindowingModeIfRegistered(wct, container, windowingMode);
-        if (container.isOverlay() && isOverlayTransitionSupported()) {
+        if (container.isOverlay()) {
             // Use the overlay transition for the overlay container if it's supported.
             final TaskFragmentAnimationParams params = createOverlayAnimationParams(relativeBounds,
                     taskContainer.getBounds(), container);
@@ -704,11 +697,6 @@
         setTaskFragmentDimOnTask(wct, fragmentToken, dimOnTask);
     }
 
-    private static boolean isOverlayTransitionSupported() {
-        return Flags.moveAnimationOptionsToChange()
-                && Flags.activityEmbeddingOverlayPresentationFlag();
-    }
-
     @NonNull
     private static TaskFragmentAnimationParams createOverlayAnimationParams(
             @NonNull Rect relativeBounds, @NonNull Rect parentContainerBounds,
diff --git a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/OverlayPresentationTest.java b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/OverlayPresentationTest.java
index 5b97e7e..4334a9c 100644
--- a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/OverlayPresentationTest.java
+++ b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/OverlayPresentationTest.java
@@ -58,7 +58,6 @@
 import static org.mockito.Mockito.never;
 
 import android.app.Activity;
-import android.app.ActivityOptions;
 import android.content.ComponentName;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
@@ -70,7 +69,6 @@
 import android.os.Handler;
 import android.os.IBinder;
 import android.platform.test.annotations.Presubmit;
-import android.platform.test.flag.junit.SetFlagsRule;
 import android.util.Size;
 import android.window.TaskFragmentAnimationParams;
 import android.window.TaskFragmentInfo;
@@ -85,8 +83,6 @@
 import androidx.window.extensions.layout.WindowLayoutComponentImpl;
 import androidx.window.extensions.layout.WindowLayoutInfo;
 
-import com.android.window.flags.Flags;
-
 import com.google.testing.junit.testparameterinjector.TestParameter;
 import com.google.testing.junit.testparameterinjector.TestParameterInjector;
 
@@ -121,9 +117,6 @@
     private static final Intent PLACEHOLDER_INTENT = new Intent().setComponent(
             new ComponentName("test", "placeholder"));
 
-    @Rule
-    public final SetFlagsRule mSetFlagRule = new SetFlagsRule();
-
     private SplitController.ActivityStartMonitor mMonitor;
 
     private Intent mIntent;
@@ -168,8 +161,6 @@
         doReturn(activityConfig).when(mActivityResources).getConfiguration();
         doReturn(mHandler).when(mSplitController).getHandler();
         mActivity = createMockActivity();
-
-        mSetFlagRule.enableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG);
     }
 
     /** Creates a mock activity in the organizer process. */
@@ -187,44 +178,6 @@
     }
 
     @Test
-    public void testStartActivity_overlayFeatureDisabled_notInvokeCreateOverlayContainer() {
-        mSetFlagRule.disableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG);
-
-        final Bundle optionsBundle = ActivityOptions.makeBasic().toBundle();
-        optionsBundle.putString(KEY_OVERLAY_TAG, "test");
-        mMonitor.onStartActivity(mActivity, mIntent, optionsBundle);
-
-        verify(mSplitController, never()).createOrUpdateOverlayTaskFragmentIfNeeded(any(), any(),
-                any(), any());
-    }
-
-    @Test
-    public void testSetIsolatedNavigation_overlayFeatureDisabled_earlyReturn() {
-        mSetFlagRule.disableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG);
-
-        final TaskFragmentContainer container = createTestOverlayContainer(TASK_ID, "test");
-
-        mSplitPresenter.setTaskFragmentIsolatedNavigation(mTransaction, container,
-                !container.isIsolatedNavigationEnabled());
-
-        verify(mSplitPresenter, never()).setTaskFragmentIsolatedNavigation(any(),
-                any(IBinder.class), anyBoolean());
-    }
-
-    @Test
-    public void testSetPinned_overlayFeatureDisabled_earlyReturn() {
-        mSetFlagRule.disableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG);
-
-        final TaskFragmentContainer container = createTestOverlayContainer(TASK_ID, "test");
-
-        mSplitPresenter.setTaskFragmentPinned(mTransaction, container,
-                !container.isPinned());
-
-        verify(mSplitPresenter, never()).setTaskFragmentPinned(any(), any(IBinder.class),
-                anyBoolean());
-    }
-
-    @Test
     public void testGetAllNonFinishingOverlayContainers() {
         assertThat(mSplitController.getAllNonFinishingOverlayContainers()).isEmpty();
 
diff --git a/libs/WindowManager/Shell/aconfig/multitasking.aconfig b/libs/WindowManager/Shell/aconfig/multitasking.aconfig
index a08f88a..1e72d64 100644
--- a/libs/WindowManager/Shell/aconfig/multitasking.aconfig
+++ b/libs/WindowManager/Shell/aconfig/multitasking.aconfig
@@ -184,3 +184,13 @@
     description: "Try out bubble bar on phones"
     bug: "394869612"
 }
+
+flag {
+    name: "enable_bubble_task_view_listener"
+    namespace: "multitasking"
+    description: "Use the same taskview listener for bubble bar and floating"
+    bug: "272102927"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
+}
diff --git a/libs/WindowManager/Shell/multivalentTests/AndroidManifest.xml b/libs/WindowManager/Shell/multivalentTests/AndroidManifest.xml
index 95cd1c7..800ea74 100644
--- a/libs/WindowManager/Shell/multivalentTests/AndroidManifest.xml
+++ b/libs/WindowManager/Shell/multivalentTests/AndroidManifest.xml
@@ -2,6 +2,7 @@
     package="com.android.wm.shell.multivalenttests">
 
     <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS"/>
+    <uses-permission android:name="android.permission.GET_INTENT_SENDER_INTENT"/>
 
     <application android:debuggable="true" android:supportsRtl="true" >
         <uses-library android:name="android.test.runner" />
diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleTaskViewListenerTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleTaskViewListenerTest.kt
index 9ebc3d7..9087da3 100644
--- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleTaskViewListenerTest.kt
+++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubbleTaskViewListenerTest.kt
@@ -16,6 +16,7 @@
 
 package com.android.wm.shell.bubbles
 
+import android.app.ActivityOptions
 import android.app.Notification
 import android.app.PendingIntent
 import android.content.ComponentName
@@ -24,6 +25,8 @@
 import android.content.pm.ShortcutInfo
 import android.graphics.drawable.Icon
 import android.os.UserHandle
+import android.platform.test.annotations.EnableFlags
+import android.platform.test.flag.junit.SetFlagsRule
 import android.service.notification.NotificationListenerService.Ranking
 import android.service.notification.StatusBarNotification
 import android.view.View
@@ -33,6 +36,7 @@
 import androidx.test.filters.SmallTest
 import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
 import com.android.internal.protolog.ProtoLog
+import com.android.wm.shell.Flags.FLAG_ENABLE_BUBBLE_ANYTHING
 import com.android.wm.shell.R
 import com.android.wm.shell.bubbles.Bubbles.BubbleMetadataFlagListener
 import com.android.wm.shell.common.TestShellExecutor
@@ -41,6 +45,7 @@
 import com.android.wm.shell.taskview.TaskViewTaskController
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
+import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.Mockito
@@ -48,6 +53,7 @@
 import org.mockito.Mockito.reset
 import org.mockito.kotlin.any
 import org.mockito.kotlin.anyOrNull
+import org.mockito.kotlin.argumentCaptor
 import org.mockito.kotlin.doReturn
 import org.mockito.kotlin.eq
 import org.mockito.kotlin.mock
@@ -61,6 +67,9 @@
 @RunWith(AndroidJUnit4::class)
 class BubbleTaskViewListenerTest {
 
+    @get:Rule
+    val setFlagsRule = SetFlagsRule()
+
     private val context = ApplicationProvider.getApplicationContext<Context>()
 
     private var taskViewController = mock<TaskViewController>()
@@ -155,9 +164,22 @@
         }
         getInstrumentation().waitForIdleSync()
 
-        // ..so it's pending intent-based, and launches that
+        // ..so it's pending intent-based, so the pending intent should be active
         assertThat(b.isPendingIntentActive).isTrue()
-        verify(taskViewController).startActivity(any(), eq(pendingIntent), any(), any(), any())
+
+        val intentCaptor = argumentCaptor<Intent>()
+        val optionsCaptor = argumentCaptor<ActivityOptions>()
+
+        verify(taskViewController).startActivity(any(),
+            eq(pendingIntent),
+            intentCaptor.capture(),
+            optionsCaptor.capture(),
+            any())
+        val intentFlags = intentCaptor.lastValue.flags
+        assertThat((intentFlags and Intent.FLAG_ACTIVITY_NEW_DOCUMENT) != 0).isTrue()
+        assertThat((intentFlags and Intent.FLAG_ACTIVITY_MULTIPLE_TASK) != 0).isTrue()
+        assertThat(optionsCaptor.lastValue.launchedFromBubble).isTrue()
+        assertThat(optionsCaptor.lastValue.taskAlwaysOnTop).isTrue()
     }
 
     @Test
@@ -178,12 +200,52 @@
         }
         getInstrumentation().waitForIdleSync()
 
-        assertThat(b.isPendingIntentActive).isFalse()
-        verify(taskViewController).startShortcutActivity(any(), eq(shortcutInfo), any(), any())
+        val optionsCaptor = argumentCaptor<ActivityOptions>()
+
+        assertThat(b.isPendingIntentActive).isFalse() // not triggered for shortcut chats
+        verify(taskViewController).startShortcutActivity(any(),
+            eq(shortcutInfo),
+            optionsCaptor.capture(),
+            any())
+        assertThat(optionsCaptor.lastValue.launchedFromBubble).isTrue()
+        assertThat(optionsCaptor.lastValue.isApplyActivityFlagsForBubbles).isTrue()
+        assertThat(optionsCaptor.lastValue.taskAlwaysOnTop).isTrue()
+    }
+
+    @EnableFlags(FLAG_ENABLE_BUBBLE_ANYTHING)
+    @Test
+    fun onInitialized_shortcutBubble() {
+        val shortcutInfo = ShortcutInfo.Builder(context)
+            .setId("mockShortcutId")
+            .build()
+
+        val b = createShortcutBubble(shortcutInfo)
+        bubbleTaskViewListener.setBubble(b)
+
+        assertThat(b.isChat).isFalse()
+        assertThat(b.isShortcut).isTrue()
+        assertThat(b.shortcutInfo).isNotNull()
+
+        getInstrumentation().runOnMainSync {
+            bubbleTaskViewListener.onInitialized()
+        }
+        getInstrumentation().waitForIdleSync()
+
+        val optionsCaptor = argumentCaptor<ActivityOptions>()
+
+        assertThat(b.isPendingIntentActive).isFalse() // chat only triggers setting it active
+        verify(taskViewController).startShortcutActivity(any(),
+            eq(shortcutInfo),
+            optionsCaptor.capture(),
+            any())
+        assertThat(optionsCaptor.lastValue.launchedFromBubble).isFalse() // chat only
+        assertThat(optionsCaptor.lastValue.isApplyActivityFlagsForBubbles).isFalse() // chat only
+        assertThat(optionsCaptor.lastValue.isApplyMultipleTaskFlagForShortcut).isTrue()
+        assertThat(optionsCaptor.lastValue.taskAlwaysOnTop).isTrue()
     }
 
     @Test
-    fun onInitialized_appBubble() {
+    fun onInitialized_appBubble_intent() {
         val b = createAppBubble()
         bubbleTaskViewListener.setBubble(b)
 
@@ -194,11 +256,83 @@
         }
         getInstrumentation().waitForIdleSync()
 
-        assertThat(b.isPendingIntentActive).isFalse()
-        verify(taskViewController).startActivity(any(), any(), anyOrNull(), any(), any())
+        val intentCaptor = argumentCaptor<Intent>()
+        val optionsCaptor = argumentCaptor<ActivityOptions>()
+
+        assertThat(b.isPendingIntentActive).isFalse() // chat only triggers setting it active
+        verify(taskViewController).startActivity(any(),
+            any(),
+            intentCaptor.capture(),
+            optionsCaptor.capture(),
+            any())
+
+        assertThat((intentCaptor.lastValue.flags
+                and Intent.FLAG_ACTIVITY_MULTIPLE_TASK) != 0).isTrue()
+        assertThat(optionsCaptor.lastValue.launchedFromBubble).isFalse() // chat only
+        assertThat(optionsCaptor.lastValue.isApplyActivityFlagsForBubbles).isFalse() // chat only
+        assertThat(optionsCaptor.lastValue.taskAlwaysOnTop).isTrue()
     }
 
     @Test
+    fun onInitialized_appBubble_pendingIntent() {
+        val b = createAppBubble(usePendingIntent = true)
+        bubbleTaskViewListener.setBubble(b)
+
+        assertThat(b.isApp).isTrue()
+
+        getInstrumentation().runOnMainSync {
+            bubbleTaskViewListener.onInitialized()
+        }
+        getInstrumentation().waitForIdleSync()
+
+        val intentCaptor = argumentCaptor<Intent>()
+        val optionsCaptor = argumentCaptor<ActivityOptions>()
+
+        assertThat(b.isPendingIntentActive).isFalse() // chat only triggers setting it active
+        verify(taskViewController).startActivity(any(),
+            any(),
+            intentCaptor.capture(),
+            optionsCaptor.capture(),
+            any())
+
+        assertThat((intentCaptor.lastValue.flags
+                and Intent.FLAG_ACTIVITY_MULTIPLE_TASK) != 0).isTrue()
+        assertThat(optionsCaptor.lastValue.launchedFromBubble).isFalse() // chat only
+        assertThat(optionsCaptor.lastValue.isApplyActivityFlagsForBubbles).isFalse() // chat only
+        assertThat(optionsCaptor.lastValue.taskAlwaysOnTop).isTrue()
+    }
+
+    @Test
+    fun onInitialized_noteBubble() {
+        val b = createNoteBubble()
+        bubbleTaskViewListener.setBubble(b)
+
+        assertThat(b.isNote).isTrue()
+
+        getInstrumentation().runOnMainSync {
+            bubbleTaskViewListener.onInitialized()
+        }
+        getInstrumentation().waitForIdleSync()
+
+        val intentCaptor = argumentCaptor<Intent>()
+        val optionsCaptor = argumentCaptor<ActivityOptions>()
+
+        assertThat(b.isPendingIntentActive).isFalse() // chat only triggers setting it active
+        verify(taskViewController).startActivity(any(),
+            any(),
+            intentCaptor.capture(),
+            optionsCaptor.capture(),
+            any())
+
+        assertThat((intentCaptor.lastValue.flags
+                and Intent.FLAG_ACTIVITY_MULTIPLE_TASK) != 0).isTrue()
+        assertThat(optionsCaptor.lastValue.launchedFromBubble).isFalse() // chat only
+        assertThat(optionsCaptor.lastValue.isApplyActivityFlagsForBubbles).isFalse() // chat only
+        assertThat(optionsCaptor.lastValue.taskAlwaysOnTop).isTrue()
+    }
+
+
+    @Test
     fun onInitialized_preparingTransition() {
         val b = createAppBubble()
         bubbleTaskViewListener.setBubble(b)
@@ -416,13 +550,26 @@
         assertThat(isNew).isTrue()
     }
 
-    private fun createAppBubble(): Bubble {
+    private fun createAppBubble(usePendingIntent: Boolean = false): Bubble {
         val target = Intent(context, TestActivity::class.java)
+        val component = ComponentName(context, TestActivity::class.java)
         target.setPackage(context.packageName)
+        target.setComponent(component)
+        if (usePendingIntent) {
+            // Robolectric doesn't seem to play nice with PendingIntents, have to mock it.
+            val pendingIntent = mock<PendingIntent>()
+            whenever(pendingIntent.intent).thenReturn(target)
+            return Bubble.createAppBubble(pendingIntent, mock<UserHandle>(),
+                mainExecutor, bgExecutor)
+        }
         return Bubble.createAppBubble(target, mock<UserHandle>(), mock<Icon>(),
             mainExecutor, bgExecutor)
     }
 
+    private fun createShortcutBubble(shortcutInfo: ShortcutInfo): Bubble {
+        return Bubble.createShortcutBubble(shortcutInfo, mainExecutor, bgExecutor)
+    }
+
     private fun createNoteBubble(): Bubble {
         val target = Intent(context, TestActivity::class.java)
         target.setPackage(context.packageName)
diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerViewTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerViewTest.kt
index 7b583137..14c152102 100644
--- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerViewTest.kt
+++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerViewTest.kt
@@ -19,7 +19,9 @@
 import android.animation.AnimatorTestRule
 import android.content.Context
 import android.content.pm.LauncherApps
+import android.graphics.Insets
 import android.graphics.PointF
+import android.graphics.Rect
 import android.os.Handler
 import android.os.UserManager
 import android.view.IWindowManager
@@ -61,6 +63,7 @@
 import com.android.wm.shell.shared.TransactionPool
 import com.android.wm.shell.shared.animation.PhysicsAnimatorTestUtils
 import com.android.wm.shell.shared.bubbles.BubbleBarLocation
+import com.android.wm.shell.shared.bubbles.DeviceConfig
 import com.android.wm.shell.sysui.ShellCommandHandler
 import com.android.wm.shell.sysui.ShellController
 import com.android.wm.shell.sysui.ShellInit
@@ -80,6 +83,10 @@
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 class BubbleBarLayerViewTest {
+    companion object {
+        const val SCREEN_WIDTH = 2000
+        const val SCREEN_HEIGHT = 1000
+    }
 
     @get:Rule val animatorTestRule: AnimatorTestRule = AnimatorTestRule(this)
 
@@ -111,6 +118,16 @@
 
         bubblePositioner = BubblePositioner(context, windowManager)
         bubblePositioner.setShowingInBubbleBar(true)
+        val deviceConfig =
+            DeviceConfig(
+                windowBounds = Rect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT),
+                isLargeScreen = true,
+                isSmallTablet = false,
+                isLandscape = true,
+                isRtl = false,
+                insets = Insets.of(10, 20, 30, 40)
+            )
+        bubblePositioner.update(deviceConfig)
 
         testBubblesList = mutableListOf()
         val bubbleData = mock<BubbleData>()
@@ -313,6 +330,48 @@
         assertThat(uiEventLoggerFake.logs[0]).hasBubbleInfo(bubble)
     }
 
+    @Test
+    fun testUpdateExpandedView_updateLocation() {
+        bubblePositioner.bubbleBarLocation = BubbleBarLocation.RIGHT
+        val bubble = createBubble("first")
+
+        getInstrumentation().runOnMainSync {
+            bubbleBarLayerView.showExpandedView(bubble)
+        }
+        waitForExpandedViewAnimation()
+
+        val previousX = bubble.bubbleBarExpandedView!!.x
+
+        bubblePositioner.bubbleBarLocation = BubbleBarLocation.LEFT
+        getInstrumentation().runOnMainSync {
+            bubbleBarLayerView.updateExpandedView()
+        }
+
+        assertThat(bubble.bubbleBarExpandedView!!.x).isNotEqualTo(previousX)
+    }
+
+    @Test
+    fun testUpdatedExpandedView_updateLocation_skipWhileAnimating() {
+        bubblePositioner.bubbleBarLocation = BubbleBarLocation.RIGHT
+        val bubble = createBubble("first")
+
+        getInstrumentation().runOnMainSync {
+            bubbleBarLayerView.showExpandedView(bubble)
+        }
+        waitForExpandedViewAnimation()
+
+        val previousX = bubble.bubbleBarExpandedView!!.x
+        bubble.bubbleBarExpandedView!!.isAnimating = true
+
+        bubblePositioner.bubbleBarLocation = BubbleBarLocation.LEFT
+        getInstrumentation().runOnMainSync {
+            bubbleBarLayerView.updateExpandedView()
+        }
+
+        // Expanded view is not updated while animating
+        assertThat(bubble.bubbleBarExpandedView!!.x).isEqualTo(previousX)
+    }
+
     private fun createBubble(key: String): Bubble {
         val bubbleTaskView = FakeBubbleTaskViewFactory(context, mainExecutor).create()
         val bubbleBarExpandedView =
diff --git a/libs/WindowManager/Shell/res/layout/caption_window_decor.xml b/libs/WindowManager/Shell/res/layout/caption_window_decor.xml
index f3d2198..819d4ab 100644
--- a/libs/WindowManager/Shell/res/layout/caption_window_decor.xml
+++ b/libs/WindowManager/Shell/res/layout/caption_window_decor.xml
@@ -37,20 +37,17 @@
         style="@style/CaptionButtonStyle"
         android:id="@+id/minimize_window"
         android:layout_gravity="center_vertical|end"
-        android:contentDescription="@string/minimize_button_text"
         android:background="@drawable/decor_minimize_button_dark"
         android:duplicateParentState="true"/>
     <Button
         style="@style/CaptionButtonStyle"
         android:id="@+id/maximize_window"
         android:layout_gravity="center_vertical|end"
-        android:contentDescription="@string/maximize_button_text"
         android:background="@drawable/decor_maximize_button_dark"
         android:duplicateParentState="true"/>
     <Button
         style="@style/CaptionButtonStyle"
         android:id="@+id/close_window"
-        android:contentDescription="@string/close_button_text"
         android:background="@drawable/decor_close_button_dark"
         android:duplicateParentState="true"/>
 </com.android.wm.shell.windowdecor.WindowDecorLinearLayout>
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu_action_button.xml b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu_action_button.xml
index 379f4e9..0163c01 100644
--- a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu_action_button.xml
+++ b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu_action_button.xml
@@ -29,7 +29,7 @@
 
     <ImageView
         android:id="@+id/image"
-        android:contentDescription="@+id/label"
+        android:importantForAccessibility="no"
         style="@style/DesktopModeHandleMenuActionButtonImage"/>
 
     <com.android.wm.shell.windowdecor.MarqueedTextView
diff --git a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_maximize_menu.xml b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_maximize_menu.xml
index d50a14c..c2aa146 100644
--- a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_maximize_menu.xml
+++ b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_maximize_menu.xml
@@ -79,7 +79,7 @@
             android:layout_marginEnd="4dp">
 
             <Button
-                android:layout_width="94dp"
+                android:layout_width="108dp"
                 android:layout_height="60dp"
                 android:id="@+id/maximize_menu_size_toggle_button"
                 style="?android:attr/buttonBarButtonStyle"
@@ -126,7 +126,7 @@
                 <Button
                     android:id="@+id/maximize_menu_snap_left_button"
                     style="?android:attr/buttonBarButtonStyle"
-                    android:layout_width="41dp"
+                    android:layout_width="48dp"
                     android:layout_height="@dimen/desktop_mode_maximize_menu_button_height"
                     android:layout_marginEnd="4dp"
                     android:background="@drawable/desktop_mode_maximize_menu_button_background"
@@ -137,7 +137,7 @@
                 <Button
                     android:id="@+id/maximize_menu_snap_right_button"
                     style="?android:attr/buttonBarButtonStyle"
-                    android:layout_width="41dp"
+                    android:layout_width="48dp"
                     android:layout_height="@dimen/desktop_mode_maximize_menu_button_height"
                     android:background="@drawable/desktop_mode_maximize_menu_button_background"
                     android:importantForAccessibility="yes"
diff --git a/libs/WindowManager/Shell/res/values-af/strings.xml b/libs/WindowManager/Shell/res/values-af/strings.xml
index b4d594f..0f42645 100644
--- a/libs/WindowManager/Shell/res/values-af/strings.xml
+++ b/libs/WindowManager/Shell/res/values-af/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Apphandvatsel"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Appikoon"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Volskerm"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Rekenaaraansig"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Verdeelde skerm"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Meer"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Sweef"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Verander aspekverhouding"</string>
     <string name="close_text" msgid="4986518933445178928">"Maak toe"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Maak kieslys toe"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (Rekenaaraansig)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maksimeer skerm"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Verander grootte"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"App kan nie hierheen geskuif word nie"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Verander grootte van linkerkantse venster"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Verander grootte van regterkantse venster"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimeer of stel venstergrootte terug"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Maak kieslys oop"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Voer <xliff:g id="WINDOWING_MODE">%1$s</xliff:g> in"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Verander grootte van linkerkantse venster"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Verander grootte van regterkantse venster"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimeer of stel venstergrootte terug"</string>
diff --git a/libs/WindowManager/Shell/res/values-am/strings.xml b/libs/WindowManager/Shell/res/values-am/strings.xml
index 9ec8001..be02f43 100644
--- a/libs/WindowManager/Shell/res/values-am/strings.xml
+++ b/libs/WindowManager/Shell/res/values-am/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"የመተግበሪያ መያዣ"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"የመተግበሪያ አዶ"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"ሙሉ ማያ"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"የዴስክቶፕ ዕይታ"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"የተከፈለ ማያ ገፅ"</string>
     <string name="more_button_text" msgid="3655388105592893530">"ተጨማሪ"</string>
     <string name="float_button_text" msgid="9221657008391364581">"ተንሳፋፊ"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"ምጥጥነ ገፅታ ለውጥ"</string>
     <string name="close_text" msgid="4986518933445178928">"ዝጋ"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"ምናሌ ዝጋ"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> የዴስክቶፕ ዕይታ"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"የማያ ገጹ መጠን አሳድግ"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"መጠን ቀይር"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"መተግበሪያ ወደዚህ መንቀሳቀስ አይችልም"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"የመተግበሪያ መስኮትን ወደ ግራ መጠን ቀይር"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"የመተግበሪያ መስኮትን ወደ ቀኝ መጠን ቀይር"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"የመስኮት መጠንን አሳድግ ወይም ወደነበረበት መልስ"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"ምናሌን ክፈት"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> አስገባ"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"መስኮትን ወደ ግራ መጠን ቀይር"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"መስኮትን ወደ ቀኝ መጠን ቀይር"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"የመስኮት መጠንን አሳድግ ወይም ወደነበረበት መልስ"</string>
diff --git a/libs/WindowManager/Shell/res/values-as/strings.xml b/libs/WindowManager/Shell/res/values-as/strings.xml
index 05860c2..0bc4a0a 100644
--- a/libs/WindowManager/Shell/res/values-as/strings.xml
+++ b/libs/WindowManager/Shell/res/values-as/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"এপৰ হেণ্ডেল"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"এপৰ চিহ্ন"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"সম্পূৰ্ণ স্ক্ৰীন"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"ডেস্কটপ ভিউ"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"বিভাজিত স্ক্ৰীন"</string>
     <string name="more_button_text" msgid="3655388105592893530">"অধিক"</string>
     <string name="float_button_text" msgid="9221657008391364581">"ওপঙা"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"আকাৰৰ অনুপাত সলনি কৰক"</string>
     <string name="close_text" msgid="4986518933445178928">"বন্ধ কৰক"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"মেনু বন্ধ কৰক"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (ডেস্কটপ ভিউ)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"স্ক্ৰীন মেক্সিমাইজ কৰক"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"আকাৰ সলনি কৰক"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"ইয়ালৈ এপ্‌টো আনিব নোৱাৰি"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"বাওঁফালে এপ্‌ ৱিণ্ড’ৰ আকাৰ সলনি কৰক"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"সোঁফালে এপ্‌ ৱিণ্ড’ৰ আকাৰ সলনি কৰক"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ৱিণ্ড’ৰ আকাৰ মেক্সিমাইজ বা পুনঃস্থাপন কৰক"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"মেনু খোলক"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g>ত সোমাওক"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"সোঁফাললৈ ৱিণ্ড’ৰ আকাৰ সলনি কৰক"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"বাওঁফাললৈ ৱিণ্ড’ৰ আকাৰ সলনি কৰক"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ৱিণ্ড’ৰ আকাৰ মেক্সিমাইজ বা পুনঃস্থাপন কৰক"</string>
diff --git a/libs/WindowManager/Shell/res/values-az/strings.xml b/libs/WindowManager/Shell/res/values-az/strings.xml
index ea64749..2ccae4b 100644
--- a/libs/WindowManager/Shell/res/values-az/strings.xml
+++ b/libs/WindowManager/Shell/res/values-az/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Tətbiq ləqəbi"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Tətbiq ikonası"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Tam Ekran"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Masaüstü Görünüş"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Bölünmüş Ekran"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Ardı"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Üzən pəncərə"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Tərəflər nisbətini dəyişin"</string>
     <string name="close_text" msgid="4986518933445178928">"Bağlayın"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Menyunu bağlayın"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (Masaüstü Görünüş)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Ekranı maksimum böyüdün"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Ölçüsünü dəyişin"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Tətbiqi bura köçürmək mümkün deyil"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Tətbiq pəncərəsinin ölçüsünü sola dəyişin"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Tətbiq pəncərəsinin ölçüsünü sağa dəyişin"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Pəncərə ölçüsünü artırın və ya bərpa edin"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Menyunu açın"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> rejiminə daxil olun"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Pəncərə ölçüsünü sola dəyişin"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Pəncərə ölçüsünü sağa dəyişin"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Pəncərə ölçüsünü artırın və ya bərpa edin"</string>
diff --git a/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml b/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
index deec04f..b79b860 100644
--- a/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
@@ -134,9 +134,9 @@
     <string name="collapse_menu_text" msgid="7515008122450342029">"Zatvorite meni"</string>
     <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (prikaz za računare)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Povećaj ekran"</string>
-    <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Promeni veličinu"</string>
+    <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Prilagodi"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Aplikacija ne može da se premesti ovde"</string>
-    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Imerzivne"</string>
+    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Imerzivno"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"Vrati"</string>
     <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Uvećaj"</string>
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Vratite"</string>
diff --git a/libs/WindowManager/Shell/res/values-bg/strings.xml b/libs/WindowManager/Shell/res/values-bg/strings.xml
index 0bb5960..9cc9db8 100644
--- a/libs/WindowManager/Shell/res/values-bg/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bg/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Манипулатор за приложението"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Икона на приложението"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Цял екран"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Изглед за настолни компютри"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Разделяне на екрана"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Още"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Плаващо"</string>
@@ -133,10 +132,9 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Промяна на съотношението"</string>
     <string name="close_text" msgid="4986518933445178928">"Затваряне"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Затваряне на менюто"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (изглед за настолни компютри)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Увеличаване на екрана"</string>
-    <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Преоразмеряване"</string>
+    <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Нов размер"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Приложението не може да бъде преместено тук"</string>
     <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Реалистично"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"Възстановяване"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Преоразмеряване на прозореца на приложението наляво"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Преоразмеряване на прозореца на приложението надясно"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Увеличаване или възстановяване на размера на прозореца"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Отваряне на менюто"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Въвеждане на <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Преоразмеряване на прозореца наляво"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Преоразмеряване на прозореца надясно"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Увеличаване или възстановяване на размера на прозореца"</string>
diff --git a/libs/WindowManager/Shell/res/values-bn/strings.xml b/libs/WindowManager/Shell/res/values-bn/strings.xml
index ae63e04..c1264d4 100644
--- a/libs/WindowManager/Shell/res/values-bn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bn/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"অ্যাপের হ্যান্ডেল"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"অ্যাপ আইকন"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"ফুলস্ক্রিন"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"ডেস্কটপ ভিউ"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"স্প্লিট স্ক্রিন"</string>
     <string name="more_button_text" msgid="3655388105592893530">"আরও"</string>
     <string name="float_button_text" msgid="9221657008391364581">"ফ্লোট"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"অ্যাস্পেক্ট রেশিও পরিবর্তন করুন"</string>
     <string name="close_text" msgid="4986518933445178928">"বন্ধ করুন"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"\'মেনু\' বন্ধ করুন"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (ডেস্কটপ ভিউ)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"স্ক্রিন বড় করুন"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"ছোট বড় করুন"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"অ্যাপটি এখানে সরানো যাবে না"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"বাঁদিকে অ্যাপ উইন্ডো রিসাইজ করুন"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ডানদিকে অ্যাপ উইন্ডো রিসাইজ করুন"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"উইন্ডো সাইজ বড় বা রিস্টোর করুন"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"মেনু খুলুন"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g>-এ খুলুন"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"বাঁদিকে উইন্ডো রিসাইজ করুন"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ডানদিকে উইন্ডো রিসাইজ করুন"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"উইন্ডো সাইজ বড় বা রিস্টোর করুন"</string>
diff --git a/libs/WindowManager/Shell/res/values-bs/strings.xml b/libs/WindowManager/Shell/res/values-bs/strings.xml
index b7c76b5..7c912b6 100644
--- a/libs/WindowManager/Shell/res/values-bs/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bs/strings.xml
@@ -119,7 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Ručica aplikacije"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Ikona aplikacije"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Cijeli ekran"</string>
-    <string name="desktop_text" msgid="1582173066857454541">"Prikaz na računalu"</string>
+    <string name="desktop_text" msgid="1582173066857454541">"Prikaz na računaru"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Podijeljeni ekran"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Više"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Lebdeći"</string>
@@ -132,7 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Promjena formata slike"</string>
     <string name="close_text" msgid="4986518933445178928">"Zatvaranje"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Zatvaranje menija"</string>
-    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (prikaz na računalu)"</string>
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (prikaz na računaru)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maksimiziraj ekran"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Promijeni veličinu"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Ne možete premjestiti aplikaciju ovdje"</string>
@@ -145,8 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Promjena veličine prozora aplikacije lijevo"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Promjena veličine prozora aplikacije desno"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimiziranje ili vraćanje veličine prozora"</string>
-    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Otvorite izbornik"</string>
-    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Unesite <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Otvaranje menija"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Aktiviranje načina rada <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Promjena veličine prozora i poravnanje lijevo"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Promjena veličine prozora i poravnanje desno"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimiziranje ili vraćanje veličine prozora"</string>
diff --git a/libs/WindowManager/Shell/res/values-ca/strings.xml b/libs/WindowManager/Shell/res/values-ca/strings.xml
index 80dd380..2c2a177 100644
--- a/libs/WindowManager/Shell/res/values-ca/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ca/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Identificador de l\'aplicació"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Icona de l\'aplicació"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Pantalla completa"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Visualització per a ordinadors"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Pantalla dividida"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Més"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Flotant"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Canvia la relació d\'aspecte"</string>
     <string name="close_text" msgid="4986518933445178928">"Tanca"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Tanca el menú"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (visualització per a ordinadors)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maximitza la pantalla"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Canvia la mida"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"L\'aplicació no es pot moure aquí"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Canvia la mida de la finestra de l\'aplicació a l\'esquerra"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Canvia la mida de la finestra de l\'aplicació a la dreta"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximitza o restaura la mida de la finestra"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Obre el menú"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Introdueix <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Canvia la mida de la finestra a l\'esquerra"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Canvia la mida de la finestra a la dreta"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximitza o restaura la mida de la finestra"</string>
diff --git a/libs/WindowManager/Shell/res/values-da/strings.xml b/libs/WindowManager/Shell/res/values-da/strings.xml
index c465ce3..f5656d5 100644
--- a/libs/WindowManager/Shell/res/values-da/strings.xml
+++ b/libs/WindowManager/Shell/res/values-da/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Apphåndtag"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Appikon"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Fuld skærm"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Computervenlig visning"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Opdelt skærm"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Mere"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Svævende"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Skift billedformat"</string>
     <string name="close_text" msgid="4986518933445178928">"Luk"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Luk menu"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (computervenlig visning)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maksimér skærm"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Tilpas størrelse"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Apps kan ikke flyttes hertil"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Juster størrelsen på appvinduet til venstre"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Juster størrelsen på appvinduet til højre"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimer eller gendan vinduesstørrelse"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Åbn menu"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Åbn <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Juster størrelsen på vinduet til venstre"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Juster størrelsen på vinduet til højre"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimer eller gendan vinduesstørrelse"</string>
diff --git a/libs/WindowManager/Shell/res/values-de/strings.xml b/libs/WindowManager/Shell/res/values-de/strings.xml
index 567dd7a..3762b4b 100644
--- a/libs/WindowManager/Shell/res/values-de/strings.xml
+++ b/libs/WindowManager/Shell/res/values-de/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"App-Ziehpunkt"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"App-Symbol"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Vollbild"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Desktop-Ansicht"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Splitscreen"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Mehr"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Frei schwebend"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Seitenverhältnis ändern"</string>
     <string name="close_text" msgid="4986518933445178928">"Schließen"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Menü schließen"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (Desktop-Ansicht)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Bildschirm maximieren"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Größe ändern"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Die App kann nicht hierher verschoben werden"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Größe des App-Fensters links anpassen"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Größe des App-Fensters rechts anpassen"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Fenstergröße maximieren oder wiederherstellen"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Menü öffnen"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> aktivieren"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Fenstergröße nach links anpassen"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Fenstergröße nach rechts anpassen"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Fenstergröße maximieren oder wiederherstellen"</string>
diff --git a/libs/WindowManager/Shell/res/values-el/strings.xml b/libs/WindowManager/Shell/res/values-el/strings.xml
index 489a4ce..8e715d5 100644
--- a/libs/WindowManager/Shell/res/values-el/strings.xml
+++ b/libs/WindowManager/Shell/res/values-el/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Λαβή εφαρμογής"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Εικονίδιο εφαρμογής"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Πλήρης οθόνη"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Προβολή για υπολογιστές"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Διαχωρισμός οθόνης"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Περισσότερα"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Κινούμενο"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Αλλαγή λόγου διαστάσεων"</string>
     <string name="close_text" msgid="4986518933445178928">"Κλείσιμο"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Κλείσιμο μενού"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (Προβολή για υπολογιστές)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Μεγιστοποίηση οθόνης"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Αλλαγή μεγέθους"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Δεν είναι δυνατή η μετακίνηση της εφαρμογής εδώ"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Αλλαγή μεγέθους παραθύρου εφαρμογής αριστερά"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Αλλαγή μεγέθους παραθύρου εφαρμογής δεξιά"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Μεγιστοποίηση ή επαναφορά μεγέθους παραθύρου"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Άνοιγμα μενού"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Εισαγωγή <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Αλλαγή μεγέθους παραθύρου προς τα αριστερά"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Αλλαγή μεγέθους παραθύρου προς τα δεξιά"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Μεγιστοποίηση ή επαναφορά μεγέθους παραθύρου"</string>
diff --git a/libs/WindowManager/Shell/res/values-en-rAU/strings.xml b/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
index 1a3d422..75d2bf1 100644
--- a/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"App handle"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"App icon"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Full screen"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Desktop view"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Split screen"</string>
     <string name="more_button_text" msgid="3655388105592893530">"More"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Float"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Change aspect ratio"</string>
     <string name="close_text" msgid="4986518933445178928">"Close"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Close menu"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (desktop view)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maximise screen"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Resize"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"App can\'t be moved here"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Resize app window left"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Resize app window right"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximise or restore window size"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Open menu"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Enter <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Resize window to left"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Resize window to right"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximise or restore window size"</string>
diff --git a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
index 1a3d422..75d2bf1 100644
--- a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"App handle"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"App icon"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Full screen"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Desktop view"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Split screen"</string>
     <string name="more_button_text" msgid="3655388105592893530">"More"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Float"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Change aspect ratio"</string>
     <string name="close_text" msgid="4986518933445178928">"Close"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Close menu"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (desktop view)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maximise screen"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Resize"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"App can\'t be moved here"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Resize app window left"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Resize app window right"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximise or restore window size"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Open menu"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Enter <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Resize window to left"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Resize window to right"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximise or restore window size"</string>
diff --git a/libs/WindowManager/Shell/res/values-en-rIN/strings.xml b/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
index 1a3d422..75d2bf1 100644
--- a/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"App handle"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"App icon"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Full screen"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Desktop view"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Split screen"</string>
     <string name="more_button_text" msgid="3655388105592893530">"More"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Float"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Change aspect ratio"</string>
     <string name="close_text" msgid="4986518933445178928">"Close"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Close menu"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (desktop view)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maximise screen"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Resize"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"App can\'t be moved here"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Resize app window left"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Resize app window right"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximise or restore window size"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Open menu"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Enter <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Resize window to left"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Resize window to right"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximise or restore window size"</string>
diff --git a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
index 93aa1b6..c358ae4 100644
--- a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Controlador de la app"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Ícono de la app"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Pantalla completa"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Vista para computadoras de escritorio"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Pantalla dividida"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Más"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Flotante"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Cambiar relación de aspecto"</string>
     <string name="close_text" msgid="4986518933445178928">"Cerrar"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Cerrar menú"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (vista para computadoras de escritorio)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maximizar pantalla"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Cambiar el tamaño"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"No se puede mover la app aquí"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ajustar el tamaño de la ventana de la app hacia la izquierda"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ajustar el tamaño de la ventana de la app hacia la derecha"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizar o restablecer el tamaño de la ventana"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Abrir el menú"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Ingresar a <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ajustar el tamaño de la ventana hacia la izquierda"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ajustar el tamaño de la ventana hacia la derecha"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizar o restablecer el tamaño de la ventana"</string>
diff --git a/libs/WindowManager/Shell/res/values-es/strings.xml b/libs/WindowManager/Shell/res/values-es/strings.xml
index 27c5b80..275d88d 100644
--- a/libs/WindowManager/Shell/res/values-es/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Controlador de la aplicación"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Icono de la aplicación"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Pantalla completa"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Vista para ordenadores"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Pantalla dividida"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Más"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Flotante"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Cambiar relación de aspecto"</string>
     <string name="close_text" msgid="4986518933445178928">"Cerrar"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Cerrar menú"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (vista para ordenadores)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maximizar pantalla"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Cambiar tamaño"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"La aplicación no se puede mover aquí"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Cambiar tamaño de la ventana de la aplicación izquierda"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Cambiar tamaño de la ventana de la aplicación derecha"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizar o restaurar tamaño de la ventana"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Abrir menú"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Introducir <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Cambiar tamaño de la ventana a la izquierda"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Cambiar tamaño de la ventana a la derecha"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizar o restaurar tamaño de la ventana"</string>
diff --git a/libs/WindowManager/Shell/res/values-et/strings.xml b/libs/WindowManager/Shell/res/values-et/strings.xml
index c8ab83e..3a330b3 100644
--- a/libs/WindowManager/Shell/res/values-et/strings.xml
+++ b/libs/WindowManager/Shell/res/values-et/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Rakenduse element"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Rakenduse ikoon"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Täisekraan"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Arvutivaade"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Jagatud ekraanikuva"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Rohkem"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Hõljuv"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Kuvasuhte muutmine"</string>
     <string name="close_text" msgid="4986518933445178928">"Sule"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Sule menüü"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (arvutivaade)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Kuva täisekraanil"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Suuruse muutmine"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Rakendust ei saa siia teisaldada"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Rakenduse akna suuruse muutmine vasakul"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Rakenduse akna suuruse muutmine paremal"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Akna suuruse maksimeerimine või taastamine"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Menüü avamine"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Režiimi <xliff:g id="WINDOWING_MODE">%1$s</xliff:g> sisenemine"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Akna suuruse muutmine, vasakule"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Akna suuruse muutmine, paremale"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Akna suuruse maksimeerimine või taastamine"</string>
diff --git a/libs/WindowManager/Shell/res/values-eu/strings.xml b/libs/WindowManager/Shell/res/values-eu/strings.xml
index abd92ab..c0766a2 100644
--- a/libs/WindowManager/Shell/res/values-eu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-eu/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Aplikazioaren kontrol-puntua"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Aplikazioaren ikonoa"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Pantaila osoa"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Ordenagailuetarako ikuspegia"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Pantaila zatitzea"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Gehiago"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Leiho gainerakorra"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Aldatu aspektu-erlazioa"</string>
     <string name="close_text" msgid="4986518933445178928">"Itxi"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Itxi menua"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (ordenagailuetarako ikuspegia)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Handitu pantaila"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Aldatu tamaina"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Aplikazioa ezin da hona ekarri"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Aldatu aplikazioaren leihoaren tamaina eta eraman ezkerrera"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Aldatu aplikazioaren leihoaren tamaina eta eraman eskuinera"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizatu edo leheneratu leihoaren tamaina"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Ireki menua"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Idatzi <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Aldatu leihoaren tamaina eta eraman ezkerrera"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Aldatu leihoaren tamaina eta eraman eskuinera"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizatu edo leheneratu leihoaren tamaina"</string>
diff --git a/libs/WindowManager/Shell/res/values-fa/strings.xml b/libs/WindowManager/Shell/res/values-fa/strings.xml
index 651635a..ace8b33 100644
--- a/libs/WindowManager/Shell/res/values-fa/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fa/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"دستگیره برنامه"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"نماد برنامه"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"تمام‌صفحه"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"نمای ویژه رایانه رومیزی"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"صفحهٔ دونیمه"</string>
     <string name="more_button_text" msgid="3655388105592893530">"بیشتر"</string>
     <string name="float_button_text" msgid="9221657008391364581">"شناور"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"تغییر نسبت ابعادی"</string>
     <string name="close_text" msgid="4986518933445178928">"بستن"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"بستن منو"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"‫<xliff:g id="APP_NAME">%1$s</xliff:g> (نمای ویژه رایانه رومیزی)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"بزرگ کردن صفحه"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"تغییر اندازه"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"برنامه را نمی‌توان به اینجا منتقل کرد"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"تغییر اندازه پنجره برنامه در چپ"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"تغییر اندازه پنجره برنامه در راست"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"بیشینه‌سازی یا بازیابی اندازه پنجره"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"باز کردن منو"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"وارد شدن به <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"تغییر اندازه پنجره به چپ"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"تغییر اندازه پنجره به راست"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"بیشینه‌سازی یا بازیابی اندازه پنجره"</string>
diff --git a/libs/WindowManager/Shell/res/values-fi/strings.xml b/libs/WindowManager/Shell/res/values-fi/strings.xml
index 47e9ea3..aed3fdc 100644
--- a/libs/WindowManager/Shell/res/values-fi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fi/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Sovelluksen tunnus"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Sovelluskuvake"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Koko näyttö"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Tietokonenäkymä"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Jaettu näyttö"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Lisää"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Kelluva ikkuna"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Vaihda kuvasuhdetta"</string>
     <string name="close_text" msgid="4986518933445178928">"Sulje"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Sulje valikko"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (tietokonenäkymä)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Suurenna näyttö"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Muuta kokoa"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Sovellusta ei voi siirtää tänne"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Muuta vasemmanpuoleisen sovellusikkunan kokoa"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Muuta oikeanpuoleisen sovellusikkunan kokoa"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Suurenna ikkuna tai palauta ikkunan koko"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Avaa valikko"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Avaa <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Muuta vasemmanpuoleisen ikkunan kokoa"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Muuta vasemmanpuoleisen ikkunan kokoa"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Suurenna ikkuna tai palauta ikkunan koko"</string>
diff --git a/libs/WindowManager/Shell/res/values-fr/strings.xml b/libs/WindowManager/Shell/res/values-fr/strings.xml
index 038a90d..377413e 100644
--- a/libs/WindowManager/Shell/res/values-fr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fr/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Poignée de l\'appli"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Icône d\'application"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Plein écran"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Affichage sur ordinateur"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Écran partagé"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Plus"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Flottante"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Modifier le format"</string>
     <string name="close_text" msgid="4986518933445178928">"Fermer"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Fermer le menu"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (affichage sur ordinateur)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Mettre en plein écran"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Redimensionner"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Impossible de déplacer l\'appli ici"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Redimensionner la fenêtre de l\'appli vers la gauche"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Redimensionner la fenêtre de l\'appli vers la droite"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Agrandir ou restaurer la taille de la fenêtre"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Ouvrir le menu"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Saisir l’<xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Redimensionner la fenêtre vers la gauche"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Redimensionner la fenêtre vers la droite"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Agrandir ou restaurer la taille de la fenêtre"</string>
diff --git a/libs/WindowManager/Shell/res/values-gl/strings.xml b/libs/WindowManager/Shell/res/values-gl/strings.xml
index a2a6b3e..3022f62 100644
--- a/libs/WindowManager/Shell/res/values-gl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-gl/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Controlador da aplicación"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Icona de aplicación"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Pantalla completa"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Vista para ordenadores"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Pantalla dividida"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Máis"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Flotante"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Cambiar a proporción"</string>
     <string name="close_text" msgid="4986518933445178928">"Pechar"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Pechar o menú"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (vista para ordenadores)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maximizar pantalla"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Cambiar tamaño"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Non se pode mover aquí a aplicación"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Axustar o tamaño da ventá da aplicación á esquerda"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Axustar o tamaño da ventá da aplicación á dereita"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizar ou restaurar o tamaño da ventá"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Abrir o menú"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Entrar en <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Axustar o tamaño da ventá á esquerda"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Axustar o tamaño da ventá á dereita"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizar ou restaurar o tamaño da ventá"</string>
diff --git a/libs/WindowManager/Shell/res/values-hi/strings.xml b/libs/WindowManager/Shell/res/values-hi/strings.xml
index f1f2a0a..945bc93 100644
--- a/libs/WindowManager/Shell/res/values-hi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hi/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"ऐप्लिकेशन का हैंडल"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"ऐप्लिकेशन आइकॉन"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"फ़ुलस्क्रीन"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"डेस्कटॉप व्यू"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"स्प्लिट स्क्रीन मोड"</string>
     <string name="more_button_text" msgid="3655388105592893530">"ज़्यादा देखें"</string>
     <string name="float_button_text" msgid="9221657008391364581">"फ़्लोट"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बदलें"</string>
     <string name="close_text" msgid="4986518933445178928">"बंद करें"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"मेन्यू बंद करें"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (डेस्कटॉप व्यू)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"स्क्रीन को बड़ा करें"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"साइज़ बदलें"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"ऐप्लिकेशन को यहां मूव नहीं किया जा सकता"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ऐप्लिकेशन विंडो का साइज़ बाईं ओर से बदलें"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ऐप्लिकेशन विंडो का साइज़ दाईं ओर से बदलें"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"विंडो को बड़ा करें या उसका साइज़ पहले जैसा करें"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"मेन्यू खोलें"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> में जाएं"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"विंडो का साइज़ बाईं ओर से बदलें"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"विंडो का साइज़ दाईं ओर से बढ़ाएं"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"विंडो को बड़ा करें या उसका साइज़ पहले जैसा करें"</string>
diff --git a/libs/WindowManager/Shell/res/values-hu/strings.xml b/libs/WindowManager/Shell/res/values-hu/strings.xml
index 5d52c48..a7aedc4 100644
--- a/libs/WindowManager/Shell/res/values-hu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hu/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"App fogópontja"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Alkalmazásikon"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Teljes képernyő"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Asztali nézet"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Osztott képernyő"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Továbbiak"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Lebegő"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Méretarány módosítása"</string>
     <string name="close_text" msgid="4986518933445178928">"Bezárás"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Menü bezárása"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (Asztali nézet)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Képernyő méretének maximalizálása"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Átméretezés"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Az alkalmazás nem helyezhető át ide"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Alkalmazásablak átméretezése balra"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Alkalmazásablak átméretezése jobbra"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Ablak teljes méretre állítása vagy visszaállítása"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Menü megnyitása"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Belépés <xliff:g id="WINDOWING_MODE">%1$s</xliff:g> módba"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ablak átméretezése balra"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ablak átméretezése jobbra"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Ablak teljes méretre állítása vagy visszaállítása"</string>
diff --git a/libs/WindowManager/Shell/res/values-hy/strings.xml b/libs/WindowManager/Shell/res/values-hy/strings.xml
index b7b4422..00b2f91 100644
--- a/libs/WindowManager/Shell/res/values-hy/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hy/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Հավելվածի կեղծանուն"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Հավելվածի պատկերակ"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Լիաէկրան"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Համակարգչային տարբերակ"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Տրոհված էկրան"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Ավելին"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Լողացող պատուհան"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Փոխել կողմերի հարաբերակցությունը"</string>
     <string name="close_text" msgid="4986518933445178928">"Փակել"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Փակել ընտրացանկը"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (համակարգչային տարբերակ)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Ծավալել էկրանը"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Փոխել չափը"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Հավելվածը հնարավոր չէ տեղափոխել այստեղ"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ձգել հավելվածի պատուհանը դեպի ձախ"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ձգել հավելվածի պատուհանը դեպի աջ"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Ծավալել կամ վերականգնել պատուհանի չափսը"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Բացեք ընտրացանկը"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Մուտքագրեք <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ձգել պատուհանը դեպի ձախ"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ձգել պատուհանը դեպի աջ"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Ծավալել կամ վերականգնել պատուհանի չափսը"</string>
diff --git a/libs/WindowManager/Shell/res/values-in/strings.xml b/libs/WindowManager/Shell/res/values-in/strings.xml
index a3ed7c3..54ccf84 100644
--- a/libs/WindowManager/Shell/res/values-in/strings.xml
+++ b/libs/WindowManager/Shell/res/values-in/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Penanganan aplikasi"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Ikon Aplikasi"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Layar Penuh"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Tampilan Desktop"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Layar Terpisah"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Lainnya"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Mengambang"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Ubah rasio aspek"</string>
     <string name="close_text" msgid="4986518933445178928">"Tutup"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Tutup Menu"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (Tampilan Desktop)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Perbesar Layar"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Ubah ukuran"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Aplikasi tidak dapat dipindahkan ke sini"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ubah ukuran jendela aplikasi ke kiri"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ubah ukuran jendela aplikasi ke kanan"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimalkan atau pulihkan ukuran jendela"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Buka Menu"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Masuk ke <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ubah ukuran jendela ke kiri"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ubah ukuran jendela ke kanan"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimalkan atau pulihkan ukuran jendela"</string>
diff --git a/libs/WindowManager/Shell/res/values-is/strings.xml b/libs/WindowManager/Shell/res/values-is/strings.xml
index e8ecad1..56b1790 100644
--- a/libs/WindowManager/Shell/res/values-is/strings.xml
+++ b/libs/WindowManager/Shell/res/values-is/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Handfang forrits"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Tákn forrits"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Allur skjárinn"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Tölvuútgáfa"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Skjáskipting"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Meira"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Reikult"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Breyta myndhlutfalli"</string>
     <string name="close_text" msgid="4986518933445178928">"Loka"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Loka valmynd"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (tölvuútgáfa)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Stækka skjá"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Breyta stærð"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Ekki er hægt að færa forritið hingað"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Breyta stærð forritsglugga til vinstri"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Breyta stærð forritsglugga til hægri"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Hámarka eða endurheimta stærð glugga"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Opna valmynd"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Opna <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Breyta stærð glugga til vinstri"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Breyta stærð glugga til hægri"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Hámarka eða endurheimta stærð glugga"</string>
diff --git a/libs/WindowManager/Shell/res/values-it/strings.xml b/libs/WindowManager/Shell/res/values-it/strings.xml
index 630e9ee..30159c7 100644
--- a/libs/WindowManager/Shell/res/values-it/strings.xml
+++ b/libs/WindowManager/Shell/res/values-it/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Punto di manipolazione app"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Icona dell\'app"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Schermo intero"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Visualizzazione desktop"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Schermo diviso"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Altro"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Mobile"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Cambia proporzioni"</string>
     <string name="close_text" msgid="4986518933445178928">"Chiudi"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Chiudi il menu"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (visualizzazione desktop)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Massimizza schermo"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Ridimensiona"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Impossibile spostare l\'app qui"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ridimensiona la finestra dell\'app a sinistra"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ridimensiona la finestra dell\'app a destra"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Ingrandisci o ripristina le dimensioni della finestra"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Apri menu"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Attiva <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ridimensiona la finestra a sinistra"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ridimensiona la finestra a destra"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Ingrandisci o ripristina le dimensioni della finestra"</string>
diff --git a/libs/WindowManager/Shell/res/values-iw/strings.xml b/libs/WindowManager/Shell/res/values-iw/strings.xml
index 102d646..5a19f14 100644
--- a/libs/WindowManager/Shell/res/values-iw/strings.xml
+++ b/libs/WindowManager/Shell/res/values-iw/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"נקודת אחיזה לאפליקציה"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"סמל האפליקציה"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"מסך מלא"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"תצוגה למחשב"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"מסך מפוצל"</string>
     <string name="more_button_text" msgid="3655388105592893530">"עוד"</string>
     <string name="float_button_text" msgid="9221657008391364581">"בלונים"</string>
@@ -133,12 +132,11 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"שינוי יחס הגובה-רוחב"</string>
     <string name="close_text" msgid="4986518933445178928">"סגירה"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"סגירת התפריט"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"‫<xliff:g id="APP_NAME">%1$s</xliff:g> (תצוגה למחשב)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"הגדלת המסך"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"שינוי הגודל"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"לא ניתן להעביר את האפליקציה לכאן"</string>
-    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"סוחף"</string>
+    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"הטמעה"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"שחזור"</string>
     <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"הגדלה"</string>
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"שחזור"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"שינוי הגודל של חלון האפליקציה שמשמאל"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"שינוי הגודל של חלון האפליקציה שמימין"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"שחזור של גודל החלון או הגדלת החלון"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"פתיחת התפריט"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"כניסה אל <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"שינוי גודל החלון שמשמאל"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"שינוי גודל החלון שמימין"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"שחזור של גודל החלון או הגדלת החלון"</string>
diff --git a/libs/WindowManager/Shell/res/values-kk/strings.xml b/libs/WindowManager/Shell/res/values-kk/strings.xml
index 31a0153..be9e9c1 100644
--- a/libs/WindowManager/Shell/res/values-kk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-kk/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Қолданба идентификаторы"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Қолданба белгішесі"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Толық экран"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Компьютерлік нұсқа"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Экранды бөлу"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Қосымша"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Қалқыма"</string>
@@ -133,12 +132,11 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Арақатынасты өзгерту"</string>
     <string name="close_text" msgid="4986518933445178928">"Жабу"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Мәзірді жабу"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (компьютерлік нұсқа)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Экранды ұлғайту"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Өлшемін өзгерту"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Қолданба бұл жерге қойылмайды."</string>
-    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Әсерлі"</string>
+    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Иммерсивтік әсер"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"Қалпына келтіру"</string>
     <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Жаю"</string>
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Қалпына келтіру"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Қолданба терезесінің өлшемін сол жақтан өзгерту"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Қолданба терезесінің өлшемін оң жақтан өзгерту"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Терезе өлшемін ұлғайту не қалпына келтіру"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Мәзірді ашу"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> режиміне өту"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Терезе өлшемін сол жаққа өзгерту"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Терезе өлшемін оң жаққа өзгерту"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Терезе өлшемін ұлғайту не қалпына келтіру"</string>
diff --git a/libs/WindowManager/Shell/res/values-km/strings.xml b/libs/WindowManager/Shell/res/values-km/strings.xml
index 9a7db67..c835650 100644
--- a/libs/WindowManager/Shell/res/values-km/strings.xml
+++ b/libs/WindowManager/Shell/res/values-km/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"ឈ្មោះអ្នកប្រើប្រាស់កម្មវិធី"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"រូប​កម្មវិធី"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"អេក្រង់​ពេញ"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"ទិដ្ឋភាព​លើកុំព្យូទ័រ"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"មុខងារ​បំបែក​អេក្រង់"</string>
     <string name="more_button_text" msgid="3655388105592893530">"ច្រើនទៀត"</string>
     <string name="float_button_text" msgid="9221657008391364581">"អណ្ដែត"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"ប្ដូរ​​សមាមាត្រ"</string>
     <string name="close_text" msgid="4986518933445178928">"បិទ"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"បិទ​ម៉ឺនុយ"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (ទិដ្ឋភាព​លើកុំព្យូទ័រ)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"ពង្រីកអេក្រង់"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"ប្ដូរ​ទំហំ"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"មិនអាចផ្លាស់ទីកម្មវិធីមកទីនេះបានទេ"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ប្ដូរទំហំវិនដូកម្មវិធីទៅឆ្វេង"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ប្ដូរទំហំវិនដូកម្មវិធីទៅស្ដាំ"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ស្ដារ ឬបង្កើនទំហំវិនដូជាអតិបរមា"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"បើកម៉ឺនុយ"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"ចូលទៅ<xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ប្ដូរទំហំវិនដូទៅឆ្វេង"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ប្ដូរទំហំវិនដូទៅស្ដាំ"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ស្ដារ ឬបង្កើនទំហំវិនដូជាអតិបរមា"</string>
diff --git a/libs/WindowManager/Shell/res/values-kn/strings.xml b/libs/WindowManager/Shell/res/values-kn/strings.xml
index e9fa2cf..143208a 100644
--- a/libs/WindowManager/Shell/res/values-kn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-kn/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"ಆ್ಯಪ್ ಹ್ಯಾಂಡಲ್"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"ಆ್ಯಪ್ ಐಕಾನ್"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"ಫುಲ್‌ಸ್ಕ್ರೀನ್"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"ಡೆಸ್ಕ್‌ಟಾಪ್ ವೀಕ್ಷಣೆ"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್"</string>
     <string name="more_button_text" msgid="3655388105592893530">"ಇನ್ನಷ್ಟು"</string>
     <string name="float_button_text" msgid="9221657008391364581">"ಫ್ಲೋಟ್"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"ದೃಶ್ಯಾನುಪಾತವನ್ನು ಬದಲಾಯಿಸಿ"</string>
     <string name="close_text" msgid="4986518933445178928">"ಮುಚ್ಚಿ"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"ಮೆನು ಮುಚ್ಚಿ"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (ಡೆಸ್ಕ್‌ಟಾಪ್ ವೀಕ್ಷಣೆ)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"ಸ್ಕ್ರೀನ್ ಅನ್ನು ಮ್ಯಾಕ್ಸಿಮೈಸ್ ಮಾಡಿ"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"ಮರುಗಾತ್ರಗೊಳಿಸಿ"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"ಆ್ಯಪ್ ಅನ್ನು ಇಲ್ಲಿಗೆ ಸರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ಮರುಗಾತ್ರಗೊಳಿಸಿ ಆ್ಯಪ್ ವಿಂಡೋ ಎಡ"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ಮರುಗಾತ್ರಗೊಳಿಸಿ ಆ್ಯಪ್ ವಿಂಡೋ ಬಲ"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ವಿಂಡೋ ಗಾತ್ರವನ್ನು ಗರಿಷ್ಠಗೊಳಿಸಿ ಅಥವಾ ಮರುಸ್ಥಾಪಿಸಿ"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"ಮೆನು ತೆರೆಯಿರಿ"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> ಅನ್ನು ನಮೂದಿಸಿ"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ಮರುಗಾತ್ರಗೊಳಿಸಿ ವಿಂಡೋವನ್ನು ಎಡಕ್ಕೆ ಸರಿಸಿ"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ಮರುಗಾತ್ರಗೊಳಿಸಿ ವಿಂಡೋವನ್ನು ಬಲಕ್ಕೆ ಸರಿಸಿ"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ವಿಂಡೋ ಗಾತ್ರವನ್ನು ಗರಿಷ್ಠಗೊಳಿಸಿ ಅಥವಾ ಮರುಸ್ಥಾಪಿಸಿ"</string>
diff --git a/libs/WindowManager/Shell/res/values-ky/strings.xml b/libs/WindowManager/Shell/res/values-ky/strings.xml
index 3716741..fe1bcd4 100644
--- a/libs/WindowManager/Shell/res/values-ky/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ky/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Колдонмонун маркери"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Колдонмонун сүрөтчөсү"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Толук экран"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Компьютердик версия"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Экранды бөлүү"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Дагы"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Калкыма"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Тараптардын катнашын өзгөртүү"</string>
     <string name="close_text" msgid="4986518933445178928">"Жабуу"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Менюну жабуу"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (компьютердик версия)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Экранды чоңойтуу"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Өлчөмүн өзгөртүү"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Колдонмону бул жерге жылдырууга болбойт"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Колдонмонун терезесинин өлчөмүн солго өзгөртүү"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Колдонмонун терезесинин өлчөмүн оңго өзгөртүү"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Терезенин өлчөмүн чоңойтуу же калыбына келтирүү"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Менюну ачуу"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> режимине өтүү"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Терезенин өлчөмүн солго өзгөртүү"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Терезенин өлчөмүн оңго өзгөртүү"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Терезенин өлчөмүн чоңойтуу же калыбына келтирүү"</string>
diff --git a/libs/WindowManager/Shell/res/values-lo/strings.xml b/libs/WindowManager/Shell/res/values-lo/strings.xml
index a1d9d29..dd9df35 100644
--- a/libs/WindowManager/Shell/res/values-lo/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lo/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"ຊື່ຜູ້ໃຊ້ແອັບ"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"ໄອຄອນແອັບ"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"ເຕັມຈໍ"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"ມຸມມອງຢູ່ເດັສທັອບ"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"ແບ່ງໜ້າຈໍ"</string>
     <string name="more_button_text" msgid="3655388105592893530">"ເພີ່ມເຕີມ"</string>
     <string name="float_button_text" msgid="9221657008391364581">"ລອຍ"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"ປ່ຽນອັດຕາສ່ວນຮູບ"</string>
     <string name="close_text" msgid="4986518933445178928">"ປິດ"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"ປິດເມນູ"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (ມຸມມອງຢູ່ເດັສທັອບ)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"ປັບຈໍໃຫຍ່ສຸດ"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"ປັບຂະໜາດ"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"ບໍ່ສາມາດຍ້າຍແອັບມາບ່ອນນີ້ໄດ້"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ປັບຂະໜາດໜ້າຈໍແອັບໄປທາງຊ້າຍ"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ປັບຂະໜາດໜ້າຈໍແອັບໄປທາງຂວາ"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ຂະຫຍາຍ ຫຼື ຄືນຄ່າຂະໜາດໜ້າຈໍ"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"ເປີດເມນູ"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"ເຂົ້າສູ່ <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ປັບຂະໜາດໜ້າຈໍໄປທາງຊ້າຍ"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ປັບຂະໜາດໜ້າຈໍໄປທາງຂວາ"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ຂະຫຍາຍ ຫຼື ຄືນຄ່າຂະໜາດໜ້າຈໍ"</string>
diff --git a/libs/WindowManager/Shell/res/values-lv/strings.xml b/libs/WindowManager/Shell/res/values-lv/strings.xml
index 3fcbbe2..8c4360b 100644
--- a/libs/WindowManager/Shell/res/values-lv/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lv/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Lietotnes turis"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Lietotnes ikona"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Pilnekrāna režīms"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Skats datorā"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Sadalīt ekrānu"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Vairāk"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Peldošs"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Mainīt malu attiecību"</string>
     <string name="close_text" msgid="4986518933445178928">"Aizvērt"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Aizvērt izvēlni"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (skats datorā)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maksimizēt ekrānu"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Mainīt lielumu"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Lietotni nevar pārvietot šeit."</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Mainīt lietotnes loga lielumu uz kreiso pusi"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Mainīt lietotnes loga lielumu uz labo pusi"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimizēt vai atjaunot loga lielumu"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Atvērt izvēlni"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Atvērt: <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Mainīt loga lielumu uz kreiso pusi"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Mainīt loga lielumu uz labo pusi"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimizēt vai atjaunot loga lielumu"</string>
diff --git a/libs/WindowManager/Shell/res/values-mk/strings.xml b/libs/WindowManager/Shell/res/values-mk/strings.xml
index 76b62ec1..653e66a 100644
--- a/libs/WindowManager/Shell/res/values-mk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mk/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Прекар на апликацијата"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Икона на апликацијата"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Цел екран"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Приказ на компјутер"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Поделен екран"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Повеќе"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Лебдечко"</string>
@@ -133,10 +132,9 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Промени го соодносот"</string>
     <string name="close_text" msgid="4986518933445178928">"Затворете"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Затворете го менито"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (приказ на компјутер)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Максимизирај го екранот"</string>
-    <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Промени ја гол."</string>
+    <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Смени големина"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Апликацијата не може да се премести овде"</string>
     <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Реалистично"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"Врати"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Променете ја големината на прозорецот на апликацијата одлево"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Променете ја големината на прозорецот на апликацијата оддесно"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Максимизирајте или вратете ја големината на прозорецот"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Отворете го менито"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Отворете <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Променете ја големината на прозорецот налево"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Променете ја големината на прозорецот надесно"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Максимизирајте или вратете ја големината на прозорецот"</string>
diff --git a/libs/WindowManager/Shell/res/values-ml/strings.xml b/libs/WindowManager/Shell/res/values-ml/strings.xml
index d9d0cf9..8887665 100644
--- a/libs/WindowManager/Shell/res/values-ml/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ml/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"ആപ്പ് ഹാൻഡിൽ"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"ആപ്പ് ഐക്കൺ"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"പൂർണ്ണസ്ക്രീൻ"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"ഡെസ്‌ക്ടോപ്പ് വ്യൂ"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"സ്‌ക്രീൻ വിഭജനം"</string>
     <string name="more_button_text" msgid="3655388105592893530">"കൂടുതൽ"</string>
     <string name="float_button_text" msgid="9221657008391364581">"ഫ്ലോട്ട്"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"വീക്ഷണ അനുപാതം മാറ്റുക"</string>
     <string name="close_text" msgid="4986518933445178928">"അടയ്ക്കുക"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"മെനു അടയ്ക്കുക"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (ഡെസ്‌ക്ടോപ്പ് വ്യൂ)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"സ്‌ക്രീൻ വലുതാക്കുക"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"വലുപ്പം മാറ്റുക"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"ആപ്പ് ഇവിടേക്ക് നീക്കാനാകില്ല"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ഇടത് ആപ്പ് വിൻഡോ വലുപ്പം മാറ്റുക"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"വലത് ആപ്പ് വിൻഡോ വലുപ്പം മാറ്റുക"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"വിന്‍ഡോ വലുപ്പം വലുതാക്കുക അല്ലെങ്കിൽ പഴയത് പുനഃസ്ഥാപിക്കുക"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"മെനു തുറക്കുക"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> നൽകുക"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ഇടത്തേക്ക് ആപ്പ് വിൻഡോ വലുപ്പം മാറ്റുക"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"വലത്തേക്ക് ആപ്പ് വിൻഡോ വലുപ്പം മാറ്റുക"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"വിന്‍ഡോ വലുപ്പം വലുതാക്കുക അല്ലെങ്കിൽ പഴയത് പുനഃസ്ഥാപിക്കുക"</string>
diff --git a/libs/WindowManager/Shell/res/values-mn/strings.xml b/libs/WindowManager/Shell/res/values-mn/strings.xml
index 875ecea..df922e0 100644
--- a/libs/WindowManager/Shell/res/values-mn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mn/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Аппын бариул"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Aппын дүрс тэмдэг"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Бүтэн дэлгэц"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Дэлгэц дээр харагдах байдал"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Дэлгэцийг хуваах"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Бусад"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Хөвөгч"</string>
@@ -129,12 +128,11 @@
     <string name="open_in_browser_text" msgid="9181692926376072904">"Хөтчид нээх"</string>
     <string name="open_in_app_text" msgid="2874590745116268525">"Аппад нээх"</string>
     <string name="new_window_text" msgid="6318648868380652280">"Шинэ цонх"</string>
-    <string name="manage_windows_text" msgid="5567366688493093920">"Windows-г удирдах"</string>
+    <string name="manage_windows_text" msgid="5567366688493093920">"Цонхнуудыг удирдах"</string>
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Аспектын харьцааг өөрчлөх"</string>
     <string name="close_text" msgid="4986518933445178928">"Хаах"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Цэсийг хаах"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (дэлгэц дээр харагдах байдал)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Дэлгэцийг томруулах"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Хэмжээг өөрчлөх"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Аппыг ийш зөөх боломжгүй"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Аппын цонхны хэмжээг зүүн тал руу өөрчлөх"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Аппын цонхны хэмжээг баруун тал руу өөрчлөх"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Цонхны хэмжээг томруулах эсвэл сэргээх"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Цэсийг нээх"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g>-д орох"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Цонхны хэмжээг зүүн тал руу өөрчлөх"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Цонхны хэмжээг баруун тал руу өөрчлөх"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Цонхны хэмжээг томруулах эсвэл сэргээх"</string>
diff --git a/libs/WindowManager/Shell/res/values-mr/strings.xml b/libs/WindowManager/Shell/res/values-mr/strings.xml
index 73c16e6..f316311 100644
--- a/libs/WindowManager/Shell/res/values-mr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mr/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"अ‍ॅपचे हँडल"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"अ‍ॅप आयकन"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"फुलस्‍क्रीन"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"डेस्कटॉप दृश्य"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"स्प्लिट स्क्रीन"</string>
     <string name="more_button_text" msgid="3655388105592893530">"आणखी"</string>
     <string name="float_button_text" msgid="9221657008391364581">"फ्लोट"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"आस्पेक्ट रेशो बदला"</string>
     <string name="close_text" msgid="4986518933445178928">"बंद करा"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"मेनू बंद करा"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (डेस्कटॉप दृश्य)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"स्क्रीन मोठी करा"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"आकार बदला"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"अ‍ॅप इथे हलवू शकत नाही"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"अ‍ॅप विंडोचा डावीकडून आकार बदला"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"अ‍ॅप विंडोचा उजवीकडून आकार बदला"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"विंडोचा आकार मोठा करा किंवा रिस्टोअर करा"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"मेनू उघडा"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> एंटर करा"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"अ‍ॅप विंडोचा डावीकडे आकार बदला"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"अ‍ॅप विंडोचा उजवीकडे आकार बदला"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"विंडोचा आकार मोठा करा किंवा रिस्टोअर करा"</string>
diff --git a/libs/WindowManager/Shell/res/values-my/strings.xml b/libs/WindowManager/Shell/res/values-my/strings.xml
index be7cca5..8697af8 100644
--- a/libs/WindowManager/Shell/res/values-my/strings.xml
+++ b/libs/WindowManager/Shell/res/values-my/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"အက်ပ်သုံးသူအမည်"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"အက်ပ်သင်္ကေတ"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"ဖန်သားပြင်အပြည့်"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"ဒက်စ်တော့ မြင်ကွင်း"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"မျက်နှာပြင် ခွဲ၍ပြသရန်"</string>
     <string name="more_button_text" msgid="3655388105592893530">"ပိုပြပါ"</string>
     <string name="float_button_text" msgid="9221657008391364581">"မျှောရန်"</string>
@@ -133,12 +132,11 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"အချိုးအစား ပြောင်းရန်"</string>
     <string name="close_text" msgid="4986518933445178928">"ပိတ်ရန်"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"မီနူး ပိတ်ရန်"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (ဒက်စ်တော့ မြင်ကွင်း)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"စခရင်ကို ချဲ့မည်"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"အရွယ်ပြင်ရန်"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"အက်ပ်ကို ဤနေရာသို့ ရွှေ့၍မရပါ"</string>
-    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"သုံးဘက်မြင်"</string>
+    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"ဘက်ပေါင်းစုံ"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"ပြန်ပြောင်းရန်"</string>
     <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"ချဲ့ရန်"</string>
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"ပြန်ပြောင်းရန်"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"အက်ပ်ဝင်းဒိုး ဘယ်ဘက်ကို အရွယ်ပြင်ရန်"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"အက်ပ်ဝင်းဒိုး ညာဘက်ကို အရွယ်ပြင်ရန်"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ဝင်းဒိုးအရွယ်အစားကို ချဲ့ရန် (သို့) ပြန်ပြောင်းရန်"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"မီနူးဖွင့်ရန်"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> ကို ဝင်ရန်"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ဝင်းဒိုးကို ဘယ်ဘက်သို့ အရွယ်ပြင်ရန်"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ဝင်းဒိုးကို ညာဘက်သို့ အရွယ်ပြင်ရန်"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ဝင်းဒိုးအရွယ်အစားကို ချဲ့ရန် (သို့) ပြန်ပြောင်းရန်"</string>
diff --git a/libs/WindowManager/Shell/res/values-nb/strings.xml b/libs/WindowManager/Shell/res/values-nb/strings.xml
index c213b7b..43de636 100644
--- a/libs/WindowManager/Shell/res/values-nb/strings.xml
+++ b/libs/WindowManager/Shell/res/values-nb/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Apphåndtak"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Appikon"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Fullskjerm"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Datamaskinvisning"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Delt skjerm"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Mer"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Svevende"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Endre høyde/bredde-forholdet"</string>
     <string name="close_text" msgid="4986518933445178928">"Lukk"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Lukk menyen"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (datamaskinvisning)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maksimer skjermen"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Endre størrelse"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Appen kan ikke flyttes hit"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Endre størrelsen på appvinduet til venstre"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Endre størrelsen på appvinduet til høyre"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimer eller gjenopprett størrelsen på vinduet"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Åpne menyen"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Skriv inn <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>."</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Endre størrelsen på vinduet til venstre"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Endre størrelsen på vinduet til høyre"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimer eller gjenopprett størrelsen på vinduet"</string>
diff --git a/libs/WindowManager/Shell/res/values-ne/strings.xml b/libs/WindowManager/Shell/res/values-ne/strings.xml
index e5f4cbe..23b49b7 100644
--- a/libs/WindowManager/Shell/res/values-ne/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ne/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"एपको ह्यान्डल"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"एपको आइकन"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"फुल स्क्रिन"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"डेस्कटप भ्यू"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"स्प्लिट स्क्रिन"</string>
     <string name="more_button_text" msgid="3655388105592893530">"थप"</string>
     <string name="float_button_text" msgid="9221657008391364581">"फ्लोट"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"एस्पेक्ट रेसियो परिवर्तन गर्नुहोस्"</string>
     <string name="close_text" msgid="4986518933445178928">"बन्द गर्नुहोस्"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"मेनु बन्द गर्नुहोस्"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (डेस्कटप भ्यू)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"स्क्रिन ठुलो बनाउनुहोस्"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"आकार बदल्नुहोस्"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"एप सारेर यहाँ ल्याउन सकिएन"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"एपको विन्डोको आकार बदलेर बायाँतिर लैजानुहोस्"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"एपको विन्डोको आकार बदलेर दायाँतिर लैजानुहोस्"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"विन्डोको आकार म्याक्सिमाइज गर्नुहोस् वा रिस्टोर गर्नुहोस्"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"मेनु खोल्नुहोस्"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> प्रयोग गर्नुहोस्"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"विन्डोको आकार बदलेर बायाँतिर लैजानुहोस्"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"विन्डोको आकार बदलेर दायाँतिर लैजानुहोस्"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"विन्डोको आकार म्याक्सिमाइज गर्नुहोस् वा रिस्टोर गर्नुहोस्"</string>
diff --git a/libs/WindowManager/Shell/res/values-or/strings.xml b/libs/WindowManager/Shell/res/values-or/strings.xml
index 182ea46d8..9e1ee43 100644
--- a/libs/WindowManager/Shell/res/values-or/strings.xml
+++ b/libs/WindowManager/Shell/res/values-or/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"ଆପର ହେଣ୍ଡେଲ"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"ଆପ ଆଇକନ"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"ପୂର୍ଣ୍ଣସ୍କ୍ରିନ"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"ଡେସ୍କଟପ ଭ୍ୟୁ"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନ"</string>
     <string name="more_button_text" msgid="3655388105592893530">"ଅଧିକ"</string>
     <string name="float_button_text" msgid="9221657008391364581">"ଫ୍ଲୋଟ"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
     <string name="close_text" msgid="4986518933445178928">"ବନ୍ଦ କରନ୍ତୁ"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"ମେନୁ ବନ୍ଦ କରନ୍ତୁ"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (ଡେସ୍କଟପ ଭ୍ୟୁ)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"ସ୍କ୍ରିନକୁ ବଡ଼ କରନ୍ତୁ"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"ରିସାଇଜ କରନ୍ତୁ"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"ଆପକୁ ଏଠାକୁ ମୁଭ କରାଯାଇପାରିବ ନାହିଁ"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ଆପ ୱିଣ୍ଡୋ ରିସାଇଜ କରିବା ପାଇଁ ବାମ ବଟନ"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ଆପ ୱିଣ୍ଡୋ ରିସାଇଜ କରିବା ପାଇଁ ଡାହାଣ ବଟନ"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ୱିଣ୍ଡୋ ସାଇଜକୁ ମେକ୍ସିମାଇଜ କିମ୍ବା ରିଷ୍ଟୋର କରନ୍ତୁ"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"ମେନୁ ଖୋଲନ୍ତୁ"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g>ରେ ଲେଖନ୍ତୁ"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"ବାମପଟକୁ ୱିଣ୍ଡୋ ରିସାଇଜ କରନ୍ତୁ"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ଡାହାଣପଟକୁ ୱିଣ୍ଡୋ ରିସାଇଜ କରନ୍ତୁ"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ୱିଣ୍ଡୋ ସାଇଜକୁ ମେକ୍ସିମାଇଜ କିମ୍ବା ରିଷ୍ଟୋର କରନ୍ତୁ"</string>
diff --git a/libs/WindowManager/Shell/res/values-pl/strings.xml b/libs/WindowManager/Shell/res/values-pl/strings.xml
index 9a1bf33..3a55cf3 100644
--- a/libs/WindowManager/Shell/res/values-pl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pl/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Uchwyt aplikacji"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Ikona aplikacji"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Pełny ekran"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Wersja na komputery"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Podzielony ekran"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Więcej"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Pływające"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Zmień format obrazu"</string>
     <string name="close_text" msgid="4986518933445178928">"Zamknij"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Zamknij menu"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (wersja na komputery)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maksymalizuj ekran"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Zmień rozmiar"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Nie można przenieść aplikacji tutaj"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Zmień rozmiar okna aplikacji po lewej"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Zmień rozmiar okna aplikacji po prawej"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Zmaksymalizuj lub przywróć rozmiar okna"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Otwórz menu"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Wybierz <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Zmień rozmiar okna do lewej"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Zmień rozmiar okna do prawej"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Zmaksymalizuj lub przywróć rozmiar okna"</string>
diff --git a/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml b/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
index 0ca0e8e..3eaf0f5 100644
--- a/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
@@ -128,7 +128,7 @@
     <string name="open_in_browser_text" msgid="9181692926376072904">"Abrir no navegador"</string>
     <string name="open_in_app_text" msgid="2874590745116268525">"Abrir na app"</string>
     <string name="new_window_text" msgid="6318648868380652280">"Nova janela"</string>
-    <string name="manage_windows_text" msgid="5567366688493093920">"Faça a gestão das janelas"</string>
+    <string name="manage_windows_text" msgid="5567366688493093920">"Gerir janelas"</string>
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Alterar formato"</string>
     <string name="close_text" msgid="4986518933445178928">"Fechar"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Fechar menu"</string>
diff --git a/libs/WindowManager/Shell/res/values-ro/strings.xml b/libs/WindowManager/Shell/res/values-ro/strings.xml
index f71d93b..0195aca 100644
--- a/libs/WindowManager/Shell/res/values-ro/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ro/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Handle de aplicație"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Pictograma aplicației"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Ecran complet"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Afișare pe desktop"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Ecran împărțit"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Mai multe"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Flotantă"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Schimbă raportul de dimensiuni"</string>
     <string name="close_text" msgid="4986518933445178928">"Închide"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Închide meniul"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (afișare pe desktop)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maximizează fereastra"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Redimensionează"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Aplicația nu poate fi mutată aici"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Redimensionează fereastra aplicației la stânga"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Redimensionează fereastra aplicației la dreapta"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maximizează sau restabilește dimensiunea ferestrei"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Deschide meniul"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Introdu <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Redimensionează fereastra la stânga"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Redimensionează fereastra la dreapta"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maximizează sau restabilește dimensiunea ferestrei"</string>
diff --git a/libs/WindowManager/Shell/res/values-si/strings.xml b/libs/WindowManager/Shell/res/values-si/strings.xml
index b7b2863..26bd937 100644
--- a/libs/WindowManager/Shell/res/values-si/strings.xml
+++ b/libs/WindowManager/Shell/res/values-si/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"යෙදුම් හසුරුව"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"යෙදුම් නිරූපකය"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"පූර්ණ තිරය"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"ඩෙස්ක්ටොප් දසුන"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"බෙදුම් තිරය"</string>
     <string name="more_button_text" msgid="3655388105592893530">"තව"</string>
     <string name="float_button_text" msgid="9221657008391364581">"පාවෙන"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"දර්ශන අනුපාතය වෙනස් කරන්න"</string>
     <string name="close_text" msgid="4986518933445178928">"වසන්න"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"මෙනුව වසන්න"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (ඩෙස්ක්ටොප් දසුන)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"තිරය උපරිම කරන්න"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"ප්‍රතිප්‍රමාණය කරන්න"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"යෙදුම මෙතැනට ගෙන යා නොහැක"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"යෙදුම් කවුළුව වමට ප්‍රතිප්‍රමාණ කරන්න"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"යෙදුම් කවුළුව දකුණට ප්‍රතිප්‍රමාණ කරන්න"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"කවුළු ප්‍රමාණය උපරිම කරන්න හෝ ප්‍රතිසාධනය කරන්න"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"මෙනුව විවෘත කරන්න"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> ඇතුළු කරන්න"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"කවුළුව වමට ප්‍රතිප්‍රමාණ කරන්න"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"කවුළුව දකුණට ප්‍රතිප්‍රමාණ කරන්න"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"කවුළු ප්‍රමාණය උපරිම කරන්න හෝ ප්‍රතිසාධනය කරන්න"</string>
diff --git a/libs/WindowManager/Shell/res/values-sk/strings.xml b/libs/WindowManager/Shell/res/values-sk/strings.xml
index ede0cdd..8b6999e 100644
--- a/libs/WindowManager/Shell/res/values-sk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sk/strings.xml
@@ -128,7 +128,7 @@
     <string name="open_in_browser_text" msgid="9181692926376072904">"Otvoriť v prehliadači"</string>
     <string name="open_in_app_text" msgid="2874590745116268525">"Otvoriť v aplikácii"</string>
     <string name="new_window_text" msgid="6318648868380652280">"Nové okno"</string>
-    <string name="manage_windows_text" msgid="5567366688493093920">"Správa okien"</string>
+    <string name="manage_windows_text" msgid="5567366688493093920">"Spravovať okná"</string>
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Zmeniť pomer strán"</string>
     <string name="close_text" msgid="4986518933445178928">"Zavrieť"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Zavrieť ponuku"</string>
diff --git a/libs/WindowManager/Shell/res/values-sq/strings.xml b/libs/WindowManager/Shell/res/values-sq/strings.xml
index ea26bc6..45a1c00 100644
--- a/libs/WindowManager/Shell/res/values-sq/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sq/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Emërtimi i aplikacionit"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Ikona e aplikacionit"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Ekrani i plotë"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Pamja për desktop"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Ekrani i ndarë"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Më shumë"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Pluskuese"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Ndrysho raportin e pamjes"</string>
     <string name="close_text" msgid="4986518933445178928">"Mbyll"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Mbyll menynë"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (Pamja për desktop)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maksimizo ekranin"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Ndrysho përmasat"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Aplikacioni nuk mund të zhvendoset këtu"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ndrysho përmasat e dritares së aplikacionit majtas"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ndrysho përmasat e dritares së aplikacionit djathtas"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Maksimizo ose restauro madhësinë e dritares"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Hap menynë"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Kalo te \"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g>\""</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Ndrysho përmasat e dritares në të majtë"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Ndrysho përmasat e dritares në të djathtë"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Maksimizo ose restauro madhësinë e dritares"</string>
diff --git a/libs/WindowManager/Shell/res/values-sr/strings.xml b/libs/WindowManager/Shell/res/values-sr/strings.xml
index ea7a1bb..40ca9a4 100644
--- a/libs/WindowManager/Shell/res/values-sr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sr/strings.xml
@@ -134,9 +134,9 @@
     <string name="collapse_menu_text" msgid="7515008122450342029">"Затворите мени"</string>
     <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (приказ за рачунаре)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Повећај екран"</string>
-    <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Промени величину"</string>
+    <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Прилагоди"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Апликација не може да се премести овде"</string>
-    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Имерзивне"</string>
+    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Имерзивно"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"Врати"</string>
     <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Увећај"</string>
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Вратите"</string>
diff --git a/libs/WindowManager/Shell/res/values-sv/strings.xml b/libs/WindowManager/Shell/res/values-sv/strings.xml
index f3e53d0e..4e126e8 100644
--- a/libs/WindowManager/Shell/res/values-sv/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sv/strings.xml
@@ -136,7 +136,7 @@
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maximera skärmen"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Ändra storlek"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Det går inte att flytta appen hit"</string>
-    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Uppslukande"</string>
+    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Immersiv"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"Återställ"</string>
     <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Utöka"</string>
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Återställ"</string>
diff --git a/libs/WindowManager/Shell/res/values-sw/strings.xml b/libs/WindowManager/Shell/res/values-sw/strings.xml
index 51aacac..8bfdfc6 100644
--- a/libs/WindowManager/Shell/res/values-sw/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sw/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Utambulisho wa programu"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Aikoni ya Programu"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Skrini nzima"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Mwonekano wa Kompyuta"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Gawa Skrini"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Zaidi"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Inayoelea"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Badilisha uwiano"</string>
     <string name="close_text" msgid="4986518933445178928">"Funga"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Funga Menyu"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (Mwonekano wa Kompyuta)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Panua Dirisha kwenye Skrini"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Badilisha ukubwa"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Imeshindwa kuhamishia programu hapa"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Badilisha ukubwa wa dirisha la programu kushoto"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Badilisha ukubwa wa dirisha la programu kulia"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Panua au urejeshe ukubwa wa dirisha"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Fungua Menyu"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Weka <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Badilisha ukubwa wa dirisha kushoto"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Badilisha ukubwa wa dirisha kulia"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Panua au urejeshe ukubwa wa dirisha"</string>
diff --git a/libs/WindowManager/Shell/res/values-ta/strings.xml b/libs/WindowManager/Shell/res/values-ta/strings.xml
index 0c7206c..4d9093c 100644
--- a/libs/WindowManager/Shell/res/values-ta/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ta/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"ஆப்ஸ் ஹேண்டில்"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"ஆப்ஸ் ஐகான்"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"முழுத்திரை"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"டெஸ்க்டாப் காட்சி"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"திரையைப் பிரிக்கும்"</string>
     <string name="more_button_text" msgid="3655388105592893530">"கூடுதல் விருப்பத்தேர்வுகள்"</string>
     <string name="float_button_text" msgid="9221657008391364581">"மிதக்கும் சாளரம்"</string>
@@ -133,12 +132,11 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"தோற்ற விகிதத்தை மாற்று"</string>
     <string name="close_text" msgid="4986518933445178928">"மூடும்"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"மெனுவை மூடும்"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (டெஸ்க்டாப் காட்சி)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"திரையைப் பெரிதாக்கு"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"அளவை மாற்று"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"ஆப்ஸை இங்கே நகர்த்த முடியாது"</string>
-    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"ஈடுபட வைக்கும்"</string>
+    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"முழுத்திரையும்"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"மீட்டெடுக்கும்"</string>
     <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"பெரிதாக்கும்"</string>
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"மீட்டெடுக்கும்"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"ஆப்ஸ் சாளரத்தின் இடதுபுறத்தில் அளவை மாற்றும்"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ஆப்ஸ் சாளரத்தின் வலதுபுறத்தில் அளவை மாற்றும்"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"சாளரத்தின் அளவைப் பெரிதாக்கும்/மீட்டெடுக்கும்"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"மெனுவைத் திறக்கும்"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> ஐ உள்ளிடும்"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"சாளரத்தை இடதுபுறமாக அளவு மாற்றும்"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"சாளரத்தை வலதுபுறமாக அளவு மாற்றும்"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"சாளரத்தின் அளவைப் பெரிதாக்கும்/மீட்டெடுக்கும்"</string>
diff --git a/libs/WindowManager/Shell/res/values-tl/strings.xml b/libs/WindowManager/Shell/res/values-tl/strings.xml
index 5787e10..056bc22 100644
--- a/libs/WindowManager/Shell/res/values-tl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-tl/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Handle ng app"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Icon ng App"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Fullscreen"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Desktop View"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Split Screen"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Higit pa"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Float"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Baguhin ang aspect ratio"</string>
     <string name="close_text" msgid="4986518933445178928">"Isara"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Isara ang Menu"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (Desktop View)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"I-maximize ang Screen"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"I-resize"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Hindi mailipat dito ang app"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"I-resize pakaliwa ang window ng app"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"I-resize pakanan ang window ng app"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"I-maximize o i-restore ang laki ng window"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Buksan ang Menu"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Pumasok sa <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"I-resize pakaliwa ang window"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"I-resize pakanan ang window"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"I-maximize o i-restore ang laki ng window"</string>
diff --git a/libs/WindowManager/Shell/res/values-tr/strings.xml b/libs/WindowManager/Shell/res/values-tr/strings.xml
index 28b2a7d..017f6bb 100644
--- a/libs/WindowManager/Shell/res/values-tr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-tr/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Uygulama tanıtıcısı"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Uygulama Simgesi"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Tam Ekran"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Masaüstü görünümü"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Bölünmüş Ekran"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Daha Fazla"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Havada Süzülen"</string>
@@ -133,12 +132,11 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"En boy oranını değiştir"</string>
     <string name="close_text" msgid="4986518933445178928">"Kapat"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Menüyü kapat"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (masaüstü görünümü)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Ekranı Büyüt"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Yeniden boyutlandır"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Uygulama buraya taşınamıyor"</string>
-    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Etkileyici"</string>
+    <string name="desktop_mode_maximize_menu_immersive_button_text" msgid="559492223133829481">"Tam ekran"</string>
     <string name="desktop_mode_maximize_menu_immersive_restore_button_text" msgid="4900114367354709257">"Geri yükle"</string>
     <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Ekranı kapla"</string>
     <string name="desktop_mode_maximize_menu_restore_button_text" msgid="4234449220944704387">"Geri yükle"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Uygulama penceresini sola yeniden boyutlandır"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Uygulama penceresini sağa yeniden boyutlandır"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Pencereyi ekranı kaplayacak şekilde büyüt veya önceki boyutuna döndür"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Menüyü aç"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> moduna geç"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Pencereyi sola yeniden boyutlandır"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Pencereyi sağa yeniden boyutlandır"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Pencereyi ekranı kaplayacak şekilde büyüt veya önceki boyutuna döndür"</string>
diff --git a/libs/WindowManager/Shell/res/values-uk/strings.xml b/libs/WindowManager/Shell/res/values-uk/strings.xml
index f5693ca..32ce4a0 100644
--- a/libs/WindowManager/Shell/res/values-uk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-uk/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Дескриптор додатка"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Значок додатка"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"На весь екран"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Версія для ПК"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Розділити екран"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Більше"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Плаваюче вікно"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Змінити формат"</string>
     <string name="close_text" msgid="4986518933445178928">"Закрити"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Закрити меню"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (версія для ПК)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Розгорнути екран"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Змінити розмір"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Сюди не можна перемістити додаток"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Змінити розмір вікна додатка ліворуч"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Змінити розмір вікна додатка праворуч"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Розгорнути вікно або відновити його розмір"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Відкрити меню"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Відкрити в режимі \"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g>\""</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Змінити розмір вікна ліворуч"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Змінити розмір вікна праворуч"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Розгорнути вікно або відновити його розмір"</string>
diff --git a/libs/WindowManager/Shell/res/values-ur/strings.xml b/libs/WindowManager/Shell/res/values-ur/strings.xml
index a801b5e..4de0c47 100644
--- a/libs/WindowManager/Shell/res/values-ur/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ur/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"ایپ ہینڈل"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"ایپ کا آئیکن"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"مکمل اسکرین"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"ڈیسک ٹاپ منظر"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"اسپلٹ اسکرین"</string>
     <string name="more_button_text" msgid="3655388105592893530">"مزید"</string>
     <string name="float_button_text" msgid="9221657008391364581">"فلوٹ"</string>
@@ -129,12 +128,11 @@
     <string name="open_in_browser_text" msgid="9181692926376072904">"براؤزر میں کھولیں"</string>
     <string name="open_in_app_text" msgid="2874590745116268525">"ایپ میں کھولیں"</string>
     <string name="new_window_text" msgid="6318648868380652280">"نئی ونڈو"</string>
-    <string name="manage_windows_text" msgid="5567366688493093920">"‏‫Windows کا نظم کریں"</string>
+    <string name="manage_windows_text" msgid="5567366688493093920">"ونڈوز کا نظم کریں"</string>
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"تناسبی شرح کو تبدیل کریں"</string>
     <string name="close_text" msgid="4986518933445178928">"بند کریں"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"مینیو بند کریں"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"‫<xliff:g id="APP_NAME">%1$s</xliff:g> (ڈیسک ٹاپ منظر)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"اسکرین کو بڑا کریں"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"سائز تبدیل کریں"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"ایپ کو یہاں منتقل نہیں کیا جا سکتا"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"دائیں طرف ایپ ونڈو کا سائز تبدیل کریں"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"ایپ ونڈو کا سائز بائیں طرف تبدیل کریں"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"ونڈو کا سائز زیادہ سے زیادہ یا بحال کریں"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"مینیو کھولیں"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"‫<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> درج کریں"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"دائیں طرف ونڈو کا سائز تبدیل کریں"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"ونڈو کا سائز بائیں طرف تبدیل کریں"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"ونڈو کا سائز زیادہ سے زیادہ یا بحال کریں"</string>
diff --git a/libs/WindowManager/Shell/res/values-uz/strings.xml b/libs/WindowManager/Shell/res/values-uz/strings.xml
index 9fbbdc8..8c0d9bb 100644
--- a/libs/WindowManager/Shell/res/values-uz/strings.xml
+++ b/libs/WindowManager/Shell/res/values-uz/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Ilova identifikatori"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Ilova belgisi"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Butun ekran"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Desktop versiya"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Ekranni ikkiga ajratish"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Yana"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Pufakli"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Tomonlar nisbatini oʻzgartirish"</string>
     <string name="close_text" msgid="4986518933445178928">"Yopish"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Menyuni yopish"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (desktop versiya)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Ekranni yoyish"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Oʻlchamini oʻzgartirish"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Ilova bu yerga surilmaydi"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Ilova chap oynasi oʻlchamini oʻzgartirish"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Ilova oʻng oynasi oʻlchamini oʻzgartirish"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Oyna oʻlchamini kengaytirish yoki asliga qaytarish"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Menyuni ochish"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"<xliff:g id="WINDOWING_MODE">%1$s</xliff:g> rejimiga kirish"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Oyna oʻlchamini chapga oʻzgartirish"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Oyna oʻlchamini oʻngga oʻzgartirish"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Oyna oʻlchamini kengaytirish yoki asliga qaytarish"</string>
diff --git a/libs/WindowManager/Shell/res/values-vi/strings.xml b/libs/WindowManager/Shell/res/values-vi/strings.xml
index b40a4e6..3455eed 100644
--- a/libs/WindowManager/Shell/res/values-vi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-vi/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Ô điều khiển ứng dụng"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Biểu tượng ứng dụng"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Toàn màn hình"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Chế độ xem trên máy tính để bàn"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Chia đôi màn hình"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Tuỳ chọn khác"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Nổi"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Thay đổi tỷ lệ khung hình"</string>
     <string name="close_text" msgid="4986518933445178928">"Đóng"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Đóng trình đơn"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (Chế độ xem trên máy tính để bàn)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Mở rộng màn hình"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Đổi kích thước"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"Không di chuyển được ứng dụng đến đây"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Đổi kích thước và chuyển cửa sổ ứng dụng sang trái"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Đổi kích thước và chuyển cửa sổ ứng dụng sang phải"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Phóng to hoặc khôi phục kích thước cửa sổ"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Mở Trình đơn"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Nhập <xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Đổi kích thước và chuyển cửa sổ sang trái"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Đổi kích thước và chuyển cửa sổ sang phải"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Phóng to hoặc khôi phục kích thước cửa sổ"</string>
diff --git a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
index 45cd25b..369fa4b 100644
--- a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"应用手柄"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"应用图标"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"全屏"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"桌面版视图"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"分屏"</string>
     <string name="more_button_text" msgid="3655388105592893530">"更多"</string>
     <string name="float_button_text" msgid="9221657008391364581">"悬浮"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"更改宽高比"</string>
     <string name="close_text" msgid="4986518933445178928">"关闭"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"关闭菜单"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g>（桌面版视图）"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"最大化屏幕"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"调整大小"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"无法将应用移至此处"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"调整应用窗口大小并贴靠左侧"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"调整应用窗口大小并贴靠右侧"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"将窗口最大化或恢复大小"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"打开菜单"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"进入<xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"调整窗口大小并贴靠左侧"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"调整窗口大小并贴靠右侧"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"将窗口最大化或恢复大小"</string>
diff --git a/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml b/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
index d2c22da..8624f94d 100644
--- a/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"應用程式控點"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"應用程式圖示"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"全螢幕"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"桌面電腦檢視模式"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"分割螢幕"</string>
     <string name="more_button_text" msgid="3655388105592893530">"更多"</string>
     <string name="float_button_text" msgid="9221657008391364581">"浮動"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"變更長寬比"</string>
     <string name="close_text" msgid="4986518933445178928">"關閉"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"關閉選單"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (桌面電腦檢視模式)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"畫面最大化"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"調整大小"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"應用程式無法移至這裡"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"調整左邊應用程式視窗大小"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"調整右邊應用程式視窗大小"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"將視窗放到最大或者還原視窗大小"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"打開選單"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"進入<xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"將視窗移去左邊調整大小"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"將視窗移去右邊調整大小"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"將視窗放到最大或者還原視窗大小"</string>
diff --git a/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml b/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
index 0984fad..199c102 100644
--- a/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"應用程式控制代碼"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"應用程式圖示"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"全螢幕"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"電腦檢視畫面"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"分割畫面"</string>
     <string name="more_button_text" msgid="3655388105592893530">"更多"</string>
     <string name="float_button_text" msgid="9221657008391364581">"浮動"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"變更顯示比例"</string>
     <string name="close_text" msgid="4986518933445178928">"關閉"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"關閉選單"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (電腦檢視畫面)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"畫面最大化"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"調整大小"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"應用程式無法移至此處"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"調整應用程式視窗大小並向左貼齊"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"調整應用程式視窗大小並向右貼齊"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"將視窗最大化或還原大小"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"開啟選單"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"進入<xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"調整應用程式視窗大小並向左貼齊"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"調整應用程式視窗大小並向右貼齊"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"將視窗最大化或還原大小"</string>
diff --git a/libs/WindowManager/Shell/res/values-zu/strings.xml b/libs/WindowManager/Shell/res/values-zu/strings.xml
index 13f8ed1..8f40142 100644
--- a/libs/WindowManager/Shell/res/values-zu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zu/strings.xml
@@ -119,8 +119,7 @@
     <string name="handle_text" msgid="4419667835599523257">"Inkomba ye-App"</string>
     <string name="app_icon_text" msgid="2823268023931811747">"Isithonjana Se-app"</string>
     <string name="fullscreen_text" msgid="1162316685217676079">"Isikrini esigcwele"</string>
-    <!-- no translation found for desktop_text (1582173066857454541) -->
-    <skip />
+    <string name="desktop_text" msgid="1582173066857454541">"Ukubuka Kwedeskithophu"</string>
     <string name="split_screen_text" msgid="1396336058129570886">"Hlukanisa isikrini"</string>
     <string name="more_button_text" msgid="3655388105592893530">"Okwengeziwe"</string>
     <string name="float_button_text" msgid="9221657008391364581">"Iflowuthi"</string>
@@ -133,8 +132,7 @@
     <string name="change_aspect_ratio_text" msgid="9104456064548212806">"Shintsha ukubukeka kwesilinganiselo"</string>
     <string name="close_text" msgid="4986518933445178928">"Vala"</string>
     <string name="collapse_menu_text" msgid="7515008122450342029">"Vala Imenyu"</string>
-    <!-- no translation found for desktop_mode_app_header_chip_text (8300164817452574565) -->
-    <skip />
+    <string name="desktop_mode_app_header_chip_text" msgid="8300164817452574565">"<xliff:g id="APP_NAME">%1$s</xliff:g> (Ukubuka Kwedeskithophu)"</string>
     <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Khulisa Isikrini Sifike Ekugcineni"</string>
     <string name="desktop_mode_maximize_menu_snap_text" msgid="5673738963174074006">"Shintsha usayizi"</string>
     <string name="desktop_mode_non_resizable_snap_text" msgid="3771776422751387878">"I-app ayikwazi ukuhanjiswa lapha"</string>
@@ -147,10 +145,8 @@
     <string name="desktop_mode_a11y_action_snap_left" msgid="2932955411661734668">"Shintsha usayizi we-app yewindi ngakwesokunxele"</string>
     <string name="desktop_mode_a11y_action_snap_right" msgid="4577032451624261787">"Shintsha usayizi we-app yewindi ngakwesokudla"</string>
     <string name="desktop_mode_a11y_action_maximize_restore" msgid="8026037983417986686">"Khulisa noma buyisela usayizi wewindi"</string>
-    <!-- no translation found for app_handle_chip_accessibility_announce (499881698947450536) -->
-    <skip />
-    <!-- no translation found for app_handle_menu_accessibility_announce (7928858564852785398) -->
-    <skip />
+    <string name="app_handle_chip_accessibility_announce" msgid="499881698947450536">"Vula Imenyu"</string>
+    <string name="app_handle_menu_accessibility_announce" msgid="7928858564852785398">"Faka i-<xliff:g id="WINDOWING_MODE">%1$s</xliff:g>"</string>
     <string name="maximize_menu_talkback_action_snap_left_text" msgid="500309467459084564">"Shintsha usayizi wewindi ngakwesokunxele"</string>
     <string name="maximize_menu_talkback_action_snap_right_text" msgid="7010831426654467163">"Shintsha usayizi wewindi ngakwesokudla"</string>
     <string name="maximize_menu_talkback_action_maximize_restore_text" msgid="4942610897847934859">"Khulisa noma buyisela usayizi wewindi"</string>
diff --git a/libs/WindowManager/Shell/res/values/dimen.xml b/libs/WindowManager/Shell/res/values/dimen.xml
index f5f3f0f..32660e8 100644
--- a/libs/WindowManager/Shell/res/values/dimen.xml
+++ b/libs/WindowManager/Shell/res/values/dimen.xml
@@ -618,6 +618,15 @@
     <!-- The vertical inset to apply to the app chip's ripple drawable -->
     <dimen name="desktop_mode_header_app_chip_ripple_inset_vertical">4dp</dimen>
 
+     <!-- The corner radius of the windowing actions pill buttons's ripple drawable -->
+     <dimen name="desktop_mode_handle_menu_windowing_action_ripple_radius">24dp</dimen>
+     <!-- The horizontal/vertical inset to apply to the ripple drawable effect of windowing
+     actions pill central buttons -->
+     <dimen name="desktop_mode_handle_menu_windowing_action_ripple_inset_base">2dp</dimen>
+     <!-- The horizontal/vertical vertical inset to apply to the ripple drawable effect of windowing
+     actions pill edge buttons -->
+     <dimen name="desktop_mode_handle_menu_windowing_action_ripple_inset_shift">4dp</dimen>
+
     <!-- The corner radius of the minimize button's ripple drawable -->
     <dimen name="desktop_mode_header_minimize_ripple_radius">18dp</dimen>
     <!-- The vertical inset to apply to the minimize button's ripple drawable -->
@@ -670,7 +679,4 @@
     <dimen name="desktop_windowing_education_promo_height">352dp</dimen>
     <!-- The corner radius of the desktop windowing education promo. -->
     <dimen name="desktop_windowing_education_promo_corner_radius">28dp</dimen>
-
-    <!-- The corner radius of freeform tasks in desktop windowing. -->
-    <dimen name="desktop_windowing_freeform_rounded_corner_radius">16dp</dimen>
 </resources>
diff --git a/libs/WindowManager/Shell/res/values/strings.xml b/libs/WindowManager/Shell/res/values/strings.xml
index 1b7daa8..2179128 100644
--- a/libs/WindowManager/Shell/res/values/strings.xml
+++ b/libs/WindowManager/Shell/res/values/strings.xml
@@ -91,7 +91,8 @@
     <!-- Accessibility action for moving docked stack divider to make the right screen full screen [CHAR LIMIT=NONE] -->
     <string name="accessibility_action_divider_right_full">Right full screen</string>
     <!-- Accessibility action for swapping the apps around the divider (double tap action) [CHAR LIMIT=NONE] -->
-    <string name="accessibility_action_divider_swap">Swap Apps</string>
+    <string name="accessibility_action_divider_swap_vertical">Swap top app with bottom</string>
+    <string name="accessibility_action_divider_swap_horizontal">Swap left app with right</string>
 
     <!-- Accessibility action for moving docked stack divider to make the top screen full screen [CHAR LIMIT=NONE] -->
     <string name="accessibility_action_divider_top_full">Top full screen</string>
@@ -276,11 +277,13 @@
 
     <!-- Freeform window caption strings -->
     <!-- Accessibility text for the maximize window button [CHAR LIMIT=NONE] -->
-    <string name="maximize_button_text">Maximize</string>
+    <string name="maximize_button_text">Maximize <xliff:g id="app_name" example="Chrome">%1$s</xliff:g></string>
+    <!-- Accessibility text for the restore window button [CHAR LIMIT=NONE] -->
+    <string name="restore_button_text">Restore <xliff:g id="app_name" example="Chrome">%1$s</xliff:g></string>
      <!-- Accessibility text for the minimize window button [CHAR LIMIT=NONE] -->
-     <string name="minimize_button_text">Minimize</string>
+     <string name="minimize_button_text">Minimize <xliff:g id="app_name" example="Chrome">%1$s</xliff:g></string>
     <!-- Accessibility text for the close window button [CHAR LIMIT=NONE] -->
-    <string name="close_button_text">Close</string>
+    <string name="close_button_text">Close <xliff:g id="app_name" example="Chrome">%1$s</xliff:g></string>
     <!-- Accessibility text for the caption back button [CHAR LIMIT=NONE] -->
     <string name="back_button_text">Back</string>
     <!-- Accessibility text for the caption handle [CHAR LIMIT=NONE] -->
@@ -352,10 +355,14 @@
     <string name="maximize_menu_talkback_action_snap_right_text">Resize window to right</string>
     <!-- Accessibility action replacement for maximize menu enter maximize/restore button [CHAR LIMIT=NONE] -->
     <string name="maximize_menu_talkback_action_maximize_restore_text">Maximize or restore window size</string>
-    <!-- Accessibility action replacement for app header maximize/restore button [CHAR LIMIT=NONE] -->
-    <string name="maximize_button_talkback_action_maximize_restore_text">Maximize or restore window size</string>
+    <!-- Accessibility action replacement for app header maximize button [CHAR LIMIT=NONE] -->
+    <string name="app_header_talkback_action_maximize_button_text">Maximize app window size</string>
+    <!-- Accessibility action replacement for app header restore button [CHAR LIMIT=NONE] -->
+    <string name="app_header_talkback_action_restore_button_text">Restore window size</string>
     <!-- Accessibility action replacement for app header minimize button [CHAR LIMIT=NONE] -->
-    <string name="minimize_button_talkback_action_maximize_restore_text">Minimize app window</string>
+    <string name="app_header_talkback_action_minimize_button_text">Minimize app window</string>
+    <!-- Accessibility action replacement for app header close button [CHAR LIMIT=NONE] -->
+    <string name="app_header_talkback_action_close_button_text">Close app window</string>
 
     <!-- Accessibility text for open by default settings button [CHAR LIMIT=NONE] -->
     <string name="open_by_default_settings_text">Open by default settings</string>
diff --git a/libs/WindowManager/Shell/shared/res/values/dimen.xml b/libs/WindowManager/Shell/shared/res/values/dimen.xml
index 11a6f32..23c9caf 100644
--- a/libs/WindowManager/Shell/shared/res/values/dimen.xml
+++ b/libs/WindowManager/Shell/shared/res/values/dimen.xml
@@ -46,4 +46,7 @@
     <dimen name="drop_target_expanded_view_height">578</dimen>
     <dimen name="drop_target_expanded_view_padding_bottom">108</dimen>
     <dimen name="drop_target_expanded_view_padding_horizontal">24</dimen>
+
+    <!-- The corner radius of freeform tasks in desktop windowing. -->
+    <dimen name="desktop_windowing_freeform_rounded_corner_radius">16dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/GroupedTaskInfo.java b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/GroupedTaskInfo.java
index 0a1e3b9..25b9f8c 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/GroupedTaskInfo.java
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/GroupedTaskInfo.java
@@ -47,20 +47,26 @@
 
     public static final int TYPE_FULLSCREEN = 1;
     public static final int TYPE_SPLIT = 2;
-    public static final int TYPE_FREEFORM = 3;
+    public static final int TYPE_DESK = 3;
     public static final int TYPE_MIXED = 4;
 
     @IntDef(prefix = {"TYPE_"}, value = {
             TYPE_FULLSCREEN,
             TYPE_SPLIT,
-            TYPE_FREEFORM,
+            TYPE_DESK,
             TYPE_MIXED
     })
     public @interface GroupType {}
 
     /**
+     * The ID of the desk that this `GroupedTaskInfo` represents (when the type is `TYPE_DESK`). The
+     * value is -1 if this is not a desk.
+     */
+    private final int mDeskId;
+
+    /**
      * The type of this particular task info, can be one of TYPE_FULLSCREEN, TYPE_SPLIT or
-     * TYPE_FREEFORM.
+     * TYPE_DESK.
      */
     @GroupType
     protected final int mType;
@@ -69,7 +75,7 @@
      * The list of tasks associated with this single recent task info.
      * TYPE_FULLSCREEN: Contains the stack of tasks associated with a single "task" in overview
      * TYPE_SPLIT: Contains the two split roots of each side
-     * TYPE_FREEFORM: Contains the set of tasks currently in freeform mode
+     * TYPE_DESK: Contains the set of tasks currently in freeform mode contained in desk.
      */
     @Nullable
     protected final List<TaskInfo> mTasks;
@@ -83,7 +89,7 @@
     protected final SplitBounds mSplitBounds;
 
     /**
-     * Only set for TYPE_FREEFORM.
+     * Only set for TYPE_DESK.
      *
      * TODO(b/348332802): move isMinimized inside each Task object instead once we have a
      *  replacement for RecentTaskInfo
@@ -103,8 +109,8 @@
      * Create new for a stack of fullscreen tasks
      */
     public static GroupedTaskInfo forFullscreenTasks(@NonNull TaskInfo task) {
-        return new GroupedTaskInfo(List.of(task), null, TYPE_FULLSCREEN,
-                null /* minimizedFreeformTasks */);
+        return new GroupedTaskInfo(/* deskId = */ -1, List.of(task), null, TYPE_FULLSCREEN,
+                /* minimizedFreeformTaskIds = */ null);
     }
 
     /**
@@ -112,18 +118,19 @@
      */
     public static GroupedTaskInfo forSplitTasks(@NonNull TaskInfo task1,
                     @NonNull TaskInfo task2, @NonNull SplitBounds splitBounds) {
-        return new GroupedTaskInfo(List.of(task1, task2), splitBounds, TYPE_SPLIT,
-                null /* minimizedFreeformTasks */);
+        return new GroupedTaskInfo(/* deskId = */ -1, List.of(task1, task2), splitBounds,
+                TYPE_SPLIT, /* minimizedFreeformTaskIds = */ null);
     }
 
     /**
-     * Create new for a group of freeform tasks
+     * Create new for a group of freeform tasks that belong to a single desk.
      */
-    public static GroupedTaskInfo forFreeformTasks(
-                    @NonNull List<TaskInfo> tasks,
-                    @NonNull Set<Integer> minimizedFreeformTasks) {
-        return new GroupedTaskInfo(tasks, null /* splitBounds */, TYPE_FREEFORM,
-                minimizedFreeformTasks.stream().mapToInt(i -> i).toArray());
+    public static GroupedTaskInfo forDeskTasks(
+            int deskId,
+            @NonNull List<TaskInfo> tasks,
+            @NonNull Set<Integer> minimizedFreeformTaskIds) {
+        return new GroupedTaskInfo(deskId, tasks, /* splitBounds = */ null, TYPE_DESK,
+                minimizedFreeformTaskIds.stream().mapToInt(i -> i).toArray());
     }
 
     /**
@@ -141,10 +148,12 @@
     }
 
     private GroupedTaskInfo(
+            int deskId,
             @NonNull List<TaskInfo> tasks,
             @Nullable SplitBounds splitBounds,
             @GroupType int type,
             @Nullable int[] minimizedFreeformTaskIds) {
+        mDeskId = deskId;
         mTasks = tasks;
         mGroupedTasks = null;
         mSplitBounds = splitBounds;
@@ -154,6 +163,7 @@
     }
 
     private GroupedTaskInfo(@NonNull List<GroupedTaskInfo> groupedTasks) {
+        mDeskId = -1;
         mTasks = null;
         mGroupedTasks = groupedTasks;
         mSplitBounds = null;
@@ -174,6 +184,7 @@
     }
 
     protected GroupedTaskInfo(@NonNull Parcel parcel) {
+        mDeskId = parcel.readInt();
         mTasks = new ArrayList();
         final int numTasks = parcel.readInt();
         for (int i = 0; i < numTasks; i++) {
@@ -274,6 +285,16 @@
     }
 
     /**
+     * Returns the ID of the desk represented by `this` if the type is `TYPE_DESK`, or -1 otherwise.
+     */
+    public int getDeskId() {
+        if (mType == TYPE_MIXED) {
+            throw new IllegalStateException("No desk ID for a mixed task");
+        }
+        return mDeskId;
+    }
+
+    /**
      * Get type of this recents entry. One of {@link GroupType}.
      * Note: This is deprecated, callers should use `isBaseType()` and not make assumptions about
      *       specific group types
@@ -285,7 +306,7 @@
     }
 
     /**
-     * Returns the set of minimized task ids, only valid for TYPE_FREEFORM.
+     * Returns the set of minimized task ids, only valid for TYPE_DESK.
      */
     @Nullable
     public int[] getMinimizedTaskIds() {
@@ -301,7 +322,8 @@
             return false;
         }
         GroupedTaskInfo other = (GroupedTaskInfo) obj;
-        return mType == other.mType
+        return mDeskId == other.mDeskId
+                && mType == other.mType
                 && Objects.equals(mTasks, other.mTasks)
                 && Objects.equals(mGroupedTasks, other.mGroupedTasks)
                 && Objects.equals(mSplitBounds, other.mSplitBounds)
@@ -310,7 +332,7 @@
 
     @Override
     public int hashCode() {
-        return Objects.hash(mType, mTasks, mGroupedTasks, mSplitBounds,
+        return Objects.hash(mDeskId, mType, mTasks, mGroupedTasks, mSplitBounds,
                 Arrays.hashCode(mMinimizedTaskIds));
     }
 
@@ -322,6 +344,7 @@
                     .map(GroupedTaskInfo::toString)
                     .collect(Collectors.joining(",\n\t", "[\n\t", "\n]")));
         } else {
+            taskString.append("Desk ID= ").append(mDeskId).append(", ");
             taskString.append("Tasks=" + mTasks.stream()
                     .map(taskInfo -> getTaskInfoDumpString(taskInfo))
                     .collect(Collectors.joining(", ", "[", "]")));
@@ -353,6 +376,7 @@
 
     @Override
     public void writeToParcel(Parcel parcel, int flags) {
+        parcel.writeInt(mDeskId);
         // We don't use the parcel list methods because we want to only write the TaskInfo state
         // and not the subclasses (Recents/RunningTaskInfo) whose fields are all deprecated
         final int tasksSize = mTasks != null ? mTasks.size() : 0;
@@ -375,7 +399,7 @@
         return switch (type) {
             case TYPE_FULLSCREEN -> "FULLSCREEN";
             case TYPE_SPLIT -> "SPLIT";
-            case TYPE_FREEFORM -> "FREEFORM";
+            case TYPE_DESK -> "DESK";
             case TYPE_MIXED -> "MIXED";
             default -> "UNKNOWN";
         };
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/Interpolators.java b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/Interpolators.java
index e92c1eb..43dd9b7 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/Interpolators.java
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/Interpolators.java
@@ -74,6 +74,12 @@
             0.05f, 0.7f, 0.1f, 1f);
 
     /**
+     * The standard accelerating interpolator that should be used on every regular movement of
+     * content that is disappearing e.g. when moving off screen.
+     */
+    public static final Interpolator STANDARD_ACCELERATE = new PathInterpolator(0.3f, 0f, 1f, 1f);
+
+    /**
      * The standard decelerating interpolator that should be used on every regular movement of
      * content that is appearing e.g. when coming from off screen.
      */
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/MinimizeAnimator.kt b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/MinimizeAnimator.kt
index 0586e26..4ecace0 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/MinimizeAnimator.kt
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/animation/MinimizeAnimator.kt
@@ -19,52 +19,76 @@
 import android.animation.Animator
 import android.animation.AnimatorSet
 import android.animation.ValueAnimator
-import android.util.DisplayMetrics
+import android.content.Context
+import android.os.Handler
+import android.view.Choreographer
 import android.view.SurfaceControl.Transaction
-import android.view.animation.LinearInterpolator
-import android.view.animation.PathInterpolator
 import android.window.TransitionInfo.Change
+import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_MINIMIZE_WINDOW
+import com.android.internal.jank.InteractionJankMonitor
 
 /** Creates minimization animation */
 object MinimizeAnimator {
 
     private const val MINIMIZE_ANIM_ALPHA_DURATION_MS = 100L
 
-    private val STANDARD_ACCELERATE = PathInterpolator(0.3f, 0f, 1f, 1f)
-
     private val minimizeBoundsAnimationDef =
         WindowAnimator.BoundsAnimationParams(
             durationMs = 200,
             endOffsetYDp = 12f,
             endScale = 0.97f,
-            interpolator = STANDARD_ACCELERATE,
+            interpolator = Interpolators.STANDARD_ACCELERATE,
         )
 
+    /**
+     * Creates a minimize animator for given task [Change].
+     *
+     * @param onAnimFinish finish-callback for the animation, note that this is called on the same
+     * thread as the animation itself.
+     * @param animationHandler the Handler that the animation is running on.
+     */
     @JvmStatic
     fun create(
-        displayMetrics: DisplayMetrics,
+        context: Context,
         change: Change,
         transaction: Transaction,
         onAnimFinish: (Animator) -> Unit,
+        interactionJankMonitor: InteractionJankMonitor,
+        animationHandler: Handler,
     ): Animator {
         val boundsAnimator = WindowAnimator.createBoundsAnimator(
-            displayMetrics,
+            context.resources.displayMetrics,
             minimizeBoundsAnimationDef,
             change,
             transaction,
         )
         val alphaAnimator = ValueAnimator.ofFloat(1f, 0f).apply {
             duration = MINIMIZE_ANIM_ALPHA_DURATION_MS
-            interpolator = LinearInterpolator()
+            interpolator = Interpolators.LINEAR
             addUpdateListener { animation ->
-                transaction.setAlpha(change.leash, animation.animatedValue as Float).apply()
+                transaction
+                    .setAlpha(change.leash, animation.animatedValue as Float)
+                    .setFrameTimeline(Choreographer.getInstance().vsyncId)
+                    .apply()
             }
         }
         val listener = object : Animator.AnimatorListener {
-            override fun onAnimationEnd(animator: Animator) = onAnimFinish(animator)
-            override fun onAnimationCancel(animator: Animator) = Unit
+            override fun onAnimationStart(animator: Animator) {
+                interactionJankMonitor.begin(
+                    change.leash,
+                    context,
+                    animationHandler,
+                    CUJ_DESKTOP_MODE_MINIMIZE_WINDOW,
+                )
+            }
+            override fun onAnimationCancel(animator: Animator) {
+                interactionJankMonitor.cancel(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
+            }
             override fun onAnimationRepeat(animator: Animator) = Unit
-            override fun onAnimationStart(animator: Animator) = Unit
+            override fun onAnimationEnd(animator: Animator) {
+                interactionJankMonitor.end(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
+                onAnimFinish(animator)
+            }
         }
         return AnimatorSet().apply {
             playTogether(boundsAnimator, alphaAnimator)
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicy.kt b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicy.kt
index 14338a4..9ea0532 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicy.kt
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicy.kt
@@ -16,12 +16,14 @@
 
 package com.android.wm.shell.shared.desktopmode
 
+import android.Manifest.permission.SYSTEM_ALERT_WINDOW
 import android.app.TaskInfo
 import android.content.Context
 import android.content.pm.ActivityInfo
 import android.content.pm.ActivityInfo.INSETS_DECOUPLED_CONFIGURATION_ENFORCED
 import android.content.pm.ActivityInfo.OVERRIDE_ENABLE_INSETS_DECOUPLED_CONFIGURATION
 import android.content.pm.ActivityInfo.OVERRIDE_EXCLUDE_CAPTION_INSETS_FROM_APP_BOUNDS
+import android.content.pm.PackageManager
 import android.window.DesktopModeFlags
 import com.android.internal.R
 
@@ -32,8 +34,12 @@
 class DesktopModeCompatPolicy(private val context: Context) {
 
     private val systemUiPackage: String = context.resources.getString(R.string.config_systemUi)
+    private val pkgManager: PackageManager
+        get() = context.getPackageManager()
     private val defaultHomePackage: String?
-        get() = context.getPackageManager().getHomeActivities(ArrayList())?.packageName
+        get() = pkgManager.getHomeActivities(ArrayList())?.packageName
+    private val packageInfoCache = mutableMapOf<String, Boolean>()
+
 
     /**
      * If the top activity should be exempt from desktop windowing and forced back to fullscreen.
@@ -47,11 +53,12 @@
 
     fun isTopActivityExemptFromDesktopWindowing(packageName: String?,
         numActivities: Int, isTopActivityNoDisplay: Boolean, isActivityStackTransparent: Boolean) =
-        DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_MODALS_POLICY.isTrue
-                && ((isSystemUiTask(packageName)
-                || isPartOfDefaultHomePackageOrNoHomeAvailable(packageName)
-                || isTransparentTask(isActivityStackTransparent, numActivities))
-                && !isTopActivityNoDisplay)
+        DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_MODALS_POLICY.isTrue &&
+                ((isSystemUiTask(packageName) ||
+                        isPartOfDefaultHomePackageOrNoHomeAvailable(packageName) ||
+                        (isTransparentTask(isActivityStackTransparent, numActivities) &&
+                                hasFullscreenTransparentPermission(packageName))) &&
+                        !isTopActivityNoDisplay)
 
     /**
      * Whether the caption insets should be excluded from configuration for system to handle.
@@ -83,6 +90,28 @@
 
     private fun isSystemUiTask(packageName: String?) = packageName == systemUiPackage
 
+    // Checks if the app for the given package has the SYSTEM_ALERT_WINDOW permission.
+    private fun hasFullscreenTransparentPermission(packageName: String?): Boolean {
+        if (DesktopModeFlags.ENABLE_MODALS_FULLSCREEN_WITH_PERMISSIONS.isTrue) {
+            if (packageName == null) {
+                return false
+            }
+            return packageInfoCache.getOrPut(packageName) {
+                try {
+                    val packageInfo = pkgManager.getPackageInfo(
+                        packageName,
+                        PackageManager.GET_PERMISSIONS
+                    )
+                    packageInfo?.requestedPermissions?.contains(SYSTEM_ALERT_WINDOW) == true
+                } catch (e: PackageManager.NameNotFoundException) {
+                    false // Package not found
+                }
+            }
+        }
+        // If the flag is disabled we make this condition neutral.
+        return true
+    }
+
     /**
      * Returns true if the tasks base activity is part of the default home package, or there is
      * currently no default home package available.
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java
index 00c446c..7acad50 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java
@@ -374,7 +374,7 @@
      * of the display's root [TaskDisplayArea] is set to WINDOWING_MODE_FREEFORM.
      */
     public static boolean enterDesktopByDefaultOnFreeformDisplay(@NonNull Context context) {
-        if (!Flags.enterDesktopByDefaultOnFreeformDisplays()) {
+        if (!DesktopExperienceFlags.ENTER_DESKTOP_BY_DEFAULT_ON_FREEFORM_DISPLAYS.isTrue()) {
             return false;
         }
         return SystemProperties.getBoolean(ENTER_DESKTOP_BY_DEFAULT_ON_FREEFORM_DISPLAY_SYS_PROP,
@@ -387,7 +387,7 @@
      * screen.
      */
     public static boolean shouldMaximizeWhenDragToTopEdge(@NonNull Context context) {
-        if (!Flags.enableDragToMaximize()) {
+        if (!DesktopExperienceFlags.ENABLE_DRAG_TO_MAXIMIZE.isTrue()) {
             return false;
         }
         return SystemProperties.getBoolean(ENABLE_DRAG_TO_MAXIMIZE_SYS_PROP,
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationAdapter.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationAdapter.java
index 5355138..26c3626 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationAdapter.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationAdapter.java
@@ -147,10 +147,9 @@
     /** To be overridden by subclasses to adjust the animation surface change. */
     void onAnimationUpdateInner(@NonNull SurfaceControl.Transaction t) {
         // Update the surface position and alpha.
-        if (com.android.graphics.libgui.flags.Flags.edgeExtensionShader()
-                && mAnimation.getExtensionEdges() != 0x0
+        if (mAnimation.getExtensionEdges() != 0x0
                 && !(mChange.hasFlags(FLAG_TRANSLUCENT)
-                        && mChange.getActivityComponent() != null)) {
+                && mChange.getActivityComponent() != null)) {
             // Extend non-translucent activities
             t.setEdgeExtensionEffect(mLeash, mAnimation.getExtensionEdges());
         }
@@ -189,8 +188,7 @@
     @CallSuper
     void onAnimationEnd(@NonNull SurfaceControl.Transaction t) {
         onAnimationUpdate(t, mAnimation.getDuration());
-        if (com.android.graphics.libgui.flags.Flags.edgeExtensionShader()
-                && mAnimation.getExtensionEdges() != 0x0) {
+        if (mAnimation.getExtensionEdges() != 0x0) {
             t.setEdgeExtensionEffect(mLeash, /* edge */ 0);
         }
     }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
index f269b38..85b7ac2 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
@@ -20,11 +20,9 @@
 import static android.view.WindowManager.TRANSIT_CLOSE;
 import static android.view.WindowManagerPolicyConstants.TYPE_LAYER_OFFSET;
 import static android.window.TransitionInfo.FLAG_IS_BEHIND_STARTING_WINDOW;
-import static android.window.TransitionInfo.FLAG_TRANSLUCENT;
 
 import static com.android.wm.shell.activityembedding.ActivityEmbeddingAnimationSpec.createShowSnapshotForClosingAnimation;
 import static com.android.wm.shell.transition.TransitionAnimationHelper.addBackgroundToTransition;
-import static com.android.wm.shell.transition.TransitionAnimationHelper.edgeExtendWindow;
 import static com.android.wm.shell.transition.TransitionAnimationHelper.getTransitionBackgroundColorIfSet;
 import static com.android.wm.shell.transition.Transitions.TRANSIT_TASK_FRAGMENT_DRAG_RESIZE;
 
@@ -46,7 +44,6 @@
 import androidx.annotation.Nullable;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.window.flags.Flags;
 import com.android.wm.shell.activityembedding.ActivityEmbeddingAnimationAdapter.SnapshotAdapter;
 import com.android.wm.shell.common.ScreenshotUtils;
 import com.android.wm.shell.shared.TransitionUtil;
@@ -144,10 +141,6 @@
             // ending states.
             prepareForJumpCut(info, startTransaction);
         } else {
-            if (!com.android.graphics.libgui.flags.Flags.edgeExtensionShader()) {
-                addEdgeExtensionIfNeeded(startTransaction, finishTransaction,
-                        postStartTransactionCallbacks, adapters);
-            }
             addBackgroundColorIfNeeded(info, startTransaction, finishTransaction, adapters);
             for (ActivityEmbeddingAnimationAdapter adapter : adapters) {
                 duration = Math.max(duration, adapter.getDurationHint());
@@ -330,41 +323,13 @@
         }
     }
 
-    /** Adds edge extension to the surfaces that have such an animation property. */
-    private void addEdgeExtensionIfNeeded(@NonNull SurfaceControl.Transaction startTransaction,
-            @NonNull SurfaceControl.Transaction finishTransaction,
-            @NonNull List<Consumer<SurfaceControl.Transaction>> postStartTransactionCallbacks,
-            @NonNull List<ActivityEmbeddingAnimationAdapter> adapters) {
-        for (ActivityEmbeddingAnimationAdapter adapter : adapters) {
-            final Animation animation = adapter.mAnimation;
-            if (animation.getExtensionEdges() == 0) {
-                continue;
-            }
-            if (adapter.mChange.hasFlags(FLAG_TRANSLUCENT)
-                    && adapter.mChange.getActivityComponent() != null) {
-                // Skip edge extension for translucent activity.
-                continue;
-            }
-            final TransitionInfo.Change change = adapter.mChange;
-            if (TransitionUtil.isOpeningType(adapter.mChange.getMode())) {
-                // Need to screenshot after startTransaction is applied otherwise activity
-                // may not be visible or ready yet.
-                postStartTransactionCallbacks.add(
-                        t -> edgeExtendWindow(change, animation, t, finishTransaction));
-            } else {
-                // Can screenshot now (before startTransaction is applied)
-                edgeExtendWindow(change, animation, startTransaction, finishTransaction);
-            }
-        }
-    }
-
     /** Adds background color to the transition if any animation has such a property. */
     private void addBackgroundColorIfNeeded(@NonNull TransitionInfo info,
             @NonNull SurfaceControl.Transaction startTransaction,
             @NonNull SurfaceControl.Transaction finishTransaction,
             @NonNull List<ActivityEmbeddingAnimationAdapter> adapters) {
         for (ActivityEmbeddingAnimationAdapter adapter : adapters) {
-            final int backgroundColor = getTransitionBackgroundColorIfSet(info, adapter.mChange,
+            final int backgroundColor = getTransitionBackgroundColorIfSet(adapter.mChange,
                     adapter.mAnimation, 0 /* defaultColor */);
             if (backgroundColor != 0) {
                 // We only need to show one color.
@@ -436,18 +401,18 @@
             final TransitionInfo.AnimationOptions options = boundsAnimationChange
                     .getAnimationOptions();
             if (options != null) {
-                final Animation overrideAnimation = mAnimationSpec.loadCustomAnimationFromOptions(
-                        options, TRANSIT_CHANGE);
+                final Animation overrideAnimation =
+                        mAnimationSpec.loadCustomAnimation(options, TRANSIT_CHANGE);
                 if (overrideAnimation != null) {
                     overrideShowBackdrop = overrideAnimation.getShowBackdrop();
                 }
             }
 
-            calculateParentBounds(change, boundsAnimationChange, parentBounds);
+            calculateParentBounds(change, parentBounds);
             // There are two animations in the array. The first one is for the start leash
             // (snapshot), and the second one is for the end leash (TaskFragment).
             final Animation[] animations =
-                    mAnimationSpec.createChangeBoundsChangeAnimations(info, change, parentBounds);
+                    mAnimationSpec.createChangeBoundsChangeAnimations(change, parentBounds);
             // Jump cut if either animation has zero for duration.
             for (Animation animation : animations) {
                 if (shouldUseJumpCutForAnimation(animation)) {
@@ -500,12 +465,10 @@
                 // window without bounds change.
                 animation = ActivityEmbeddingAnimationSpec.createNoopAnimation(change);
             } else if (TransitionUtil.isClosingType(change.getMode())) {
-                animation =
-                        mAnimationSpec.createChangeBoundsCloseAnimation(info, change, parentBounds);
+                animation = mAnimationSpec.createChangeBoundsCloseAnimation(change, parentBounds);
                 shouldShowBackgroundColor = false;
             } else {
-                animation =
-                        mAnimationSpec.createChangeBoundsOpenAnimation(info, change, parentBounds);
+                animation = mAnimationSpec.createChangeBoundsOpenAnimation(change, parentBounds);
                 shouldShowBackgroundColor = false;
             }
             if (shouldUseJumpCutForAnimation(animation)) {
@@ -531,32 +494,19 @@
      */
     @VisibleForTesting
     static void calculateParentBounds(@NonNull TransitionInfo.Change change,
-              @NonNull TransitionInfo.Change boundsAnimationChange, @NonNull Rect outParentBounds) {
-        if (Flags.activityEmbeddingOverlayPresentationFlag()) {
-            final Point endParentSize = change.getEndParentSize();
-            if (endParentSize.equals(0, 0)) {
-                return;
-            }
-            final Point endRelPosition = change.getEndRelOffset();
-            final Point endAbsPosition = new Point(change.getEndAbsBounds().left,
-                    change.getEndAbsBounds().top);
-            final Point parentEndAbsPosition = new Point(endAbsPosition.x - endRelPosition.x,
-                    endAbsPosition.y - endRelPosition.y);
-            outParentBounds.set(parentEndAbsPosition.x, parentEndAbsPosition.y,
-                    parentEndAbsPosition.x + endParentSize.x,
-                    parentEndAbsPosition.y + endParentSize.y);
-        } else {
-            // The TaskFragment may be enter/exit split, so we take the union of both as
-            // the parent size.
-            outParentBounds.union(boundsAnimationChange.getStartAbsBounds());
-            outParentBounds.union(boundsAnimationChange.getEndAbsBounds());
-            if (boundsAnimationChange != change) {
-                // Union the change starting bounds in case the activity is resized and
-                // reparented to a TaskFragment. In that case, the TaskFragment may not cover
-                // the activity's starting bounds.
-                outParentBounds.union(change.getStartAbsBounds());
-            }
+            @NonNull Rect outParentBounds) {
+        final Point endParentSize = change.getEndParentSize();
+        if (endParentSize.equals(0, 0)) {
+            return;
         }
+        final Point endRelPosition = change.getEndRelOffset();
+        final Point endAbsPosition = new Point(change.getEndAbsBounds().left,
+                change.getEndAbsBounds().top);
+        final Point parentEndAbsPosition = new Point(endAbsPosition.x - endRelPosition.x,
+                endAbsPosition.y - endRelPosition.y);
+        outParentBounds.set(parentEndAbsPosition.x, parentEndAbsPosition.y,
+                parentEndAbsPosition.x + endParentSize.x,
+                parentEndAbsPosition.y + endParentSize.y);
     }
 
     /**
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationSpec.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationSpec.java
index 77799e9..2b9eda4 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationSpec.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationSpec.java
@@ -42,7 +42,6 @@
 import android.window.TransitionInfo;
 
 import com.android.internal.policy.TransitionAnimation;
-import com.android.window.flags.Flags;
 import com.android.wm.shell.shared.TransitionUtil;
 
 /** Animation spec for ActivityEmbedding transition. */
@@ -94,9 +93,10 @@
 
     /** Animation for window that is opening in a change transition. */
     @NonNull
-    Animation createChangeBoundsOpenAnimation(@NonNull TransitionInfo info,
-            @NonNull TransitionInfo.Change change, @NonNull Rect parentBounds) {
-        final Animation customAnimation = loadCustomAnimation(info, change, TRANSIT_CHANGE);
+    Animation createChangeBoundsOpenAnimation(@NonNull TransitionInfo.Change change,
+            @NonNull Rect parentBounds) {
+        final Animation customAnimation =
+                loadCustomAnimation(change.getAnimationOptions(), TRANSIT_CHANGE);
         if (customAnimation != null) {
             return customAnimation;
         }
@@ -126,9 +126,10 @@
 
     /** Animation for window that is closing in a change transition. */
     @NonNull
-    Animation createChangeBoundsCloseAnimation(@NonNull TransitionInfo info,
-            @NonNull TransitionInfo.Change change, @NonNull Rect parentBounds) {
-        final Animation customAnimation = loadCustomAnimation(info, change, TRANSIT_CHANGE);
+    Animation createChangeBoundsCloseAnimation(@NonNull TransitionInfo.Change change,
+            @NonNull Rect parentBounds) {
+        final Animation customAnimation =
+                loadCustomAnimation(change.getAnimationOptions(), TRANSIT_CHANGE);
         if (customAnimation != null) {
             return customAnimation;
         }
@@ -162,12 +163,13 @@
      *         the second one is for the end leash.
      */
     @NonNull
-    Animation[] createChangeBoundsChangeAnimations(@NonNull TransitionInfo info,
-            @NonNull TransitionInfo.Change change, @NonNull Rect parentBounds) {
+    Animation[] createChangeBoundsChangeAnimations(@NonNull TransitionInfo.Change change,
+            @NonNull Rect parentBounds) {
         // TODO(b/293658614): Support more complicated animations that may need more than a noop
         // animation as the start leash.
         final Animation noopAnimation = createNoopAnimation(change);
-        final Animation customAnimation = loadCustomAnimation(info, change, TRANSIT_CHANGE);
+        final Animation customAnimation =
+                loadCustomAnimation(change.getAnimationOptions(), TRANSIT_CHANGE);
         if (customAnimation != null) {
             return new Animation[]{noopAnimation, customAnimation};
         }
@@ -221,7 +223,8 @@
     Animation loadOpenAnimation(@NonNull TransitionInfo info,
             @NonNull TransitionInfo.Change change, @NonNull Rect wholeAnimationBounds) {
         final boolean isEnter = TransitionUtil.isOpeningType(change.getMode());
-        final Animation customAnimation = loadCustomAnimation(info, change, change.getMode());
+        final Animation customAnimation =
+                loadCustomAnimation(change.getAnimationOptions(), change.getMode());
         final Animation animation;
         if (customAnimation != null) {
             animation = customAnimation;
@@ -248,7 +251,8 @@
     Animation loadCloseAnimation(@NonNull TransitionInfo info,
             @NonNull TransitionInfo.Change change, @NonNull Rect wholeAnimationBounds) {
         final boolean isEnter = TransitionUtil.isOpeningType(change.getMode());
-        final Animation customAnimation = loadCustomAnimation(info, change, change.getMode());
+        final Animation customAnimation =
+                loadCustomAnimation(change.getAnimationOptions(), change.getMode());
         final Animation animation;
         if (customAnimation != null) {
             animation = customAnimation;
@@ -280,20 +284,8 @@
     }
 
     @Nullable
-    private Animation loadCustomAnimation(@NonNull TransitionInfo info,
-            @NonNull TransitionInfo.Change change, @WindowManager.TransitionType int mode) {
-        final TransitionInfo.AnimationOptions options;
-        if (Flags.moveAnimationOptionsToChange()) {
-            options = change.getAnimationOptions();
-        } else {
-            options = info.getAnimationOptions();
-        }
-        return loadCustomAnimationFromOptions(options, mode);
-    }
-
-    @Nullable
-    Animation loadCustomAnimationFromOptions(@Nullable TransitionInfo.AnimationOptions options,
-             @WindowManager.TransitionType int mode) {
+    Animation loadCustomAnimation(@Nullable TransitionInfo.AnimationOptions options,
+            @WindowManager.TransitionType int mode) {
         if (options == null || options.getType() != ANIM_CUSTOM) {
             return null;
         }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java
index 55ed5fa..3a95333 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingController.java
@@ -40,7 +40,6 @@
 import androidx.annotation.Nullable;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.window.flags.Flags;
 import com.android.wm.shell.shared.TransitionUtil;
 import com.android.wm.shell.sysui.ShellInit;
 import com.android.wm.shell.transition.Transitions;
@@ -123,9 +122,6 @@
     }
 
     private boolean shouldAnimateAnimationOptions(@NonNull TransitionInfo info) {
-        if (!Flags.moveAnimationOptionsToChange()) {
-            return shouldAnimateAnimationOptions(info.getAnimationOptions());
-        }
         for (TransitionInfo.Change change : info.getChanges()) {
             if (!shouldAnimateAnimationOptions(change.getAnimationOptions())) {
                 // If any of override animation is not supported, don't animate the transition.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java
index 3f607a9..2c2451c 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java
@@ -197,6 +197,8 @@
      */
     private final FrameLayout mExpandedViewContainer = new FrameLayout(getContext());
 
+    private TaskView.Listener mCurrentTaskViewListener;
+
     private final TaskView.Listener mTaskViewListener = new TaskView.Listener() {
         private boolean mInitialized = false;
         private boolean mDestroyed = false;
@@ -235,18 +237,24 @@
                         Context context =
                                 mContext.createContextAsUser(
                                         mBubble.getUser(), Context.CONTEXT_RESTRICTED);
+                        Intent fillInIntent = new Intent();
+                        fillInIntent.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);
                         PendingIntent pi = PendingIntent.getActivity(
                                 context,
                                 /* requestCode= */ 0,
-                                mBubble.getIntent().addFlags(FLAG_ACTIVITY_MULTIPLE_TASK),
-                                PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT,
+                                mBubble.getIntent(),
+                                // Needs to be mutable for the fillInIntent
+                                PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT,
                                 /* options= */ null);
-                        mTaskView.startActivity(pi, /* fillInIntent= */ null, options,
-                                launchBounds);
+                        mTaskView.startActivity(pi, fillInIntent, options, launchBounds);
                     } else if (!mIsOverflow && isShortcutBubble) {
                         ProtoLog.v(WM_SHELL_BUBBLES, "startingShortcutBubble=%s", getBubbleKey());
-                        options.setLaunchedFromBubble(true);
-                        options.setApplyActivityFlagsForBubbles(true);
+                        if (mBubble.isChat()) {
+                            options.setLaunchedFromBubble(true);
+                            options.setApplyActivityFlagsForBubbles(true);
+                        } else {
+                            options.setApplyMultipleTaskFlagForShortcut(true);
+                        }
                         mTaskView.startShortcutActivity(mBubble.getShortcutInfo(),
                                 options, launchBounds);
                     } else {
@@ -453,7 +461,34 @@
             mTaskView = bubbleTaskView.getTaskView();
             // reset the insets that might left after TaskView is shown in BubbleBarExpandedView
             mTaskView.setCaptionInsets(null);
-            bubbleTaskView.setDelegateListener(mTaskViewListener);
+            if (Flags.enableBubbleTaskViewListener()) {
+                mCurrentTaskViewListener = new BubbleTaskViewListener(mContext, bubbleTaskView,
+                        /* viewParent= */ this, expandedViewManager,
+                        new BubbleTaskViewListener.Callback() {
+                            @Override
+                            public void onTaskCreated() {
+                                setContentVisibility(true);
+                            }
+
+                            @Override
+                            public void onContentVisibilityChanged(boolean visible) {
+                                setContentVisibility(visible);
+                            }
+
+                            @Override
+                            public void onBackPressed() {
+                                mStackView.onBackPressed();
+                            }
+
+                            @Override
+                            public void onTaskRemovalStarted() {
+                                // nothing to do / handled in listener.
+                            }
+                        });
+            } else {
+                mCurrentTaskViewListener = mTaskViewListener;
+                bubbleTaskView.setDelegateListener(mCurrentTaskViewListener);
+            }
 
             // set a fixed width so it is not recalculated as part of a rotation. the width will be
             // updated manually after the rotation.
@@ -464,9 +499,12 @@
             }
             mExpandedViewContainer.addView(mTaskView, lp);
             bringChildToFront(mTaskView);
-            if (bubbleTaskView.isCreated()) {
-                mTaskViewListener.onTaskCreated(
-                        bubbleTaskView.getTaskId(), bubbleTaskView.getComponentName());
+
+            if (!Flags.enableBubbleTaskViewListener()) {
+                if (bubbleTaskView.isCreated()) {
+                    mCurrentTaskViewListener.onTaskCreated(
+                            bubbleTaskView.getTaskId(), bubbleTaskView.getComponentName());
+                }
             }
         }
     }
@@ -897,7 +935,12 @@
             Log.w(TAG, "Stack is null for bubble: " + bubble);
             return;
         }
-        boolean isNew = mBubble == null || didBackingContentChange(bubble);
+        boolean isNew;
+        if (mCurrentTaskViewListener instanceof BubbleTaskViewListener) {
+            isNew = ((BubbleTaskViewListener) mCurrentTaskViewListener).setBubble(bubble);
+        } else {
+            isNew = mBubble == null || didBackingContentChange(bubble);
+        }
         boolean isUpdate = bubble != null && mBubble != null
                 && bubble.getKey().equals(mBubble.getKey());
         ProtoLog.d(WM_SHELL_BUBBLES, "BubbleExpandedView - update bubble=%s; isNew=%b; isUpdate=%b",
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTaskViewListener.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTaskViewListener.java
index a38debb..63d7134 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTaskViewListener.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTaskViewListener.java
@@ -129,27 +129,28 @@
                     Context context =
                             mContext.createContextAsUser(
                                     mBubble.getUser(), Context.CONTEXT_RESTRICTED);
-                    Intent fillInIntent = null;
+                    Intent fillInIntent = new Intent();
+                    fillInIntent.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);
                     // First try get pending intent from the bubble
                     PendingIntent pi = mBubble.getPendingIntent();
                     if (pi == null) {
-                        // If null - create new one
+                        // If null - create new one based on the bubble intent
                         pi = PendingIntent.getActivity(
                                 context,
                                 /* requestCode= */ 0,
-                                mBubble.getIntent()
-                                        .addFlags(FLAG_ACTIVITY_MULTIPLE_TASK),
-                                PendingIntent.FLAG_IMMUTABLE
-                                        | PendingIntent.FLAG_UPDATE_CURRENT,
+                                mBubble.getIntent(),
+                                // Needs to be mutable for the fillInIntent
+                                PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT,
                                 /* options= */ null);
-                    } else {
-                        fillInIntent = new Intent(pi.getIntent());
-                        fillInIntent.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);
                     }
                     mTaskView.startActivity(pi, fillInIntent, options, launchBounds);
                 } else if (isShortcutBubble) {
-                    options.setLaunchedFromBubble(true);
-                    options.setApplyActivityFlagsForBubbles(true);
+                    if (mBubble.isChat()) {
+                        options.setLaunchedFromBubble(true);
+                        options.setApplyActivityFlagsForBubbles(true);
+                    } else {
+                        options.setApplyMultipleTaskFlagForShortcut(true);
+                    }
                     mTaskView.startShortcutActivity(mBubble.getShortcutInfo(),
                             options, launchBounds);
                 } else {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTransitions.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTransitions.java
index a676f41..338ffe7 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTransitions.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleTransitions.java
@@ -21,6 +21,7 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
 import static android.view.View.INVISIBLE;
 import static android.view.WindowManager.TRANSIT_CHANGE;
+import static android.view.WindowManager.TRANSIT_TO_FRONT;
 
 import static com.android.wm.shell.transition.Transitions.TRANSIT_CONVERT_TO_BUBBLE;
 
@@ -325,7 +326,7 @@
             for (int i = 0; i < info.getChanges().size(); ++i) {
                 final TransitionInfo.Change chg = info.getChanges().get(i);
                 if (chg.getTaskInfo() == null) continue;
-                if (chg.getMode() != TRANSIT_CHANGE) continue;
+                if (chg.getMode() != TRANSIT_CHANGE && chg.getMode() != TRANSIT_TO_FRONT) continue;
                 if (!mTaskInfo.token.equals(chg.getTaskInfo().token)) continue;
                 mStartBounds.set(chg.getStartAbsBounds());
                 // Converting a task into taskview, so treat as "new"
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java
index 29837dc..677c21c 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java
@@ -473,7 +473,7 @@
 
     /** Updates the expanded view size and position. */
     public void updateExpandedView() {
-        if (mExpandedView == null || mExpandedBubble == null) return;
+        if (mExpandedView == null || mExpandedBubble == null || mExpandedView.isAnimating()) return;
         boolean isOverflowExpanded = mExpandedBubble.getKey().equals(BubbleOverflow.KEY);
         mPositioner.getBubbleBarExpandedViewBounds(mPositioner.isBubbleBarOnLeft(),
                 isOverflowExpanded, mTempRect);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java
index 8377a35..dd2050a 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java
@@ -227,7 +227,13 @@
     /** Hides the IME for Bubbles when the device is locked. */
     public void hideImeForBubblesWhenLocked(int displayId) {
         PerDisplay pd = mImePerDisplay.get(displayId);
-        pd.setImeInputTargetRequestedVisibility(false, pd.getImeSourceControl().getImeStatsToken());
+        InsetsSourceControl imeSourceControl = pd.getImeSourceControl();
+        if (imeSourceControl != null) {
+            ImeTracker.Token imeStatsToken = imeSourceControl.getImeStatsToken();
+            if (imeStatsToken != null) {
+                pd.setImeInputTargetRequestedVisibility(false, imeStatsToken);
+            }
+        }
     }
 
     /** An implementation of {@link IDisplayWindowInsetsController} for a given display id. */
@@ -324,8 +330,10 @@
                         }
                         applyVisibilityToLeash(imeSourceControl);
                     }
-                    if (!mImeShowing) {
-                        removeImeSurface(mDisplayId);
+                    if (!android.view.inputmethod.Flags.refactorInsetsController()) {
+                        if (!mImeShowing) {
+                            removeImeSurface(mDisplayId);
+                        }
                     }
                 }
             } else {
@@ -453,6 +461,14 @@
             }
         }
 
+        private void setAnimating(boolean imeAnimationOngoing) {
+            int animatingTypes = imeAnimationOngoing ? WindowInsets.Type.ime() : 0;
+            try {
+                mWmService.updateDisplayWindowAnimatingTypes(mDisplayId, animatingTypes);
+            } catch (RemoteException e) {
+            }
+        }
+
         private int imeTop(float surfaceOffset, float surfacePositionY) {
             // surfaceOffset is already offset by the surface's top inset, so we need to subtract
             // the top inset so that the return value is in screen coordinates.
@@ -611,6 +627,9 @@
                                 + imeTop(hiddenY, defaultY) + "->" + imeTop(shownY, defaultY)
                                 + " showing:" + (mAnimationDirection == DIRECTION_SHOW));
                     }
+                    if (android.view.inputmethod.Flags.reportAnimatingInsetsTypes()) {
+                        setAnimating(true);
+                    }
                     int flags = dispatchStartPositioning(mDisplayId, imeTop(hiddenY, defaultY),
                             imeTop(shownY, defaultY), mAnimationDirection == DIRECTION_SHOW,
                             isFloating, t);
@@ -658,12 +677,16 @@
                     }
                     if (!android.view.inputmethod.Flags.refactorInsetsController()) {
                         dispatchEndPositioning(mDisplayId, mCancelled, t);
+                    } else if (android.view.inputmethod.Flags.reportAnimatingInsetsTypes()) {
+                        setAnimating(false);
                     }
                     if (mAnimationDirection == DIRECTION_HIDE && !mCancelled) {
                         ImeTracker.forLogging().onProgress(mStatsToken,
                                 ImeTracker.PHASE_WM_ANIMATION_RUNNING);
                         t.hide(animatingLeash);
-                        removeImeSurface(mDisplayId);
+                        if (!android.view.inputmethod.Flags.refactorInsetsController()) {
+                            removeImeSurface(mDisplayId);
+                        }
                         if (android.view.inputmethod.Flags.refactorInsetsController()) {
                             setVisibleDirectly(false /* visible */, statsToken);
                         }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorController.kt
new file mode 100644
index 0000000..7a5bc13
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorController.kt
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2025 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.wm.shell.common
+
+import android.app.ActivityManager.RunningTaskInfo
+import android.graphics.RectF
+import android.view.SurfaceControl
+import com.android.wm.shell.RootTaskDisplayAreaOrganizer
+import com.android.wm.shell.shared.annotations.ShellDesktopThread
+
+/**
+ * Controller to manage the indicators that show users the current position of the dragged window on
+ * the new display when performing drag move across displays.
+ */
+class MultiDisplayDragMoveIndicatorController(
+    private val displayController: DisplayController,
+    private val rootTaskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer,
+    private val indicatorSurfaceFactory: MultiDisplayDragMoveIndicatorSurface.Factory,
+    @ShellDesktopThread private val desktopExecutor: ShellExecutor,
+) {
+    @ShellDesktopThread
+    private val dragIndicators =
+        mutableMapOf<Int, MutableMap<Int, MultiDisplayDragMoveIndicatorSurface>>()
+
+    /**
+     * Called during drag move, which started at [startDisplayId]. Updates the position and
+     * visibility of the drag move indicators for the [taskInfo] based on [boundsDp] on the
+     * destination displays ([displayIds]) as the dragged window moves. [transactionSupplier]
+     * provides a [SurfaceControl.Transaction] for applying changes to the indicator surfaces.
+     *
+     * It is executed on the [desktopExecutor] to prevent blocking the main thread and avoid jank,
+     * as creating and manipulating surfaces can be expensive.
+     */
+    fun onDragMove(
+        boundsDp: RectF,
+        startDisplayId: Int,
+        taskInfo: RunningTaskInfo,
+        displayIds: Set<Int>,
+        transactionSupplier: () -> SurfaceControl.Transaction,
+    ) {
+        desktopExecutor.execute {
+            for (displayId in displayIds) {
+                if (displayId == startDisplayId) {
+                    // No need to render indicators on the original display where the drag started.
+                    continue
+                }
+                val displayLayout = displayController.getDisplayLayout(displayId) ?: continue
+                val shouldBeVisible =
+                    RectF.intersects(RectF(boundsDp), displayLayout.globalBoundsDp())
+                if (
+                    dragIndicators[taskInfo.taskId]?.containsKey(displayId) != true &&
+                        !shouldBeVisible
+                ) {
+                    // Skip this display if:
+                    // - It doesn't have an existing indicator that needs to be updated, AND
+                    // - The latest dragged window bounds don't intersect with this display.
+                    continue
+                }
+
+                val boundsPx =
+                    MultiDisplayDragMoveBoundsCalculator.convertGlobalDpToLocalPxForRect(
+                        boundsDp,
+                        displayLayout,
+                    )
+
+                // Get or create the inner map for the current task.
+                val dragIndicatorsForTask =
+                    dragIndicators.getOrPut(taskInfo.taskId) { mutableMapOf() }
+                dragIndicatorsForTask[displayId]?.also { existingIndicator ->
+                    val transaction = transactionSupplier()
+                    existingIndicator.relayout(boundsPx, transaction, shouldBeVisible)
+                    transaction.apply()
+                } ?: run {
+                    val newIndicator =
+                        indicatorSurfaceFactory.create(
+                            taskInfo,
+                            displayController.getDisplay(displayId),
+                        )
+                    newIndicator.show(
+                        transactionSupplier(),
+                        taskInfo,
+                        rootTaskDisplayAreaOrganizer,
+                        displayId,
+                        boundsPx,
+                    )
+                    dragIndicatorsForTask[displayId] = newIndicator
+                }
+            }
+        }
+    }
+
+    /**
+     * Called when the drag ends. Disposes of the drag move indicator surfaces associated with the
+     * given [taskId]. [transactionSupplier] provides a [SurfaceControl.Transaction] for applying
+     * changes to the indicator surfaces.
+     *
+     * It is executed on the [desktopExecutor] to ensure that any pending `onDragMove` operations
+     * have completed before disposing of the surfaces.
+     */
+    fun onDragEnd(taskId: Int, transactionSupplier: () -> SurfaceControl.Transaction) {
+        desktopExecutor.execute {
+            dragIndicators.remove(taskId)?.values?.takeIf { it.isNotEmpty() }?.let { indicators ->
+                val transaction = transactionSupplier()
+                indicators.forEach { indicator ->
+                    indicator.disposeSurface(transaction)
+                }
+                transaction.apply()
+            }
+        }
+    }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorSurface.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorSurface.kt
new file mode 100644
index 0000000..d05d3b0
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorSurface.kt
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2025 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.wm.shell.common
+
+import android.app.ActivityManager.RunningTaskInfo
+import android.content.Context
+import android.graphics.Color
+import android.graphics.Rect
+import android.os.Trace
+import android.view.Display
+import android.view.SurfaceControl
+import androidx.compose.material3.dynamicDarkColorScheme
+import androidx.compose.material3.dynamicLightColorScheme
+import androidx.compose.ui.graphics.toArgb
+import com.android.wm.shell.RootTaskDisplayAreaOrganizer
+import com.android.wm.shell.windowdecor.common.DecorThemeUtil
+import com.android.wm.shell.windowdecor.common.Theme
+
+/**
+ * Represents the indicator surface that visualizes the current position of a dragged window during
+ * a multi-display drag operation.
+ *
+ * This class manages the creation, display, and manipulation of the [SurfaceControl]s that act as a
+ * visual indicator, providing feedback to the user about the dragged window's location.
+ */
+class MultiDisplayDragMoveIndicatorSurface(
+    context: Context,
+    taskInfo: RunningTaskInfo,
+    display: Display,
+    surfaceControlBuilderFactory: Factory.SurfaceControlBuilderFactory,
+) {
+    private var isVisible = false
+
+    // A container surface to host the veil background
+    private var veilSurface: SurfaceControl? = null
+
+    private val decorThemeUtil = DecorThemeUtil(context)
+    private val lightColors = dynamicLightColorScheme(context)
+    private val darkColors = dynamicDarkColorScheme(context)
+
+    init {
+        Trace.beginSection("DragIndicatorSurface#init")
+
+        val displayId = display.displayId
+        veilSurface =
+            surfaceControlBuilderFactory
+                .create("Drag indicator veil of Task=${taskInfo.taskId} Display=$displayId")
+                .setColorLayer()
+                .setCallsite("DragIndicatorSurface#init")
+                .setHidden(true)
+                .build()
+
+        // TODO: b/383069173 - Add icon for the surface.
+
+        Trace.endSection()
+    }
+
+    /**
+     * Disposes the indicator surface using the provided [transaction].
+     */
+    fun disposeSurface(transaction: SurfaceControl.Transaction) {
+        veilSurface?.let { veil -> transaction.remove(veil) }
+        veilSurface = null
+    }
+
+    /**
+     * Shows the indicator surface at [bounds] on the specified display ([displayId]),
+     * visualizing the drag of the [taskInfo]. The indicator surface is shown using [transaction],
+     * and the [rootTaskDisplayAreaOrganizer] is used to reparent the surfaces.
+     */
+    fun show(
+        transaction: SurfaceControl.Transaction,
+        taskInfo: RunningTaskInfo,
+        rootTaskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer,
+        displayId: Int,
+        bounds: Rect,
+    ) {
+        val backgroundColor =
+            when (decorThemeUtil.getAppTheme(taskInfo)) {
+                Theme.LIGHT -> lightColors.surfaceContainer
+                Theme.DARK -> darkColors.surfaceContainer
+            }
+        val veil = veilSurface ?: return
+        isVisible = true
+
+        rootTaskDisplayAreaOrganizer.reparentToDisplayArea(displayId, veil, transaction)
+        relayout(bounds, transaction, shouldBeVisible = true)
+        transaction.show(veil).setColor(veil, Color.valueOf(backgroundColor.toArgb()).components)
+        transaction.apply()
+    }
+
+    /**
+     * Repositions and resizes the indicator surface based on [bounds] using [transaction]. The
+     * [shouldBeVisible] flag indicates whether the indicator is within the display after relayout.
+     */
+    fun relayout(bounds: Rect, transaction: SurfaceControl.Transaction, shouldBeVisible: Boolean) {
+        if (!isVisible && !shouldBeVisible) {
+            // No need to relayout if the surface is already invisible and should not be visible.
+            return
+        }
+        isVisible = shouldBeVisible
+        val veil = veilSurface ?: return
+        transaction.setCrop(veil, bounds)
+    }
+
+    /**
+     * Factory for creating [MultiDisplayDragMoveIndicatorSurface] instances with the [context].
+     */
+    class Factory(private val context: Context) {
+        private val surfaceControlBuilderFactory: SurfaceControlBuilderFactory =
+            object : SurfaceControlBuilderFactory {}
+
+        /**
+         * Creates a new [MultiDisplayDragMoveIndicatorSurface] instance to visualize the drag
+         * operation of the [taskInfo] on the given [display].
+         */
+        fun create(
+            taskInfo: RunningTaskInfo,
+            display: Display,
+        ) = MultiDisplayDragMoveIndicatorSurface(
+            context,
+            taskInfo,
+            display,
+            surfaceControlBuilderFactory,
+        )
+
+        /**
+         * Interface for creating [SurfaceControl.Builder] instances.
+         *
+         * This provides an abstraction over [SurfaceControl.Builder] creation for testing purposes.
+         */
+        interface SurfaceControlBuilderFactory {
+            fun create(name: String): SurfaceControl.Builder {
+                return SurfaceControl.Builder().setName(name)
+            }
+        }
+    }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipBoundsAlgorithm.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipBoundsAlgorithm.java
index 8e026f0..04e8d8d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipBoundsAlgorithm.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipBoundsAlgorithm.java
@@ -24,6 +24,7 @@
 import android.content.res.Resources;
 import android.graphics.Rect;
 import android.util.DisplayMetrics;
+import android.util.Rational;
 import android.util.Size;
 import android.view.Gravity;
 
@@ -41,9 +42,6 @@
     private static final String TAG = PipBoundsAlgorithm.class.getSimpleName();
     private static final float INVALID_SNAP_FRACTION = -1f;
 
-    // The same value (with the same name) is used in Launcher.
-    private static final float PIP_ASPECT_RATIO_MISMATCH_THRESHOLD = 0.01f;
-
     @NonNull private final PipBoundsState mPipBoundsState;
     @NonNull protected final PipDisplayLayoutState mPipDisplayLayoutState;
     @NonNull protected final SizeSpecSource mSizeSpecSource;
@@ -223,9 +221,8 @@
                             + " than destination(%s)", sourceRectHint, destinationBounds);
             return false;
         }
-        final float reportedRatio = destinationBounds.width() / (float) destinationBounds.height();
-        final float inferredRatio = sourceRectHint.width() / (float) sourceRectHint.height();
-        if (Math.abs(reportedRatio - inferredRatio) > PIP_ASPECT_RATIO_MISMATCH_THRESHOLD) {
+        if (!PictureInPictureParams.isSameAspectRatio(sourceRectHint,
+                new Rational(destinationBounds.width(), destinationBounds.height()))) {
             ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
                     "isSourceRectHintValidForEnterPip=false, hint(%s) does not match"
                             + " destination(%s) aspect ratio", sourceRectHint, destinationBounds);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipBoundsState.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipBoundsState.java
index c487f75..214e6ad 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipBoundsState.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipBoundsState.java
@@ -377,6 +377,16 @@
 
     /** Sets the preferred size of PIP as specified by the activity in PIP mode. */
     public void setOverrideMinSize(@Nullable Size overrideMinSize) {
+        if (overrideMinSize != null) {
+            final Size defaultSize = mSizeSpecSource.getDefaultSize(getAspectRatio());
+            if (overrideMinSize.getWidth() > defaultSize.getWidth()
+                    || overrideMinSize.getHeight() > defaultSize.getHeight()) {
+                ProtoLog.w(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
+                        "Ignore override min size(%s): larger than default size (%s)",
+                        overrideMinSize, defaultSize);
+                return;
+            }
+        }
         final boolean changed = !Objects.equals(overrideMinSize, getOverrideMinSize());
         mSizeSpecSource.setOverrideMinSize(overrideMinSize);
         if (changed && mOnMinimalSizeChangeCallback != null) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/DividerView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/DividerView.java
index 06044cc..975303d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/DividerView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/DividerView.java
@@ -130,8 +130,6 @@
         public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
             super.onInitializeAccessibilityNodeInfo(host, info);
             final DividerSnapAlgorithm snapAlgorithm = mSplitLayout.mDividerSnapAlgorithm;
-            info.addAction(new AccessibilityAction(R.id.action_swap_apps,
-                    mContext.getString(R.string.accessibility_action_divider_swap)));
             if (mSplitLayout.isLeftRightSplit()) {
                 info.addAction(new AccessibilityAction(R.id.action_move_tl_full,
                         mContext.getString(R.string.accessibility_action_divider_left_full)));
@@ -150,6 +148,8 @@
                 }
                 info.addAction(new AccessibilityAction(R.id.action_move_rb_full,
                         mContext.getString(R.string.accessibility_action_divider_right_full)));
+                info.addAction(new AccessibilityAction(R.id.action_swap_apps,
+                        mContext.getString(R.string.accessibility_action_divider_swap_horizontal)));
             } else {
                 info.addAction(new AccessibilityAction(R.id.action_move_tl_full,
                         mContext.getString(R.string.accessibility_action_divider_top_full)));
@@ -168,6 +168,8 @@
                 }
                 info.addAction(new AccessibilityAction(R.id.action_move_rb_full,
                         mContext.getString(R.string.accessibility_action_divider_bottom_full)));
+                info.addAction(new AccessibilityAction(R.id.action_swap_apps,
+                        mContext.getString(R.string.accessibility_action_divider_swap_vertical)));
             }
         }
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellConcurrencyModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellConcurrencyModule.java
index ee3e39e..e9dc613 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellConcurrencyModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellConcurrencyModule.java
@@ -162,22 +162,31 @@
         }
     }
 
+    /** Provide a Shell animation-thread Handler. */
+    @WMSingleton
+    @Provides
+    @ShellAnimationThread
+    public static Handler provideShellAnimationHandler() {
+        HandlerThread animThread = new HandlerThread("wmshell.anim", THREAD_PRIORITY_DISPLAY);
+        animThread.start();
+        if (Build.IS_DEBUGGABLE) {
+            animThread.getLooper().setTraceTag(Trace.TRACE_TAG_WINDOW_MANAGER);
+            animThread.getLooper().setSlowLogThresholdMs(MSGQ_SLOW_DISPATCH_THRESHOLD_MS,
+                    MSGQ_SLOW_DELIVERY_THRESHOLD_MS);
+        }
+        return Handler.createAsync(animThread.getLooper());
+    }
+
     /**
      * Provide a Shell animation-thread Executor.
      */
     @WMSingleton
     @Provides
     @ShellAnimationThread
-    public static ShellExecutor provideShellAnimationExecutor() {
-         HandlerThread shellAnimationThread = new HandlerThread("wmshell.anim",
-                 THREAD_PRIORITY_DISPLAY);
-         shellAnimationThread.start();
-        if (Build.IS_DEBUGGABLE) {
-            shellAnimationThread.getLooper().setTraceTag(Trace.TRACE_TAG_WINDOW_MANAGER);
-            shellAnimationThread.getLooper().setSlowLogThresholdMs(MSGQ_SLOW_DISPATCH_THRESHOLD_MS,
-                    MSGQ_SLOW_DELIVERY_THRESHOLD_MS);
-        }
-         return new HandlerExecutor(Handler.createAsync(shellAnimationThread.getLooper()));
+    public static ShellExecutor provideShellAnimationExecutor(
+            @ShellAnimationThread Handler animHandler
+    ) {
+        return new HandlerExecutor(animHandler);
     }
 
     /**
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
index 2fd8c27..48fadc0 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
@@ -44,6 +44,7 @@
 import com.android.internal.jank.InteractionJankMonitor;
 import com.android.internal.logging.UiEventLogger;
 import com.android.internal.statusbar.IStatusBarService;
+import com.android.internal.util.LatencyTracker;
 import com.android.launcher3.icons.IconProvider;
 import com.android.window.flags.Flags;
 import com.android.wm.shell.RootTaskDisplayAreaOrganizer;
@@ -68,6 +69,8 @@
 import com.android.wm.shell.common.DisplayLayout;
 import com.android.wm.shell.common.FloatingContentCoordinator;
 import com.android.wm.shell.common.LaunchAdjacentController;
+import com.android.wm.shell.common.MultiDisplayDragMoveIndicatorController;
+import com.android.wm.shell.common.MultiDisplayDragMoveIndicatorSurface;
 import com.android.wm.shell.common.MultiInstanceHelper;
 import com.android.wm.shell.common.ShellExecutor;
 import com.android.wm.shell.common.SyncTransactionQueue;
@@ -82,6 +85,7 @@
 import com.android.wm.shell.desktopmode.DefaultDragToDesktopTransitionHandler;
 import com.android.wm.shell.desktopmode.DesktopActivityOrientationChangeHandler;
 import com.android.wm.shell.desktopmode.DesktopDisplayEventHandler;
+import com.android.wm.shell.desktopmode.DesktopDisplayModeController;
 import com.android.wm.shell.desktopmode.DesktopImmersiveController;
 import com.android.wm.shell.desktopmode.DesktopMinimizationTransitionHandler;
 import com.android.wm.shell.desktopmode.DesktopMixedTransitionHandler;
@@ -96,6 +100,7 @@
 import com.android.wm.shell.desktopmode.DesktopTasksTransitionObserver;
 import com.android.wm.shell.desktopmode.DesktopUserRepositories;
 import com.android.wm.shell.desktopmode.DragToDesktopTransitionHandler;
+import com.android.wm.shell.desktopmode.DragToDisplayTransitionHandler;
 import com.android.wm.shell.desktopmode.EnterDesktopTaskTransitionHandler;
 import com.android.wm.shell.desktopmode.ExitDesktopTaskTransitionHandler;
 import com.android.wm.shell.desktopmode.OverviewToDesktopTransitionObserver;
@@ -428,9 +433,10 @@
             Transitions transitions,
             DisplayController displayController,
             @ShellMainThread ShellExecutor mainExecutor,
-            @ShellAnimationThread ShellExecutor animExecutor) {
+            @ShellAnimationThread ShellExecutor animExecutor,
+            @ShellAnimationThread Handler animHandler) {
         return new FreeformTaskTransitionHandler(
-                transitions, displayController, mainExecutor, animExecutor);
+                transitions, displayController, mainExecutor, animExecutor, animHandler);
     }
 
     @WMSingleton
@@ -765,7 +771,8 @@
             DesksOrganizer desksOrganizer,
             DesksTransitionObserver desksTransitionObserver,
             UserProfileContexts userProfileContexts,
-            DesktopModeCompatPolicy desktopModeCompatPolicy) {
+            DesktopModeCompatPolicy desktopModeCompatPolicy,
+            DragToDisplayTransitionHandler dragToDisplayTransitionHandler) {
         return new DesktopTasksController(
                 context,
                 shellInit,
@@ -803,7 +810,8 @@
                 desksOrganizer,
                 desksTransitionObserver,
                 userProfileContexts,
-                desktopModeCompatPolicy);
+                desktopModeCompatPolicy,
+                dragToDisplayTransitionHandler);
     }
 
     @WMSingleton
@@ -929,6 +937,12 @@
 
     @WMSingleton
     @Provides
+    static DragToDisplayTransitionHandler provideDragToDisplayTransitionHandler() {
+        return new DragToDisplayTransitionHandler();
+    }
+
+    @WMSingleton
+    @Provides
     static Optional<DesktopModeKeyGestureHandler> provideDesktopModeKeyGestureHandler(
             Context context,
             Optional<DesktopModeWindowDecorViewModel> desktopModeWindowDecorViewModel,
@@ -989,7 +1003,8 @@
             WindowDecorTaskResourceLoader taskResourceLoader,
             RecentsTransitionHandler recentsTransitionHandler,
             DesktopModeCompatPolicy desktopModeCompatPolicy,
-            DesktopTilingDecorViewModel desktopTilingDecorViewModel
+            DesktopTilingDecorViewModel desktopTilingDecorViewModel,
+            MultiDisplayDragMoveIndicatorController multiDisplayDragMoveIndicatorController
     ) {
         if (!DesktopModeStatus.canEnterDesktopModeOrShowAppHandle(context)) {
             return Optional.empty();
@@ -1006,7 +1021,30 @@
                 windowDecorCaptionHandleRepository, activityOrientationChangeHandler,
                 focusTransitionObserver, desktopModeEventLogger, desktopModeUiEventLogger,
                 taskResourceLoader, recentsTransitionHandler, desktopModeCompatPolicy,
-                desktopTilingDecorViewModel));
+                desktopTilingDecorViewModel,
+                multiDisplayDragMoveIndicatorController));
+    }
+
+    @WMSingleton
+    @Provides
+    static MultiDisplayDragMoveIndicatorController
+            providesMultiDisplayDragMoveIndicatorController(
+            DisplayController displayController,
+            RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer,
+            MultiDisplayDragMoveIndicatorSurface.Factory
+                multiDisplayDragMoveIndicatorSurfaceFactory,
+            @ShellDesktopThread ShellExecutor desktopExecutor
+    ) {
+        return new MultiDisplayDragMoveIndicatorController(
+                displayController, rootTaskDisplayAreaOrganizer,
+                multiDisplayDragMoveIndicatorSurfaceFactory, desktopExecutor);
+    }
+
+    @WMSingleton
+    @Provides
+    static MultiDisplayDragMoveIndicatorSurface.Factory
+            providesMultiDisplayDragMoveIndicatorSurfaceFactory(Context context) {
+        return new MultiDisplayDragMoveIndicatorSurface.Factory(context);
     }
 
     @WMSingleton
@@ -1046,8 +1084,10 @@
     static EnterDesktopTaskTransitionHandler provideEnterDesktopModeTaskTransitionHandler(
             Transitions transitions,
             Optional<DesktopTasksLimiter> desktopTasksLimiter,
-            InteractionJankMonitor interactionJankMonitor) {
-        return new EnterDesktopTaskTransitionHandler(transitions, interactionJankMonitor);
+            InteractionJankMonitor interactionJankMonitor,
+            LatencyTracker latencyTracker) {
+        return new EnterDesktopTaskTransitionHandler(
+                transitions, interactionJankMonitor, latencyTracker);
     }
 
     @WMSingleton
@@ -1074,8 +1114,9 @@
             Context context,
             @ShellMainThread ShellExecutor mainExecutor,
             @ShellAnimationThread ShellExecutor animExecutor,
-            @ShellMainThread Handler handler) {
-        return new CloseDesktopTaskTransitionHandler(context, mainExecutor, animExecutor, handler);
+            @ShellAnimationThread Handler animHandler) {
+        return new CloseDesktopTaskTransitionHandler(context, mainExecutor, animExecutor,
+                animHandler);
     }
 
     @WMSingleton
@@ -1083,9 +1124,10 @@
     static DesktopMinimizationTransitionHandler provideDesktopMinimizationTransitionHandler(
             @ShellMainThread ShellExecutor mainExecutor,
             @ShellAnimationThread ShellExecutor animExecutor,
-            DisplayController displayController) {
+            DisplayController displayController,
+            @ShellAnimationThread Handler mainHandler) {
         return new DesktopMinimizationTransitionHandler(mainExecutor, animExecutor,
-                displayController);
+                displayController, mainHandler);
     }
 
     @WMSingleton
@@ -1230,13 +1272,10 @@
     static Optional<DesktopDisplayEventHandler> provideDesktopDisplayEventHandler(
             Context context,
             ShellInit shellInit,
-            Transitions transitions,
             DisplayController displayController,
-            RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer,
-            IWindowManager windowManager,
             Optional<DesktopUserRepositories> desktopUserRepositories,
             Optional<DesktopTasksController> desktopTasksController,
-            ShellTaskOrganizer shellTaskOrganizer
+            Optional<DesktopDisplayModeController> desktopDisplayModeController
     ) {
         if (!DesktopModeStatus.canEnterDesktopMode(context)) {
             return Optional.empty();
@@ -1245,13 +1284,10 @@
                 new DesktopDisplayEventHandler(
                         context,
                         shellInit,
-                        transitions,
                         displayController,
-                        rootTaskDisplayAreaOrganizer,
-                        windowManager,
                         desktopUserRepositories.get(),
                         desktopTasksController.get(),
-                        shellTaskOrganizer));
+                        desktopDisplayModeController.get()));
     }
 
     @WMSingleton
@@ -1381,6 +1417,29 @@
         return new DesktopModeUiEventLogger(uiEventLogger, packageManager);
     }
 
+    @WMSingleton
+    @Provides
+    static Optional<DesktopDisplayModeController> provideDesktopDisplayModeController(
+            Context context,
+            Transitions transitions,
+            RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer,
+            IWindowManager windowManager,
+            ShellTaskOrganizer shellTaskOrganizer,
+            DesktopWallpaperActivityTokenProvider desktopWallpaperActivityTokenProvider
+    ) {
+        if (!DesktopModeStatus.canEnterDesktopMode(context)) {
+            return Optional.empty();
+        }
+        return Optional.of(
+                new DesktopDisplayModeController(
+                        context,
+                        transitions,
+                        rootTaskDisplayAreaOrganizer,
+                        windowManager,
+                        shellTaskOrganizer,
+                        desktopWallpaperActivityTokenProvider));
+    }
+
     //
     // App zoom out
     //
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt
index 1ce093e..b22a46e 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt
@@ -37,7 +37,6 @@
 import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_CLOSE_TASK
 import com.android.internal.jank.InteractionJankMonitor
 import com.android.wm.shell.common.ShellExecutor
-import com.android.wm.shell.shared.annotations.ShellMainThread
 import com.android.wm.shell.transition.Transitions
 import java.util.function.Supplier
 
@@ -49,7 +48,7 @@
     private val mainExecutor: ShellExecutor,
     private val animExecutor: ShellExecutor,
     private val transactionSupplier: Supplier<Transaction> = Supplier { Transaction() },
-    @ShellMainThread private val handler: Handler,
+    private val animHandler: Handler,
 ) : Transitions.TransitionHandler {
 
     private val runningAnimations = mutableMapOf<IBinder, List<Animator>>()
@@ -95,7 +94,7 @@
             interactionJankMonitor.begin(
                 lastChangeLeash,
                 context,
-                handler,
+                animHandler,
                 CUJ_DESKTOP_MODE_CLOSE_TASK,
             )
         }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopDisplayEventHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopDisplayEventHandler.kt
index c38558d..afc48ac 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopDisplayEventHandler.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopDisplayEventHandler.kt
@@ -16,41 +16,25 @@
 
 package com.android.wm.shell.desktopmode
 
-import android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD
-import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
-import android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED
-import android.app.WindowConfiguration.windowingModeToString
 import android.content.Context
-import android.provider.Settings
-import android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS
 import android.view.Display.DEFAULT_DISPLAY
-import android.view.IWindowManager
-import android.view.WindowManager.TRANSIT_CHANGE
 import android.window.DesktopExperienceFlags
-import android.window.WindowContainerTransaction
 import com.android.internal.protolog.ProtoLog
-import com.android.window.flags.Flags
-import com.android.wm.shell.RootTaskDisplayAreaOrganizer
-import com.android.wm.shell.ShellTaskOrganizer
 import com.android.wm.shell.common.DisplayController
 import com.android.wm.shell.common.DisplayController.OnDisplaysChangedListener
 import com.android.wm.shell.desktopmode.multidesks.OnDeskRemovedListener
 import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE
 import com.android.wm.shell.shared.desktopmode.DesktopModeStatus
 import com.android.wm.shell.sysui.ShellInit
-import com.android.wm.shell.transition.Transitions
 
 /** Handles display events in desktop mode */
 class DesktopDisplayEventHandler(
     private val context: Context,
     shellInit: ShellInit,
-    private val transitions: Transitions,
     private val displayController: DisplayController,
-    private val rootTaskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer,
-    private val windowManager: IWindowManager,
     private val desktopUserRepositories: DesktopUserRepositories,
     private val desktopTasksController: DesktopTasksController,
-    private val shellTaskOrganizer: ShellTaskOrganizer,
+    private val desktopDisplayModeController: DesktopDisplayModeController,
 ) : OnDisplaysChangedListener, OnDeskRemovedListener {
 
     private val desktopRepository: DesktopRepository
@@ -70,7 +54,7 @@
 
     override fun onDisplayAdded(displayId: Int) {
         if (displayId != DEFAULT_DISPLAY) {
-            refreshDisplayWindowingMode()
+            desktopDisplayModeController.refreshDisplayWindowingMode()
         }
 
         if (!supportsDesks(displayId)) {
@@ -84,11 +68,13 @@
         //  desk has been recreated here, which may result in a crash-loop if the repository is
         //  checking that the desk exists before adding a task to it. See b/391984373.
         desktopTasksController.createDesk(displayId)
+        // TODO: b/393978539 - consider activating the desk on creation when applicable, such as
+        //  for connected displays.
     }
 
     override fun onDisplayRemoved(displayId: Int) {
         if (displayId != DEFAULT_DISPLAY) {
-            refreshDisplayWindowingMode()
+            desktopDisplayModeController.refreshDisplayWindowingMode()
         }
 
         // TODO: b/362720497 - move desks in closing display to the remaining desk.
@@ -102,65 +88,6 @@
         }
     }
 
-    private fun refreshDisplayWindowingMode() {
-        if (!Flags.enableDisplayWindowingModeSwitching()) return
-        // TODO: b/375319538 - Replace the check with a DisplayManager API once it's available.
-        val isExtendedDisplayEnabled =
-            0 !=
-                Settings.Global.getInt(
-                    context.contentResolver,
-                    DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
-                    0,
-                )
-        if (!isExtendedDisplayEnabled) {
-            // No action needed in mirror or projected mode.
-            return
-        }
-
-        val hasNonDefaultDisplay =
-            rootTaskDisplayAreaOrganizer.getDisplayIds().any { displayId ->
-                displayId != DEFAULT_DISPLAY
-            }
-        val targetDisplayWindowingMode =
-            if (hasNonDefaultDisplay) {
-                WINDOWING_MODE_FREEFORM
-            } else {
-                // Use the default display windowing mode when no non-default display.
-                windowManager.getWindowingMode(DEFAULT_DISPLAY)
-            }
-        val tdaInfo = rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(DEFAULT_DISPLAY)
-        requireNotNull(tdaInfo) { "DisplayAreaInfo of DEFAULT_DISPLAY must be non-null." }
-        val currentDisplayWindowingMode = tdaInfo.configuration.windowConfiguration.windowingMode
-        if (currentDisplayWindowingMode == targetDisplayWindowingMode) {
-            // Already in the target mode.
-            return
-        }
-
-        logV(
-            "As an external display is connected, changing default display's windowing mode from" +
-                " ${windowingModeToString(currentDisplayWindowingMode)}" +
-                " to ${windowingModeToString(targetDisplayWindowingMode)}"
-        )
-
-        val wct = WindowContainerTransaction()
-        wct.setWindowingMode(tdaInfo.token, targetDisplayWindowingMode)
-        shellTaskOrganizer
-            .getRunningTasks(DEFAULT_DISPLAY)
-            .filter { it.activityType == ACTIVITY_TYPE_STANDARD }
-            .forEach {
-                // TODO: b/391965153 - Reconsider the logic under multi-desk window hierarchy
-                when (it.windowingMode) {
-                    currentDisplayWindowingMode -> {
-                        wct.setWindowingMode(it.token, currentDisplayWindowingMode)
-                    }
-                    targetDisplayWindowingMode -> {
-                        wct.setWindowingMode(it.token, WINDOWING_MODE_UNDEFINED)
-                    }
-                }
-            }
-        transitions.startTransition(TRANSIT_CHANGE, wct, /* handler= */ null)
-    }
-
     // TODO: b/362720497 - connected/projected display considerations.
     private fun supportsDesks(displayId: Int): Boolean =
         DesktopModeStatus.canEnterDesktopMode(context)
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopDisplayModeController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopDisplayModeController.kt
new file mode 100644
index 0000000..e89aafe
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopDisplayModeController.kt
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2025 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.wm.shell.desktopmode
+
+import android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD
+import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
+import android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN
+import android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED
+import android.app.WindowConfiguration.windowingModeToString
+import android.content.Context
+import android.provider.Settings
+import android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS
+import android.view.Display.DEFAULT_DISPLAY
+import android.view.IWindowManager
+import android.view.WindowManager.TRANSIT_CHANGE
+import android.window.DesktopExperienceFlags
+import android.window.WindowContainerTransaction
+import com.android.internal.protolog.ProtoLog
+import com.android.wm.shell.RootTaskDisplayAreaOrganizer
+import com.android.wm.shell.ShellTaskOrganizer
+import com.android.wm.shell.desktopmode.desktopwallpaperactivity.DesktopWallpaperActivityTokenProvider
+import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE
+import com.android.wm.shell.transition.Transitions
+
+/** Controls the display windowing mode in desktop mode */
+class DesktopDisplayModeController(
+    private val context: Context,
+    private val transitions: Transitions,
+    private val rootTaskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer,
+    private val windowManager: IWindowManager,
+    private val shellTaskOrganizer: ShellTaskOrganizer,
+    private val desktopWallpaperActivityTokenProvider: DesktopWallpaperActivityTokenProvider,
+) {
+
+    fun refreshDisplayWindowingMode() {
+        if (!DesktopExperienceFlags.ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING.isTrue) return
+
+        val targetDisplayWindowingMode = getTargetWindowingModeForDefaultDisplay()
+        val tdaInfo = rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(DEFAULT_DISPLAY)
+        requireNotNull(tdaInfo) { "DisplayAreaInfo of DEFAULT_DISPLAY must be non-null." }
+        val currentDisplayWindowingMode = tdaInfo.configuration.windowConfiguration.windowingMode
+        if (currentDisplayWindowingMode == targetDisplayWindowingMode) {
+            // Already in the target mode.
+            return
+        }
+
+        logV(
+            "As an external display is connected, changing default display's windowing mode from" +
+                " ${windowingModeToString(currentDisplayWindowingMode)}" +
+                " to ${windowingModeToString(targetDisplayWindowingMode)}"
+        )
+
+        val wct = WindowContainerTransaction()
+        wct.setWindowingMode(tdaInfo.token, targetDisplayWindowingMode)
+        shellTaskOrganizer
+            .getRunningTasks(DEFAULT_DISPLAY)
+            .filter { it.activityType == ACTIVITY_TYPE_STANDARD }
+            .forEach {
+                // TODO: b/391965153 - Reconsider the logic under multi-desk window hierarchy
+                when (it.windowingMode) {
+                    currentDisplayWindowingMode -> {
+                        wct.setWindowingMode(it.token, currentDisplayWindowingMode)
+                    }
+                    targetDisplayWindowingMode -> {
+                        wct.setWindowingMode(it.token, WINDOWING_MODE_UNDEFINED)
+                    }
+                }
+            }
+        // The override windowing mode of DesktopWallpaper can be UNDEFINED on fullscreen-display
+        // right after the first launch while its resolved windowing mode is FULLSCREEN. We here
+        // it has the FULLSCREEN override windowing mode.
+        desktopWallpaperActivityTokenProvider.getToken(DEFAULT_DISPLAY)?.let { token ->
+            wct.setWindowingMode(token, WINDOWING_MODE_FULLSCREEN)
+        }
+        transitions.startTransition(TRANSIT_CHANGE, wct, /* handler= */ null)
+    }
+
+    private fun getTargetWindowingModeForDefaultDisplay(): Int {
+        if (isExtendedDisplayEnabled() && hasExternalDisplay()) {
+            return WINDOWING_MODE_FREEFORM
+        }
+        return windowManager.getWindowingMode(DEFAULT_DISPLAY)
+    }
+
+    // TODO: b/375319538 - Replace the check with a DisplayManager API once it's available.
+    private fun isExtendedDisplayEnabled() =
+        0 !=
+            Settings.Global.getInt(
+                context.contentResolver,
+                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
+                0,
+            )
+
+    private fun hasExternalDisplay() =
+        rootTaskDisplayAreaOrganizer.getDisplayIds().any { it != DEFAULT_DISPLAY }
+
+    private fun logV(msg: String, vararg arguments: Any?) {
+        ProtoLog.v(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
+    }
+
+    companion object {
+        private const val TAG = "DesktopDisplayModeController"
+    }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandler.kt
index 728638d..7074e8b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandler.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandler.kt
@@ -18,14 +18,17 @@
 
 import android.animation.Animator
 import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
+import android.os.Handler
 import android.os.IBinder
-import android.util.DisplayMetrics
 import android.view.SurfaceControl.Transaction
 import android.window.TransitionInfo
 import android.window.TransitionRequestInfo
 import android.window.WindowContainerTransaction
+import com.android.internal.jank.InteractionJankMonitor
+import com.android.internal.protolog.ProtoLog
 import com.android.wm.shell.common.DisplayController
 import com.android.wm.shell.common.ShellExecutor
+import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE
 import com.android.wm.shell.shared.TransitionUtil
 import com.android.wm.shell.shared.animation.MinimizeAnimator.create
 import com.android.wm.shell.transition.Transitions
@@ -41,6 +44,7 @@
     private val mainExecutor: ShellExecutor,
     private val animExecutor: ShellExecutor,
     private val displayController: DisplayController,
+    private val animHandler: Handler,
 ) : Transitions.TransitionHandler {
 
     /** Shouldn't handle anything */
@@ -90,10 +94,30 @@
         val t = Transaction()
         val sc = change.leash
         finishTransaction.hide(sc)
-        val displayMetrics: DisplayMetrics? =
-            change.taskInfo?.let {
-                displayController.getDisplayContext(it.displayId)?.getResources()?.displayMetrics
-            }
-        return displayMetrics?.let { create(it, change, t, onAnimFinish) }
+        val displayContext =
+            change.taskInfo?.let { displayController.getDisplayContext(it.displayId) }
+        if (displayContext == null) {
+            logW(
+                "displayContext is null for taskId=${change.taskInfo?.taskId}, " +
+                    "displayId=${change.taskInfo?.displayId}"
+            )
+            return null
+        }
+        return create(
+            displayContext,
+            change,
+            t,
+            onAnimFinish,
+            InteractionJankMonitor.getInstance(),
+            animHandler,
+        )
+    }
+
+    private companion object {
+        private fun logW(msg: String, vararg arguments: Any?) {
+            ProtoLog.w(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
+        }
+
+        const val TAG = "DesktopMinimizationTransitionHandler"
     }
 }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicator.java
index 99f05283..56de48d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicator.java
@@ -49,6 +49,7 @@
 import com.android.wm.shell.shared.bubbles.BubbleAnythingFlagHelper;
 import com.android.wm.shell.shared.bubbles.BubbleDropTargetBoundsProvider;
 import com.android.wm.shell.shared.desktopmode.DesktopModeStatus;
+import com.android.wm.shell.windowdecor.tiling.SnapEventHandler;
 
 /**
  * Animated visual indicator for Desktop Mode windowing transitions.
@@ -98,7 +99,9 @@
                 return FROM_SPLIT;
             } else if (taskInfo.isFreeform()) {
                 return FROM_FREEFORM;
-            } else return null;
+            } else {
+                return null;
+            }
         }
     }
 
@@ -110,6 +113,7 @@
 
     private IndicatorType mCurrentType;
     private final DragStartState mDragStartState;
+    private final SnapEventHandler mSnapEventHandler;
 
     public DesktopModeVisualIndicator(@ShellDesktopThread ShellExecutor desktopExecutor,
             @ShellMainThread ShellExecutor mainExecutor,
@@ -118,18 +122,20 @@
             Context context, SurfaceControl taskSurface,
             RootTaskDisplayAreaOrganizer taskDisplayAreaOrganizer,
             DragStartState dragStartState,
-            @Nullable BubbleDropTargetBoundsProvider bubbleBoundsProvider) {
+            @Nullable BubbleDropTargetBoundsProvider bubbleBoundsProvider,
+            SnapEventHandler snapEventHandler) {
         SurfaceControl.Builder builder = new SurfaceControl.Builder();
         taskDisplayAreaOrganizer.attachToDisplayArea(taskInfo.displayId, builder);
         mVisualIndicatorViewContainer = new VisualIndicatorViewContainer(
                 DesktopModeFlags.ENABLE_DESKTOP_INDICATOR_IN_SEPARATE_THREAD_BUGFIX.isTrue()
                         ? desktopExecutor : mainExecutor,
-                mainExecutor, builder, syncQueue, bubbleBoundsProvider);
+                mainExecutor, builder, syncQueue, bubbleBoundsProvider, snapEventHandler);
         mTaskInfo = taskInfo;
         mDisplayController = displayController;
         mContext = context;
         mCurrentType = NO_INDICATOR;
         mDragStartState = dragStartState;
+        mSnapEventHandler = snapEventHandler;
         mVisualIndicatorViewContainer.createView(
                 mContext,
                 mDisplayController.getDisplay(mTaskInfo.displayId),
@@ -143,7 +149,8 @@
     public void fadeOutIndicator(
             @NonNull Runnable callback) {
         mVisualIndicatorViewContainer.fadeOutIndicator(
-                mDisplayController.getDisplayLayout(mTaskInfo.displayId), mCurrentType, callback
+                mDisplayController.getDisplayLayout(mTaskInfo.displayId), mCurrentType, callback,
+                mTaskInfo.displayId, mSnapEventHandler
         );
     }
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopRepository.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopRepository.kt
index 031925b..03423ba 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopRepository.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopRepository.kt
@@ -35,6 +35,9 @@
 import java.io.PrintWriter
 import java.util.concurrent.Executor
 import java.util.function.Consumer
+import kotlin.collections.component1
+import kotlin.collections.component2
+import kotlin.collections.forEach
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.launch
 
@@ -116,6 +119,7 @@
         }
     }
 
+    private val deskChangeListeners = ArrayMap<DeskChangeListener, Executor>()
     private val activeTasksListeners = ArraySet<ActiveTasksListener>()
     private val visibleTasksListeners = ArrayMap<VisibleTasksListener, Executor>()
 
@@ -144,6 +148,11 @@
             SingleDesktopData()
         }
 
+    /** Adds a listener to be notified of updates about desk changes. */
+    fun addDeskChangeListener(listener: DeskChangeListener, executor: Executor) {
+        deskChangeListeners[listener] = executor
+    }
+
     /** Adds [activeTasksListener] to be notified of updates to active tasks. */
     fun addActiveTaskListener(activeTasksListener: ActiveTasksListener) {
         activeTasksListeners.add(activeTasksListener)
@@ -196,6 +205,11 @@
         return desktopExclusionRegion
     }
 
+    /** Removes the previously registered listener. */
+    fun removeDeskChangeListener(listener: DeskChangeListener) {
+        deskChangeListeners.remove(listener)
+    }
+
     /** Remove the previously registered [activeTasksListener] */
     fun removeActiveTasksListener(activeTasksListener: ActiveTasksListener) {
         activeTasksListeners.remove(activeTasksListener)
@@ -210,6 +224,9 @@
     fun addDesk(displayId: Int, deskId: Int) {
         logD("addDesk for displayId=%d and deskId=%d", displayId, deskId)
         desktopData.createDesk(displayId, deskId)
+        deskChangeListeners.forEach { (listener, executor) ->
+            executor.execute { listener.onDeskAdded(displayId = displayId, deskId = deskId) }
+        }
     }
 
     /** Returns the ids of the existing desks in the given display. */
@@ -217,6 +234,9 @@
     fun getDeskIds(displayId: Int): Set<Int> =
         desktopData.desksSequence(displayId).map { desk -> desk.deskId }.toSet()
 
+    /** Returns all the ids of all desks in all displays. */
+    fun getAllDeskIds(): Set<Int> = desktopData.desksSequence().map { desk -> desk.deskId }.toSet()
+
     /** Returns the id of the default desk in the given display. */
     fun getDefaultDeskId(displayId: Int): Int? = getDefaultDesk(displayId)?.deskId
 
@@ -226,16 +246,40 @@
     /** Sets the given desk as the active one in the given display. */
     fun setActiveDesk(displayId: Int, deskId: Int) {
         logD("setActiveDesk for displayId=%d and deskId=%d", displayId, deskId)
+        val oldActiveDeskId = desktopData.getActiveDesk(displayId)?.deskId ?: INVALID_DESK_ID
         desktopData.setActiveDesk(displayId = displayId, deskId = deskId)
+        deskChangeListeners.forEach { (listener, executor) ->
+            executor.execute {
+                listener.onActiveDeskChanged(
+                    displayId = displayId,
+                    newActiveDeskId = deskId,
+                    oldActiveDeskId = oldActiveDeskId,
+                )
+            }
+        }
     }
 
     /** Sets the given desk as inactive if it was active. */
     fun setDeskInactive(deskId: Int) {
+        val displayId = desktopData.getDisplayForDesk(deskId)
+        val activeDeskId = desktopData.getActiveDesk(displayId)?.deskId ?: INVALID_DESK_ID
+        if (activeDeskId == INVALID_DESK_ID || activeDeskId != deskId) {
+            // Desk wasn't active.
+            return
+        }
         desktopData.setDeskInactive(deskId)
+        deskChangeListeners.forEach { (listener, executor) ->
+            executor.execute {
+                listener.onActiveDeskChanged(
+                    displayId = displayId,
+                    newActiveDeskId = INVALID_DESK_ID,
+                    oldActiveDeskId = deskId,
+                )
+            }
+        }
     }
 
     /** Returns the id of the active desk in the given display, if any. */
-    @VisibleForTesting
     fun getActiveDeskId(displayId: Int): Int? = desktopData.getActiveDesk(displayId)?.deskId
 
     /** Returns the id of the desk to which this task belongs. */
@@ -332,29 +376,22 @@
         return false
     }
 
-    /**
-     * Adds given task to the closing task list for [displayId]'s active desk.
-     *
-     * TODO: b/389960283 - add explicit [deskId] argument.
-     */
-    fun addClosingTask(displayId: Int, taskId: Int) {
-        val activeDesk =
-            desktopData.getActiveDesk(displayId)
-                ?: error("Expected active desk in display: $displayId")
-        if (activeDesk.closingTasks.add(taskId)) {
-            logD(
-                "Added closing task=%d displayId=%d deskId=%d",
-                taskId,
-                displayId,
-                activeDesk.deskId,
-            )
+    /** Adds given task to the closing task list of its desk. */
+    fun addClosingTask(displayId: Int, deskId: Int?, taskId: Int) {
+        val desk =
+            deskId?.let { desktopData.getDesk(it) }
+                ?: checkNotNull(desktopData.getActiveDesk(displayId)) {
+                    "Expected active desk in display: $displayId"
+                }
+        if (desk.closingTasks.add(taskId)) {
+            logD("Added closing task=%d displayId=%d deskId=%d", taskId, displayId, desk.deskId)
         } else {
             // If the task hasn't been removed from closing list after it disappeared.
             logW(
                 "Task with taskId=%d displayId=%d deskId=%d is already closing",
                 taskId,
                 displayId,
-                activeDesk.deskId,
+                desk.deskId,
             )
         }
     }
@@ -392,7 +429,8 @@
      * Checks if a task is the only visible, non-closing, non-minimized task on the active desk of
      * the given display, or any display's active desk if [displayId] is [INVALID_DISPLAY].
      *
-     * TODO: b/389960283 - add explicit [deskId] argument.
+     * TODO: b/389960283 - consider forcing callers to use [isOnlyVisibleNonClosingTaskInDesk] with
+     *   an explicit desk id instead of using this function and defaulting to the active one.
      */
     fun isOnlyVisibleNonClosingTask(taskId: Int, displayId: Int = INVALID_DISPLAY): Boolean {
         val activeDesks =
@@ -402,14 +440,27 @@
                 desktopData.getAllActiveDesks()
             }
         return activeDesks.any { desk ->
-            desk.visibleTasks
-                .subtract(desk.closingTasks)
-                .subtract(desk.minimizedTasks)
-                .singleOrNull() == taskId
+            isOnlyVisibleNonClosingTaskInDesk(
+                taskId = taskId,
+                deskId = desk.deskId,
+                displayId = desk.displayId,
+            )
         }
     }
 
     /**
+     * Checks if a task is the only visible, non-closing, non-minimized task on the given desk of
+     * the given display.
+     */
+    fun isOnlyVisibleNonClosingTaskInDesk(taskId: Int, deskId: Int, displayId: Int): Boolean {
+        val desk = desktopData.getDesk(deskId) ?: return false
+        return desk.visibleTasks
+            .subtract(desk.closingTasks)
+            .subtract(desk.minimizedTasks)
+            .singleOrNull() == taskId
+    }
+
+    /**
      * Returns the active tasks in the given display's active desk.
      *
      * TODO: b/389960283 - migrate callers to [getActiveTaskIdsInDesk].
@@ -686,6 +737,11 @@
      * TODO: b/389960283 - add explicit [deskId] argument.
      */
     fun setTopTransparentFullscreenTaskId(displayId: Int, taskId: Int) {
+        logD(
+            "Top transparent fullscreen task set for display: taskId=%d, displayId=%d",
+            taskId,
+            displayId,
+        )
         desktopData.getActiveDesk(displayId)?.topTransparentFullscreenTaskId = taskId
     }
 
@@ -703,6 +759,11 @@
      * TODO: b/389960283 - add explicit [deskId] argument.
      */
     fun clearTopTransparentFullscreenTaskId(displayId: Int) {
+        logD(
+            "Top transparent fullscreen task cleared for display: taskId=%d, displayId=%d",
+            desktopData.getActiveDesk(displayId)?.topTransparentFullscreenTaskId,
+            displayId,
+        )
         desktopData.getActiveDesk(displayId)?.topTransparentFullscreenTaskId = null
     }
 
@@ -878,8 +939,21 @@
                 ?: return emptySet<Int>().also {
                     logW("Could not find desk to remove: deskId=%d", deskId)
                 }
+        val wasActive = desktopData.getActiveDesk(desk.displayId)?.deskId == desk.deskId
         val activeTasks = ArraySet(desk.activeTasks)
         desktopData.remove(desk.deskId)
+        deskChangeListeners.forEach { (listener, executor) ->
+            executor.execute {
+                if (wasActive) {
+                    listener.onActiveDeskChanged(
+                        displayId = desk.displayId,
+                        newActiveDeskId = INVALID_DESK_ID,
+                        oldActiveDeskId = desk.deskId,
+                    )
+                }
+                listener.onDeskRemoved(displayId = desk.displayId, deskId = desk.deskId)
+            }
+        }
         return activeTasks
     }
 
@@ -933,6 +1007,21 @@
     fun saveBoundsBeforeFullImmersive(taskId: Int, bounds: Rect) =
         boundsBeforeFullImmersiveByTaskId.set(taskId, Rect(bounds))
 
+    /** Returns the current state of the desktop, formatted for usage by remote clients. */
+    fun getDeskDisplayStateForRemote(): Array<DisplayDeskState> =
+        desktopData
+            .desksSequence()
+            .groupBy { it.displayId }
+            .map { (displayId, desks) ->
+                val activeDeskId = desktopData.getActiveDesk(displayId)?.deskId
+                DisplayDeskState().apply {
+                    this.displayId = displayId
+                    this.activeDeskId = activeDeskId ?: INVALID_DESK_ID
+                    this.deskIds = desks.map { it.deskId }.toIntArray()
+                }
+            }
+            .toTypedArray()
+
     /** TODO: b/389960283 - consider updating only the changing desks. */
     private fun updatePersistentRepository(displayId: Int) {
         val desks = desktopData.desksSequence(displayId).map { desk -> desk.deepCopy() }.toList()
@@ -1002,6 +1091,18 @@
             }
     }
 
+    /** Listens to changes of desks state. */
+    interface DeskChangeListener {
+        /** Called when a new desk is added to a display. */
+        fun onDeskAdded(displayId: Int, deskId: Int)
+
+        /** Called when a desk is removed from a display. */
+        fun onDeskRemoved(displayId: Int, deskId: Int)
+
+        /** Called when the active desk in a display has changed. */
+        fun onActiveDeskChanged(displayId: Int, newActiveDeskId: Int, oldActiveDeskId: Int)
+    }
+
     /** Listens to changes for active tasks in desktop mode. */
     interface ActiveTasksListener {
         fun onActiveTasksChanged(displayId: Int) {}
@@ -1262,6 +1363,8 @@
 
     companion object {
         private const val TAG = "DesktopRepository"
+
+        @VisibleForTesting const val INVALID_DESK_ID = -1
     }
 }
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
index 93058db..fca5084 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
@@ -97,6 +97,7 @@
 import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum
 import com.android.wm.shell.desktopmode.DesktopModeVisualIndicator.DragStartState
 import com.android.wm.shell.desktopmode.DesktopModeVisualIndicator.IndicatorType
+import com.android.wm.shell.desktopmode.DesktopRepository.DeskChangeListener
 import com.android.wm.shell.desktopmode.DesktopRepository.VisibleTasksListener
 import com.android.wm.shell.desktopmode.DragToDesktopTransitionHandler.Companion.DRAG_TO_DESKTOP_FINISH_ANIM_DURATION_MS
 import com.android.wm.shell.desktopmode.DragToDesktopTransitionHandler.DragToDesktopStateListener
@@ -117,6 +118,7 @@
 import com.android.wm.shell.recents.RecentsTransitionStateListener
 import com.android.wm.shell.recents.RecentsTransitionStateListener.RecentsTransitionState
 import com.android.wm.shell.recents.RecentsTransitionStateListener.TRANSITION_STATE_NOT_RUNNING
+import com.android.wm.shell.shared.R as SharedR
 import com.android.wm.shell.shared.TransitionUtil
 import com.android.wm.shell.shared.annotations.ExternalThread
 import com.android.wm.shell.shared.annotations.ShellDesktopThread
@@ -203,6 +205,7 @@
     private val desksTransitionObserver: DesksTransitionObserver,
     private val userProfileContexts: UserProfileContexts,
     private val desktopModeCompatPolicy: DesktopModeCompatPolicy,
+    private val dragToDisplayTransitionHandler: DragToDisplayTransitionHandler,
 ) :
     RemoteCallable<DesktopTasksController>,
     Transitions.TransitionHandler,
@@ -801,12 +804,15 @@
     ): ((IBinder) -> Unit) {
         val taskId = taskInfo.taskId
         val deskId = taskRepository.getDeskIdForTask(taskInfo.taskId)
+        if (deskId == null && DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) {
+            error("Did not find desk for task: $taskId")
+        }
         snapEventHandler.removeTaskIfTiled(displayId, taskId)
         val shouldExitDesktop =
             willExitDesktop(
                 triggerTaskId = taskInfo.taskId,
                 displayId = displayId,
-                forceToFullscreen = false,
+                forceExitDesktop = false,
             )
         taskRepository.setPipShouldKeepDesktopActive(displayId, keepActive = true)
         val desktopExitRunnable =
@@ -818,7 +824,7 @@
                 shouldEndUpAtHome = true,
             )
 
-        taskRepository.addClosingTask(displayId, taskId)
+        taskRepository.addClosingTask(displayId = displayId, deskId = deskId, taskId = taskId)
         taskbarDesktopTaskListener?.onTaskbarCornerRoundingUpdate(
             doesAnyTaskRequireTaskbarRounding(displayId, taskId)
         )
@@ -870,12 +876,16 @@
     private fun minimizeTaskInner(taskInfo: RunningTaskInfo, minimizeReason: MinimizeReason) {
         val taskId = taskInfo.taskId
         val deskId = taskRepository.getDeskIdForTask(taskInfo.taskId)
+        if (deskId == null && DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) {
+            logW("minimizeTaskInner: desk not found for task: ${taskInfo.taskId}")
+            return
+        }
         val displayId = taskInfo.displayId
         val wct = WindowContainerTransaction()
 
         snapEventHandler.removeTaskIfTiled(displayId, taskId)
         taskRepository.setPipShouldKeepDesktopActive(displayId, keepActive = true)
-        val willExitDesktop = willExitDesktop(taskId, displayId, forceToFullscreen = false)
+        val willExitDesktop = willExitDesktop(taskId, displayId, forceExitDesktop = false)
         val desktopExitRunnable =
             performDesktopExitCleanUp(
                 wct = wct,
@@ -890,10 +900,26 @@
                 taskInfo = taskInfo,
                 reason = DesktopImmersiveController.ExitReason.MINIMIZED,
             )
-
-        wct.reorder(taskInfo.token, false)
-        val isLastTask = taskRepository.isOnlyVisibleNonClosingTask(taskId, displayId)
-        val transition: IBinder =
+        if (DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) {
+            desksOrganizer.minimizeTask(
+                wct = wct,
+                deskId = checkNotNull(deskId) { "Expected non-null deskId" },
+                task = taskInfo,
+            )
+        } else {
+            wct.reorder(taskInfo.token, /* onTop= */ false)
+        }
+        val isLastTask =
+            if (DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) {
+                taskRepository.isOnlyVisibleNonClosingTaskInDesk(
+                    taskId = taskId,
+                    deskId = checkNotNull(deskId) { "Expected non-null deskId" },
+                    displayId = displayId,
+                )
+            } else {
+                taskRepository.isOnlyVisibleNonClosingTask(taskId = taskId, displayId = displayId)
+            }
+        val transition =
             freeformTaskTransitionStarter.startMinimizedModeTransition(wct, taskId, isLastTask)
         desktopTasksLimiter.ifPresent {
             it.addPendingMinimizeChange(
@@ -952,7 +978,7 @@
     ) {
         logV("moveToFullscreenWithAnimation taskId=%d", task.taskId)
         val wct = WindowContainerTransaction()
-        val willExitDesktop = willExitDesktop(task.taskId, task.displayId, forceToFullscreen = true)
+        val willExitDesktop = willExitDesktop(task.taskId, task.displayId, forceExitDesktop = true)
         val deactivationRunnable = addMoveToFullscreenChanges(wct, task, willExitDesktop)
 
         // We are moving a freeform task to fullscreen, put the home task under the fullscreen task.
@@ -971,7 +997,14 @@
         deactivationRunnable?.invoke(transition)
 
         // handles case where we are moving to full screen without closing all DW tasks.
-        if (!taskRepository.isOnlyVisibleNonClosingTask(task.taskId)) {
+        if (
+            !taskRepository.isOnlyVisibleNonClosingTask(task.taskId)
+            // This callback is already invoked by |addMoveToFullscreenChanges| when one of these
+            // flags is enabled.
+            &&
+                !DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue &&
+                !Flags.enableDesktopWindowingPip()
+        ) {
             desktopModeEnterExitTransitionListener?.onExitDesktopModeTransitionStarted(
                 FULLSCREEN_ANIMATION_DURATION
             )
@@ -1055,7 +1088,8 @@
         )
     }
 
-    private fun startLaunchTransition(
+    @VisibleForTesting
+    fun startLaunchTransition(
         transitionType: Int,
         wct: WindowContainerTransaction,
         launchingTaskId: Int?,
@@ -1063,34 +1097,52 @@
         displayId: Int = DEFAULT_DISPLAY,
         unminimizeReason: UnminimizeReason = UnminimizeReason.UNKNOWN,
     ): IBinder {
+        // TODO: b/397619806 - Consolidate sharable logic with [handleFreeformTaskLaunch].
+        var launchTransaction = wct
         val taskIdToMinimize =
             addAndGetMinimizeChanges(
                 displayId,
-                wct,
+                launchTransaction,
                 newTaskId = launchingTaskId,
                 launchingNewIntent = launchingTaskId == null,
             )
         val exitImmersiveResult =
             desktopImmersiveController.exitImmersiveIfApplicable(
-                wct = wct,
+                wct = launchTransaction,
                 displayId = displayId,
                 excludeTaskId = launchingTaskId,
                 reason = DesktopImmersiveController.ExitReason.TASK_LAUNCH,
             )
+        var deskIdToActivate: Int? = null
+        if (
+            DesktopExperienceFlags.ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING.isTrue &&
+                !isDesktopModeShowing(displayId)
+        ) {
+            deskIdToActivate =
+                checkNotNull(
+                    launchingTaskId?.let { taskRepository.getDeskIdForTask(it) }
+                        ?: getDefaultDeskId(displayId)
+                )
+            val activateDeskWct = WindowContainerTransaction()
+            addDeskActivationChanges(deskIdToActivate, activateDeskWct)
+            // Desk activation must be handled before app launch-related transactions.
+            activateDeskWct.merge(launchTransaction, /* transfer= */ true)
+            launchTransaction = activateDeskWct
+        }
         val t =
             if (remoteTransition == null) {
                 desktopMixedTransitionHandler.startLaunchTransition(
                     transitionType = transitionType,
-                    wct = wct,
+                    wct = launchTransaction,
                     taskId = launchingTaskId,
                     minimizingTaskId = taskIdToMinimize,
                     exitingImmersiveTask = exitImmersiveResult.asExit()?.exitingTask,
                 )
             } else if (taskIdToMinimize == null) {
                 val remoteTransitionHandler = OneShotRemoteHandler(mainExecutor, remoteTransition)
-                transitions.startTransition(transitionType, wct, remoteTransitionHandler).also {
-                    remoteTransitionHandler.setTransition(it)
-                }
+                transitions
+                    .startTransition(transitionType, launchTransaction, remoteTransitionHandler)
+                    .also { remoteTransitionHandler.setTransition(it) }
             } else {
                 val remoteTransitionHandler =
                     DesktopWindowLimitRemoteHandler(
@@ -1099,9 +1151,9 @@
                         remoteTransition,
                         taskIdToMinimize,
                     )
-                transitions.startTransition(transitionType, wct, remoteTransitionHandler).also {
-                    remoteTransitionHandler.setTransition(it)
-                }
+                transitions
+                    .startTransition(transitionType, launchTransaction, remoteTransitionHandler)
+                    .also { remoteTransitionHandler.setTransition(it) }
             }
         if (taskIdToMinimize != null) {
             addPendingMinimizeTransition(t, taskIdToMinimize, MinimizeReason.TASK_LIMIT)
@@ -1109,6 +1161,24 @@
         if (launchingTaskId != null && taskRepository.isMinimizedTask(launchingTaskId)) {
             addPendingUnminimizeTransition(t, displayId, launchingTaskId, unminimizeReason)
         }
+        if (
+            DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue &&
+                deskIdToActivate != null
+        ) {
+            if (DesktopExperienceFlags.ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING.isTrue) {
+                desksTransitionObserver.addPendingTransition(
+                    DeskTransition.ActivateDesk(
+                        token = t,
+                        displayId = displayId,
+                        deskId = deskIdToActivate,
+                    )
+                )
+            }
+
+            desktopModeEnterExitTransitionListener?.onEnterDesktopModeTransitionStarted(
+                FREEFORM_ANIMATION_DURATION
+            )
+        }
         exitImmersiveResult.asExit()?.runOnTransitionStart?.invoke(t)
         return t
     }
@@ -1190,36 +1260,77 @@
             return
         }
 
+        val wct = WindowContainerTransaction()
         val displayAreaInfo = rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(displayId)
         if (displayAreaInfo == null) {
             logW("moveToDisplay: display not found")
             return
         }
 
-        val wct = WindowContainerTransaction()
-
         // check if the task is part of splitscreen
         if (
             Flags.enableNonDefaultDisplaySplit() &&
                 Flags.enableMoveToNextDisplayShortcut() &&
                 splitScreenController.isTaskInSplitScreen(task.taskId)
         ) {
+            val activeDeskId = taskRepository.getActiveDeskId(displayId)
+            logV("moveToDisplay: moving split root to displayId=%d", displayId)
             val stageCoordinatorRootTaskToken =
                 splitScreenController.multiDisplayProvider.getDisplayRootForDisplayId(
                     DEFAULT_DISPLAY
                 )
-
             wct.reparent(stageCoordinatorRootTaskToken, displayAreaInfo.token, true /* onTop */)
-            transitions.startTransition(TRANSIT_CHANGE, wct, /* handler= */ null)
+            val deactivationRunnable =
+                if (activeDeskId != null) {
+                    // Split is being placed on top of an existing desk in the target display. Make
+                    // sure it is cleaned up.
+                    performDesktopExitCleanUp(
+                        wct = wct,
+                        deskId = activeDeskId,
+                        displayId = displayId,
+                        willExitDesktop = true,
+                        shouldEndUpAtHome = false,
+                    )
+                } else {
+                    null
+                }
+            val transition = transitions.startTransition(TRANSIT_CHANGE, wct, /* handler= */ null)
+            deactivationRunnable?.invoke(transition)
             return
         }
 
+        val destinationDeskId = taskRepository.getDefaultDeskId(displayId)
+        if (destinationDeskId == null) {
+            logW("moveToDisplay: desk not found for display: $displayId")
+            return
+        }
+
+        // TODO: b/393977830 and b/397437641 - do not assume that freeform==desktop.
         if (!task.isFreeform) {
             addMoveToDesktopChanges(wct, task, displayId)
         } else if (Flags.enableMoveToNextDisplayShortcut()) {
             applyFreeformDisplayChange(wct, task, displayId)
         }
-        wct.reparent(task.token, displayAreaInfo.token, /* onTop= */ true)
+
+        val activationRunnable: RunOnTransitStart?
+        if (DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) {
+            desksOrganizer.moveTaskToDesk(wct, destinationDeskId, task)
+            prepareForDeskActivation(displayId, wct)
+            desksOrganizer.activateDesk(wct, destinationDeskId)
+            activationRunnable = { transition ->
+                desksTransitionObserver.addPendingTransition(
+                    DeskTransition.ActiveDeskWithTask(
+                        token = transition,
+                        displayId = displayId,
+                        deskId = destinationDeskId,
+                        enterTaskId = task.taskId,
+                    )
+                )
+            }
+        } else {
+            wct.reparent(task.token, displayAreaInfo.token, /* onTop= */ true)
+            activationRunnable = null
+        }
         if (Flags.enableDisplayFocusInShellTransitions()) {
             // Bring the destination display to top with includingParents=true, so that the
             // destination display gains the display focus, which makes the top task in the display
@@ -1227,22 +1338,31 @@
             wct.reorder(task.token, /* onTop= */ true, /* includingParents= */ true)
         }
 
-        // TODO: b/394268248 - desk needs to be deactivated when moving the last task and going
-        //  home.
-        if (Flags.enablePerDisplayDesktopWallpaperActivity()) {
-            performDesktopExitCleanupIfNeeded(
-                task.taskId,
-                task.displayId,
-                wct,
-                forceToFullscreen = false,
-                // TODO: b/371096166 - Temporary turing home relaunch off to prevent home stealing
-                // display focus. Remove shouldEndUpAtHome = false when home focus handling
-                // with connected display is implemented in wm core.
-                shouldEndUpAtHome = false,
-            )
-        }
-
-        transitions.startTransition(TRANSIT_CHANGE, wct, /* handler= */ null)
+        val sourceDisplayId = task.displayId
+        val sourceDeskId = taskRepository.getDeskIdForTask(task.taskId)
+        val shouldExitDesktopIfNeeded =
+            Flags.enablePerDisplayDesktopWallpaperActivity() ||
+                DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue
+        val deactivationRunnable =
+            if (shouldExitDesktopIfNeeded) {
+                performDesktopExitCleanupIfNeeded(
+                    taskId = task.taskId,
+                    deskId = sourceDeskId,
+                    displayId = sourceDisplayId,
+                    wct = wct,
+                    forceToFullscreen = false,
+                    // TODO: b/371096166 - Temporary turing home relaunch off to prevent home
+                    // stealing
+                    // display focus. Remove shouldEndUpAtHome = false when home focus handling
+                    // with connected display is implemented in wm core.
+                    shouldEndUpAtHome = false,
+                )
+            } else {
+                null
+            }
+        val transition = transitions.startTransition(TRANSIT_CHANGE, wct, /* handler= */ null)
+        deactivationRunnable?.invoke(transition)
+        activationRunnable?.invoke(transition)
     }
 
     /**
@@ -1684,6 +1804,9 @@
                 launchWindowingMode = WINDOWING_MODE_FULLSCREEN
                 pendingIntentBackgroundActivityStartMode =
                     ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOW_ALWAYS
+                if (Flags.enablePerDisplayDesktopWallpaperActivity()) {
+                    launchDisplayId = displayId
+                }
             }
         val pendingIntent =
             PendingIntent.getActivityAsUser(
@@ -1778,16 +1901,24 @@
     private fun willExitDesktop(
         triggerTaskId: Int,
         displayId: Int,
-        forceToFullscreen: Boolean,
+        forceExitDesktop: Boolean,
     ): Boolean {
+        if (
+            forceExitDesktop &&
+                (Flags.enableDesktopWindowingPip() ||
+                    DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue)
+        ) {
+            // |forceExitDesktop| is true when the callers knows we'll exit desktop, such as when
+            // explicitly going fullscreen, so there's no point in checking the desktop state.
+            return true
+        }
         if (Flags.enablePerDisplayDesktopWallpaperActivity()) {
             if (!taskRepository.isOnlyVisibleNonClosingTask(triggerTaskId, displayId)) {
                 return false
             }
         } else if (
             Flags.enableDesktopWindowingPip() &&
-                taskRepository.isMinimizedPipPresentInDisplay(displayId) &&
-                !forceToFullscreen
+                taskRepository.isMinimizedPipPresentInDisplay(displayId)
         ) {
             return false
         } else {
@@ -1800,6 +1931,7 @@
 
     private fun performDesktopExitCleanupIfNeeded(
         taskId: Int,
+        deskId: Int? = null,
         displayId: Int,
         wct: WindowContainerTransaction,
         forceToFullscreen: Boolean,
@@ -1813,13 +1945,14 @@
         //  |RunOnTransitStart| when the transition is started.
         return performDesktopExitCleanUp(
             wct = wct,
-            deskId = null,
+            deskId = deskId,
             displayId = displayId,
             willExitDesktop = true,
             shouldEndUpAtHome = shouldEndUpAtHome,
         )
     }
 
+    /** TODO: b/394268248 - update [deskId] to be non-null. */
     private fun performDesktopExitCleanUp(
         wct: WindowContainerTransaction,
         deskId: Int?,
@@ -2015,7 +2148,9 @@
         }
         val cornerRadius =
             context.resources
-                .getDimensionPixelSize(R.dimen.desktop_windowing_freeform_rounded_corner_radius)
+                .getDimensionPixelSize(
+                    SharedR.dimen.desktop_windowing_freeform_rounded_corner_radius
+                )
                 .toFloat()
         info.changes
             .filter { it.taskInfo?.windowingMode == WINDOWING_MODE_FREEFORM }
@@ -2176,7 +2311,7 @@
                 willExitDesktop(
                     triggerTaskId = task.taskId,
                     displayId = task.displayId,
-                    forceToFullscreen = true,
+                    forceExitDesktop = true,
                 ),
         )
         wct.reorder(task.token, true)
@@ -2209,7 +2344,7 @@
                         willExitDesktop(
                             triggerTaskId = task.taskId,
                             displayId = task.displayId,
-                            forceToFullscreen = true,
+                            forceExitDesktop = true,
                         ),
                 )
                 return wct
@@ -2314,7 +2449,7 @@
                         willExitDesktop(
                             triggerTaskId = task.taskId,
                             displayId = task.displayId,
-                            forceToFullscreen = true,
+                            forceExitDesktop = true,
                         ),
                 )
             }
@@ -2352,7 +2487,7 @@
                     willExitDesktop(
                         triggerTaskId = task.taskId,
                         displayId = task.displayId,
-                        forceToFullscreen = true,
+                        forceExitDesktop = true,
                     ),
             )
         }
@@ -2370,17 +2505,28 @@
     ): WindowContainerTransaction? {
         logV("handleTaskClosing")
         if (!isDesktopModeShowing(task.displayId)) return null
+        val deskId = taskRepository.getDeskIdForTask(task.taskId)
+        if (deskId == null && DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) {
+            return null
+        }
 
         val wct = WindowContainerTransaction()
-        performDesktopExitCleanupIfNeeded(
-            task.taskId,
-            task.displayId,
-            wct,
-            forceToFullscreen = false,
-        )
+        val deactivationRunnable =
+            performDesktopExitCleanupIfNeeded(
+                taskId = task.taskId,
+                deskId = deskId,
+                displayId = task.displayId,
+                wct = wct,
+                forceToFullscreen = false,
+            )
+        deactivationRunnable?.invoke(transition)
 
         if (!DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION.isTrue()) {
-            taskRepository.addClosingTask(task.displayId, task.taskId)
+            taskRepository.addClosingTask(
+                displayId = task.displayId,
+                deskId = deskId,
+                taskId = task.taskId,
+            )
             snapEventHandler.removeTaskIfTiled(task.displayId, task.taskId)
         }
 
@@ -2405,6 +2551,7 @@
         val displayLayout = displayController.getDisplayLayout(displayId) ?: return
         val tdaInfo = rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(displayId)!!
         val tdaWindowingMode = tdaInfo.configuration.windowConfiguration.windowingMode
+        // TODO: b/397437641 - reconsider the windowing mode choice when multiple desks is enabled.
         val targetWindowingMode =
             if (tdaWindowingMode == WINDOWING_MODE_FREEFORM) {
                 // Display windowing is freeform, set to undefined and inherit it
@@ -2570,10 +2717,12 @@
     /**
      * Adds split screen changes to a transaction. Note that bounds are not reset here due to
      * animation; see {@link onDesktopSplitSelectAnimComplete}
-     *
-     * TODO: b/394268248 - desk needs to be deactivated.
      */
-    private fun addMoveToSplitChanges(wct: WindowContainerTransaction, taskInfo: RunningTaskInfo) {
+    private fun addMoveToSplitChanges(
+        wct: WindowContainerTransaction,
+        taskInfo: RunningTaskInfo,
+        deskId: Int?,
+    ): RunOnTransitStart? {
         // This windowing mode is to get the transition animation started; once we complete
         // split select, we will change windowing mode to undefined and inherit from split stage.
         // Going to undefined here causes task to flicker to the top left.
@@ -2583,11 +2732,12 @@
         // want it overridden in multi-window.
         wct.setDensityDpi(taskInfo.token, getDefaultDensityDpi())
 
-        performDesktopExitCleanupIfNeeded(
-            taskInfo.taskId,
-            taskInfo.displayId,
-            wct,
-            forceToFullscreen = false,
+        return performDesktopExitCleanupIfNeeded(
+            taskId = taskInfo.taskId,
+            displayId = taskInfo.displayId,
+            deskId = deskId,
+            wct = wct,
+            forceToFullscreen = true,
             shouldEndUpAtHome = false,
         )
     }
@@ -2665,10 +2815,9 @@
         activateDesk(deskId, remoteTransition)
     }
 
-    /** Activates the given desk. */
-    fun activateDesk(deskId: Int, remoteTransition: RemoteTransition? = null) {
+    /** Activates the given desk but without starting a transition. */
+    fun addDeskActivationChanges(deskId: Int, wct: WindowContainerTransaction) {
         val displayId = taskRepository.getDisplayForDesk(deskId)
-        val wct = WindowContainerTransaction()
         if (DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) {
             prepareForDeskActivation(displayId, wct)
             desksOrganizer.activateDesk(wct, deskId)
@@ -2681,6 +2830,13 @@
         } else {
             bringDesktopAppsToFront(displayId, wct)
         }
+    }
+
+    /** Activates the given desk. */
+    fun activateDesk(deskId: Int, remoteTransition: RemoteTransition? = null) {
+        val displayId = taskRepository.getDisplayForDesk(deskId)
+        val wct = WindowContainerTransaction()
+        addDeskActivationChanges(deskId, wct)
 
         val transitionType = transitionType(remoteTransition)
         val handler =
@@ -2813,14 +2969,21 @@
                     }
                 dragToDesktopTransitionHandler.cancelDragToDesktopTransition(cancelState)
             } else {
+                val deskId = taskRepository.getDeskIdForTask(taskInfo.taskId)
+                logV("Split requested for task=%d in desk=%d", taskInfo.taskId, deskId)
                 val wct = WindowContainerTransaction()
-                addMoveToSplitChanges(wct, taskInfo)
-                splitScreenController.requestEnterSplitSelect(
-                    taskInfo,
-                    wct,
-                    if (leftOrTop) SPLIT_POSITION_TOP_OR_LEFT else SPLIT_POSITION_BOTTOM_OR_RIGHT,
-                    taskInfo.configuration.windowConfiguration.bounds,
-                )
+                val runOnTransitStart = addMoveToSplitChanges(wct, taskInfo, deskId)
+                val transition =
+                    splitScreenController.requestEnterSplitSelect(
+                        taskInfo,
+                        wct,
+                        if (leftOrTop) SPLIT_POSITION_TOP_OR_LEFT
+                        else SPLIT_POSITION_BOTTOM_OR_RIGHT,
+                        taskInfo.configuration.windowConfiguration.bounds,
+                    )
+                if (transition != null) {
+                    runOnTransitStart?.invoke(transition)
+                }
             }
         }
     }
@@ -2914,6 +3077,7 @@
                     rootTaskDisplayAreaOrganizer,
                     dragStartState,
                     bubbleController.getOrNull()?.bubbleDropTargetBoundsProvider,
+                    snapEventHandler,
                 )
         if (visualIndicator == null) visualIndicator = indicator
         return indicator.updateIndicatorType(PointF(inputX, taskTop))
@@ -3025,25 +3189,24 @@
                 val wct = WindowContainerTransaction()
                 wct.setBounds(taskInfo.token, destinationBounds)
 
-                // TODO: b/362720497 - reparent to a specific desk within the target display.
-                // Reparent task if it has been moved to a new display.
-                if (Flags.enableConnectedDisplaysWindowDrag()) {
-                    val newDisplayId = motionEvent.getDisplayId()
-                    if (newDisplayId != taskInfo.getDisplayId()) {
-                        val displayAreaInfo =
-                            rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(newDisplayId)
-                        if (displayAreaInfo == null) {
-                            logW(
-                                "Task reparent cannot find DisplayAreaInfo for displayId=%d",
-                                newDisplayId,
-                            )
-                        } else {
-                            wct.reparent(taskInfo.token, displayAreaInfo.token, /* onTop= */ true)
-                        }
+                val newDisplayId = motionEvent.getDisplayId()
+                val displayAreaInfo = rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(newDisplayId)
+                val isCrossDisplayDrag =
+                    Flags.enableConnectedDisplaysWindowDrag() &&
+                        newDisplayId != taskInfo.getDisplayId() &&
+                        displayAreaInfo != null
+                val handler =
+                    if (isCrossDisplayDrag) {
+                        dragToDisplayTransitionHandler
+                    } else {
+                        null
                     }
+                if (isCrossDisplayDrag) {
+                    // TODO: b/362720497 - reparent to a specific desk within the target display.
+                    wct.reparent(taskInfo.token, displayAreaInfo.token, /* onTop= */ true)
                 }
 
-                transitions.startTransition(TRANSIT_CHANGE, wct, null)
+                transitions.startTransition(TRANSIT_CHANGE, wct, handler)
 
                 releaseVisualIndicator()
             }
@@ -3361,7 +3524,47 @@
         private lateinit var remoteListener:
             SingleInstanceRemoteListener<DesktopTasksController, IDesktopTaskListener>
 
-        private val listener: VisibleTasksListener =
+        private val deskChangeListener: DeskChangeListener =
+            object : DeskChangeListener {
+                override fun onDeskAdded(displayId: Int, deskId: Int) {
+                    ProtoLog.v(
+                        WM_SHELL_DESKTOP_MODE,
+                        "IDesktopModeImpl: onDeskAdded display=%d deskId=%d",
+                        displayId,
+                        deskId,
+                    )
+                    remoteListener.call { l -> l.onDeskAdded(displayId, deskId) }
+                }
+
+                override fun onDeskRemoved(displayId: Int, deskId: Int) {
+                    ProtoLog.v(
+                        WM_SHELL_DESKTOP_MODE,
+                        "IDesktopModeImpl: onDeskRemoved display=%d deskId=%d",
+                        displayId,
+                        deskId,
+                    )
+                    remoteListener.call { l -> l.onDeskRemoved(displayId, deskId) }
+                }
+
+                override fun onActiveDeskChanged(
+                    displayId: Int,
+                    newActiveDeskId: Int,
+                    oldActiveDeskId: Int,
+                ) {
+                    ProtoLog.v(
+                        WM_SHELL_DESKTOP_MODE,
+                        "IDesktopModeImpl: onActiveDeskChanged display=%d new=%d old=%d",
+                        displayId,
+                        newActiveDeskId,
+                        oldActiveDeskId,
+                    )
+                    remoteListener.call { l ->
+                        l.onActiveDeskChanged(displayId, newActiveDeskId, oldActiveDeskId)
+                    }
+                }
+            }
+
+        private val visibleTasksListener: VisibleTasksListener =
             object : VisibleTasksListener {
                 override fun onTasksVisibilityChanged(displayId: Int, visibleTasksCount: Int) {
                     ProtoLog.v(
@@ -3425,19 +3628,11 @@
                     controller,
                     { c ->
                         run {
-                            c.taskRepository.addVisibleTasksListener(listener, c.mainExecutor)
-                            c.taskbarDesktopTaskListener = taskbarDesktopTaskListener
-                            c.desktopModeEnterExitTransitionListener =
-                                desktopModeEntryExitTransitionListener
+                            syncInitialState(c)
+                            registerListeners(c)
                         }
                     },
-                    { c ->
-                        run {
-                            c.taskRepository.removeVisibleTasksListener(listener)
-                            c.taskbarDesktopTaskListener = null
-                            c.desktopModeEnterExitTransitionListener = null
-                        }
-                    },
+                    { c -> run { unregisterListeners(c) } },
                 )
         }
 
@@ -3533,6 +3728,31 @@
                 c.startLaunchIntentTransition(intent, options, displayId)
             }
         }
+
+        private fun syncInitialState(c: DesktopTasksController) {
+            remoteListener.call { l ->
+                // TODO: b/393962589 - implement desks limit.
+                val canCreateDesks = true
+                l.onListenerConnected(
+                    c.taskRepository.getDeskDisplayStateForRemote(),
+                    canCreateDesks,
+                )
+            }
+        }
+
+        private fun registerListeners(c: DesktopTasksController) {
+            c.taskRepository.addDeskChangeListener(deskChangeListener, c.mainExecutor)
+            c.taskRepository.addVisibleTasksListener(visibleTasksListener, c.mainExecutor)
+            c.taskbarDesktopTaskListener = taskbarDesktopTaskListener
+            c.desktopModeEnterExitTransitionListener = desktopModeEntryExitTransitionListener
+        }
+
+        private fun unregisterListeners(c: DesktopTasksController) {
+            c.taskRepository.removeDeskChangeListener(deskChangeListener)
+            c.taskRepository.removeVisibleTasksListener(visibleTasksListener)
+            c.taskbarDesktopTaskListener = null
+            c.desktopModeEnterExitTransitionListener = null
+        }
     }
 
     private fun logV(msg: String, vararg arguments: Any?) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt
index 81b136d..f9ab359 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt
@@ -26,7 +26,6 @@
 import android.window.TransitionInfo
 import android.window.WindowContainerTransaction
 import androidx.annotation.VisibleForTesting
-import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_MINIMIZE_WINDOW
 import com.android.internal.jank.InteractionJankMonitor
 import com.android.internal.protolog.ProtoLog
 import com.android.wm.shell.ShellTaskOrganizer
@@ -176,28 +175,13 @@
             return taskChange.mode == TRANSIT_TO_BACK
         }
 
-        override fun onTransitionStarting(transition: IBinder) {
-            val mActiveTaskDetails = activeTransitionTokensAndTasks[transition]
-            val info = mActiveTaskDetails?.transitionInfo ?: return
-            val minimizeChange = getMinimizeChange(info, mActiveTaskDetails.taskId) ?: return
-            // Begin minimize window CUJ instrumentation.
-            interactionJankMonitor.begin(
-                minimizeChange.leash,
-                context,
-                handler,
-                CUJ_DESKTOP_MODE_MINIMIZE_WINDOW,
-            )
-        }
-
         private fun getMinimizeChange(info: TransitionInfo, taskId: Int): TransitionInfo.Change? =
             info.changes.find { change ->
                 change.taskInfo?.taskId == taskId && change.mode == TRANSIT_TO_BACK
             }
 
         override fun onTransitionMerged(merged: IBinder, playing: IBinder) {
-            if (activeTransitionTokensAndTasks.remove(merged) != null) {
-                interactionJankMonitor.end(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
-            }
+            activeTransitionTokensAndTasks.remove(merged)
             pendingTransitionTokensAndTasks.remove(merged)?.let { taskToTransfer ->
                 pendingTransitionTokensAndTasks[playing] = taskToTransfer
             }
@@ -209,13 +193,6 @@
         }
 
         override fun onTransitionFinished(transition: IBinder, aborted: Boolean) {
-            if (activeTransitionTokensAndTasks.remove(transition) != null) {
-                if (aborted) {
-                    interactionJankMonitor.cancel(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
-                } else {
-                    interactionJankMonitor.end(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
-                }
-            }
             pendingTransitionTokensAndTasks.remove(transition)
             activeUnminimizeTransitionTokensAndTasks.remove(transition)
             pendingUnminimizeTransitionTokensAndTasks.remove(transition)
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandler.kt
index cb23180..d396d8b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandler.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandler.kt
@@ -1138,8 +1138,11 @@
             .spring(FloatProperties.RECT_HEIGHT, endBounds.height().toFloat(), sizeSpringConfig)
             .addUpdateListener { animBounds, _ ->
                 val animFraction =
-                    (animBounds.width() - startBounds.width()).toFloat() /
-                        (endBounds.width() - startBounds.width())
+                    getAnimationFraction(
+                        startBounds = startBounds,
+                        endBounds = endBounds,
+                        animBounds = animBounds,
+                    )
                 val animScale = startScale + animFraction * (1 - startScale)
                 // Freeform animation starts with freeform animation offset relative to the commit
                 // animation and plays until the commit animation ends. For instance:
@@ -1191,16 +1194,38 @@
             .start()
     }
 
-    private fun logV(msg: String, vararg arguments: Any?) {
-        ProtoLog.v(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
-    }
-
-    private fun logE(msg: String, vararg arguments: Any?) {
-        ProtoLog.e(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
-    }
-
     companion object {
         private const val TAG = "SpringDragToDesktopTransitionHandler"
+
+        @VisibleForTesting
+        fun getAnimationFraction(startBounds: Rect, endBounds: Rect, animBounds: Rect): Float {
+            if (startBounds.width() != endBounds.width()) {
+                return (animBounds.width() - startBounds.width()).toFloat() /
+                    (endBounds.width() - startBounds.width())
+            }
+            if (startBounds.height() != endBounds.height()) {
+                return (animBounds.height() - startBounds.height()).toFloat() /
+                    (endBounds.height() - startBounds.height())
+            }
+            logW(
+                "same start and end sizes, returning 0: " +
+                    "startBounds=$startBounds, endBounds=$endBounds, animBounds=$animBounds"
+            )
+            return 0f
+        }
+
+        private fun logV(msg: String, vararg arguments: Any?) {
+            ProtoLog.v(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
+        }
+
+        private fun logW(msg: String, vararg arguments: Any?) {
+            ProtoLog.v(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
+        }
+
+        private fun logE(msg: String, vararg arguments: Any?) {
+            ProtoLog.e(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
+        }
+
         /** The freeform tasks initial scale when committing the drag-to-desktop gesture. */
         private val FREEFORM_TASKS_INITIAL_SCALE =
             propertyValue("freeform_tasks_initial_scale", scale = 100f, default = 0.9f)
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDisplayTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDisplayTransitionHandler.kt
new file mode 100644
index 0000000..d51576a
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDisplayTransitionHandler.kt
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2025 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.wm.shell.desktopmode
+
+import android.os.IBinder
+import android.view.SurfaceControl
+import android.window.TransitionInfo
+import android.window.TransitionRequestInfo
+import android.window.WindowContainerTransaction
+import com.android.wm.shell.transition.Transitions
+
+/** Handles the transition to drag a window to another display by dragging the caption. */
+class DragToDisplayTransitionHandler : Transitions.TransitionHandler {
+    override fun handleRequest(
+        transition: IBinder,
+        request: TransitionRequestInfo,
+    ): WindowContainerTransaction? {
+        return null
+    }
+
+    override fun startAnimation(
+        transition: IBinder,
+        info: TransitionInfo,
+        startTransaction: SurfaceControl.Transaction,
+        finishTransaction: SurfaceControl.Transaction,
+        finishCallback: Transitions.TransitionFinishCallback,
+    ): Boolean {
+        for (change in info.changes) {
+            val sc = change.leash
+            val endBounds = change.endAbsBounds
+            val endPosition = change.endRelOffset
+            startTransaction
+                .setWindowCrop(sc, endBounds.width(), endBounds.height())
+                .setPosition(sc, endPosition.x.toFloat(), endPosition.y.toFloat())
+            finishTransaction
+                .setWindowCrop(sc, endBounds.width(), endBounds.height())
+                .setPosition(sc, endPosition.x.toFloat(), endPosition.y.toFloat())
+        }
+
+        startTransaction.apply()
+        finishCallback.onTransitionFinished(null)
+        return true
+    }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/EnterDesktopTaskTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/EnterDesktopTaskTransitionHandler.java
index 80e106f..4c17030 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/EnterDesktopTaskTransitionHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/EnterDesktopTaskTransitionHandler.java
@@ -41,6 +41,7 @@
 import androidx.annotation.Nullable;
 
 import com.android.internal.jank.InteractionJankMonitor;
+import com.android.internal.util.LatencyTracker;
 import com.android.wm.shell.shared.desktopmode.DesktopModeTransitionSource;
 import com.android.wm.shell.transition.Transitions;
 import com.android.wm.shell.windowdecor.OnTaskResizeAnimationListener;
@@ -63,20 +64,25 @@
 
     private final List<IBinder> mPendingTransitionTokens = new ArrayList<>();
     private final InteractionJankMonitor mInteractionJankMonitor;
+    private final LatencyTracker mLatencyTracker;
 
     private OnTaskResizeAnimationListener mOnTaskResizeAnimationListener;
 
     public EnterDesktopTaskTransitionHandler(
-            Transitions transitions, InteractionJankMonitor interactionJankMonitor) {
-        this(transitions, interactionJankMonitor, SurfaceControl.Transaction::new);
+            Transitions transitions,
+            InteractionJankMonitor interactionJankMonitor,
+            LatencyTracker latencyTracker) {
+        this(transitions, interactionJankMonitor, latencyTracker, SurfaceControl.Transaction::new);
     }
 
     public EnterDesktopTaskTransitionHandler(
             Transitions transitions,
             InteractionJankMonitor interactionJankMonitor,
+            LatencyTracker latencyTracker,
             Supplier<SurfaceControl.Transaction> supplier) {
         mTransitions = transitions;
         mInteractionJankMonitor = interactionJankMonitor;
+        mLatencyTracker = latencyTracker;
         mTransactionSupplier = supplier;
     }
 
@@ -122,6 +128,13 @@
             }
         }
 
+        if (transitionHandled
+                && info.getType()
+                        == DesktopModeTransitionTypes
+                                .TRANSIT_ENTER_DESKTOP_FROM_APP_HANDLE_MENU_BUTTON) {
+            mLatencyTracker.onActionEnd(LatencyTracker.ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_MENU);
+        }
+
         mPendingTransitionTokens.remove(transition);
 
         return transitionHandled;
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/VisualIndicatorViewContainer.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/VisualIndicatorViewContainer.kt
index 2317274..919e816 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/VisualIndicatorViewContainer.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/VisualIndicatorViewContainer.kt
@@ -44,6 +44,7 @@
 import com.android.wm.shell.shared.annotations.ShellMainThread
 import com.android.wm.shell.shared.bubbles.BubbleDropTargetBoundsProvider
 import com.android.wm.shell.windowdecor.WindowDecoration.SurfaceControlViewHostFactory
+import com.android.wm.shell.windowdecor.tiling.SnapEventHandler
 
 /**
  * Container for the view / viewhost of the indicator, ensuring it is created / animated off the
@@ -60,6 +61,7 @@
     private val surfaceControlViewHostFactory: SurfaceControlViewHostFactory =
         object : SurfaceControlViewHostFactory {},
     private val bubbleBoundsProvider: BubbleDropTargetBoundsProvider?,
+    private val snapEventHandler: SnapEventHandler,
 ) {
     @VisibleForTesting var indicatorView: View? = null
     private var indicatorViewHost: SurfaceControlViewHost? = null
@@ -164,9 +166,15 @@
                 displayController.getDisplayLayout(taskInfo.displayId)
                     ?: error("Expected to find DisplayLayout for taskId${taskInfo.taskId}.")
             if (currentType == IndicatorType.NO_INDICATOR) {
-                fadeInIndicator(layout, newType)
+                fadeInIndicator(layout, newType, taskInfo.displayId, snapEventHandler)
             } else if (newType == IndicatorType.NO_INDICATOR) {
-                fadeOutIndicator(layout, currentType, /* finishCallback= */ null)
+                fadeOutIndicator(
+                    layout,
+                    currentType,
+                    /* finishCallback= */ null,
+                    taskInfo.displayId,
+                    snapEventHandler,
+                )
             } else {
                 val animStartType = IndicatorType.valueOf(currentType.name)
                 val animator =
@@ -177,6 +185,8 @@
                             animStartType,
                             newType,
                             bubbleBoundsProvider,
+                            taskInfo.displayId,
+                            snapEventHandler,
                         )
                     } ?: return@execute
                 animator.start()
@@ -188,12 +198,24 @@
      * Fade indicator in as provided type. Animator fades it in while expanding the bounds outwards.
      */
     @VisibleForTesting
-    fun fadeInIndicator(layout: DisplayLayout, type: IndicatorType) {
+    fun fadeInIndicator(
+        layout: DisplayLayout,
+        type: IndicatorType,
+        displayId: Int,
+        snapEventHandler: SnapEventHandler,
+    ) {
         desktopExecutor.assertCurrentThread()
         indicatorView?.let {
             it.setBackgroundResource(R.drawable.desktop_windowing_transition_background)
             val animator =
-                VisualIndicatorAnimator.fadeBoundsIn(it, type, layout, bubbleBoundsProvider)
+                VisualIndicatorAnimator.fadeBoundsIn(
+                    it,
+                    type,
+                    layout,
+                    bubbleBoundsProvider,
+                    displayId,
+                    snapEventHandler,
+                )
             animator.start()
         }
     }
@@ -207,6 +229,8 @@
         layout: DisplayLayout,
         currentType: IndicatorType,
         finishCallback: Runnable?,
+        displayId: Int,
+        snapEventHandler: SnapEventHandler,
     ) {
         if (currentType == IndicatorType.NO_INDICATOR) {
             // In rare cases, fade out can be requested before the indicator has determined its
@@ -223,6 +247,8 @@
                         animStartType,
                         layout,
                         bubbleBoundsProvider,
+                        displayId,
+                        snapEventHandler,
                     )
                 animator.addListener(
                     object : AnimatorListenerAdapter() {
@@ -328,8 +354,17 @@
                 type: IndicatorType,
                 displayLayout: DisplayLayout,
                 bubbleBoundsProvider: BubbleDropTargetBoundsProvider?,
+                displayId: Int,
+                snapEventHandler: SnapEventHandler,
             ): VisualIndicatorAnimator {
-                val endBounds = getIndicatorBounds(displayLayout, type, bubbleBoundsProvider)
+                val endBounds =
+                    getIndicatorBounds(
+                        displayLayout,
+                        type,
+                        bubbleBoundsProvider,
+                        displayId,
+                        snapEventHandler,
+                    )
                 val startBounds = getMinBounds(endBounds)
                 view.background.bounds = startBounds
 
@@ -345,11 +380,19 @@
                 type: IndicatorType,
                 displayLayout: DisplayLayout,
                 bubbleBoundsProvider: BubbleDropTargetBoundsProvider?,
+                displayId: Int,
+                snapEventHandler: SnapEventHandler,
             ): VisualIndicatorAnimator {
-                val startBounds = getIndicatorBounds(displayLayout, type, bubbleBoundsProvider)
+                val startBounds =
+                    getIndicatorBounds(
+                        displayLayout,
+                        type,
+                        bubbleBoundsProvider,
+                        displayId,
+                        snapEventHandler,
+                    )
                 val endBounds = getMinBounds(startBounds)
                 view.background.bounds = startBounds
-
                 val animator = VisualIndicatorAnimator(view, startBounds, endBounds)
                 animator.interpolator = DecelerateInterpolator()
                 setupIndicatorAnimation(animator, AlphaAnimType.ALPHA_FADE_OUT_ANIM)
@@ -375,9 +418,25 @@
                 origType: IndicatorType,
                 newType: IndicatorType,
                 bubbleBoundsProvider: BubbleDropTargetBoundsProvider?,
+                displayId: Int,
+                snapEventHandler: SnapEventHandler,
             ): VisualIndicatorAnimator {
-                val startBounds = getIndicatorBounds(displayLayout, origType, bubbleBoundsProvider)
-                val endBounds = getIndicatorBounds(displayLayout, newType, bubbleBoundsProvider)
+                val startBounds =
+                    getIndicatorBounds(
+                        displayLayout,
+                        origType,
+                        bubbleBoundsProvider,
+                        displayId,
+                        snapEventHandler,
+                    )
+                val endBounds =
+                    getIndicatorBounds(
+                        displayLayout,
+                        newType,
+                        bubbleBoundsProvider,
+                        displayId,
+                        snapEventHandler,
+                    )
                 val animator = VisualIndicatorAnimator(view, startBounds, endBounds)
                 animator.interpolator = DecelerateInterpolator()
                 setupIndicatorAnimation(animator, AlphaAnimType.ALPHA_NO_CHANGE_ANIM)
@@ -389,6 +448,8 @@
                 layout: DisplayLayout,
                 type: IndicatorType,
                 bubbleBoundsProvider: BubbleDropTargetBoundsProvider?,
+                displayId: Int,
+                snapEventHandler: SnapEventHandler,
             ): Rect {
                 val desktopStableBounds = Rect()
                 layout.getStableBounds(desktopStableBounds)
@@ -417,21 +478,25 @@
                         )
                     }
 
-                    IndicatorType.TO_SPLIT_LEFT_INDICATOR ->
+                    IndicatorType.TO_SPLIT_LEFT_INDICATOR -> {
+                        val currentLeftBounds = snapEventHandler.getLeftSnapBoundsIfTiled(displayId)
                         return Rect(
                             padding,
                             padding,
-                            desktopStableBounds.width() / 2 - padding,
+                            currentLeftBounds.right - padding,
                             desktopStableBounds.height(),
                         )
-
-                    IndicatorType.TO_SPLIT_RIGHT_INDICATOR ->
+                    }
+                    IndicatorType.TO_SPLIT_RIGHT_INDICATOR -> {
+                        val currentRightBounds =
+                            snapEventHandler.getRightSnapBoundsIfTiled(displayId)
                         return Rect(
-                            desktopStableBounds.width() / 2 + padding,
+                            currentRightBounds.left + padding,
                             padding,
                             desktopStableBounds.width() - padding,
                             desktopStableBounds.height(),
                         )
+                    }
                     IndicatorType.TO_BUBBLE_LEFT_INDICATOR ->
                         return bubbleBoundsProvider?.getBubbleBarExpandedViewDropTargetBounds(
                             /* onLeft= */ true
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksOrganizer.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksOrganizer.kt
index 0f2f371..fc359d7 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksOrganizer.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksOrganizer.kt
@@ -40,9 +40,19 @@
         task: ActivityManager.RunningTaskInfo,
     )
 
+    /** Minimizes the given task of the given deskId. */
+    fun minimizeTask(
+        wct: WindowContainerTransaction,
+        deskId: Int,
+        task: ActivityManager.RunningTaskInfo,
+    )
+
     /** Whether the change is for the given desk id. */
     fun isDeskChange(change: TransitionInfo.Change, deskId: Int): Boolean
 
+    /** Whether the change is for a known desk. */
+    fun isDeskChange(change: TransitionInfo.Change): Boolean
+
     /**
      * Returns the desk id in which the task in the given change is located at the end of a
      * transition, if any.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksTransitionObserver.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksTransitionObserver.kt
index e57b563..b521b2e 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksTransitionObserver.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksTransitionObserver.kt
@@ -31,12 +31,14 @@
     private val desktopUserRepositories: DesktopUserRepositories,
     private val desksOrganizer: DesksOrganizer,
 ) {
-    private val deskTransitions = mutableMapOf<IBinder, DeskTransition>()
+    private val deskTransitions = mutableMapOf<IBinder, MutableSet<DeskTransition>>()
 
     /** Adds a pending desk transition to be tracked. */
     fun addPendingTransition(transition: DeskTransition) {
         if (!DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) return
-        deskTransitions[transition.token] = transition
+        val transitions = deskTransitions[transition.token] ?: mutableSetOf()
+        transitions += transition
+        deskTransitions[transition.token] = transitions
     }
 
     /**
@@ -45,7 +47,11 @@
      */
     fun onTransitionReady(transition: IBinder, info: TransitionInfo) {
         if (!DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) return
-        val deskTransition = deskTransitions.remove(transition) ?: return
+        val deskTransitions = deskTransitions.remove(transition) ?: return
+        deskTransitions.forEach { deskTransition -> handleDeskTransition(info, deskTransition) }
+    }
+
+    private fun handleDeskTransition(info: TransitionInfo, deskTransition: DeskTransition) {
         logD("Desk transition ready: %s", deskTransition)
         val desktopRepository = desktopUserRepositories.current
         when (deskTransition) {
@@ -60,16 +66,21 @@
                 deskTransition.onDeskRemovedListener?.onDeskRemoved(displayId, deskId)
             }
             is DeskTransition.ActivateDesk -> {
-                val activeDeskChange =
+                val activateDeskChange =
                     info.changes.find { change ->
                         desksOrganizer.isDeskActiveAtEnd(change, deskTransition.deskId)
                     }
-                activeDeskChange?.let {
-                    desktopRepository.setActiveDesk(
-                        displayId = deskTransition.displayId,
-                        deskId = deskTransition.deskId,
-                    )
+                if (activateDeskChange == null) {
+                    // Always activate even if there is no change in the transition for the
+                    // activated desk. This is necessary because some activation requests, such as
+                    // those involving empty desks, may not contain visibility changes that are
+                    // reported in the transition change list.
+                    logD("Activating desk without transition change")
                 }
+                desktopRepository.setActiveDesk(
+                    displayId = deskTransition.displayId,
+                    deskId = deskTransition.deskId,
+                )
             }
             is DeskTransition.ActiveDeskWithTask -> {
                 val withTask =
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/RootTaskDesksOrganizer.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/RootTaskDesksOrganizer.kt
index 339932c..f576258 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/RootTaskDesksOrganizer.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/RootTaskDesksOrganizer.kt
@@ -15,7 +15,9 @@
  */
 package com.android.wm.shell.desktopmode.multidesks
 
+import android.annotation.SuppressLint
 import android.app.ActivityManager.RunningTaskInfo
+import android.app.ActivityTaskManager.INVALID_TASK_ID
 import android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD
 import android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED
 import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
@@ -25,6 +27,7 @@
 import android.view.WindowManager.TRANSIT_TO_FRONT
 import android.window.DesktopExperienceFlags
 import android.window.TransitionInfo
+import android.window.WindowContainerToken
 import android.window.WindowContainerTransaction
 import androidx.core.util.forEach
 import com.android.internal.annotations.VisibleForTesting
@@ -43,8 +46,12 @@
     private val shellTaskOrganizer: ShellTaskOrganizer,
 ) : DesksOrganizer, ShellTaskOrganizer.TaskListener {
 
-    private val deskCreateRequests = mutableListOf<CreateRequest>()
-    @VisibleForTesting val roots = SparseArray<DeskRoot>()
+    private val createDeskRootRequests = mutableListOf<CreateDeskRequest>()
+    @VisibleForTesting val deskRootsByDeskId = SparseArray<DeskRoot>()
+    private val createDeskMinimizationRootRequests =
+        mutableListOf<CreateDeskMinimizationRootRequest>()
+    @VisibleForTesting
+    val deskMinimizationRootsByDeskId: MutableMap<Int, DeskMinimizationRoot> = mutableMapOf()
 
     init {
         if (DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) {
@@ -57,7 +64,7 @@
 
     override fun createDesk(displayId: Int, callback: OnCreateCallback) {
         logV("createDesk in display: %d", displayId)
-        deskCreateRequests += CreateRequest(displayId, callback)
+        createDeskRootRequests += CreateDeskRequest(displayId, callback)
         shellTaskOrganizer.createRootTask(
             displayId,
             WINDOWING_MODE_FREEFORM,
@@ -68,14 +75,14 @@
 
     override fun removeDesk(wct: WindowContainerTransaction, deskId: Int) {
         logV("removeDesk %d", deskId)
-        val desk = checkNotNull(roots[deskId]) { "Root not found for desk: $deskId" }
-        wct.removeRootTask(desk.taskInfo.token)
+        deskRootsByDeskId[deskId]?.let { root -> wct.removeRootTask(root.token) }
+        deskMinimizationRootsByDeskId[deskId]?.let { root -> wct.removeRootTask(root.token) }
     }
 
     override fun activateDesk(wct: WindowContainerTransaction, deskId: Int) {
         logV("activateDesk %d", deskId)
-        val root = checkNotNull(roots[deskId]) { "Root not found for desk: $deskId" }
-        wct.reorder(root.taskInfo.token, /* onTop= */ true)
+        val root = checkNotNull(deskRootsByDeskId[deskId]) { "Root not found for desk: $deskId" }
+        wct.reorder(root.token, /* onTop= */ true)
         wct.setLaunchRoot(
             /* container= */ root.taskInfo.token,
             /* windowingModes= */ intArrayOf(WINDOWING_MODE_FREEFORM, WINDOWING_MODE_UNDEFINED),
@@ -85,7 +92,7 @@
 
     override fun deactivateDesk(wct: WindowContainerTransaction, deskId: Int) {
         logV("deactivateDesk %d", deskId)
-        val root = checkNotNull(roots[deskId]) { "Root not found for desk: $deskId" }
+        val root = checkNotNull(deskRootsByDeskId[deskId]) { "Root not found for desk: $deskId" }
         wct.setLaunchRoot(
             /* container= */ root.taskInfo.token,
             /* windowingModes= */ null,
@@ -98,16 +105,58 @@
         deskId: Int,
         task: RunningTaskInfo,
     ) {
-        val root = roots[deskId] ?: error("Root not found for desk: $deskId")
+        val root = deskRootsByDeskId[deskId] ?: error("Root not found for desk: $deskId")
         wct.setWindowingMode(task.token, WINDOWING_MODE_UNDEFINED)
         wct.reparent(task.token, root.taskInfo.token, /* onTop= */ true)
     }
 
-    override fun isDeskChange(change: TransitionInfo.Change, deskId: Int): Boolean =
-        roots.contains(deskId) && change.taskInfo?.taskId == deskId
+    override fun minimizeTask(wct: WindowContainerTransaction, deskId: Int, task: RunningTaskInfo) {
+        val deskRoot =
+            checkNotNull(deskRootsByDeskId[deskId]) { "Root not found for desk: $deskId" }
+        val minimizationRoot =
+            checkNotNull(deskMinimizationRootsByDeskId[deskId]) {
+                "Minimization root not found for desk: $deskId"
+            }
+        val taskId = task.taskId
+        if (taskId in minimizationRoot.children) {
+            logV("Task #$taskId is already minimized in desk #$deskId")
+            return
+        }
+        if (taskId !in deskRoot.children) {
+            logE("Attempted to minimize task=${task.taskId} in desk=$deskId but it was not a child")
+            return
+        }
+        wct.reparent(task.token, minimizationRoot.token, /* onTop= */ true)
+    }
 
-    override fun getDeskAtEnd(change: TransitionInfo.Change): Int? =
-        change.taskInfo?.parentTaskId?.takeIf { it in roots }
+    override fun isDeskChange(change: TransitionInfo.Change, deskId: Int): Boolean =
+        (isDeskRootChange(change) && change.taskId == deskId) ||
+            (getDeskMinimizationRootInChange(change)?.deskId == deskId)
+
+    override fun isDeskChange(change: TransitionInfo.Change): Boolean =
+        isDeskRootChange(change) || getDeskMinimizationRootInChange(change) != null
+
+    private fun isDeskRootChange(change: TransitionInfo.Change): Boolean =
+        change.taskId in deskRootsByDeskId
+
+    private fun getDeskMinimizationRootInChange(
+        change: TransitionInfo.Change
+    ): DeskMinimizationRoot? =
+        deskMinimizationRootsByDeskId.values.find { it.rootId == change.taskId }
+
+    private val TransitionInfo.Change.taskId: Int
+        get() = taskInfo?.taskId ?: INVALID_TASK_ID
+
+    override fun getDeskAtEnd(change: TransitionInfo.Change): Int? {
+        val parentTaskId = change.taskInfo?.parentTaskId ?: return null
+        if (parentTaskId in deskRootsByDeskId) {
+            return parentTaskId
+        }
+        val deskMinimizationRoot =
+            deskMinimizationRootsByDeskId.values.find { root -> root.rootId == parentTaskId }
+                ?: return null
+        return deskMinimizationRoot.deskId
+    }
 
     override fun isDeskActiveAtEnd(change: TransitionInfo.Change, deskId: Int): Boolean =
         change.taskInfo?.taskId == deskId &&
@@ -115,51 +164,176 @@
             change.mode == TRANSIT_TO_FRONT
 
     override fun onTaskAppeared(taskInfo: RunningTaskInfo, leash: SurfaceControl) {
-        if (taskInfo.parentTaskId in roots) {
+        // Check whether this task is appearing inside a desk.
+        if (taskInfo.parentTaskId in deskRootsByDeskId) {
             val deskId = taskInfo.parentTaskId
             val taskId = taskInfo.taskId
             logV("Task #$taskId appeared in desk #$deskId")
             addChildToDesk(taskId = taskId, deskId = deskId)
             return
         }
-        val deskId = taskInfo.taskId
-        check(deskId !in roots) { "A root already exists for desk: $deskId" }
-        val request =
-            checkNotNull(deskCreateRequests.firstOrNull { it.displayId == taskInfo.displayId }) {
-                "Task ${taskInfo.taskId} appeared without pending create request"
-            }
-        logV("Desk #$deskId appeared")
-        roots[deskId] = DeskRoot(deskId, taskInfo, leash)
-        deskCreateRequests.remove(request)
-        request.onCreateCallback.onCreated(deskId)
+        // Check whether this task is appearing in a minimization root.
+        val minimizationRoot =
+            deskMinimizationRootsByDeskId.values.singleOrNull { it.rootId == taskInfo.parentTaskId }
+        if (minimizationRoot != null) {
+            val deskId = minimizationRoot.deskId
+            val taskId = taskInfo.taskId
+            logV("Task #$taskId was minimized in desk #$deskId ")
+            addChildToMinimizationRoot(taskId = taskId, deskId = deskId)
+            return
+        }
+        // The appearing task is a root (either a desk or a minimization root), it should not exist
+        // already.
+        check(taskInfo.taskId !in deskRootsByDeskId) {
+            "A root already exists for desk: ${taskInfo.taskId}"
+        }
+        check(deskMinimizationRootsByDeskId.values.none { it.rootId == taskInfo.taskId }) {
+            "A minimization root already exists with rootId: ${taskInfo.taskId}"
+        }
+
+        val appearingInDisplayId = taskInfo.displayId
+        // Check if there's any pending desk creation requests under this display.
+        val deskRequest =
+            createDeskRootRequests.firstOrNull { it.displayId == appearingInDisplayId }
+        if (deskRequest != null) {
+            // Appearing root matches desk request.
+            val deskId = taskInfo.taskId
+            logV("Desk #$deskId appeared")
+            deskRootsByDeskId[deskId] = DeskRoot(deskId, taskInfo, leash)
+            createDeskRootRequests.remove(deskRequest)
+            deskRequest.onCreateCallback.onCreated(deskId)
+            createDeskMinimizationRoot(displayId = appearingInDisplayId, deskId = deskId)
+            return
+        }
+        // Check if there's any pending minimization container creation requests under this display.
+        val deskMinimizationRootRequest =
+            createDeskMinimizationRootRequests.first { it.displayId == appearingInDisplayId }
+        val deskId = deskMinimizationRootRequest.deskId
+        logV("Minimization container for desk #$deskId appeared with id=${taskInfo.taskId}")
+        val deskMinimizationRoot = DeskMinimizationRoot(deskId, taskInfo, leash)
+        deskMinimizationRootsByDeskId[deskId] = deskMinimizationRoot
+        createDeskMinimizationRootRequests.remove(deskMinimizationRootRequest)
+        hideMinimizationRoot(deskMinimizationRoot)
     }
 
     override fun onTaskInfoChanged(taskInfo: RunningTaskInfo) {
-        if (roots.contains(taskInfo.taskId)) {
+        if (deskRootsByDeskId.contains(taskInfo.taskId)) {
             val deskId = taskInfo.taskId
-            roots[deskId] = roots[deskId].copy(taskInfo = taskInfo)
+            deskRootsByDeskId[deskId] = deskRootsByDeskId[deskId].copy(taskInfo = taskInfo)
+            logV("Desk #$deskId's task info changed")
+            return
         }
+        val minimizationRoot =
+            deskMinimizationRootsByDeskId.values.find { root -> root.rootId == taskInfo.taskId }
+        if (minimizationRoot != null) {
+            deskMinimizationRootsByDeskId.remove(minimizationRoot.deskId)
+            deskMinimizationRootsByDeskId[minimizationRoot.deskId] =
+                minimizationRoot.copy(taskInfo = taskInfo)
+            logV("Minimization root for desk#${minimizationRoot.deskId} task info changed")
+            return
+        }
+
+        val parentTaskId = taskInfo.parentTaskId
+        if (parentTaskId in deskRootsByDeskId) {
+            val deskId = taskInfo.parentTaskId
+            val taskId = taskInfo.taskId
+            logV("onTaskInfoChanged: Task #$taskId appeared in desk #$deskId")
+            addChildToDesk(taskId = taskId, deskId = deskId)
+            return
+        }
+        // Check whether this task is appearing in a minimization root.
+        val parentMinimizationRoot =
+            deskMinimizationRootsByDeskId.values.singleOrNull { it.rootId == parentTaskId }
+        if (parentMinimizationRoot != null) {
+            val deskId = parentMinimizationRoot.deskId
+            val taskId = taskInfo.taskId
+            logV("onTaskInfoChanged: Task #$taskId was minimized in desk #$deskId ")
+            addChildToMinimizationRoot(taskId = taskId, deskId = deskId)
+            return
+        }
+        logE("onTaskInfoChanged: unknown task: ${taskInfo.taskId}")
     }
 
     override fun onTaskVanished(taskInfo: RunningTaskInfo) {
-        if (roots.contains(taskInfo.taskId)) {
+        if (deskRootsByDeskId.contains(taskInfo.taskId)) {
             val deskId = taskInfo.taskId
-            val deskRoot = roots[deskId]
+            val deskRoot = deskRootsByDeskId[deskId]
             // Use the last saved taskInfo to obtain the displayId. Using the local one here will
             // return -1 since the task is not unassociated with a display.
             val displayId = deskRoot.taskInfo.displayId
             logV("Desk #$deskId vanished from display #$displayId")
-            roots.remove(deskId)
+            deskRootsByDeskId.remove(deskId)
             return
         }
+        val deskMinimizationRoot =
+            deskMinimizationRootsByDeskId.values.singleOrNull { it.rootId == taskInfo.taskId }
+        if (deskMinimizationRoot != null) {
+            logV("Minimization root for desk ${deskMinimizationRoot.deskId} vanished")
+            deskMinimizationRootsByDeskId.remove(deskMinimizationRoot.deskId)
+            return
+        }
+
+        // Check whether the vanishing task was a child of any desk.
         // At this point, [parentTaskId] may be unset even if this is a task vanishing from a desk,
         // so search through each root to remove this if it's a child.
-        roots.forEach { deskId, deskRoot ->
+        deskRootsByDeskId.forEach { deskId, deskRoot ->
             if (deskRoot.children.remove(taskInfo.taskId)) {
                 logV("Task #${taskInfo.taskId} vanished from desk #$deskId")
                 return
             }
         }
+        // Check whether the vanishing task was a child of the minimized root and remove it.
+        deskMinimizationRootsByDeskId.values.forEach { root ->
+            val taskId = taskInfo.taskId
+            if (root.children.remove(taskId)) {
+                logV("Task #$taskId vanished from minimization root of desk #${root.deskId}")
+                return
+            }
+        }
+    }
+
+    private fun createDeskMinimizationRoot(displayId: Int, deskId: Int) {
+        createDeskMinimizationRootRequests +=
+            CreateDeskMinimizationRootRequest(displayId = displayId, deskId = deskId)
+        shellTaskOrganizer.createRootTask(
+            displayId,
+            WINDOWING_MODE_FREEFORM,
+            /* listener = */ this,
+            /* removeWithTaskOrganizer = */ true,
+        )
+    }
+
+    @SuppressLint("MissingPermission")
+    private fun hideMinimizationRoot(root: DeskMinimizationRoot) {
+        shellTaskOrganizer.applyTransaction(
+            WindowContainerTransaction().apply { setHidden(root.token, /* hidden= */ true) }
+        )
+    }
+
+    private fun addChildToDesk(taskId: Int, deskId: Int) {
+        deskRootsByDeskId.forEach { _, deskRoot ->
+            if (deskRoot.deskId == deskId) {
+                deskRoot.children.add(taskId)
+            } else {
+                deskRoot.children.remove(taskId)
+            }
+        }
+        // A task cannot be in both a desk root and a minimization root at the same time, so make
+        // sure to remove them if needed.
+        deskMinimizationRootsByDeskId.values.forEach { root -> root.children.remove(taskId) }
+    }
+
+    private fun addChildToMinimizationRoot(taskId: Int, deskId: Int) {
+        deskMinimizationRootsByDeskId.forEach { _, minimizationRoot ->
+            if (minimizationRoot.deskId == deskId) {
+                minimizationRoot.children += taskId
+            } else {
+                minimizationRoot.children -= taskId
+            }
+        }
+        // A task cannot be in both a desk root and a minimization root at the same time, so make
+        // sure to remove them if needed.
+        deskRootsByDeskId.forEach { _, deskRoot -> deskRoot.children -= taskId }
     }
 
     @VisibleForTesting
@@ -168,34 +342,55 @@
         val taskInfo: RunningTaskInfo,
         val leash: SurfaceControl,
         val children: MutableSet<Int> = mutableSetOf(),
+    ) {
+        val token: WindowContainerToken = taskInfo.token
+    }
+
+    @VisibleForTesting
+    data class DeskMinimizationRoot(
+        val deskId: Int,
+        val taskInfo: RunningTaskInfo,
+        val leash: SurfaceControl,
+        val children: MutableSet<Int> = mutableSetOf(),
+    ) {
+        val rootId: Int
+            get() = taskInfo.taskId
+
+        val token: WindowContainerToken = taskInfo.token
+    }
+
+    private data class CreateDeskRequest(
+        val displayId: Int,
+        val onCreateCallback: OnCreateCallback,
     )
 
+    private data class CreateDeskMinimizationRootRequest(val displayId: Int, val deskId: Int)
+
+    private fun logV(msg: String, vararg arguments: Any?) {
+        ProtoLog.v(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
+    }
+
+    private fun logE(msg: String, vararg arguments: Any?) {
+        ProtoLog.e(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
+    }
+
     override fun dump(pw: PrintWriter, prefix: String) {
         val innerPrefix = "$prefix  "
         pw.println("$prefix$TAG")
         pw.println("${innerPrefix}Desk Roots:")
-        roots.forEach { deskId, root ->
+        deskRootsByDeskId.forEach { deskId, root ->
+            val minimizationRoot = deskMinimizationRootsByDeskId[deskId]
             pw.println("$innerPrefix  #$deskId visible=${root.taskInfo.isVisible}")
+            pw.println("$innerPrefix    displayId=${root.taskInfo.displayId}")
             pw.println("$innerPrefix    children=${root.children}")
-        }
-    }
-
-    private fun addChildToDesk(taskId: Int, deskId: Int) {
-        roots.forEach { _, deskRoot ->
-            if (deskRoot.deskId == deskId) {
-                deskRoot.children.add(taskId)
-            } else {
-                deskRoot.children.remove(taskId)
+            pw.println("$innerPrefix    minimization root:")
+            pw.println("$innerPrefix      rootId=${minimizationRoot?.rootId}")
+            if (minimizationRoot != null) {
+                pw.println("$innerPrefix      children=${minimizationRoot.children}")
             }
         }
     }
 
-    private data class CreateRequest(val displayId: Int, val onCreateCallback: OnCreateCallback)
-
-    private fun logV(msg: String, vararg arguments: Any?) {
-        ProtoLog.v(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
-    }
-
     companion object {
         private const val TAG = "RootTaskDesksOrganizer"
     }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/docs/README.md b/libs/WindowManager/Shell/src/com/android/wm/shell/docs/README.md
index 3fad28a..a98ae55 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/docs/README.md
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/docs/README.md
@@ -9,6 +9,7 @@
 4) [Threading model in the Shell](threading.md)
 5) [Making changes in the Shell](changes.md)
 6) [Extending the Shell for Products/OEMs](extending.md)
+6) [Shell transitions](transitions.md)
 7) [Debugging in the Shell](debugging.md)
 8) [Testing in the Shell](testing.md)
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/docs/transitions.md b/libs/WindowManager/Shell/src/com/android/wm/shell/docs/transitions.md
new file mode 100644
index 0000000..dc23bb0
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/docs/transitions.md
@@ -0,0 +1,118 @@
+# Shell transitions
+[Back to home](README.md)
+
+---
+
+## General
+
+General guides for using Shell Transitions can be found here:
+- [Shell transitions animation guide](http://go/shell-transit-anim)
+- [Hitchhiker's guide to transitions](http://go/transitions-book)
+
+## Transient-launch transitions
+<span style="color:orange">Use with care!</span>
+
+Transient-launch transitions are a way to handle non-atomic (ie. gestural) transitions by allowing
+WM Core to put participating activities into a transiently visible or hidden state for the duration
+of the animation and adding the ability to cancel the transition.  
+
+For example, if you are launching an activity normally, WM Core will be updated
+at the start of the animation which includes pausing the previous activity and resuming the next
+activity (and subsequently the transition will reconcile that state via an animation).
+
+If you are transiently launching an activity though, WM Core will ensure that both the leaving 
+activity and the incoming activity will be RESUMED for the duration of the transition duration. In
+addition, WM Core will track the position of the transient-launch activity in the window hierarchy
+prior to the launch, and allow Shell to restore it to that position if the transitions needs to be
+canceled.
+
+Starting a transient-launch transition can be done via the activity options (since the activity may
+not have been started yet):
+```kotlin
+val opts = ActivityOptions.makeBasic().setTransientLaunch()
+val wct = WindowContainerTransaction()
+wct.sendPendingIntent(pendingIntent, new Intent(), opts.toBundle())
+transitions.startTransition(TRANSIT_OPEN, wct, ...)
+```
+
+And restoring the transient order via a WCT:
+```kotlin
+val wct = WindowContainerTransaction()
+wct.restoreTransientOrder(transientLaunchContainerToken)
+transitions.startTransition(TRANSIT_RESTORE, wct, ...)
+```
+
+### <span style="color:orange">Considerations</span>
+
+Usage of transient-launch transitions should be done with consideration, there are a few gotchas
+that might result in subtle and hard-to-reproduce issues. 
+
+#### Understanding the flow
+When starting a transient-launch transition, there are several possible outcomes:
+1) The transition finishes as normal: The user is committing the transition to the state requested
+   at the start of the transition.  In such cases, you can simply finish the transition and the
+   states of the transiently shown/hidden activities will be updated to match the original state
+   that a non-transient transition would have (ie. closing activities will be stopped).
+
+2) The transition is interrupted: A change in the system results in the window hierarchy changing
+   in a way which may or may not affect the transient-launch activity.  eg. We transiently-launch
+   home from app A, but then app B launches.  In this case, WM attempts to create a new transition
+   reflecting the window hierarchy changes (ie. if B occludes Home in the above example, then the
+   transition will have Home TO_BACK, and B TO_FRONT).
+
+   At this point, the transition handler can choose to merge the incoming transition or not (to
+   queue it after this current transition).  Take note of the next section for concerns re. bookend
+   transitions.
+
+3) The transition is canceled: The user is canceling the transition to the previous state.  In such
+   cases, you need to store the `WindowContainerToken` for the task associated with the 
+   transient-launch activity, and restore the transient order via the `WindowContainerTransaction`
+   API above.  In some cases, if anything has been reordered since (ie. due to other merged 
+   transitions), then you may also want to use `WindowContainerTransaction#reorder()` to place all
+   the relevant containers to their original order (provided via the change-order in the initial
+   launch transition).
+
+#### Finishing the transient-launch transition
+
+When restoring the transient order in the 3rd flow above, it is recommended to do it in a new 
+transition and <span style="color:orange">**not**</span> via the WindowContainerTransaction in 
+`TransitionFinishCallback#onTransitionFinished()` provided when starting the transition.
+
+Changes to the window hierarchy via the finish transaction are not applied in sync with other 
+transitions that are collecting and aplying, and are also not observable in Shell in any way.  
+Starting a new transition instead ensures both.  (The finish transaction can still be used if there
+are non-transition affecting properties (ie. container properties) that need to be updated as a part
+of finishing the transient-launch transition).
+
+So the general idea is when restoring is:
+
+1) Start transient-launch transition START_T
+2) ...
+3) All done, start bookend transition END_T
+4) Handler receives END_T, merges it and then finishes START_T
+
+In practice it's not quite that simple, due to the ordering of transitions and extra care must be
+taken when using a new transition to prevent deadlocking when merging transitions.
+
+When a new transition arrives while a transient-launch transition is playing, the handler can
+choose to handle/merge the transition into the ongoing one, or skip merging to queue it up to be
+played after.  In the above flow, we can see how this might result in a deadlock:
+
+Queueing END during merge:
+1) Start transient-launch transition START_T
+2) ...
+3) Incoming transition OTHER_T, choose to cancel START_T -> start bookend transition END_T, but don't merge OTHER_T
+3) Waiting for END_T... <span style="color:red">Deadlock!</span>
+
+Interrupt while pending END:
+1) Start transient-launch transition START_T
+2) ...
+3) All done, start bookend transition END_T
+3) Incoming transition OTHER_T occurs before END_T, but don't merge OTHER_T
+3) Waiting for END_T... <span style="color:red">Deadlock!</span>
+
+This means that when using transient-launch transitions with a bookend transition
+<span style="color:orange">requires</span> you to handle any incoming transitions if the bookend is 
+ever queued (or already posted) after it.  You can do so by preempting the bookend transition
+(finishing the transient-launch transition), or handling the merge of the new transition (so it 
+doesn't queue). 
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java
index b60fb5e..16e411e 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java
@@ -25,10 +25,12 @@
 import android.animation.ValueAnimator;
 import android.app.ActivityManager;
 import android.app.WindowConfiguration;
+import android.content.Context;
 import android.graphics.Rect;
+import android.os.Handler;
 import android.os.IBinder;
 import android.util.ArrayMap;
-import android.util.DisplayMetrics;
+import android.util.Log;
 import android.view.SurfaceControl;
 import android.view.WindowManager;
 import android.window.TransitionInfo;
@@ -38,6 +40,7 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
+import com.android.internal.jank.InteractionJankMonitor;
 import com.android.wm.shell.common.DisplayController;
 import com.android.wm.shell.common.ShellExecutor;
 import com.android.wm.shell.shared.animation.MinimizeAnimator;
@@ -52,11 +55,13 @@
  */
 public class FreeformTaskTransitionHandler
         implements Transitions.TransitionHandler, FreeformTaskTransitionStarter {
+    private static final String TAG = "FreeformTaskTransitionHandler";
     private static final int CLOSE_ANIM_DURATION = 400;
     private final Transitions mTransitions;
     private final DisplayController mDisplayController;
     private final ShellExecutor mMainExecutor;
     private final ShellExecutor mAnimExecutor;
+    private final Handler mAnimHandler;
 
     private final List<IBinder> mPendingTransitionTokens = new ArrayList<>();
 
@@ -66,11 +71,13 @@
             Transitions transitions,
             DisplayController displayController,
             ShellExecutor mainExecutor,
-            ShellExecutor animExecutor) {
+            ShellExecutor animExecutor,
+            Handler animHandler) {
         mTransitions = transitions;
         mDisplayController = displayController;
         mMainExecutor = mainExecutor;
         mAnimExecutor = animExecutor;
+        mAnimHandler = animHandler;
     }
 
     @Override
@@ -123,13 +130,11 @@
             @NonNull Transitions.TransitionFinishCallback finishCallback) {
         boolean transitionHandled = false;
         final ArrayList<Animator> animations = new ArrayList<>();
-        final Runnable onAnimFinish = () -> {
+        final Runnable onAnimFinish = () -> mMainExecutor.execute(() -> {
             if (!animations.isEmpty()) return;
-            mMainExecutor.execute(() -> {
-                mAnimations.remove(transition);
-                finishCallback.onTransitionFinished(null /* wct */);
-            });
-        };
+            mAnimations.remove(transition);
+            finishCallback.onTransitionFinished(null /* wct */);
+        });
         for (TransitionInfo.Change change : info.getChanges()) {
             if ((change.getFlags() & TransitionInfo.FLAG_IS_WALLPAPER) != 0) {
                 continue;
@@ -234,18 +239,25 @@
         SurfaceControl.Transaction t = new SurfaceControl.Transaction();
         SurfaceControl sc = change.getLeash();
         finishT.hide(sc);
-        final DisplayMetrics displayMetrics =
-                mDisplayController
-                        .getDisplayContext(taskInfo.displayId).getResources().getDisplayMetrics();
+        final Context displayContext =
+                mDisplayController.getDisplayContext(taskInfo.displayId);
+        if (displayContext == null) {
+            Log.w(TAG, "No displayContext for displayId=" + taskInfo.displayId);
+            return false;
+        }
         final Animator animator = MinimizeAnimator.create(
-                displayMetrics,
+                displayContext,
                 change,
                 t,
                 (anim) -> {
-                    animations.remove(anim);
-                    onAnimFinish.run();
+                    mMainExecutor.execute(() -> {
+                        animations.remove(anim);
+                        onAnimFinish.run();
+                    });
                     return null;
-                });
+                },
+                InteractionJankMonitor.getInstance(),
+                mAnimHandler);
         animations.add(animator);
         return true;
     }
@@ -277,8 +289,10 @@
                 new AnimatorListenerAdapter() {
                     @Override
                     public void onAnimationEnd(Animator animation) {
-                        animations.remove(animator);
-                        onAnimFinish.run();
+                        mMainExecutor.execute(() -> {
+                            animations.remove(animator);
+                            onAnimFinish.run();
+                        });
                     }
                 });
         animations.add(animator);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelper.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelper.java
index c4d065f..e0cae81 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelper.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/PipSurfaceTransactionHelper.java
@@ -134,6 +134,18 @@
     }
 
     /**
+     * Operates the round corner radius on a given transaction and leash, scaled by bounds
+     * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
+     */
+    public PipSurfaceTransactionHelper round(SurfaceControl.Transaction tx, SurfaceControl leash,
+            Rect fromBounds, Rect toBounds) {
+        final float scale = (float) (Math.hypot(fromBounds.width(), fromBounds.height())
+                / Math.hypot(toBounds.width(), toBounds.height()));
+        tx.setCornerRadius(leash, mCornerRadius * scale);
+        return this;
+    }
+
+    /**
      * Operates the shadow radius on a given transaction and leash
      * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
      */
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/animation/PipResizeAnimator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/animation/PipResizeAnimator.java
index 06e8349..eb5fe88 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/animation/PipResizeAnimator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/animation/PipResizeAnimator.java
@@ -173,7 +173,7 @@
         transformTensor.postRotate(degrees, targetBounds.centerX(), targetBounds.centerY());
 
         tx.setMatrix(leash, transformTensor, mMatrixTmp)
-                .setCornerRadius(leash, cornerRadius)
+                .setCornerRadius(leash, cornerRadius / scaleX)
                 .setShadowRadius(leash, shadowRadius);
     }
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java
index 99c9302..1ce24f7 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java
@@ -404,6 +404,10 @@
 
         mPipBoundsState.setBoundsStateForEntry(componentName, activityInfo, pictureInPictureParams,
                 mPipBoundsAlgorithm);
+
+        // Update the size spec in case aspect ratio is invariant, but display has changed
+        // since the last PiP session, or this is the first PiP session altogether.
+        mPipBoundsState.updateMinMaxSize(mPipBoundsState.getAspectRatio());
         return mPipBoundsAlgorithm.getEntryDestinationBounds();
     }
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipScheduler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipScheduler.java
index df7a25a..7805ec3 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipScheduler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipScheduler.java
@@ -55,6 +55,7 @@
     private PipTransitionController mPipTransitionController;
     private PipSurfaceTransactionHelper.SurfaceControlTransactionFactory
             mSurfaceControlTransactionFactory;
+    private final PipSurfaceTransactionHelper mPipSurfaceTransactionHelper;
 
     @Nullable private Runnable mUpdateMovementBoundsRunnable;
 
@@ -75,6 +76,7 @@
 
         mSurfaceControlTransactionFactory =
                 new PipSurfaceTransactionHelper.VsyncSurfaceControlTransactionFactory();
+        mPipSurfaceTransactionHelper = new PipSurfaceTransactionHelper(mContext);
         mPipAlphaAnimatorSupplier = PipAlphaAnimator::new;
     }
 
@@ -214,6 +216,8 @@
         transformTensor.postTranslate(toBounds.left, toBounds.top);
         transformTensor.postRotate(degrees, toBounds.centerX(), toBounds.centerY());
 
+        mPipSurfaceTransactionHelper.round(tx, leash, mPipBoundsState.getBounds(), toBounds);
+
         tx.setMatrix(leash, transformTensor, mMatrixTmp);
         tx.apply();
     }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java
index 035c93d..0cfab11 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java
@@ -50,6 +50,7 @@
 import android.graphics.Rect;
 import android.os.Bundle;
 import android.os.IBinder;
+import android.os.SystemProperties;
 import android.view.SurfaceControl;
 import android.view.WindowManager;
 import android.window.TransitionInfo;
@@ -105,7 +106,10 @@
      * The fixed start delay in ms when fading out the content overlay from bounds animation.
      * The fadeout animation is guaranteed to start after the client has drawn under the new config.
      */
-    private static final int CONTENT_OVERLAY_FADE_OUT_DELAY_MS = 500;
+    private static final int EXTRA_CONTENT_OVERLAY_FADE_OUT_DELAY_MS =
+            SystemProperties.getInt(
+                    "persist.wm.debug.extra_content_overlay_fade_out_delay_ms", 400);
+    private static final int CONTENT_OVERLAY_FADE_OUT_DURATION_MS = 500;
 
     //
     // Dependencies
@@ -551,7 +555,8 @@
             @NonNull Runnable onAnimationEnd) {
         PipAlphaAnimator animator = new PipAlphaAnimator(mContext, overlayLeash,
                 null /* startTx */, null /* finishTx */, PipAlphaAnimator.FADE_OUT);
-        animator.setDuration(CONTENT_OVERLAY_FADE_OUT_DELAY_MS);
+        animator.setDuration(CONTENT_OVERLAY_FADE_OUT_DURATION_MS);
+        animator.setStartDelay(EXTRA_CONTENT_OVERLAY_FADE_OUT_DELAY_MS);
         animator.setAnimationEndCallback(onAnimationEnd);
         animator.start();
     }
@@ -738,6 +743,13 @@
             }
         }
 
+        if (!mPipTransitionState.isInSwipePipToHomeTransition()) {
+            // Update the size spec in case aspect ratio is invariant, but display has changed
+            // since the last PiP session, or this is the first PiP session altogether.
+            // Skip the update if in swipe PiP to home, as this has already been done.
+            mPipBoundsState.updateMinMaxSize(mPipBoundsState.getAspectRatio());
+        }
+
         // calculate the entry bounds and notify core to move task to pinned with final bounds
         final Rect entryBounds = mPipBoundsAlgorithm.getEntryDestinationBounds();
         mPipBoundsState.setBounds(entryBounds);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java
index 2fa0966..bb5b5ce 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java
@@ -44,6 +44,7 @@
 import android.os.RemoteException;
 import android.util.Slog;
 import android.util.SparseIntArray;
+import android.window.DesktopExperienceFlags;
 import android.window.DesktopModeFlags;
 import android.window.WindowContainerToken;
 
@@ -92,6 +93,11 @@
         TaskStackTransitionObserver.TaskStackTransitionObserverListener, UserChangeListener {
     private static final String TAG = RecentTasksController.class.getSimpleName();
 
+    // When the multiple desktops feature is disabled, all freeform tasks are lumped together into
+    // a single `GroupedTaskInfo` whose type is `TYPE_DESK`, and its `mDeskId` doesn't matter, so
+    // we pick the below arbitrary value.
+    private static final int INVALID_DESK_ID = -1;
+
     private final Context mContext;
     private final ShellController mShellController;
     private final ShellCommandHandler mShellCommandHandler;
@@ -128,6 +134,7 @@
 
     // Temporary vars used in `generateList()`
     private final Map<Integer, TaskInfo> mTmpRemaining = new HashMap<>();
+    private final Map<Integer, Desk> mTmpDesks = new HashMap<>();
 
     /**
      * Creates {@link RecentTasksController}, returns {@code null} if the feature is not
@@ -529,6 +536,78 @@
     }
 
     /**
+     * Represents a desk whose ID is `mDeskId` and contains the tasks in `mDeskTasks`. Some of these
+     * tasks are minimized and their IDs are contained in the `mMinimizedDeskTasks` set.
+     */
+    private static class Desk {
+        final int mDeskId;
+        boolean mHasVisibleTasks = false;
+        final ArrayList<TaskInfo> mDeskTasks = new ArrayList<>();
+        final Set<Integer> mMinimizedDeskTasks = new HashSet<>();
+
+        Desk(int deskId) {
+            mDeskId = deskId;
+        }
+
+        void addTask(TaskInfo taskInfo, boolean isMinimized, boolean isVisible) {
+            mDeskTasks.add(taskInfo);
+            if (isMinimized) {
+                mMinimizedDeskTasks.add(taskInfo.taskId);
+            }
+            mHasVisibleTasks |= isVisible;
+        }
+
+        boolean hasTasks() {
+            return !mDeskTasks.isEmpty();
+        }
+
+        GroupedTaskInfo createDeskTaskInfo() {
+            return GroupedTaskInfo.forDeskTasks(mDeskId, mDeskTasks, mMinimizedDeskTasks);
+        }
+    }
+
+    /**
+     * Clears the `mTmpDesks` map, and re-initializes it with the current state of desks from all
+     * displays, without adding any desk tasks. This is a preparation step so that tasks can be
+     * added to these desks in `generateList()`.
+     *
+     * This is needed since with the `ENABLE_MULTIPLE_DESKTOPS_BACKEND` flag, we want to include
+     * desk even if they're empty (i.e. have no tasks).
+     *
+     * @param multipleDesktopsEnabled whether the multiple desktops backend feature is enabled.
+     */
+    private void initializeDesksMap(boolean multipleDesktopsEnabled) {
+        mTmpDesks.clear();
+
+        if (DesktopModeStatus.canEnterDesktopMode(mContext)
+                && mDesktopUserRepositories.isPresent()) {
+            if (multipleDesktopsEnabled) {
+                for (var deskId : mDesktopUserRepositories.get().getCurrent().getAllDeskIds()) {
+                    getOrCreateDesk(deskId);
+                }
+            } else {
+                // When the multiple desks feature is disabled, we lump all freeform windows in a
+                // single `GroupedTaskInfo` regardless of their display. The `deskId` in this case
+                // doesn't matter and can be any arbitrary value.
+                getOrCreateDesk(/* deskId = */ INVALID_DESK_ID);
+            }
+        }
+    }
+
+    /**
+     * Returns the `Desk` whose ID is `deskId` from the `mTmpDesks` map if it exists, or it creates
+     * one and adds it to the map and then returns it.
+     */
+    private Desk getOrCreateDesk(int deskId) {
+        var desk = mTmpDesks.get(deskId);
+        if (desk == null) {
+            desk = new Desk(deskId);
+            mTmpDesks.put(deskId, desk);
+        }
+        return desk;
+    }
+
+    /**
      * Generates a list of GroupedTaskInfos for the given raw list of tasks (either recents or
      * running tasks).
      *
@@ -555,6 +634,14 @@
             ProtoLog.v(WM_SHELL_TASK_OBSERVER, "RecentTasksController.generateList(%s)", reason);
         }
 
+        final boolean multipleDesktopsEnabled =
+                DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue();
+        initializeDesksMap(multipleDesktopsEnabled);
+
+        // When the multiple desktops feature is enabled, we include all desks even if they're
+        // empty.
+        final boolean shouldIncludeEmptyDesktops = multipleDesktopsEnabled;
+
         // Make a mapping of task id -> task info for the remaining tasks to be processed, this
         // mapping is used to keep track of split tasks that may exist later in the task list that
         // should be ignored because they've already been grouped
@@ -566,11 +653,7 @@
         ArrayList<GroupedTaskInfo> groupedTasks = new ArrayList<>(tasks.size());
         ArrayList<GroupedTaskInfo> visibleGroupedTasks = new ArrayList<>();
 
-        // Phase 1: Extract the desktop and visible fullscreen/split tasks. We make new collections
-        // here as the GroupedTaskInfo can store them without copying
-        ArrayList<TaskInfo> desktopTasks = new ArrayList<>();
-        Set<Integer> minimizedDesktopTasks = new HashSet<>();
-        boolean desktopTasksVisible = false;
+        // Phase 1: Extract the desktops and visible fullscreen/split tasks.
         for (int i = 0; i < tasks.size(); i++) {
             final TaskInfo taskInfo = tasks.get(i);
             final int taskId = taskInfo.taskId;
@@ -600,11 +683,15 @@
                     taskInfo.positionInParent = new Point(taskInfo.lastNonFullscreenBounds.left,
                             taskInfo.lastNonFullscreenBounds.top);
                 }
-                desktopTasks.add(taskInfo);
-                if (mDesktopUserRepositories.get().getCurrent().isMinimizedTask(taskId)) {
-                    minimizedDesktopTasks.add(taskId);
-                }
-                desktopTasksVisible |= mVisibleTasksMap.containsKey(taskId);
+                // Lump all freeform tasks together as if they were all in a single desk whose ID is
+                // `INVALID_DESK_ID` when the multiple desktops feature is disabled.
+                final int deskId = multipleDesktopsEnabled
+                        ? mDesktopUserRepositories.get().getCurrent().getDeskIdForTask(taskId)
+                        : INVALID_DESK_ID;
+                final Desk desk = getOrCreateDesk(deskId);
+                desk.addTask(taskInfo,
+                        mDesktopUserRepositories.get().getCurrent().isMinimizedTask(taskId),
+                        mVisibleTasksMap.containsKey(taskId));
                 mTmpRemaining.remove(taskId);
                 continue;
             }
@@ -636,9 +723,10 @@
         if (enableShellTopTaskTracking()) {
             // Phase 2: If there were desktop tasks and they are visible, add them to the visible
             //          list as well (the actual order doesn't matter for Overview)
-            if (!desktopTasks.isEmpty() && desktopTasksVisible) {
-                visibleGroupedTasks.add(
-                        GroupedTaskInfo.forFreeformTasks(desktopTasks, minimizedDesktopTasks));
+            for (var desk : mTmpDesks.values()) {
+                if (desk.mHasVisibleTasks) {
+                    visibleGroupedTasks.add(desk.createDeskTaskInfo());
+                }
             }
 
             if (!visibleGroupedTasks.isEmpty()) {
@@ -674,16 +762,18 @@
             // Phase 5: If there were desktop tasks and they are not visible (ie. weren't added
             //          above), add them to the end of the final list (the actual order doesn't
             //          matter for Overview)
-            if (!desktopTasks.isEmpty() && !desktopTasksVisible) {
-                groupedTasks.add(
-                        GroupedTaskInfo.forFreeformTasks(desktopTasks, minimizedDesktopTasks));
+            for (var desk : mTmpDesks.values()) {
+                if (!desk.mHasVisibleTasks && (desk.hasTasks() || shouldIncludeEmptyDesktops)) {
+                    groupedTasks.add(desk.createDeskTaskInfo());
+                }
             }
             dumpGroupedTasks(groupedTasks, "Phase 5");
         } else {
             // Add the desktop tasks at the end of the list
-            if (!desktopTasks.isEmpty()) {
-                groupedTasks.add(
-                        GroupedTaskInfo.forFreeformTasks(desktopTasks, minimizedDesktopTasks));
+            for (var desk : mTmpDesks.values()) {
+                if (desk.hasTasks() || shouldIncludeEmptyDesktops) {
+                    groupedTasks.add(desk.createDeskTaskInfo());
+                }
             }
         }
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java
index 847a038..3e03e00 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java
@@ -47,6 +47,7 @@
 import android.app.ActivityTaskManager;
 import android.app.IApplicationThread;
 import android.app.PendingIntent;
+import android.app.WindowConfiguration;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Color;
@@ -75,11 +76,11 @@
 import com.android.internal.os.IResultReceiver;
 import com.android.internal.protolog.ProtoLog;
 import com.android.wm.shell.Flags;
-import com.android.wm.shell.R;
 import com.android.wm.shell.ShellTaskOrganizer;
 import com.android.wm.shell.common.ShellExecutor;
 import com.android.wm.shell.common.pip.PipUtils;
 import com.android.wm.shell.protolog.ShellProtoLogGroup;
+import com.android.wm.shell.shared.R;
 import com.android.wm.shell.shared.TransitionUtil;
 import com.android.wm.shell.sysui.ShellInit;
 import com.android.wm.shell.transition.HomeTransitionObserver;
@@ -320,7 +321,7 @@
                     "RecentsTransitionHandler.mergeAnimation: no controller found");
             return;
         }
-        controller.merge(info, startT, finishT, mergeTarget, finishCallback);
+        controller.merge(info, startT, finishT, finishCallback);
     }
 
     @Override
@@ -408,7 +409,8 @@
         // next called.
         private Pair<int[], TaskSnapshot[]> mPendingPauseSnapshotsForCancel;
 
-        // Used to track a pending finish transition
+        // Used to track a pending finish transition, this is only non-null if
+        // enableRecentsBookendTransition() is enabled
         private IBinder mPendingFinishTransition;
         private IResultReceiver mPendingRunnerFinishCb;
 
@@ -917,7 +919,7 @@
          */
         @SuppressLint("NewApi")
         void merge(TransitionInfo info, SurfaceControl.Transaction startT,
-                SurfaceControl.Transaction finishT, IBinder mergeTarget,
+                SurfaceControl.Transaction finishT,
                 Transitions.TransitionFinishCallback finishCallback) {
             if (mFinishCB == null) {
                 ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
@@ -927,16 +929,25 @@
                 return;
             }
 
-            if (Flags.enableRecentsBookendTransition()
-                    && info.getType() == TRANSIT_END_RECENTS_TRANSITION
-                    && mergeTarget == mTransition) {
-                // This is a pending finish, so merge the end transition to trigger completing the
-                // cleanup of the recents transition
-                ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
-                        "[%d] RecentsController.merge: TRANSIT_END_RECENTS_TRANSITION",
-                        mInstanceId);
-                finishCallback.onTransitionFinished(null /* wct */);
-                return;
+            if (Flags.enableRecentsBookendTransition()) {
+                if (info.getType() == TRANSIT_END_RECENTS_TRANSITION) {
+                    // This is a pending finish, so merge the end transition to trigger completing
+                    // the cleanup of the recents transition
+                    ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
+                            "[%d] RecentsController.merge: TRANSIT_END_RECENTS_TRANSITION",
+                            mInstanceId);
+                    consumeMerge(info, startT, finishT, finishCallback);
+                    return;
+                } else if (mPendingFinishTransition != null) {
+                    // This transition is interrupting a pending finish that was already sent, so
+                    // pre-empt the pending finish transition since the state has already changed
+                    // in the core
+                    ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
+                            "[%d] RecentsController.merge: Awaiting TRANSIT_END_RECENTS_TRANSITION",
+                            mInstanceId);
+                    onFinishInner(null /* wct */);
+                    return;
+                }
             }
 
             if (info.getType() == TRANSIT_SLEEP) {
@@ -1210,16 +1221,12 @@
                 }
                 return;
             }
+
             // At this point, we are accepting the merge.
-            startT.apply();
-            // Since we're accepting the merge, update the finish transaction so that changes via
-            // that transaction will be applied on top of those of the merged transitions
-            mFinishTransaction = finishT;
+            consumeMerge(info, startT, finishT, finishCallback);
+
+            // Notify Launcher of the new opening tasks if necessary
             boolean passTransitionInfo = ENABLE_DESKTOP_RECENTS_TRANSITIONS_CORNERS_BUGFIX.isTrue();
-            if (!passTransitionInfo) {
-                // not using the incoming anim-only surfaces
-                info.releaseAnimSurfaces();
-            }
             if (appearedTargets != null) {
                 try {
                     ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
@@ -1229,6 +1236,27 @@
                     Slog.e(TAG, "Error sending appeared tasks to recents animation", e);
                 }
             }
+        }
+
+        /**
+         * Consumes the merge of the other given transition.
+         */
+        private void consumeMerge(TransitionInfo info, SurfaceControl.Transaction startT,
+                SurfaceControl.Transaction finishT,
+                Transitions.TransitionFinishCallback finishCallback) {
+            ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
+                    "[%d] RecentsController.merge: consuming merge",
+                    mInstanceId);
+
+            startT.apply();
+            // Since we're accepting the merge, update the finish transaction so that changes via
+            // that transaction will be applied on top of those of the merged transitions
+            mFinishTransaction = finishT;
+            boolean passTransitionInfo = ENABLE_DESKTOP_RECENTS_TRANSITIONS_CORNERS_BUGFIX.isTrue();
+            if (!passTransitionInfo) {
+                // not using the incoming anim-only surfaces
+                info.releaseAnimSurfaces();
+            }
             finishCallback.onTransitionFinished(null /* wct */);
         }
 
@@ -1346,9 +1374,16 @@
             final SurfaceControl.Transaction t = mFinishTransaction;
             final WindowContainerTransaction wct = new WindowContainerTransaction();
 
+            // The following code must set this if it is changing anything in core that might affect
+            // transitions as a part of finishing the recents transition
+            boolean requiresBookendTransition = false;
+
             if (mKeyguardLocked && mRecentsTask != null) {
                 if (toHome) wct.reorder(mRecentsTask, true /* toTop */);
                 else wct.restoreTransientOrder(mRecentsTask);
+                // We are manipulating the window hierarchy, which should only be done with the
+                // bookend transition
+                requiresBookendTransition = true;
             }
             if (returningToApp) {
                 ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION, "  returning to app");
@@ -1365,6 +1400,9 @@
                 if (!mKeyguardLocked && mRecentsTask != null) {
                     wct.restoreTransientOrder(mRecentsTask);
                 }
+                // We are manipulating the window hierarchy, which should only be done with the
+                // bookend transition
+                requiresBookendTransition = true;
             } else if (toHome && mOpeningSeparateHome && mPausingTasks != null) {
                 ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION, "  3p launching home");
                 // Special situation where 3p launcher was changed during recents (this happens
@@ -1384,6 +1422,9 @@
                 if (!mKeyguardLocked && mRecentsTask != null) {
                     wct.restoreTransientOrder(mRecentsTask);
                 }
+                // We are manipulating the window hierarchy, which should only be done with the
+                // bookend transition
+                requiresBookendTransition = true;
             } else {
                 if (mPausingSeparateHome) {
                     if (mOpeningTasks.isEmpty()) {
@@ -1484,13 +1525,21 @@
 
             if (Flags.enableRecentsBookendTransition()) {
                 if (!wct.isEmpty()) {
-                    ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
-                            "[%d] RecentsController.finishInner: "
-                                    + "Queuing TRANSIT_END_RECENTS_TRANSITION", mInstanceId);
-                    mPendingRunnerFinishCb = runnerFinishCb;
-                    mPendingFinishTransition = mTransitions.startTransition(
-                            TRANSIT_END_RECENTS_TRANSITION, wct,
-                            new PendingFinishTransitionHandler());
+                    if (requiresBookendTransition) {
+                        ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
+                                "[%d] RecentsController.finishInner: "
+                                        + "Queuing TRANSIT_END_RECENTS_TRANSITION", mInstanceId);
+                        mPendingRunnerFinishCb = runnerFinishCb;
+                        mPendingFinishTransition = mTransitions.startTransition(
+                                TRANSIT_END_RECENTS_TRANSITION, wct,
+                                new PendingFinishTransitionHandler());
+                    } else {
+                        ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
+                                "[%d] RecentsController.finishInner: Non-transition affecting wct",
+                                mInstanceId);
+                        mPendingRunnerFinishCb = runnerFinishCb;
+                        onFinishInner(wct);
+                    }
                 } else {
                     // If there's no work to do, just go ahead and clean up
                     mPendingRunnerFinishCb = runnerFinishCb;
@@ -1631,6 +1680,9 @@
                     @NonNull SurfaceControl.Transaction startTransaction,
                     @NonNull SurfaceControl.Transaction finishTransaction,
                     @NonNull Transitions.TransitionFinishCallback finishCallback) {
+                ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
+                        "[%d] PendingFinishTransitionHandler.startAnimation: "
+                                + "Started pending finish transition", mInstanceId);
                 return false;
             }
 
@@ -1644,10 +1696,15 @@
             @Override
             public void onTransitionConsumed(@NonNull IBinder transition, boolean aborted,
                     @Nullable SurfaceControl.Transaction finishTransaction) {
+                if (mPendingFinishTransition == null) {
+                    // The cleanup was pre-empted by an earlier transition, nothing there is nothing
+                    // to do here
+                    return;
+                }
                 // Once we have merged (or not if the WCT didn't result in any changes), then we can
                 // run the pending finish logic
                 ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION,
-                        "[%d] RecentsController.onTransitionConsumed: "
+                        "[%d] PendingFinishTransitionHandler.onTransitionConsumed: "
                                 + "Consumed pending finish transition", mInstanceId);
                 onFinishInner(null /* wct */);
             }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java
index ba30d92..10b23fd 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java
@@ -54,6 +54,7 @@
 import android.graphics.Rect;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.util.ArrayMap;
@@ -580,10 +581,13 @@
      * @param wct transaction to apply if this is a valid request
      * @param splitPosition the split position this task should move to
      * @param taskBounds current freeform bounds of the task entering split
+     *
+     * @return the token of the transition that started as a result of entering split select.
      */
-    public void requestEnterSplitSelect(ActivityManager.RunningTaskInfo taskInfo,
+    @Nullable
+    public IBinder requestEnterSplitSelect(ActivityManager.RunningTaskInfo taskInfo,
             WindowContainerTransaction wct, int splitPosition, Rect taskBounds) {
-        mStageCoordinator.requestEnterSplitSelect(taskInfo, wct, splitPosition, taskBounds);
+        return mStageCoordinator.requestEnterSplitSelect(taskInfo, wct, splitPosition, taskBounds);
     }
 
     /**
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
index 77a7c54..0438d16 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
@@ -122,6 +122,7 @@
 import android.view.SurfaceControl;
 import android.view.WindowManager;
 import android.widget.Toast;
+import android.window.DesktopExperienceFlags;
 import android.window.DisplayAreaInfo;
 import android.window.RemoteTransition;
 import android.window.TransitionInfo;
@@ -219,6 +220,7 @@
     private final Context mContext;
     private final List<SplitScreen.SplitScreenListener> mListeners = new ArrayList<>();
     private final Set<SplitScreen.SplitSelectListener> mSelectListeners = new HashSet<>();
+    private final Transitions mTransitions;
     private final DisplayController mDisplayController;
     private final DisplayImeController mDisplayImeController;
     private final DisplayInsetsController mDisplayInsetsController;
@@ -419,6 +421,7 @@
                     iconProvider,
                     mWindowDecorViewModel, STAGE_TYPE_SIDE);
         }
+        mTransitions = transitions;
         mDisplayController = displayController;
         mDisplayImeController = displayImeController;
         mDisplayInsetsController = displayInsetsController;
@@ -455,6 +458,7 @@
         mTaskOrganizer = taskOrganizer;
         mMainStage = mainStage;
         mSideStage = sideStage;
+        mTransitions = transitions;
         mDisplayController = displayController;
         mDisplayImeController = displayImeController;
         mDisplayInsetsController = displayInsetsController;
@@ -660,16 +664,22 @@
         return mLogger;
     }
 
-    void requestEnterSplitSelect(ActivityManager.RunningTaskInfo taskInfo,
+    @Nullable
+    IBinder requestEnterSplitSelect(ActivityManager.RunningTaskInfo taskInfo,
             WindowContainerTransaction wct, int splitPosition, Rect taskBounds) {
         boolean enteredSplitSelect = false;
         for (SplitScreen.SplitSelectListener listener : mSelectListeners) {
             enteredSplitSelect |= listener.onRequestEnterSplitSelect(taskInfo, splitPosition,
                     taskBounds);
         }
-        if (enteredSplitSelect) {
-            mTaskOrganizer.applyTransaction(wct);
+        if (!enteredSplitSelect) {
+            return null;
         }
+        if (!DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue()) {
+            mTaskOrganizer.applyTransaction(wct);
+            return null;
+        }
+        return mTransitions.startTransition(TRANSIT_CHANGE, wct, /* handler= */ null);
     }
 
     void startShortcut(String packageName, String shortcutId, @SplitPosition int position,
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java
index 743bd05..347dcff 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java
@@ -40,7 +40,6 @@
 import android.window.WindowContainerTransaction;
 
 import com.android.internal.protolog.ProtoLog;
-import com.android.window.flags.Flags;
 import com.android.wm.shell.ShellTaskOrganizer;
 import com.android.wm.shell.activityembedding.ActivityEmbeddingController;
 import com.android.wm.shell.common.ComponentUtils;
@@ -439,9 +438,6 @@
         for (int i = 0; i < info.getRootCount(); ++i) {
             out.addRoot(info.getRoot(i));
         }
-        if (!Flags.moveAnimationOptionsToChange()) {
-            out.setAnimationOptions(info.getAnimationOptions());
-        }
         return out;
     }
 
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java
index 01428e6..3652a16 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java
@@ -67,7 +67,6 @@
 import static com.android.internal.policy.TransitionAnimation.WALLPAPER_TRANSITION_NONE;
 import static com.android.internal.policy.TransitionAnimation.WALLPAPER_TRANSITION_OPEN;
 import static com.android.wm.shell.transition.DefaultSurfaceAnimator.buildSurfaceAnimation;
-import static com.android.wm.shell.transition.TransitionAnimationHelper.edgeExtendWindow;
 import static com.android.wm.shell.transition.TransitionAnimationHelper.getTransitionBackgroundColorIfSet;
 import static com.android.wm.shell.transition.TransitionAnimationHelper.getTransitionTypeFromInfo;
 import static com.android.wm.shell.transition.TransitionAnimationHelper.isCoveredByOpaqueFullscreenChange;
@@ -539,25 +538,13 @@
                     cornerRadius = 0;
                 }
 
-                backgroundColorForTransition = getTransitionBackgroundColorIfSet(info, change, a,
+                backgroundColorForTransition = getTransitionBackgroundColorIfSet(change, a,
                         backgroundColorForTransition);
 
                 if (!isTask && a.getExtensionEdges() != 0x0) {
-                    if (com.android.graphics.libgui.flags.Flags.edgeExtensionShader()) {
-                        startTransaction.setEdgeExtensionEffect(
-                                change.getLeash(), a.getExtensionEdges());
-                        finishTransaction.setEdgeExtensionEffect(change.getLeash(), /* edge */ 0);
-                    } else {
-                        if (!TransitionUtil.isOpeningType(mode)) {
-                            // Can screenshot now (before startTransaction is applied)
-                            edgeExtendWindow(change, a, startTransaction, finishTransaction);
-                        } else {
-                            // Need to screenshot after startTransaction is applied otherwise
-                            // activity may not be visible or ready yet.
-                            postStartTransactionCallbacks
-                                    .add(t -> edgeExtendWindow(change, a, t, finishTransaction));
-                        }
-                    }
+                    startTransaction.setEdgeExtensionEffect(
+                            change.getLeash(), a.getExtensionEdges());
+                    finishTransaction.setEdgeExtensionEffect(change.getLeash(), /* edge */ 0);
                 }
 
                 final Rect clipRect = TransitionUtil.isClosingType(mode)
@@ -606,12 +593,7 @@
                         mTransactionPool, mMainExecutor, animRelOffset, cornerRadius,
                         clipRect);
 
-                final TransitionInfo.AnimationOptions options;
-                if (Flags.moveAnimationOptionsToChange()) {
-                    options = change.getAnimationOptions();
-                } else {
-                    options = info.getAnimationOptions();
-                }
+                final TransitionInfo.AnimationOptions options = change.getAnimationOptions();
                 if (options != null) {
                     attachThumbnail(animations, onAnimFinish, change, options, cornerRadius);
                 }
@@ -834,12 +816,7 @@
         final boolean isOpeningType = TransitionUtil.isOpeningType(type);
         final boolean enter = TransitionUtil.isOpeningType(changeMode);
         final boolean isTask = change.getTaskInfo() != null;
-        final TransitionInfo.AnimationOptions options;
-        if (Flags.moveAnimationOptionsToChange()) {
-            options = change.getAnimationOptions();
-        } else {
-            options = info.getAnimationOptions();
-        }
+        final TransitionInfo.AnimationOptions options = change.getAnimationOptions();
         final int overrideType = options != null ? options.getType() : ANIM_NONE;
         final int userId = options != null ? options.getUserId() : UserHandle.USER_CURRENT;
         final Rect endBounds = TransitionUtil.isClosingType(changeMode)
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/HomeTransitionObserver.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/HomeTransitionObserver.java
index 1917996..938885c 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/HomeTransitionObserver.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/HomeTransitionObserver.java
@@ -21,6 +21,7 @@
 import static android.window.TransitionInfo.FLAG_BACK_GESTURE_ANIMATED;
 
 import static com.android.wm.shell.desktopmode.DesktopModeTransitionTypes.TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP;
+import static com.android.wm.shell.transition.Transitions.TRANSIT_CONVERT_TO_BUBBLE;
 import static com.android.wm.shell.transition.Transitions.TransitionObserver;
 
 import android.annotation.NonNull;
@@ -35,6 +36,7 @@
 import com.android.wm.shell.common.SingleInstanceRemoteListener;
 import com.android.wm.shell.shared.IHomeTransitionListener;
 import com.android.wm.shell.shared.TransitionUtil;
+import com.android.wm.shell.shared.bubbles.BubbleAnythingFlagHelper;
 
 /**
  * The {@link TransitionObserver} that observes for transitions involving the home
@@ -48,6 +50,8 @@
 
     private @NonNull final Context mContext;
     private @NonNull final ShellExecutor mMainExecutor;
+    private Boolean mPendingHomeVisibilityUpdate;
+
     public HomeTransitionObserver(@NonNull Context context,
             @NonNull ShellExecutor mainExecutor) {
         mContext = context;
@@ -59,28 +63,78 @@
             @NonNull TransitionInfo info,
             @NonNull SurfaceControl.Transaction startTransaction,
             @NonNull SurfaceControl.Transaction finishTransaction) {
+        if (BubbleAnythingFlagHelper.enableBubbleToFullscreen()) {
+            handleTransitionReadyWithBubbleAnything(info);
+        } else {
+            handleTransitionReady(info);
+        }
+    }
+
+    private void handleTransitionReady(@NonNull TransitionInfo info) {
         for (TransitionInfo.Change change : info.getChanges()) {
             final ActivityManager.RunningTaskInfo taskInfo = change.getTaskInfo();
-            if (info.getType() == TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP
-                    || taskInfo == null
+            if (taskInfo == null
+                    || info.getType() == TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP
+                    || taskInfo.displayId != DEFAULT_DISPLAY
+                    || taskInfo.taskId == -1
+                    || !taskInfo.isRunning) {
+                continue;
+            }
+            Boolean homeVisibilityUpdate = getHomeVisibilityUpdate(info, change, taskInfo);
+            if (homeVisibilityUpdate != null) {
+                notifyHomeVisibilityChanged(homeVisibilityUpdate);
+            }
+        }
+    }
+
+    private void handleTransitionReadyWithBubbleAnything(@NonNull TransitionInfo info) {
+        Boolean homeVisibilityUpdate = null;
+        for (TransitionInfo.Change change : info.getChanges()) {
+            final ActivityManager.RunningTaskInfo taskInfo = change.getTaskInfo();
+            if (taskInfo == null
                     || taskInfo.displayId != DEFAULT_DISPLAY
                     || taskInfo.taskId == -1
                     || !taskInfo.isRunning) {
                 continue;
             }
 
-            final int mode = change.getMode();
-            final boolean isBackGesture = change.hasFlags(FLAG_BACK_GESTURE_ANIMATED);
-            if (taskInfo.getActivityType() == ACTIVITY_TYPE_HOME) {
-                final boolean gestureToHomeTransition = isBackGesture
-                        && TransitionUtil.isClosingType(info.getType());
-                if (gestureToHomeTransition || TransitionUtil.isClosingMode(mode)
-                        || (!isBackGesture && TransitionUtil.isOpeningMode(mode))) {
-                    notifyHomeVisibilityChanged(gestureToHomeTransition
-                            || TransitionUtil.isOpeningType(mode));
-                }
+            Boolean update = getHomeVisibilityUpdate(info, change, taskInfo);
+            if (update != null) {
+                homeVisibilityUpdate = update;
             }
         }
+
+        if (info.getType() == TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP) {
+            // Do not apply at the start of desktop drag as that updates launcher UI visibility.
+            // Store the value and apply with a next transition if needed.
+            mPendingHomeVisibilityUpdate = homeVisibilityUpdate;
+            return;
+        }
+
+        if (info.getType() == TRANSIT_CONVERT_TO_BUBBLE && homeVisibilityUpdate == null) {
+            // We are converting to bubble and we did not get a change to home visibility in this
+            // transition. Apply the value from start of drag.
+            homeVisibilityUpdate = mPendingHomeVisibilityUpdate;
+        }
+        if (homeVisibilityUpdate != null) {
+            mPendingHomeVisibilityUpdate = null;
+            notifyHomeVisibilityChanged(homeVisibilityUpdate);
+        }
+    }
+
+    private Boolean getHomeVisibilityUpdate(TransitionInfo info,
+            TransitionInfo.Change change, ActivityManager.RunningTaskInfo taskInfo) {
+        final int mode = change.getMode();
+        final boolean isBackGesture = change.hasFlags(FLAG_BACK_GESTURE_ANIMATED);
+        if (taskInfo.getActivityType() == ACTIVITY_TYPE_HOME) {
+            final boolean gestureToHomeTransition = isBackGesture
+                    && TransitionUtil.isClosingType(info.getType());
+            if (gestureToHomeTransition || TransitionUtil.isClosingMode(mode)
+                    || (!isBackGesture && TransitionUtil.isOpeningMode(mode))) {
+                return gestureToHomeTransition || TransitionUtil.isOpeningType(mode);
+            }
+        }
+        return null;
     }
 
     @Override
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/TransitionAnimationHelper.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/TransitionAnimationHelper.java
index 4feb475..edfb560 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/TransitionAnimationHelper.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/TransitionAnimationHelper.java
@@ -26,7 +26,6 @@
 import static android.view.WindowManager.TRANSIT_TO_FRONT;
 import static android.window.TransitionInfo.FLAGS_IS_NON_APP_WINDOW;
 import static android.window.TransitionInfo.FLAG_IS_DISPLAY;
-import static android.window.TransitionInfo.FLAG_STARTING_WINDOW_TRANSFER_RECIPIENT;
 import static android.window.TransitionInfo.FLAG_TRANSLUCENT;
 
 import static com.android.internal.policy.TransitionAnimation.WALLPAPER_TRANSITION_CLOSE;
@@ -39,26 +38,15 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.WindowConfiguration;
-import android.graphics.BitmapShader;
-import android.graphics.Canvas;
 import android.graphics.Color;
-import android.graphics.Insets;
-import android.graphics.Paint;
-import android.graphics.PixelFormat;
-import android.graphics.Rect;
-import android.graphics.Shader;
-import android.view.Surface;
 import android.view.SurfaceControl;
 import android.view.WindowManager;
 import android.view.animation.Animation;
-import android.view.animation.Transformation;
-import android.window.ScreenCapture;
 import android.window.TransitionInfo;
 
 import com.android.internal.R;
 import com.android.internal.policy.TransitionAnimation;
 import com.android.internal.protolog.ProtoLog;
-import com.android.window.flags.Flags;
 import com.android.wm.shell.protolog.ShellProtoLogGroup;
 import com.android.wm.shell.shared.TransitionUtil;
 
@@ -78,12 +66,7 @@
         final boolean isFreeform = isTask && change.getTaskInfo().isFreeform();
         final boolean isCoveredByOpaqueFullscreenChange =
                 isCoveredByOpaqueFullscreenChange(info, change);
-        final TransitionInfo.AnimationOptions options;
-        if (Flags.moveAnimationOptionsToChange()) {
-            options = change.getAnimationOptions();
-        } else {
-            options = info.getAnimationOptions();
-        }
+        final TransitionInfo.AnimationOptions options = change.getAnimationOptions();
         final int overrideType = options != null ? options.getType() : ANIM_NONE;
         int animAttr = 0;
         boolean translucent = false;
@@ -279,16 +262,10 @@
      *                      the given transition animation.
      */
     @ColorInt
-    public static int getTransitionBackgroundColorIfSet(@NonNull TransitionInfo info,
-            @NonNull TransitionInfo.Change change, @NonNull Animation a,
-            @ColorInt int defaultColor) {
+    public static int getTransitionBackgroundColorIfSet(@NonNull TransitionInfo.Change change,
+            @NonNull Animation a, @ColorInt int defaultColor) {
         if (!a.getShowBackdrop()) {
             return defaultColor;
-        }
-        if (!Flags.moveAnimationOptionsToChange() && info.getAnimationOptions() != null
-                && info.getAnimationOptions().getBackgroundColor() != 0) {
-            // If available use the background color provided through AnimationOptions
-            return info.getAnimationOptions().getBackgroundColor();
         } else if (a.getBackdropColor() != 0) {
             // Otherwise fallback on the background color provided through the animation
             // definition.
@@ -329,129 +306,6 @@
     }
 
     /**
-     * Adds edge extension surface to the given {@code change} for edge extension animation.
-     */
-    public static void edgeExtendWindow(@NonNull TransitionInfo.Change change,
-            @NonNull Animation a, @NonNull SurfaceControl.Transaction startTransaction,
-            @NonNull SurfaceControl.Transaction finishTransaction) {
-        // Do not create edge extension surface for transfer starting window change.
-        // The app surface could be empty thus nothing can draw on the hardware renderer, which will
-        // block this thread when calling Surface#unlockCanvasAndPost.
-        if ((change.getFlags() & FLAG_STARTING_WINDOW_TRANSFER_RECIPIENT) != 0) {
-            return;
-        }
-        final Transformation transformationAtStart = new Transformation();
-        a.getTransformationAt(0, transformationAtStart);
-        final Transformation transformationAtEnd = new Transformation();
-        a.getTransformationAt(1, transformationAtEnd);
-
-        // We want to create an extension surface that is the maximal size and the animation will
-        // take care of cropping any part that overflows.
-        final Insets maxExtensionInsets = Insets.min(
-                transformationAtStart.getInsets(), transformationAtEnd.getInsets());
-
-        final int targetSurfaceHeight = Math.max(change.getStartAbsBounds().height(),
-                change.getEndAbsBounds().height());
-        final int targetSurfaceWidth = Math.max(change.getStartAbsBounds().width(),
-                change.getEndAbsBounds().width());
-        if (maxExtensionInsets.left < 0) {
-            final Rect edgeBounds = new Rect(0, 0, 1, targetSurfaceHeight);
-            final Rect extensionRect = new Rect(0, 0,
-                    -maxExtensionInsets.left, targetSurfaceHeight);
-            final int xPos = maxExtensionInsets.left;
-            final int yPos = 0;
-            createExtensionSurface(change.getLeash(), edgeBounds, extensionRect, xPos, yPos,
-                    "Left Edge Extension", startTransaction, finishTransaction);
-        }
-
-        if (maxExtensionInsets.top < 0) {
-            final Rect edgeBounds = new Rect(0, 0, targetSurfaceWidth, 1);
-            final Rect extensionRect = new Rect(0, 0,
-                    targetSurfaceWidth, -maxExtensionInsets.top);
-            final int xPos = 0;
-            final int yPos = maxExtensionInsets.top;
-            createExtensionSurface(change.getLeash(), edgeBounds, extensionRect, xPos, yPos,
-                    "Top Edge Extension", startTransaction, finishTransaction);
-        }
-
-        if (maxExtensionInsets.right < 0) {
-            final Rect edgeBounds = new Rect(targetSurfaceWidth - 1, 0,
-                    targetSurfaceWidth, targetSurfaceHeight);
-            final Rect extensionRect = new Rect(0, 0,
-                    -maxExtensionInsets.right, targetSurfaceHeight);
-            final int xPos = targetSurfaceWidth;
-            final int yPos = 0;
-            createExtensionSurface(change.getLeash(), edgeBounds, extensionRect, xPos, yPos,
-                    "Right Edge Extension", startTransaction, finishTransaction);
-        }
-
-        if (maxExtensionInsets.bottom < 0) {
-            final Rect edgeBounds = new Rect(0, targetSurfaceHeight - 1,
-                    targetSurfaceWidth, targetSurfaceHeight);
-            final Rect extensionRect = new Rect(0, 0,
-                    targetSurfaceWidth, -maxExtensionInsets.bottom);
-            final int xPos = maxExtensionInsets.left;
-            final int yPos = targetSurfaceHeight;
-            createExtensionSurface(change.getLeash(), edgeBounds, extensionRect, xPos, yPos,
-                    "Bottom Edge Extension", startTransaction, finishTransaction);
-        }
-    }
-
-    /**
-     * Takes a screenshot of {@code surfaceToExtend}'s edge and extends it for edge extension
-     * animation.
-     */
-    private static SurfaceControl createExtensionSurface(@NonNull SurfaceControl surfaceToExtend,
-            @NonNull Rect edgeBounds, @NonNull Rect extensionRect, int xPos, int yPos,
-            @NonNull String layerName, @NonNull SurfaceControl.Transaction startTransaction,
-            @NonNull SurfaceControl.Transaction finishTransaction) {
-        final SurfaceControl edgeExtensionLayer = new SurfaceControl.Builder()
-                .setName(layerName)
-                .setParent(surfaceToExtend)
-                .setHidden(true)
-                .setCallsite("TransitionAnimationHelper#createExtensionSurface")
-                .setOpaque(true)
-                .setBufferSize(extensionRect.width(), extensionRect.height())
-                .build();
-
-        final ScreenCapture.LayerCaptureArgs captureArgs =
-                new ScreenCapture.LayerCaptureArgs.Builder(surfaceToExtend)
-                        .setSourceCrop(edgeBounds)
-                        .setFrameScale(1)
-                        .setPixelFormat(PixelFormat.RGBA_8888)
-                        .setChildrenOnly(true)
-                        .setAllowProtected(false)
-                        .setCaptureSecureLayers(true)
-                        .build();
-        final ScreenCapture.ScreenshotHardwareBuffer edgeBuffer =
-                ScreenCapture.captureLayers(captureArgs);
-
-        if (edgeBuffer == null) {
-            ProtoLog.e(ShellProtoLogGroup.WM_SHELL_TRANSITIONS,
-                    "Failed to capture edge of window.");
-            return null;
-        }
-
-        final BitmapShader shader = new BitmapShader(edgeBuffer.asBitmap(),
-                Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
-        final Paint paint = new Paint();
-        paint.setShader(shader);
-
-        final Surface surface = new Surface(edgeExtensionLayer);
-        final Canvas c = surface.lockHardwareCanvas();
-        c.drawRect(extensionRect, paint);
-        surface.unlockCanvasAndPost(c);
-        surface.release();
-
-        startTransaction.setLayer(edgeExtensionLayer, Integer.MIN_VALUE);
-        startTransaction.setPosition(edgeExtensionLayer, xPos, yPos);
-        startTransaction.setVisibility(edgeExtensionLayer, true);
-        finishTransaction.remove(edgeExtensionLayer);
-
-        return edgeExtensionLayer;
-    }
-
-    /**
      * Returns whether there is an opaque fullscreen Change positioned in front of the given Change
      * in the given TransitionInfo.
      */
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
index 5a6ea21..0d773ec 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
@@ -92,6 +92,7 @@
 import com.android.internal.jank.Cuj;
 import com.android.internal.jank.InteractionJankMonitor;
 import com.android.internal.protolog.ProtoLog;
+import com.android.internal.util.LatencyTracker;
 import com.android.window.flags.Flags;
 import com.android.wm.shell.R;
 import com.android.wm.shell.RootTaskDisplayAreaOrganizer;
@@ -103,6 +104,7 @@
 import com.android.wm.shell.common.DisplayController;
 import com.android.wm.shell.common.DisplayInsetsController;
 import com.android.wm.shell.common.DisplayLayout;
+import com.android.wm.shell.common.MultiDisplayDragMoveIndicatorController;
 import com.android.wm.shell.common.MultiInstanceHelper;
 import com.android.wm.shell.common.ShellExecutor;
 import com.android.wm.shell.common.SyncTransactionQueue;
@@ -157,6 +159,8 @@
 import kotlin.Unit;
 import kotlin.jvm.functions.Function1;
 
+import org.jetbrains.annotations.NotNull;
+
 import kotlinx.coroutines.CoroutineScope;
 import kotlinx.coroutines.ExperimentalCoroutinesApi;
 import kotlinx.coroutines.MainCoroutineDispatcher;
@@ -258,6 +262,8 @@
     private final RecentsTransitionHandler mRecentsTransitionHandler;
     private final DesktopModeCompatPolicy mDesktopModeCompatPolicy;
     private final DesktopTilingDecorViewModel mDesktopTilingDecorViewModel;
+    private final MultiDisplayDragMoveIndicatorController mMultiDisplayDragMoveIndicatorController;
+    private final LatencyTracker mLatencyTracker;
 
     public DesktopModeWindowDecorViewModel(
             Context context,
@@ -296,7 +302,8 @@
             WindowDecorTaskResourceLoader taskResourceLoader,
             RecentsTransitionHandler recentsTransitionHandler,
             DesktopModeCompatPolicy desktopModeCompatPolicy,
-            DesktopTilingDecorViewModel desktopTilingDecorViewModel) {
+            DesktopTilingDecorViewModel desktopTilingDecorViewModel,
+            MultiDisplayDragMoveIndicatorController multiDisplayDragMoveIndicatorController) {
         this(
                 context,
                 shellExecutor,
@@ -340,7 +347,8 @@
                 taskResourceLoader,
                 recentsTransitionHandler,
                 desktopModeCompatPolicy,
-                desktopTilingDecorViewModel);
+                desktopTilingDecorViewModel,
+                multiDisplayDragMoveIndicatorController);
     }
 
     @VisibleForTesting
@@ -387,7 +395,8 @@
             WindowDecorTaskResourceLoader taskResourceLoader,
             RecentsTransitionHandler recentsTransitionHandler,
             DesktopModeCompatPolicy desktopModeCompatPolicy,
-            DesktopTilingDecorViewModel desktopTilingDecorViewModel) {
+            DesktopTilingDecorViewModel desktopTilingDecorViewModel,
+            MultiDisplayDragMoveIndicatorController multiDisplayDragMoveIndicatorController) {
         mContext = context;
         mMainExecutor = shellExecutor;
         mMainHandler = mainHandler;
@@ -460,6 +469,8 @@
         mDesktopModeCompatPolicy = desktopModeCompatPolicy;
         mDesktopTilingDecorViewModel = desktopTilingDecorViewModel;
         mDesktopTasksController.setSnapEventHandler(this);
+        mMultiDisplayDragMoveIndicatorController = multiDisplayDragMoveIndicatorController;
+        mLatencyTracker = LatencyTracker.getInstance(mContext);
         shellInit.addInitCallback(this::onInit, this);
     }
 
@@ -758,11 +769,19 @@
         final WindowContainerTransaction wct = new WindowContainerTransaction();
         mInteractionJankMonitor.begin(decoration.mTaskSurface, mContext, mMainHandler,
                 CUJ_DESKTOP_MODE_ENTER_MODE_APP_HANDLE_MENU);
+        mLatencyTracker.onActionStart(LatencyTracker.ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_MENU);
         // App sometimes draws before the insets from WindowDecoration#relayout have
         // been added, so they must be added here
         decoration.addCaptionInset(wct);
-        mDesktopTasksController.moveTaskToDefaultDeskAndActivate(taskId, wct, source,
-                /* remoteTransition= */ null, /* moveToDesktopCallback */ null);
+        if (!mDesktopTasksController.moveTaskToDefaultDeskAndActivate(
+                taskId,
+                wct,
+                source,
+                /* remoteTransition= */ null,
+                /* moveToDesktopCallback= */ null)) {
+            mLatencyTracker.onActionCancel(
+                    LatencyTracker.ACTION_DESKTOP_MODE_ENTER_APP_HANDLE_MENU);
+        }
         decoration.closeHandleMenu();
 
         if (source == DesktopModeTransitionSource.APP_HANDLE_MENU_BUTTON) {
@@ -918,6 +937,18 @@
         return mDesktopTilingDecorViewModel.moveTaskToFrontIfTiled(taskInfo);
     }
 
+    @Override
+    @NotNull
+    public Rect getLeftSnapBoundsIfTiled(int displayId) {
+        return mDesktopTilingDecorViewModel.getLeftSnapBoundsIfTiled(displayId);
+    }
+
+    @Override
+    @NotNull
+    public Rect getRightSnapBoundsIfTiled(int displayId) {
+        return mDesktopTilingDecorViewModel.getRightSnapBoundsIfTiled(displayId);
+    }
+
     private class DesktopModeTouchEventListener extends GestureDetector.SimpleOnGestureListener
             implements View.OnClickListener, View.OnTouchListener, View.OnLongClickListener,
             View.OnGenericMotionListener, DragDetector.MotionEventHandler {
@@ -957,7 +988,7 @@
             final int touchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop();
             final long appHandleHoldToDragDuration =
                     DesktopModeFlags.ENABLE_HOLD_TO_DRAG_APP_HANDLE.isTrue()
-                    ? APP_HANDLE_HOLD_TO_DRAG_DURATION_MS : 0;
+                            ? APP_HANDLE_HOLD_TO_DRAG_DURATION_MS : 0;
             mHandleDragDetector = new DragDetector(this, appHandleHoldToDragDuration,
                     touchSlop);
             mHeaderDragDetector = new DragDetector(this, APP_HEADER_HOLD_TO_DRAG_DURATION_MS,
@@ -1010,7 +1041,7 @@
                         decoration.mTaskInfo.userId);
                 if (DesktopModeFlags.ENABLE_FULLY_IMMERSIVE_IN_DESKTOP.isTrue()
                         && desktopRepository.isTaskInFullImmersiveState(
-                                decoration.mTaskInfo.taskId)) {
+                        decoration.mTaskInfo.taskId)) {
                     // Task is in immersive and should exit.
                     onEnterOrExitImmersive(decoration.mTaskInfo);
                 } else {
@@ -1304,6 +1335,7 @@
         /**
          * Perform a task size toggle on release of the double-tap, assuming no drag event
          * was handled during the double-tap.
+         *
          * @param e The motion event that occurred during the double-tap gesture.
          * @return true if the event should be consumed, false if not
          */
@@ -1329,6 +1361,7 @@
     class EventReceiver extends InputEventReceiver {
         private InputMonitor mInputMonitor;
         private int mTasksOnDisplay;
+
         EventReceiver(InputMonitor inputMonitor, InputChannel channel, Looper looper) {
             super(channel, looper);
             mInputMonitor = inputMonitor;
@@ -1380,6 +1413,7 @@
     /**
      * Check if an EventReceiver exists on a particular display.
      * If it does, increment its task count. Otherwise, create one for that display.
+     *
      * @param displayId the display to check against
      */
     private void incrementEventReceiverTasks(int displayId) {
@@ -1759,7 +1793,8 @@
                 mTransitions,
                 mInteractionJankMonitor,
                 mTransactionFactory,
-                mMainHandler);
+                mMainHandler,
+                mMultiDisplayDragMoveIndicatorController);
         windowDecoration.setTaskDragResizer(taskPositioner);
 
         final DesktopModeTouchEventListener touchEventListener =
@@ -1884,7 +1919,7 @@
         @Override
         public void onAnimationStart(int taskId, Transaction t, Rect bounds) {
             final DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(taskId);
-            if (decoration == null)  {
+            if (decoration == null) {
                 t.apply();
                 return;
             }
@@ -1968,15 +2003,15 @@
             return activityTaskManager.getRecentTasks(Integer.MAX_VALUE,
                     ActivityManager.RECENT_WITH_EXCLUDED,
                     info.userId).getList().stream().filter(
-                            recentTaskInfo -> {
-                                if (recentTaskInfo.taskId == info.taskId) {
-                                    return false;
-                                }
-                                final String recentTaskPackageName =
-                                        ComponentUtils.getPackageName(recentTaskInfo);
-                                return packageName != null
-                                        && packageName.equals(recentTaskPackageName);
-                            }
+                    recentTaskInfo -> {
+                        if (recentTaskInfo.taskId == info.taskId) {
+                            return false;
+                        }
+                        final String recentTaskPackageName =
+                                ComponentUtils.getPackageName(recentTaskInfo);
+                        return packageName != null
+                                && packageName.equals(recentTaskPackageName);
+                    }
             ).toList().size();
         } catch (RemoteException e) {
             throw new RuntimeException(e);
@@ -2056,7 +2091,8 @@
                 Transitions transitions,
                 InteractionJankMonitor interactionJankMonitor,
                 Supplier<SurfaceControl.Transaction> transactionFactory,
-                Handler handler) {
+                Handler handler,
+                MultiDisplayDragMoveIndicatorController multiDisplayDragMoveIndicatorController) {
             final TaskPositioner taskPositioner = DesktopModeStatus.isVeiledResizeEnabled()
                     // TODO(b/383632995): Update when the flag is launched.
                     ? (Flags.enableConnectedDisplaysWindowDrag()
@@ -2067,7 +2103,8 @@
                             dragEventListener,
                             transitions,
                             interactionJankMonitor,
-                            handler)
+                            handler,
+                            multiDisplayDragMoveIndicatorController)
                         : new VeiledResizeTaskPositioner(
                             taskOrganizer,
                             windowDecoration,
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java
index dca376f..6165dbf 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java
@@ -1069,7 +1069,8 @@
     private static int getCornerRadius(@NonNull Context context, int layoutResId) {
         if (layoutResId == R.layout.desktop_mode_app_header) {
             return loadDimensionPixelSize(context.getResources(),
-                    R.dimen.desktop_windowing_freeform_rounded_corner_radius);
+                    com.android.wm.shell.shared.R.dimen
+                            .desktop_windowing_freeform_rounded_corner_radius);
         }
         return INVALID_CORNER_RADIUS;
     }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt
index ff50672..ad2e23c 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt
@@ -50,6 +50,7 @@
 import androidx.core.view.isGone
 import com.android.window.flags.Flags
 import com.android.wm.shell.R
+import com.android.wm.shell.bubbles.ContextUtils.isRtl
 import com.android.wm.shell.shared.annotations.ShellBackgroundThread
 import com.android.wm.shell.shared.annotations.ShellMainThread
 import com.android.wm.shell.shared.bubbles.BubbleAnythingFlagHelper
@@ -60,6 +61,8 @@
 import com.android.wm.shell.windowdecor.common.DecorThemeUtil
 import com.android.wm.shell.windowdecor.common.WindowDecorTaskResourceLoader
 import com.android.wm.shell.windowdecor.common.calculateMenuPosition
+import com.android.wm.shell.windowdecor.common.DrawableInsets
+import com.android.wm.shell.windowdecor.common.createRippleDrawable
 import com.android.wm.shell.windowdecor.extension.isFullscreen
 import com.android.wm.shell.windowdecor.extension.isMultiWindow
 import com.android.wm.shell.windowdecor.extension.isPinned
@@ -71,6 +74,7 @@
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
 
+
 /**
  * Handle menu opened when the appropriate button is clicked on.
  *
@@ -467,6 +471,33 @@
         val rootView = LayoutInflater.from(context)
             .inflate(R.layout.desktop_mode_window_decor_handle_menu, null /* root */) as View
 
+        private val windowingButtonRippleRadius = context.resources
+            .getDimensionPixelSize(R.dimen.desktop_mode_handle_menu_windowing_action_ripple_radius)
+        private val windowingButtonDrawableInsets = DrawableInsets(
+            vertical = context.resources
+                .getDimensionPixelSize(
+                    R.dimen.desktop_mode_handle_menu_windowing_action_ripple_inset_base),
+            horizontal = context.resources
+                .getDimensionPixelSize(
+                    R.dimen.desktop_mode_handle_menu_windowing_action_ripple_inset_base)
+        )
+        private val windowingButtonDrawableInsetsLeft = DrawableInsets(
+            vertical = context.resources
+                .getDimensionPixelSize(
+                    R.dimen.desktop_mode_handle_menu_windowing_action_ripple_inset_base),
+            horizontalLeft = context.resources
+                .getDimensionPixelSize(
+                    R.dimen.desktop_mode_handle_menu_windowing_action_ripple_inset_shift),
+        )
+        private val windowingButtonDrawableInsetsRight = DrawableInsets(
+            vertical = context.resources
+                .getDimensionPixelSize(
+                    R.dimen.desktop_mode_handle_menu_windowing_action_ripple_inset_base),
+            horizontalRight = context.resources
+                .getDimensionPixelSize(
+                    R.dimen.desktop_mode_handle_menu_windowing_action_ripple_inset_shift)
+        )
+
         // App Info Pill.
         private val appInfoPill = rootView.requireViewById<View>(R.id.app_info_pill)
         private val collapseMenuButton = appInfoPill.requireViewById<HandleMenuImageButton>(
@@ -708,6 +739,49 @@
             desktopBtn.isSelected = taskInfo.isFreeform
             desktopBtn.isEnabled = !taskInfo.isFreeform
             desktopBtn.imageTintList = style.windowingButtonColor
+
+            val startInsets = if (context.isRtl) {
+                windowingButtonDrawableInsetsRight
+            } else {
+                windowingButtonDrawableInsetsLeft
+            }
+            val endInsets = if (context.isRtl) {
+                windowingButtonDrawableInsetsLeft
+            } else {
+                windowingButtonDrawableInsetsRight
+            }
+
+            fullscreenBtn.apply {
+                background = createRippleDrawable(
+                    color = style.textColor,
+                    cornerRadius = windowingButtonRippleRadius,
+                    drawableInsets = startInsets
+                )
+            }
+
+            splitscreenBtn.apply {
+                background = createRippleDrawable(
+                    color = style.textColor,
+                    cornerRadius = windowingButtonRippleRadius,
+                    drawableInsets = windowingButtonDrawableInsets
+                )
+            }
+
+            floatingBtn.apply {
+                background = createRippleDrawable(
+                    color = style.textColor,
+                    cornerRadius = windowingButtonRippleRadius,
+                    drawableInsets = windowingButtonDrawableInsets
+                )
+            }
+
+            desktopBtn.apply {
+                background = createRippleDrawable(
+                    color = style.textColor,
+                    cornerRadius = windowingButtonRippleRadius,
+                    drawableInsets = endInsets
+                )
+            }
         }
 
         private fun bindMoreActionsPill(style: MenuStyle) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt
index 581d186..bdde096d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt
@@ -39,10 +39,7 @@
 private const val OPEN_MAXIMIZE_MENU_DELAY_ON_HOVER_MS = 350
 private const val MAX_DRAWABLE_ALPHA = 255
 
-class MaximizeButtonView(
-        context: Context,
-        attrs: AttributeSet
-) : FrameLayout(context, attrs) {
+class MaximizeButtonView(context: Context, attrs: AttributeSet) : FrameLayout(context, attrs) {
     lateinit var onHoverAnimationFinishedListener: () -> Unit
     private val hoverProgressAnimatorSet = AnimatorSet()
     var hoverDisabled = false
@@ -53,10 +50,6 @@
         (stubProgressBarContainer.inflate() as FrameLayout)
             .requireViewById(R.id.progress_bar)
     }
-    private val maximizeButtonText =
-        context.resources.getString(R.string.desktop_mode_maximize_menu_maximize_button_text)
-    private val restoreButtonText =
-        context.resources.getString(R.string.desktop_mode_maximize_menu_restore_button_text)
 
     init {
         LayoutInflater.from(context).inflate(R.layout.maximize_menu_button, this, true)
@@ -158,12 +151,6 @@
     /** Set the drawable resource to use for the maximize button. */
     fun setIcon(@DrawableRes icon: Int) {
         maximizeWindow.setImageResource(icon)
-        when (icon) {
-            R.drawable.decor_desktop_mode_immersive_or_maximize_exit_button_dark ->
-                maximizeWindow.contentDescription = restoreButtonText
-            R.drawable.decor_desktop_mode_maximize_button_dark ->
-                maximizeWindow.contentDescription = maximizeButtonText
-        }
     }
 
     companion object {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositioner.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositioner.kt
index bb20292..1b0e0f70 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositioner.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositioner.kt
@@ -17,6 +17,7 @@
 
 import android.graphics.PointF
 import android.graphics.Rect
+import android.hardware.display.DisplayTopology
 import android.os.Handler
 import android.os.IBinder
 import android.os.Looper
@@ -32,10 +33,10 @@
 import com.android.wm.shell.ShellTaskOrganizer
 import com.android.wm.shell.common.DisplayController
 import com.android.wm.shell.common.MultiDisplayDragMoveBoundsCalculator
+import com.android.wm.shell.common.MultiDisplayDragMoveIndicatorController
 import com.android.wm.shell.shared.annotations.ShellMainThread
 import com.android.wm.shell.transition.Transitions
 import java.util.concurrent.TimeUnit
-import java.util.function.Supplier
 
 /**
  * A task positioner that also takes into account resizing a
@@ -49,11 +50,12 @@
     private val desktopWindowDecoration: DesktopModeWindowDecoration,
     private val displayController: DisplayController,
     dragEventListener: DragPositioningCallbackUtility.DragEventListener,
-    private val transactionSupplier: Supplier<SurfaceControl.Transaction>,
+    private val transactionSupplier: () -> SurfaceControl.Transaction,
     private val transitions: Transitions,
     private val interactionJankMonitor: InteractionJankMonitor,
     @ShellMainThread private val handler: Handler,
-) : TaskPositioner, Transitions.TransitionHandler {
+    private val multiDisplayDragMoveIndicatorController: MultiDisplayDragMoveIndicatorController,
+) : TaskPositioner, Transitions.TransitionHandler, DisplayController.OnDisplaysChangedListener {
     private val dragEventListeners =
         mutableListOf<DragPositioningCallbackUtility.DragEventListener>()
     private val stableBounds = Rect()
@@ -71,6 +73,7 @@
     private var isResizingOrAnimatingResize = false
     @Surface.Rotation private var rotation = 0
     private var startDisplayId = 0
+    private val displayIds = mutableSetOf<Int>()
 
     constructor(
         taskOrganizer: ShellTaskOrganizer,
@@ -80,19 +83,22 @@
         transitions: Transitions,
         interactionJankMonitor: InteractionJankMonitor,
         @ShellMainThread handler: Handler,
+        multiDisplayDragMoveIndicatorController: MultiDisplayDragMoveIndicatorController,
     ) : this(
         taskOrganizer,
         windowDecoration,
         displayController,
         dragEventListener,
-        Supplier<SurfaceControl.Transaction> { SurfaceControl.Transaction() },
+        { SurfaceControl.Transaction() },
         transitions,
         interactionJankMonitor,
         handler,
+        multiDisplayDragMoveIndicatorController,
     )
 
     init {
         dragEventListeners.add(dragEventListener)
+        displayController.addDisplayWindowListener(this)
     }
 
     override fun onDragPositioningStart(ctrlType: Int, displayId: Int, x: Float, y: Float): Rect {
@@ -164,7 +170,7 @@
                 createLongTimeoutJankConfigBuilder(Cuj.CUJ_DESKTOP_MODE_DRAG_WINDOW)
             )
 
-            val t = transactionSupplier.get()
+            val t = transactionSupplier()
             val startDisplayLayout = displayController.getDisplayLayout(startDisplayId)
             val currentDisplayLayout = displayController.getDisplayLayout(displayId)
 
@@ -196,7 +202,13 @@
                     )
                 )
 
-                // TODO(b/383069173): Render drag indicator(s)
+                multiDisplayDragMoveIndicatorController.onDragMove(
+                    boundsDp,
+                    startDisplayId,
+                    desktopWindowDecoration.mTaskInfo,
+                    displayIds,
+                    transactionSupplier,
+                )
 
                 t.setPosition(
                     desktopWindowDecoration.leash,
@@ -267,7 +279,10 @@
                     )
                 )
 
-                // TODO(b/383069173): Clear drag indicator(s)
+                multiDisplayDragMoveIndicatorController.onDragEnd(
+                    desktopWindowDecoration.mTaskInfo.taskId,
+                    transactionSupplier,
+                )
             }
 
             interactionJankMonitor.end(Cuj.CUJ_DESKTOP_MODE_DRAG_WINDOW)
@@ -348,6 +363,15 @@
         dragEventListeners.remove(dragEventListener)
     }
 
+    override fun onTopologyChanged(topology: DisplayTopology?) {
+        // TODO: b/383069173 - Cancel window drag when topology changes happen during drag.
+
+        displayIds.clear()
+        if (topology == null) return
+        val displayBounds = topology.getAbsoluteBounds()
+        displayIds.addAll(List(displayBounds.size()) { displayBounds.keyAt(it) })
+    }
+
     companion object {
         // Timeout used for resize and drag CUJs, this is longer than the default timeout to avoid
         // timing out in the middle of a resize or drag action.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/ResizeVeil.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/ResizeVeil.kt
index 7af6b8e..5bd4228 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/ResizeVeil.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/ResizeVeil.kt
@@ -225,7 +225,7 @@
             val veilAnimT = surfaceControlTransactionSupplier.get()
             val iconAnimT = surfaceControlTransactionSupplier.get()
             veilAnimator = ValueAnimator.ofFloat(0f, 1f).apply {
-                duration = RESIZE_ALPHA_DURATION
+                duration = VEIL_ENTRY_ALPHA_ANIMATION_DURATION
                 addUpdateListener {
                     veilAnimT.setAlpha(background, animatedValue as Float)
                             .apply()
@@ -243,7 +243,8 @@
                 })
             }
             iconAnimator = ValueAnimator.ofFloat(0f, 1f).apply {
-                duration = RESIZE_ALPHA_DURATION
+                duration = ICON_ALPHA_ANIMATION_DURATION
+                startDelay = ICON_ENTRY_DELAY
                 addUpdateListener {
                     iconAnimT.setAlpha(icon, animatedValue as Float)
                             .apply()
@@ -387,23 +388,38 @@
         if (background == null || icon == null) return
 
         veilAnimator = ValueAnimator.ofFloat(1f, 0f).apply {
-            duration = RESIZE_ALPHA_DURATION
+            duration = VEIL_EXIT_ALPHA_ANIMATION_DURATION
+            startDelay = VEIL_EXIT_DELAY
             addUpdateListener {
                 surfaceControlTransactionSupplier.get()
                         .setAlpha(background, animatedValue as Float)
-                        .setAlpha(icon, animatedValue as Float)
                         .apply()
             }
             addListener(object : AnimatorListenerAdapter() {
                 override fun onAnimationEnd(animation: Animator) {
                     surfaceControlTransactionSupplier.get()
                             .hide(background)
-                            .hide(icon)
                             .apply()
                 }
             })
         }
+        iconAnimator = ValueAnimator.ofFloat(1f, 0f).apply {
+            duration = ICON_ALPHA_ANIMATION_DURATION
+            addUpdateListener {
+                surfaceControlTransactionSupplier.get()
+                    .setAlpha(icon, animatedValue as Float)
+                    .apply()
+            }
+            addListener(object : AnimatorListenerAdapter() {
+                override fun onAnimationEnd(animation: Animator) {
+                    surfaceControlTransactionSupplier.get()
+                        .hide(icon)
+                        .apply()
+                }
+            })
+        }
         veilAnimator?.start()
+        iconAnimator?.start()
         isVisible = false
     }
 
@@ -451,7 +467,11 @@
 
     companion object {
         private const val TAG = "ResizeVeil"
-        private const val RESIZE_ALPHA_DURATION = 100L
+        private const val ICON_ALPHA_ANIMATION_DURATION = 50L
+        private const val VEIL_ENTRY_ALPHA_ANIMATION_DURATION = 50L
+        private const val VEIL_EXIT_ALPHA_ANIMATION_DURATION = 200L
+        private const val ICON_ENTRY_DELAY = 33L
+        private const val VEIL_EXIT_DELAY = 33L
         private const val VEIL_CONTAINER_LAYER = TaskConstants.TASK_CHILD_LAYER_RESIZE_VEIL
 
         /** The background is a child of the veil container layer and goes at the bottom.  */
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/common/ButtonBackgroundDrawableUtils.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/common/ButtonBackgroundDrawableUtils.kt
new file mode 100644
index 0000000..e18239d
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/common/ButtonBackgroundDrawableUtils.kt
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2025 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.wm.shell.windowdecor.common
+
+import android.annotation.ColorInt
+import android.graphics.Color
+import android.graphics.drawable.LayerDrawable
+import android.graphics.drawable.RippleDrawable
+import android.graphics.drawable.ShapeDrawable
+import android.graphics.drawable.shapes.RoundRectShape
+import com.android.wm.shell.windowdecor.common.OPACITY_11
+import com.android.wm.shell.windowdecor.common.OPACITY_15
+import android.content.res.ColorStateList
+
+/**
+ * Represents drawable insets, specifying the number of pixels to inset a drawable from its bounds.
+ */
+data class DrawableInsets(val l: Int, val t: Int, val r: Int, val b: Int) {
+    constructor(vertical: Int = 0, horizontal: Int = 0) :
+            this(horizontal, vertical, horizontal, vertical)
+    constructor(vertical: Int = 0, horizontalLeft: Int = 0, horizontalRight: Int = 0) :
+            this(horizontalLeft, vertical, horizontalRight, vertical)
+}
+
+/**
+ * Replaces the alpha component of a color with the given alpha value.
+ */
+@ColorInt
+fun replaceColorAlpha(@ColorInt color: Int, alpha: Int): Int {
+    return Color.argb(
+        alpha,
+        Color.red(color),
+        Color.green(color),
+        Color.blue(color)
+    )
+}
+
+/**
+ * Creates a RippleDrawable with specified color, corner radius, and insets.
+ */
+fun createRippleDrawable(
+            @ColorInt color: Int,
+            cornerRadius: Int,
+            drawableInsets: DrawableInsets,
+): RippleDrawable {
+    return RippleDrawable(
+        ColorStateList(
+            arrayOf(
+                intArrayOf(android.R.attr.state_hovered),
+                intArrayOf(android.R.attr.state_pressed),
+                intArrayOf(),
+            ),
+            intArrayOf(
+                replaceColorAlpha(color, OPACITY_11),
+                replaceColorAlpha(color, OPACITY_15),
+                Color.TRANSPARENT,
+            )
+        ),
+        null /* content */,
+        LayerDrawable(arrayOf(
+            ShapeDrawable().apply {
+                shape = RoundRectShape(
+                    FloatArray(8) { cornerRadius.toFloat() },
+                    null /* inset */,
+                    null /* innerRadii */
+                )
+                paint.color = Color.WHITE
+            }
+        )).apply {
+            require(numberOfLayers == 1) { "Must only contain one layer" }
+            setLayerInset(0 /* index */,
+                drawableInsets.l, drawableInsets.t, drawableInsets.r, drawableInsets.b)
+        }
+    )
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModel.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModel.kt
index 8747f63..ee5d0e8 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModel.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModel.kt
@@ -25,6 +25,7 @@
 import android.window.WindowContainerTransaction
 import androidx.core.util.valueIterator
 import com.android.internal.annotations.VisibleForTesting
+import com.android.wm.shell.R
 import com.android.wm.shell.RootTaskDisplayAreaOrganizer
 import com.android.wm.shell.ShellTaskOrganizer
 import com.android.wm.shell.common.DisplayChangeController
@@ -148,4 +149,45 @@
         if ((fromRotation % 2 == toRotation % 2)) return
         tilingTransitionHandlerByDisplayId.get(displayId)?.resetTilingSession()
     }
+
+    fun getRightSnapBoundsIfTiled(displayId: Int): Rect {
+        val tilingBounds =
+            tilingTransitionHandlerByDisplayId.get(displayId)?.getRightSnapBoundsIfTiled()
+        if (tilingBounds != null) {
+            return tilingBounds
+        }
+        val displayLayout = displayController.getDisplayLayout(displayId)
+        val stableBounds = Rect()
+        displayLayout?.getStableBounds(stableBounds)
+        val snapBounds =
+            Rect(
+                stableBounds.left +
+                    stableBounds.width() / 2 +
+                    context.resources.getDimensionPixelSize(R.dimen.split_divider_bar_width) / 2,
+                stableBounds.top,
+                stableBounds.right,
+                stableBounds.bottom,
+            )
+        return snapBounds
+    }
+
+    fun getLeftSnapBoundsIfTiled(displayId: Int): Rect {
+        val tilingBounds =
+            tilingTransitionHandlerByDisplayId.get(displayId)?.getLeftSnapBoundsIfTiled()
+        if (tilingBounds != null) {
+            return tilingBounds
+        }
+        val displayLayout = displayController.getDisplayLayout(displayId)
+        val stableBounds = Rect()
+        displayLayout?.getStableBounds(stableBounds)
+        val snapBounds =
+            Rect(
+                stableBounds.left,
+                stableBounds.top,
+                stableBounds.left + stableBounds.width() / 2 -
+                    context.resources.getDimensionPixelSize(R.dimen.split_divider_bar_width) / 2,
+                stableBounds.bottom,
+            )
+        return snapBounds
+    }
 }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecoration.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecoration.kt
index 666d4bd..9833325 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecoration.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecoration.kt
@@ -36,7 +36,6 @@
 import com.android.internal.annotations.VisibleForTesting
 import com.android.launcher3.icons.BaseIconFactory
 import com.android.window.flags.Flags
-import com.android.wm.shell.shared.FocusTransitionListener
 import com.android.wm.shell.R
 import com.android.wm.shell.RootTaskDisplayAreaOrganizer
 import com.android.wm.shell.ShellTaskOrganizer
@@ -50,6 +49,7 @@
 import com.android.wm.shell.desktopmode.DesktopUserRepositories
 import com.android.wm.shell.desktopmode.ReturnToDragStartAnimator
 import com.android.wm.shell.desktopmode.ToggleResizeDesktopTaskTransitionHandler
+import com.android.wm.shell.shared.FocusTransitionListener
 import com.android.wm.shell.shared.annotations.ShellBackgroundThread
 import com.android.wm.shell.shared.annotations.ShellMainThread
 import com.android.wm.shell.transition.FocusTransitionObserver
@@ -112,7 +112,7 @@
         position: SnapPosition,
         currentBounds: Rect,
     ): Boolean {
-        val destinationBounds = getSnapBounds(taskInfo, position)
+        val destinationBounds = getSnapBounds(position)
         val resizeMetadata =
             AppResizingHelper(
                 taskInfo,
@@ -502,9 +502,11 @@
     }
 
     // Overriding FocusTransitionListener
-    override fun onFocusedTaskChanged(taskId: Int,
-            isFocusedOnDisplay: Boolean,
-            isFocusedGlobally: Boolean) {
+    override fun onFocusedTaskChanged(
+        taskId: Int,
+        isFocusedOnDisplay: Boolean,
+        isFocusedGlobally: Boolean,
+    ) {
         if (!Flags.enableDisplayFocusInShellTransitions()) return
         moveTiledPairToFront(taskId, isFocusedOnDisplay)
     }
@@ -512,7 +514,7 @@
     // Only called if [taskInfo] relates to a focused task
     private fun isTilingRefocused(taskId: Int): Boolean {
         return taskId == leftTaskResizingHelper?.taskInfo?.taskId ||
-                taskId == rightTaskResizingHelper?.taskInfo?.taskId
+            taskId == rightTaskResizingHelper?.taskInfo?.taskId
     }
 
     private fun buildTiledTasksMoveToFront(leftOnTop: Boolean): WindowContainerTransaction {
@@ -623,26 +625,24 @@
         val t = transactionSupplier.get()
         if (!Flags.enableDisplayFocusInShellTransitions()) isTilingFocused = true
         if (taskId == leftTaskResizingHelper?.taskInfo?.taskId) {
-          desktopTilingDividerWindowManager?.onRelativeLeashChanged(
-              leftTiledTask.getLeash(),
-              t,
-          )
+            desktopTilingDividerWindowManager?.onRelativeLeashChanged(leftTiledTask.getLeash(), t)
         }
         if (taskId == rightTaskResizingHelper?.taskInfo?.taskId) {
-          desktopTilingDividerWindowManager?.onRelativeLeashChanged(
-              rightTiledTask.getLeash(),
-              t,
-          )
+            desktopTilingDividerWindowManager?.onRelativeLeashChanged(rightTiledTask.getLeash(), t)
         }
-        transitions.startTransition(
-            TRANSIT_TO_FRONT,
-            buildTiledTasksMoveToFront(isLeftOnTop),
-            null,
-        )
+        transitions.startTransition(TRANSIT_TO_FRONT, buildTiledTasksMoveToFront(isLeftOnTop), null)
         t.apply()
         return true
     }
 
+    fun getRightSnapBoundsIfTiled(): Rect {
+        return getSnapBounds(SnapPosition.RIGHT)
+    }
+
+    fun getLeftSnapBoundsIfTiled(): Rect {
+        return getSnapBounds(SnapPosition.LEFT)
+    }
+
     private fun allTiledTasksVisible(): Boolean {
         val leftTiledTask = leftTaskResizingHelper ?: return false
         val rightTiledTask = rightTaskResizingHelper ?: return false
@@ -674,8 +674,8 @@
             )
     }
 
-    private fun getSnapBounds(taskInfo: RunningTaskInfo, position: SnapPosition): Rect {
-        val displayLayout = displayController.getDisplayLayout(taskInfo.displayId) ?: return Rect()
+    private fun getSnapBounds(position: SnapPosition): Rect {
+        val displayLayout = displayController.getDisplayLayout(displayId) ?: return Rect()
 
         val stableBounds = Rect()
         displayLayout.getStableBounds(stableBounds)
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/SnapEventHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/SnapEventHandler.kt
index 52e24d6..b9d6741 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/SnapEventHandler.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/SnapEventHandler.kt
@@ -40,4 +40,16 @@
 
     /** If a task is tiled, delegate moving to front to tiling infrastructure. */
     fun moveTaskToFrontIfTiled(taskInfo: RunningTaskInfo): Boolean
+
+    /**
+     * Returns the bounds of a task tiled on the left on the specified display, defaults to default
+     * snapping bounds if no task is tiled.
+     */
+    fun getLeftSnapBoundsIfTiled(displayId: Int): Rect
+
+    /**
+     * Returns the bounds of a task tiled on the right on the specified display, defaults to default
+     * snapping bounds if no task is tiled.
+     */
+    fun getRightSnapBoundsIfTiled(displayId: Int): Rect
 }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt
index 90c865e..eb8b617 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt
@@ -37,10 +37,13 @@
 import android.widget.ImageButton
 import android.widget.ImageView
 import android.widget.TextView
+import android.window.DesktopModeFlags
 import androidx.compose.material3.dynamicDarkColorScheme
 import androidx.compose.material3.dynamicLightColorScheme
 import androidx.compose.ui.graphics.toArgb
 import androidx.core.content.withStyledAttributes
+import androidx.core.view.ViewCompat
+import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat
 import androidx.core.view.isGone
 import androidx.core.view.isVisible
 import com.android.internal.R.color.materialColorOnSecondaryContainer
@@ -50,9 +53,6 @@
 import com.android.internal.R.color.materialColorSurfaceContainerLow
 import com.android.internal.R.color.materialColorSurfaceDim
 import com.android.wm.shell.R
-import android.window.DesktopModeFlags
-import androidx.core.view.ViewCompat
-import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat
 import com.android.wm.shell.windowdecor.MaximizeButtonView
 import com.android.wm.shell.windowdecor.common.DecorThemeUtil
 import com.android.wm.shell.windowdecor.common.OPACITY_100
@@ -61,6 +61,8 @@
 import com.android.wm.shell.windowdecor.common.OPACITY_55
 import com.android.wm.shell.windowdecor.common.OPACITY_65
 import com.android.wm.shell.windowdecor.common.Theme
+import com.android.wm.shell.windowdecor.common.DrawableInsets
+import com.android.wm.shell.windowdecor.common.createRippleDrawable
 import com.android.wm.shell.windowdecor.extension.isLightCaptionBarAppearance
 import com.android.wm.shell.windowdecor.extension.isTransparentCaptionBarAppearance
 
@@ -145,6 +147,15 @@
     val appNameTextWidth: Int
         get() = appNameTextView.width
 
+    private val a11yAnnounceTextMaximize: String =
+        context.getString(R.string.app_header_talkback_action_maximize_button_text)
+    private val a11yAnnounceTextRestore: String =
+        context.getString(R.string.app_header_talkback_action_restore_button_text)
+
+    private lateinit var sizeToggleDirection: SizeToggleDirection
+    private lateinit var a11yTextMaximize: String
+    private lateinit var a11yTextRestore: String
+
     init {
         captionView.setOnTouchListener(onCaptionTouchListener)
         captionHandle.setOnTouchListener(onCaptionTouchListener)
@@ -163,15 +174,15 @@
 
         val a11yActionSnapLeft = AccessibilityAction(
             R.id.action_snap_left,
-            context.resources.getString(R.string.desktop_mode_a11y_action_snap_left)
+            context.getString(R.string.desktop_mode_a11y_action_snap_left)
         )
         val a11yActionSnapRight = AccessibilityAction(
             R.id.action_snap_right,
-            context.resources.getString(R.string.desktop_mode_a11y_action_snap_right)
+            context.getString(R.string.desktop_mode_a11y_action_snap_right)
         )
         val a11yActionMaximizeRestore = AccessibilityAction(
             R.id.action_maximize_restore,
-            context.resources.getString(R.string.desktop_mode_a11y_action_maximize_restore)
+            context.getString(R.string.desktop_mode_a11y_action_maximize_restore)
         )
 
         captionHandle.accessibilityDelegate = object : View.AccessibilityDelegate() {
@@ -236,19 +247,19 @@
             null
         )
 
-        // Update a11y announcement to say "double tap to maximize or restore window size"
-        ViewCompat.replaceAccessibilityAction(
-            maximizeWindowButton,
-            AccessibilityActionCompat.ACTION_CLICK,
-            context.getString(R.string.maximize_button_talkback_action_maximize_restore_text),
-            null
-        )
-
-        // Update a11y announcement out to say "double tap to minimize app window"
+        // Update a11y announcement to say "double tap to minimize app window"
         ViewCompat.replaceAccessibilityAction(
             minimizeWindowButton,
             AccessibilityActionCompat.ACTION_CLICK,
-            context.getString(R.string.minimize_button_talkback_action_maximize_restore_text),
+            context.getString(R.string.app_header_talkback_action_minimize_button_text),
+            null
+        )
+
+        // Update a11y announcement to say "double tap to close app window"
+        ViewCompat.replaceAccessibilityAction(
+            closeWindowButton,
+            AccessibilityActionCompat.ACTION_CLICK,
+            context.getString(R.string.app_header_talkback_action_close_button_text),
             null
         )
     }
@@ -268,6 +279,26 @@
         appNameTextView.text = name
         openMenuButton.contentDescription =
             context.getString(R.string.desktop_mode_app_header_chip_text, name)
+
+        closeWindowButton.contentDescription = context.getString(R.string.close_button_text, name)
+        minimizeWindowButton.contentDescription =
+            context.getString(R.string.minimize_button_text, name)
+
+        a11yTextMaximize = context.getString(R.string.maximize_button_text, name)
+        a11yTextRestore = context.getString(R.string.restore_button_text, name)
+
+        updateMaximizeButtonContentDescription()
+    }
+
+    private fun updateMaximizeButtonContentDescription() {
+        if (this::a11yTextRestore.isInitialized &&
+            this::a11yTextMaximize.isInitialized &&
+            this::sizeToggleDirection.isInitialized) {
+            maximizeWindowButton.contentDescription = when (sizeToggleDirection) {
+                SizeToggleDirection.MAXIMIZE -> a11yTextMaximize
+                SizeToggleDirection.RESTORE -> a11yTextRestore
+            }
+        }
     }
 
     /** Sets the app's icon in the header. */
@@ -388,7 +419,34 @@
                     drawableInsets = maximizeDrawableInsets
                 )
             )
-            setIcon(getMaximizeButtonIcon(isTaskMaximized, inFullImmersiveState))
+            val icon = getMaximizeButtonIcon(isTaskMaximized, inFullImmersiveState)
+            setIcon(icon)
+
+            when (icon) {
+                R.drawable.decor_desktop_mode_immersive_or_maximize_exit_button_dark -> {
+                    sizeToggleDirection = SizeToggleDirection.RESTORE
+
+                    // Update a11y announcement to say "double tap to maximize app window size"
+                    ViewCompat.replaceAccessibilityAction(
+                        maximizeWindowButton,
+                        AccessibilityActionCompat.ACTION_CLICK,
+                        a11yAnnounceTextRestore,
+                        null
+                    )
+                }
+                R.drawable.decor_desktop_mode_maximize_button_dark -> {
+                    sizeToggleDirection = SizeToggleDirection.MAXIMIZE
+
+                    // Update a11y announcement to say "double tap to restore app window size"
+                    ViewCompat.replaceAccessibilityAction(
+                        maximizeWindowButton,
+                        AccessibilityActionCompat.ACTION_CLICK,
+                        a11yAnnounceTextMaximize,
+                        null
+                    )
+                }
+            }
+            updateMaximizeButtonContentDescription()
         }
         // Close button.
         closeWindowButton.apply {
@@ -579,55 +637,8 @@
         )
     }
 
-    @ColorInt
-    private fun replaceColorAlpha(@ColorInt color: Int, alpha: Int): Int {
-        return Color.argb(
-            alpha,
-            Color.red(color),
-            Color.green(color),
-            Color.blue(color)
-        )
-    }
-
-    private fun createRippleDrawable(
-        @ColorInt color: Int,
-        cornerRadius: Int,
-        drawableInsets: DrawableInsets,
-    ): RippleDrawable {
-        return RippleDrawable(
-            ColorStateList(
-                arrayOf(
-                    intArrayOf(android.R.attr.state_hovered),
-                    intArrayOf(android.R.attr.state_pressed),
-                    intArrayOf(),
-                ),
-                intArrayOf(
-                    replaceColorAlpha(color, OPACITY_11),
-                    replaceColorAlpha(color, OPACITY_15),
-                    Color.TRANSPARENT
-                )
-            ),
-            null /* content */,
-            LayerDrawable(arrayOf(
-                ShapeDrawable().apply {
-                    shape = RoundRectShape(
-                        FloatArray(8) { cornerRadius.toFloat() },
-                        null /* inset */,
-                        null /* innerRadii */
-                    )
-                    paint.color = Color.WHITE
-                }
-            )).apply {
-                require(numberOfLayers == 1) { "Must only contain one layer" }
-                setLayerInset(0 /* index */,
-                    drawableInsets.l, drawableInsets.t, drawableInsets.r, drawableInsets.b)
-            }
-        )
-    }
-
-    private data class DrawableInsets(val l: Int, val t: Int, val r: Int, val b: Int) {
-        constructor(vertical: Int = 0, horizontal: Int = 0) :
-                this(horizontal, vertical, horizontal, vertical)
+    private enum class SizeToggleDirection {
+        MAXIMIZE, RESTORE
     }
 
     private data class Header(
diff --git a/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/functional/AltTabSwitchInDesktopModeTest.kt b/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/functional/AltTabSwitchInDesktopModeTest.kt
new file mode 100644
index 0000000..617b3c5
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/functional/AltTabSwitchInDesktopModeTest.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2025 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.wm.shell.functional
+
+import com.android.wm.shell.scenarios.AltTabSwitchInDesktopMode
+import org.junit.Ignore
+import org.junit.runner.RunWith
+import org.junit.runners.BlockJUnit4ClassRunner
+
+/* Functional test for [AltTabSwitchInDesktopMode]. */
+@RunWith(BlockJUnit4ClassRunner::class)
+@Ignore("Blocked by b/392820286, include in Postsubmit, when the issue is resolved")
+class AltTabSwitchInDesktopModeTest : AltTabSwitchInDesktopMode()
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/AltTabSwitchInDesktopMode.kt b/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/AltTabSwitchInDesktopMode.kt
new file mode 100644
index 0000000..cf6d5a8
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/AltTabSwitchInDesktopMode.kt
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2025 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.wm.shell.scenarios
+
+import android.app.Instrumentation
+import android.tools.flicker.rules.ChangeDisplayOrientationRule
+import android.tools.NavBar
+import android.tools.Rotation
+import android.tools.traces.parsers.WindowManagerStateHelper
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.UiDevice
+import com.android.launcher3.tapl.LauncherInstrumentation
+import com.android.server.wm.flicker.helpers.DesktopModeAppHelper
+import com.android.server.wm.flicker.helpers.MailAppHelper
+import com.android.server.wm.flicker.helpers.NewTasksAppHelper
+import com.android.server.wm.flicker.helpers.SimpleAppHelper
+import com.android.window.flags.Flags
+import com.android.wm.shell.Utils
+import org.junit.After
+import org.junit.Assume
+import org.junit.Before
+import org.junit.Ignore
+import org.junit.Rule
+import org.junit.Test
+
+@Ignore("Test Base Class")
+abstract class AltTabSwitchInDesktopMode(val rotation: Rotation = Rotation.ROTATION_0) {
+
+    private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
+    private val tapl = LauncherInstrumentation()
+    private val wmHelper = WindowManagerStateHelper(instrumentation)
+    private val device = UiDevice.getInstance(instrumentation)
+    private val firstApp = DesktopModeAppHelper(SimpleAppHelper(instrumentation))
+    private val secondApp = MailAppHelper(instrumentation)
+    private val thirdApp = NewTasksAppHelper(instrumentation)
+
+    @Rule
+    @JvmField val testSetupRule = Utils.testSetupRule(NavBar.MODE_GESTURAL, rotation)
+
+    @Before
+    fun setup() {
+        Assume.assumeTrue(Flags.enableDesktopWindowingMode() && tapl.isTablet)
+        tapl.setEnableRotation(true)
+        tapl.setExpectedRotation(rotation.value)
+        tapl.enableTransientTaskbar(false)
+        ChangeDisplayOrientationRule.setRotation(rotation)
+        firstApp.enterDesktopMode(wmHelper, device)
+        secondApp.launchViaIntent(wmHelper)
+        thirdApp.launchViaIntent(wmHelper)
+    }
+
+    @Test
+    open fun switchApp() {
+        tapl.launchedAppState
+            .showQuickSwitchView()
+            .moveFocusForward()
+            .launchFocusedAppTask(firstApp.packageName)
+    }
+
+    @After
+    fun teardown() {
+        thirdApp.exit(wmHelper)
+        secondApp.exit(wmHelper)
+        firstApp.exit(wmHelper)
+    }
+}
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/ExitDesktopWithDragToTopDragZone.kt b/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/ExitDesktopWithDragToTopDragZone.kt
index 2800839..d82c066 100644
--- a/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/ExitDesktopWithDragToTopDragZone.kt
+++ b/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/ExitDesktopWithDragToTopDragZone.kt
@@ -18,9 +18,9 @@
 
 import android.tools.NavBar
 import android.tools.Rotation
-import com.android.internal.R
 import com.android.window.flags.Flags
 import com.android.wm.shell.Utils
+import com.android.wm.shell.shared.desktopmode.DesktopModeStatus
 import org.junit.After
 import org.junit.Assume
 import org.junit.Before
@@ -42,8 +42,8 @@
     fun setup() {
         Assume.assumeTrue(Flags.enableDesktopWindowingMode() && tapl.isTablet)
         // Skip the test when the drag-to-maximize is enabled on this device.
-        Assume.assumeFalse(Flags.enableDragToMaximize() &&
-            instrumentation.context.resources.getBoolean(R.bool.config_dragToMaximizeInDesktopMode))
+        Assume.assumeFalse(
+            DesktopModeStatus.shouldMaximizeWhenDragToTopEdge(instrumentation.context))
         tapl.setEnableRotation(true)
         tapl.setExpectedRotation(rotation.value)
         testApp.enterDesktopMode(wmHelper, device)
diff --git a/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/MaximizeAppWindowWithDragToTopDragZone.kt b/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/MaximizeAppWindowWithDragToTopDragZone.kt
index 60a0fb5..675b63c 100644
--- a/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/MaximizeAppWindowWithDragToTopDragZone.kt
+++ b/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/MaximizeAppWindowWithDragToTopDragZone.kt
@@ -23,12 +23,12 @@
 import android.tools.traces.parsers.WindowManagerStateHelper
 import androidx.test.platform.app.InstrumentationRegistry
 import androidx.test.uiautomator.UiDevice
-import com.android.internal.R
 import com.android.launcher3.tapl.LauncherInstrumentation
 import com.android.server.wm.flicker.helpers.DesktopModeAppHelper
 import com.android.server.wm.flicker.helpers.SimpleAppHelper
 import com.android.window.flags.Flags
 import com.android.wm.shell.Utils
+import com.android.wm.shell.shared.desktopmode.DesktopModeStatus
 import org.junit.After
 import org.junit.Assume
 import org.junit.Before
@@ -54,8 +54,8 @@
     fun setup() {
         Assume.assumeTrue(Flags.enableDesktopWindowingMode() && tapl.isTablet)
         // Skip the test when the drag-to-maximize is disabled on this device.
-        Assume.assumeTrue(Flags.enableDragToMaximize() &&
-            instrumentation.context.resources.getBoolean(R.bool.config_dragToMaximizeInDesktopMode))
+        Assume.assumeTrue(
+            DesktopModeStatus.shouldMaximizeWhenDragToTopEdge(instrumentation.context))
         tapl.setEnableRotation(true)
         tapl.setExpectedRotation(rotation.value)
         ChangeDisplayOrientationRule.setRotation(rotation)
diff --git a/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/OpenAppWithExternalDisplayConnected.kt b/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/OpenAppWithExternalDisplayConnected.kt
index 81c46f1..b9a5e4a9 100644
--- a/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/OpenAppWithExternalDisplayConnected.kt
+++ b/libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/OpenAppWithExternalDisplayConnected.kt
@@ -25,6 +25,7 @@
 import android.tools.flicker.rules.ChangeDisplayOrientationRule
 import android.tools.traces.parsers.WindowManagerStateHelper
 import android.util.DisplayMetrics
+import android.window.DesktopExperienceFlags
 import androidx.test.platform.app.InstrumentationRegistry
 import androidx.test.uiautomator.UiDevice
 import com.android.launcher3.tapl.LauncherInstrumentation
@@ -64,7 +65,7 @@
     @Before
     fun setup() {
         Assume.assumeTrue(Flags.enableDesktopWindowingMode() && tapl.isTablet)
-        Assume.assumeTrue(Flags.enableDisplayWindowingModeSwitching())
+        Assume.assumeTrue(DesktopExperienceFlags.ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING.isTrue)
         tapl.setEnableRotation(true)
         tapl.setExpectedRotation(rotation.value)
         ChangeDisplayOrientationRule.setRotation(rotation)
diff --git a/libs/WindowManager/Shell/tests/e2e/splitscreen/flicker-legacy/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt b/libs/WindowManager/Shell/tests/e2e/splitscreen/flicker-legacy/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt
index 7f48499..e39fa3a 100644
--- a/libs/WindowManager/Shell/tests/e2e/splitscreen/flicker-legacy/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt
+++ b/libs/WindowManager/Shell/tests/e2e/splitscreen/flicker-legacy/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt
@@ -22,7 +22,6 @@
 import android.tools.flicker.legacy.LegacyFlickerTest
 import android.tools.flicker.legacy.LegacyFlickerTestFactory
 import android.tools.traces.component.ComponentNameMatcher
-import android.tools.traces.component.EdgeExtensionComponentMatcher
 import androidx.test.filters.FlakyTest
 import androidx.test.filters.RequiresDevice
 import com.android.wm.shell.flicker.splitscreen.benchmark.CopyContentInSplitBenchmark
@@ -99,7 +98,6 @@
                         ComponentNameMatcher.SPLASH_SCREEN,
                         ComponentNameMatcher.SNAPSHOT,
                         ComponentNameMatcher.IME_SNAPSHOT,
-                        EdgeExtensionComponentMatcher(),
                         magnifierLayer,
                         popupWindowLayer
                     )
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java
index 94dc774..bc965b9 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunnerTests.java
@@ -39,15 +39,12 @@
 import android.annotation.NonNull;
 import android.graphics.Point;
 import android.graphics.Rect;
-import android.platform.test.annotations.DisableFlags;
-import android.platform.test.annotations.EnableFlags;
 import android.view.animation.AlphaAnimation;
 import android.view.animation.Animation;
 import android.window.TransitionInfo;
 
 import androidx.test.filters.SmallTest;
 
-import com.android.window.flags.Flags;
 import com.android.wm.shell.transition.TransitionInfoBuilder;
 
 import com.google.testing.junit.testparameterinjector.TestParameter;
@@ -77,7 +74,6 @@
         doNothing().when(mController).onAnimationFinished(any());
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testStartAnimation() {
         final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0)
@@ -103,7 +99,6 @@
         verify(mController).onAnimationFinished(mTransition);
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testChangesBehindStartingWindow() {
         final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0)
@@ -118,7 +113,6 @@
         assertEquals(0, animator.getDuration());
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testTransitionTypeDragResize() {
         final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_TASK_FRAGMENT_DRAG_RESIZE, 0)
@@ -133,33 +127,14 @@
         assertEquals(0, animator.getDuration());
     }
 
-    @DisableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
-    @Test
-    public void testInvalidCustomAnimation_disableAnimationOptionsPerChange() {
-        final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0)
-                .addChange(createChange(FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY, TRANSIT_OPEN))
-                .build();
-        info.setAnimationOptions(TransitionInfo.AnimationOptions
-                .makeCustomAnimOptions("packageName", 0 /* enterResId */, 0 /* exitResId */,
-                        0 /* backgroundColor */, false /* overrideTaskTransition */));
-        final Animator animator = mAnimRunner.createAnimator(
-                info, mStartTransaction, mFinishTransaction,
-                () -> mFinishCallback.onTransitionFinished(null /* wct */),
-                new ArrayList<>());
-
-        // An invalid custom animation is equivalent to jump-cut.
-        assertEquals(0, animator.getDuration());
-    }
-
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testInvalidCustomAnimation_enableAnimationOptionsPerChange() {
         final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0)
                 .addChange(createChange(FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY, TRANSIT_OPEN))
                 .build();
         info.getChanges().getFirst().setAnimationOptions(TransitionInfo.AnimationOptions
-                .makeCustomAnimOptions("packageName", 0 /* enterResId */, 0 /* exitResId */,
-                        0 /* backgroundColor */, false /* overrideTaskTransition */));
+                .makeCustomAnimOptions("packageName", 0 /* enterResId */, 0 /* changeResId */,
+                        0 /* exitResId */, false /* overrideTaskTransition */));
         final Animator animator = mAnimRunner.createAnimator(
                 info, mStartTransaction, mFinishTransaction,
                 () -> mFinishCallback.onTransitionFinished(null /* wct */),
@@ -169,42 +144,9 @@
         assertEquals(0, animator.getDuration());
     }
 
-    @DisableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG)
-    @Test
-    public void testCalculateParentBounds_flagDisabled() {
-        final Rect parentBounds = new Rect(0, 0, 2000, 2000);
-        final Rect primaryBounds = new Rect();
-        final Rect secondaryBounds = new Rect();
-        parentBounds.splitVertically(primaryBounds, secondaryBounds);
-
-        final TransitionInfo.Change change = createChange(0 /* flags */);
-        change.setStartAbsBounds(secondaryBounds);
-
-        final TransitionInfo.Change boundsAnimationChange = createChange(0 /* flags */);
-        boundsAnimationChange.setStartAbsBounds(primaryBounds);
-        boundsAnimationChange.setEndAbsBounds(primaryBounds);
-        final Rect actualParentBounds = new Rect();
-
-        calculateParentBounds(change, boundsAnimationChange, actualParentBounds);
-
-        assertEquals(parentBounds, actualParentBounds);
-
-        actualParentBounds.setEmpty();
-
-        boundsAnimationChange.setStartAbsBounds(secondaryBounds);
-        boundsAnimationChange.setEndAbsBounds(primaryBounds);
-
-        calculateParentBounds(boundsAnimationChange, boundsAnimationChange, actualParentBounds);
-
-        assertEquals(parentBounds, actualParentBounds);
-    }
-
-    // TODO(b/243518738): Rewrite with TestParameter
-    @EnableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG)
     @Test
     public void testCalculateParentBounds_flagEnabled_emptyParentSize() {
         TransitionInfo.Change change;
-        final TransitionInfo.Change stubChange = createChange(0 /* flags */);
         final Rect actualParentBounds = new Rect();
         change = prepareChangeForParentBoundsCalculationTest(
                 new Point(0, 0) /* endRelOffset */,
@@ -212,17 +154,15 @@
                 new Point() /* endParentSize */
         );
 
-        calculateParentBounds(change, stubChange, actualParentBounds);
+        calculateParentBounds(change, actualParentBounds);
 
         assertTrue("Parent bounds must be empty because end parent size is not set.",
                 actualParentBounds.isEmpty());
     }
 
-    @EnableFlags(Flags.FLAG_ACTIVITY_EMBEDDING_OVERLAY_PRESENTATION_FLAG)
     @Test
     public void testCalculateParentBounds_flagEnabled(
             @TestParameter ParentBoundsTestParameters params) {
-        final TransitionInfo.Change stubChange = createChange(0 /*flags*/);
         final Rect parentBounds = params.getParentBounds();
         final Rect endAbsBounds = params.getEndAbsBounds();
         final TransitionInfo.Change change = prepareChangeForParentBoundsCalculationTest(
@@ -231,7 +171,7 @@
                 endAbsBounds, new Point(parentBounds.width(), parentBounds.height()));
         final Rect actualParentBounds = new Rect();
 
-        calculateParentBounds(change, stubChange, actualParentBounds);
+        calculateParentBounds(change, actualParentBounds);
 
         assertEquals(parentBounds, actualParentBounds);
     }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingControllerTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingControllerTests.java
index 9f29ef7..da4543b 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingControllerTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/activityembedding/ActivityEmbeddingControllerTests.java
@@ -32,8 +32,6 @@
 import android.animation.Animator;
 import android.animation.ValueAnimator;
 import android.graphics.Rect;
-import android.platform.test.annotations.DisableFlags;
-import android.platform.test.annotations.EnableFlags;
 import android.view.SurfaceControl;
 import android.window.TransitionInfo;
 
@@ -41,7 +39,6 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 
-import com.android.window.flags.Flags;
 import com.android.wm.shell.transition.TransitionInfoBuilder;
 
 import org.junit.Before;
@@ -69,13 +66,11 @@
                 any());
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testInstantiate() {
         verify(mShellInit).addInitCallback(any(), any());
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testOnInit() {
         mController.onInit();
@@ -83,7 +78,6 @@
         verify(mTransitions).addHandler(mController);
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testSetAnimScaleSetting() {
         mController.setAnimScaleSetting(1.0f);
@@ -92,7 +86,6 @@
         verify(mAnimSpec).setAnimScaleSetting(1.0f);
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testStartAnimation_containsNonActivityEmbeddingChange() {
         final TransitionInfo.Change nonEmbeddedOpen = createChange(0 /* flags */);
@@ -129,7 +122,6 @@
         assertFalse(info2.getChanges().contains(nonEmbeddedClose));
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testStartAnimation_containsOnlyFillTaskActivityEmbeddingChange() {
         final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_OPEN, 0)
@@ -146,7 +138,6 @@
         verifyNoMoreInteractions(mFinishCallback);
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testStartAnimation_containsActivityEmbeddingSplitChange() {
         // Change that occupies only part of the Task.
@@ -164,7 +155,6 @@
         verifyNoMoreInteractions(mFinishTransaction);
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testStartAnimation_containsChangeEnterActivityEmbeddingSplit() {
         // Change that is entering ActivityEmbedding split.
@@ -181,7 +171,6 @@
         verifyNoMoreInteractions(mFinishTransaction);
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testStartAnimation_containsChangeExitActivityEmbeddingSplit() {
         // Change that is exiting ActivityEmbedding split.
@@ -198,27 +187,6 @@
         verifyNoMoreInteractions(mFinishTransaction);
     }
 
-    @DisableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
-    @Test
-    public void testShouldAnimate_containsAnimationOptions_disableAnimOptionsPerChange() {
-        final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_CLOSE, 0)
-                .addChange(createEmbeddedChange(EMBEDDED_RIGHT_BOUNDS, TASK_BOUNDS, TASK_BOUNDS))
-                .build();
-
-        info.setAnimationOptions(TransitionInfo.AnimationOptions
-                .makeCustomAnimOptions("packageName", 0 /* enterResId */, 0 /* exitResId */,
-                        0 /* backgroundColor */, false /* overrideTaskTransition */));
-        assertTrue(mController.shouldAnimate(info));
-
-        info.setAnimationOptions(TransitionInfo.AnimationOptions
-                .makeSceneTransitionAnimOptions());
-        assertFalse(mController.shouldAnimate(info));
-
-        info.setAnimationOptions(TransitionInfo.AnimationOptions.makeCrossProfileAnimOptions());
-        assertFalse(mController.shouldAnimate(info));
-    }
-
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testShouldAnimate_containsAnimationOptions_enableAnimOptionsPerChange() {
         final TransitionInfo info = new TransitionInfoBuilder(TRANSIT_CLOSE, 0)
@@ -227,8 +195,8 @@
         final TransitionInfo.Change change = info.getChanges().getFirst();
 
         change.setAnimationOptions(TransitionInfo.AnimationOptions
-                .makeCustomAnimOptions("packageName", 0 /* enterResId */, 0 /* exitResId */,
-                        0 /* backgroundColor */, false /* overrideTaskTransition */));
+                .makeCustomAnimOptions("packageName", 0 /* enterResId */, 0 /* changeResId */,
+                        0 /* exitResId */, false /* overrideTaskTransition */));
         assertTrue(mController.shouldAnimate(info));
 
         change.setAnimationOptions(TransitionInfo.AnimationOptions
@@ -239,7 +207,6 @@
         assertFalse(mController.shouldAnimate(info));
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @UiThreadTest
     @Test
     public void testMergeAnimation() {
@@ -278,7 +245,6 @@
         verify(mFinishCallback).onTransitionFinished(any());
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testOnAnimationFinished() {
         // Should not call finish when there is no transition.
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorControllerTest.kt
new file mode 100644
index 0000000..abd2388
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorControllerTest.kt
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 2025 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.wm.shell.common
+
+import android.app.ActivityManager.RunningTaskInfo
+import android.content.res.Configuration
+import android.graphics.Rect
+import android.graphics.RectF
+import android.testing.TestableResources
+import android.view.Display
+import android.view.SurfaceControl
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.wm.shell.RootTaskDisplayAreaOrganizer
+import com.android.wm.shell.ShellTestCase
+import com.android.wm.shell.TestShellExecutor
+import java.util.function.Supplier
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mockito.never
+import org.mockito.Mockito.verify
+import org.mockito.kotlin.any
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.times
+import org.mockito.kotlin.whenever
+
+/**
+ * Tests for [MultiDisplayDragMoveIndicatorController].
+ *
+ * Build/Install/Run: atest WMShellUnitTests:MultiDisplayDragMoveIndicatorControllerTest
+ */
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class MultiDisplayDragMoveIndicatorControllerTest : ShellTestCase() {
+    private val displayController = mock<DisplayController>()
+    private val rootTaskDisplayAreaOrganizer = mock<RootTaskDisplayAreaOrganizer>()
+    private val indicatorSurfaceFactory = mock<MultiDisplayDragMoveIndicatorSurface.Factory>()
+    private val indicatorSurface0 = mock<MultiDisplayDragMoveIndicatorSurface>()
+    private val indicatorSurface1 = mock<MultiDisplayDragMoveIndicatorSurface>()
+    private val transaction = mock<SurfaceControl.Transaction>()
+    private val transactionSupplier = mock<Supplier<SurfaceControl.Transaction>>()
+    private val taskInfo = mock<RunningTaskInfo>()
+    private val display0 = mock<Display>()
+    private val display1 = mock<Display>()
+
+    private lateinit var resources: TestableResources
+    private val executor = TestShellExecutor()
+
+    private lateinit var controller: MultiDisplayDragMoveIndicatorController
+
+    @Before
+    fun setUp() {
+        resources = mContext.getOrCreateTestableResources()
+        val resourceConfiguration = Configuration()
+        resourceConfiguration.uiMode = 0
+        resources.overrideConfiguration(resourceConfiguration)
+
+        controller =
+            MultiDisplayDragMoveIndicatorController(
+                displayController,
+                rootTaskDisplayAreaOrganizer,
+                indicatorSurfaceFactory,
+                executor,
+            )
+
+        val spyDisplayLayout0 =
+            MultiDisplayTestUtil.createSpyDisplayLayout(
+                MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_0,
+                MultiDisplayTestUtil.DISPLAY_DPI_0,
+                resources.resources,
+            )
+        val spyDisplayLayout1 =
+            MultiDisplayTestUtil.createSpyDisplayLayout(
+                MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_1,
+                MultiDisplayTestUtil.DISPLAY_DPI_1,
+                resources.resources,
+            )
+
+        taskInfo.taskId = TASK_ID
+        whenever(displayController.getDisplayLayout(0)).thenReturn(spyDisplayLayout0)
+        whenever(displayController.getDisplayLayout(1)).thenReturn(spyDisplayLayout1)
+        whenever(displayController.getDisplay(0)).thenReturn(display0)
+        whenever(displayController.getDisplay(1)).thenReturn(display1)
+        whenever(indicatorSurfaceFactory.create(taskInfo, display0)).thenReturn(indicatorSurface0)
+        whenever(indicatorSurfaceFactory.create(taskInfo, display1)).thenReturn(indicatorSurface1)
+        whenever(transactionSupplier.get()).thenReturn(transaction)
+    }
+
+    @Test
+    fun onDrag_boundsNotIntersectWithDisplay_noIndicator() {
+        controller.onDragMove(
+            RectF(2000f, 2000f, 2100f, 2200f), // not intersect with any display
+            startDisplayId = 0,
+            taskInfo,
+            displayIds = setOf(0, 1),
+        ) { transaction }
+        executor.flushAll()
+
+        verify(indicatorSurfaceFactory, never()).create(any(), any())
+    }
+
+    @Test
+    fun onDrag_boundsIntersectWithStartDisplay_noIndicator() {
+        controller.onDragMove(
+            RectF(100f, 100f, 200f, 200f), // intersect with display 0
+            startDisplayId = 0,
+            taskInfo,
+            displayIds = setOf(0, 1),
+        ) { transaction }
+        executor.flushAll()
+
+        verify(indicatorSurfaceFactory, never()).create(any(), any())
+    }
+
+    @Test
+    fun onDrag_boundsIntersectWithNonStartDisplay_showAndDisposeIndicator() {
+        controller.onDragMove(
+            RectF(100f, -100f, 200f, 200f), // intersect with display 0 and 1
+            startDisplayId = 0,
+            taskInfo,
+            displayIds = setOf(0, 1),
+        ) { transaction }
+        executor.flushAll()
+
+        verify(indicatorSurfaceFactory, times(1)).create(taskInfo, display1)
+        verify(indicatorSurface1, times(1))
+            .show(transaction, taskInfo, rootTaskDisplayAreaOrganizer, 1, Rect(0, 1800, 200, 2400))
+
+        controller.onDragMove(
+            RectF(2000f, 2000f, 2100f, 2200f), // not intersect with display 1
+            startDisplayId = 0,
+            taskInfo,
+            displayIds = setOf(0, 1)
+        ) { transaction }
+        while (executor.callbacks.isNotEmpty()) {
+            executor.flushAll()
+        }
+
+        verify(indicatorSurface1, times(1))
+            .relayout(any(), eq(transaction), shouldBeVisible = eq(false))
+
+        controller.onDragEnd(TASK_ID, { transaction })
+        while (executor.callbacks.isNotEmpty()) {
+            executor.flushAll()
+        }
+
+        verify(indicatorSurface1, times(1)).disposeSurface(transaction)
+    }
+
+    companion object {
+        private const val TASK_ID = 10
+    }
+}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/pip/PipBoundsAlgorithmTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/pip/PipBoundsAlgorithmTest.java
index 6bda225..7aea8ef 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/pip/PipBoundsAlgorithmTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/pip/PipBoundsAlgorithmTest.java
@@ -147,7 +147,9 @@
     public void getDefaultBounds_widerOverrideMinSize_matchesMinSizeWidthAndDefaultAspectRatio() {
         overrideDefaultAspectRatio(1.0f);
         // The min size's aspect ratio is greater than the default aspect ratio.
-        final Size overrideMinSize = new Size(150, 120);
+        final Size widerSize = mSizeSpecSource.getDefaultSize(1.5f);
+        final Size overrideMinSize = new Size(
+                widerSize.getWidth() / 2, widerSize.getHeight() / 2);
 
         mPipBoundsState.setOverrideMinSize(overrideMinSize);
         final Rect defaultBounds = mPipBoundsAlgorithm.getDefaultBounds();
@@ -163,7 +165,9 @@
     public void getDefaultBounds_tallerOverrideMinSize_matchesMinSizeHeightAndDefaultAspectRatio() {
         overrideDefaultAspectRatio(1.0f);
         // The min size's aspect ratio is greater than the default aspect ratio.
-        final Size overrideMinSize = new Size(120, 150);
+        final Size tallerSize = mSizeSpecSource.getDefaultSize(0.5f);
+        final Size overrideMinSize = new Size(
+                tallerSize.getWidth() / 2, tallerSize.getHeight() / 2);
 
         mPipBoundsState.setOverrideMinSize(overrideMinSize);
         final Rect defaultBounds = mPipBoundsAlgorithm.getDefaultBounds();
@@ -306,10 +310,12 @@
                 DEFAULT_ASPECT_RATIO,
                 (MAX_ASPECT_RATIO + DEFAULT_ASPECT_RATIO) / 2
         };
+        final Size defaultSize = mSizeSpecSource.getDefaultSize(1.0f);
+        final int defaultMinHeight = defaultSize.getHeight() / 2;
         final Size[] minimalSizes = new Size[] {
-                new Size((int) (200 * aspectRatios[0]), 200),
-                new Size((int) (200 * aspectRatios[1]), 200),
-                new Size((int) (200 * aspectRatios[2]), 200)
+                new Size((int) (defaultMinHeight * aspectRatios[0]), defaultMinHeight),
+                new Size((int) (defaultMinHeight * aspectRatios[1]), defaultMinHeight),
+                new Size((int) (defaultMinHeight * aspectRatios[2]), defaultMinHeight)
         };
         for (int i = 0; i < aspectRatios.length; i++) {
             final float aspectRatio = aspectRatios[i];
@@ -331,15 +337,17 @@
 
     @Test
     public void getAdjustedDestinationBounds_ignoreMinBounds() {
-        final float aspectRatio = (DEFAULT_ASPECT_RATIO + MAX_ASPECT_RATIO) / 2;
-        final Rect currentBounds = new Rect(0, 0, 0, 100);
-        currentBounds.right = (int) (currentBounds.height() * aspectRatio) + currentBounds.left;
-        final Size minSize = new Size(currentBounds.width() / 2, currentBounds.height() / 2);
+        final float oldAspectRatio = (DEFAULT_ASPECT_RATIO + MAX_ASPECT_RATIO) / 2;
+        final float newAspectRatio = (DEFAULT_ASPECT_RATIO + MIN_ASPECT_RATIO) / 2;
+        final Size defaultSize = mSizeSpecSource.getDefaultSize(oldAspectRatio);
+        final Size minSize = new Size(
+                defaultSize.getWidth() / 2, defaultSize.getHeight() / 2);
+        final Rect currentBounds = new Rect(0, 0, defaultSize.getWidth(), defaultSize.getHeight());
 
-        mPipBoundsState.setAspectRatio(aspectRatio);
+        mPipBoundsState.setAspectRatio(newAspectRatio);
         mPipBoundsState.setOverrideMinSize(minSize);
         final Rect destinationBounds = mPipBoundsAlgorithm.getAdjustedDestinationBounds(
-                currentBounds, aspectRatio);
+                currentBounds, newAspectRatio);
 
         assertTrue("Destination bounds ignores minimal size",
                 destinationBounds.width() > minSize.getWidth()
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/pip/PipBoundsStateTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/pip/PipBoundsStateTest.java
index ad664ac..01b76ed 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/pip/PipBoundsStateTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/pip/PipBoundsStateTest.java
@@ -51,7 +51,6 @@
 @SmallTest
 public class PipBoundsStateTest extends ShellTestCase {
 
-    private static final Size DEFAULT_SIZE = new Size(10, 10);
     private static final float DEFAULT_SNAP_FRACTION = 1.0f;
 
     /** The minimum possible size of the override min size's width or height */
@@ -184,10 +183,14 @@
     @Test
     public void testSetOverrideMinSize_changed_callbackInvoked() {
         final Runnable callback = mock(Runnable.class);
-        mPipBoundsState.setOverrideMinSize(new Size(5, 5));
+        mPipBoundsState.setAspectRatio(2f);
+        final Size defaultSize = mSizeSpecSource.getDefaultSize(mPipBoundsState.getAspectRatio());
+        mPipBoundsState.setOverrideMinSize(
+                new Size(defaultSize.getWidth() / 2, defaultSize.getHeight() / 2));
         mPipBoundsState.setOnMinimalSizeChangeCallback(callback);
 
-        mPipBoundsState.setOverrideMinSize(new Size(10, 10));
+        mPipBoundsState.setOverrideMinSize(
+                new Size(defaultSize.getWidth() / 4, defaultSize.getHeight() / 4));
 
         verify(callback).run();
     }
@@ -195,24 +198,47 @@
     @Test
     public void testSetOverrideMinSize_notChanged_callbackNotInvoked() {
         final Runnable callback = mock(Runnable.class);
-        mPipBoundsState.setOverrideMinSize(new Size(100, 150));
+        mPipBoundsState.setAspectRatio(2f);
+        final Size defaultSize = mSizeSpecSource.getDefaultSize(mPipBoundsState.getAspectRatio());
+        mPipBoundsState.setOverrideMinSize(
+                new Size(defaultSize.getWidth() / 2, defaultSize.getHeight() / 2));
         mPipBoundsState.setOnMinimalSizeChangeCallback(callback);
 
-        mPipBoundsState.setOverrideMinSize(new Size(100, 150));
+        mPipBoundsState.setOverrideMinSize(
+                new Size(defaultSize.getWidth() / 2, defaultSize.getHeight() / 2));
 
         verify(callback, never()).run();
     }
 
     @Test
+    public void testSetOverrideMinSize_tooLarge_ignored() {
+        final Runnable callback = mock(Runnable.class);
+        mPipBoundsState.setAspectRatio(2f);
+        final Size defaultSize = mSizeSpecSource.getDefaultSize(mPipBoundsState.getAspectRatio());
+        final Size halfSize = new Size(defaultSize.getWidth() / 2, defaultSize.getHeight() / 2);
+        final Size doubleSize = new Size(defaultSize.getWidth() * 2, defaultSize.getHeight() * 2);
+        mPipBoundsState.setOverrideMinSize(halfSize);
+        mPipBoundsState.setOnMinimalSizeChangeCallback(callback);
+
+        mPipBoundsState.setOverrideMinSize(doubleSize);
+
+        assertEquals("Override min size should be ignored",
+                mPipBoundsState.getOverrideMinSize(), halfSize);
+        verify(callback, never()).run();
+    }
+
+    @Test
     public void testGetOverrideMinEdgeSize() {
         mPipBoundsState.setOverrideMinSize(null);
         assertEquals(0, mPipBoundsState.getOverrideMinEdgeSize());
 
-        mPipBoundsState.setOverrideMinSize(new Size(100, 110));
-        assertEquals(100, mPipBoundsState.getOverrideMinEdgeSize());
+        mPipBoundsState.setAspectRatio(2f);
+        final Size defaultSize = mSizeSpecSource.getDefaultSize(mPipBoundsState.getAspectRatio());
+        final Size halfSize = new Size(defaultSize.getWidth() / 2, defaultSize.getHeight() / 2);
+        mPipBoundsState.setOverrideMinSize(halfSize);
 
-        mPipBoundsState.setOverrideMinSize(new Size(150, 200));
-        assertEquals(150, mPipBoundsState.getOverrideMinEdgeSize());
+        assertEquals(Math.min(halfSize.getWidth(), halfSize.getHeight()),
+                mPipBoundsState.getOverrideMinEdgeSize());
     }
 
     @Test
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopDisplayEventHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopDisplayEventHandlerTest.kt
index 0d5741f..8ad54f5 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopDisplayEventHandlerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopDisplayEventHandlerTest.kt
@@ -16,51 +16,28 @@
 
 package com.android.wm.shell.desktopmode
 
-import android.app.ActivityManager.RunningTaskInfo
-import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
-import android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN
-import android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED
-import android.content.ContentResolver
-import android.os.Binder
 import android.platform.test.annotations.EnableFlags
-import android.provider.Settings
-import android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS
 import android.testing.AndroidTestingRunner
 import android.view.Display.DEFAULT_DISPLAY
-import android.view.IWindowManager
-import android.view.WindowManager.TRANSIT_CHANGE
-import android.window.DisplayAreaInfo
-import android.window.WindowContainerTransaction
 import androidx.test.filters.SmallTest
 import com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession
 import com.android.dx.mockito.inline.extended.ExtendedMockito.never
 import com.android.dx.mockito.inline.extended.StaticMockitoSession
 import com.android.window.flags.Flags
-import com.android.wm.shell.MockToken
-import com.android.wm.shell.RootTaskDisplayAreaOrganizer
-import com.android.wm.shell.ShellTaskOrganizer
 import com.android.wm.shell.ShellTestCase
-import com.android.wm.shell.TestRunningTaskInfoBuilder
 import com.android.wm.shell.common.DisplayController
 import com.android.wm.shell.common.DisplayController.OnDisplaysChangedListener
 import com.android.wm.shell.common.ShellExecutor
 import com.android.wm.shell.shared.desktopmode.DesktopModeStatus
 import com.android.wm.shell.sysui.ShellInit
-import com.android.wm.shell.transition.Transitions
-import com.google.common.truth.Truth.assertThat
 import org.junit.After
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.ArgumentMatchers.isNull
 import org.mockito.Mock
-import org.mockito.Mockito.anyInt
 import org.mockito.Mockito.spy
-import org.mockito.Mockito.times
 import org.mockito.Mockito.verify
-import org.mockito.kotlin.any
 import org.mockito.kotlin.argumentCaptor
-import org.mockito.kotlin.eq
 import org.mockito.kotlin.whenever
 import org.mockito.quality.Strictness
 
@@ -73,27 +50,18 @@
 @RunWith(AndroidTestingRunner::class)
 class DesktopDisplayEventHandlerTest : ShellTestCase() {
     @Mock lateinit var testExecutor: ShellExecutor
-    @Mock lateinit var transitions: Transitions
     @Mock lateinit var displayController: DisplayController
-    @Mock lateinit var rootTaskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer
-    @Mock private lateinit var mockWindowManager: IWindowManager
     @Mock private lateinit var mockDesktopUserRepositories: DesktopUserRepositories
     @Mock private lateinit var mockDesktopRepository: DesktopRepository
     @Mock private lateinit var mockDesktopTasksController: DesktopTasksController
-    @Mock private lateinit var shellTaskOrganizer: ShellTaskOrganizer
+    @Mock private lateinit var desktopDisplayModeController: DesktopDisplayModeController
 
     private lateinit var mockitoSession: StaticMockitoSession
     private lateinit var shellInit: ShellInit
     private lateinit var handler: DesktopDisplayEventHandler
 
     private val onDisplaysChangedListenerCaptor = argumentCaptor<OnDisplaysChangedListener>()
-    private val runningTasks = mutableListOf<RunningTaskInfo>()
     private val externalDisplayId = 100
-    private val freeformTask =
-        TestRunningTaskInfoBuilder().setWindowingMode(WINDOWING_MODE_FREEFORM).build()
-    private val fullscreenTask =
-        TestRunningTaskInfoBuilder().setWindowingMode(WINDOWING_MODE_FULLSCREEN).build()
-    private val defaultTDA = DisplayAreaInfo(MockToken().token(), DEFAULT_DISPLAY, 0)
 
     @Before
     fun setUp() {
@@ -105,24 +73,15 @@
 
         shellInit = spy(ShellInit(testExecutor))
         whenever(mockDesktopUserRepositories.current).thenReturn(mockDesktopRepository)
-        whenever(transitions.startTransition(anyInt(), any(), isNull())).thenAnswer { Binder() }
-        whenever(rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(DEFAULT_DISPLAY))
-            .thenReturn(defaultTDA)
         handler =
             DesktopDisplayEventHandler(
                 context,
                 shellInit,
-                transitions,
                 displayController,
-                rootTaskDisplayAreaOrganizer,
-                mockWindowManager,
                 mockDesktopUserRepositories,
                 mockDesktopTasksController,
-                shellTaskOrganizer,
+                desktopDisplayModeController,
             )
-        whenever(shellTaskOrganizer.getRunningTasks(anyInt())).thenAnswer { runningTasks }
-        runningTasks.add(freeformTask)
-        runningTasks.add(fullscreenTask)
         shellInit.init()
         verify(displayController)
             .addDisplayWindowListener(onDisplaysChangedListenerCaptor.capture())
@@ -133,65 +92,6 @@
         mockitoSession.finishMocking()
     }
 
-    private fun testDisplayWindowingModeSwitch(
-        defaultWindowingMode: Int,
-        extendedDisplayEnabled: Boolean,
-        expectTransition: Boolean,
-    ) {
-        defaultTDA.configuration.windowConfiguration.windowingMode = defaultWindowingMode
-        whenever(mockWindowManager.getWindowingMode(anyInt())).thenAnswer { defaultWindowingMode }
-        val settingsSession =
-            ExtendedDisplaySettingsSession(
-                context.contentResolver,
-                if (extendedDisplayEnabled) 1 else 0,
-            )
-
-        settingsSession.use {
-            connectExternalDisplay()
-            defaultTDA.configuration.windowConfiguration.windowingMode = WINDOWING_MODE_FREEFORM
-            disconnectExternalDisplay()
-
-            if (expectTransition) {
-                val arg = argumentCaptor<WindowContainerTransaction>()
-                verify(transitions, times(2))
-                    .startTransition(eq(TRANSIT_CHANGE), arg.capture(), isNull())
-                assertThat(arg.firstValue.changes[defaultTDA.token.asBinder()]?.windowingMode)
-                    .isEqualTo(WINDOWING_MODE_FREEFORM)
-                assertThat(arg.secondValue.changes[defaultTDA.token.asBinder()]?.windowingMode)
-                    .isEqualTo(defaultWindowingMode)
-            } else {
-                verify(transitions, never()).startTransition(eq(TRANSIT_CHANGE), any(), isNull())
-            }
-        }
-    }
-
-    @Test
-    fun displayWindowingModeSwitchOnDisplayConnected_extendedDisplayDisabled() {
-        testDisplayWindowingModeSwitch(
-            defaultWindowingMode = WINDOWING_MODE_FULLSCREEN,
-            extendedDisplayEnabled = false,
-            expectTransition = false,
-        )
-    }
-
-    @Test
-    fun displayWindowingModeSwitchOnDisplayConnected_fullscreenDisplay() {
-        testDisplayWindowingModeSwitch(
-            defaultWindowingMode = WINDOWING_MODE_FULLSCREEN,
-            extendedDisplayEnabled = true,
-            expectTransition = true,
-        )
-    }
-
-    @Test
-    fun displayWindowingModeSwitchOnDisplayConnected_freeformDisplay() {
-        testDisplayWindowingModeSwitch(
-            defaultWindowingMode = WINDOWING_MODE_FREEFORM,
-            extendedDisplayEnabled = true,
-            expectTransition = false,
-        )
-    }
-
     @Test
     fun testDisplayAdded_supportsDesks_createsDesk() {
         whenever(DesktopModeStatus.canEnterDesktopMode(context)).thenReturn(true)
@@ -231,70 +131,14 @@
     }
 
     @Test
-    fun displayWindowingModeSwitch_existingTasksOnConnected() {
-        defaultTDA.configuration.windowConfiguration.windowingMode = WINDOWING_MODE_FULLSCREEN
-        whenever(mockWindowManager.getWindowingMode(anyInt())).thenAnswer {
-            WINDOWING_MODE_FULLSCREEN
-        }
-
-        ExtendedDisplaySettingsSession(context.contentResolver, 1).use {
-            connectExternalDisplay()
-
-            val arg = argumentCaptor<WindowContainerTransaction>()
-            verify(transitions, times(1))
-                .startTransition(eq(TRANSIT_CHANGE), arg.capture(), isNull())
-            assertThat(arg.firstValue.changes[freeformTask.token.asBinder()]?.windowingMode)
-                .isEqualTo(WINDOWING_MODE_UNDEFINED)
-            assertThat(arg.firstValue.changes[fullscreenTask.token.asBinder()]?.windowingMode)
-                .isEqualTo(WINDOWING_MODE_FULLSCREEN)
-        }
+    fun testConnectExternalDisplay() {
+        onDisplaysChangedListenerCaptor.lastValue.onDisplayAdded(externalDisplayId)
+        verify(desktopDisplayModeController).refreshDisplayWindowingMode()
     }
 
     @Test
-    fun displayWindowingModeSwitch_existingTasksOnDisconnected() {
-        defaultTDA.configuration.windowConfiguration.windowingMode = WINDOWING_MODE_FREEFORM
-        whenever(mockWindowManager.getWindowingMode(anyInt())).thenAnswer {
-            WINDOWING_MODE_FULLSCREEN
-        }
-
-        ExtendedDisplaySettingsSession(context.contentResolver, 1).use {
-            disconnectExternalDisplay()
-
-            val arg = argumentCaptor<WindowContainerTransaction>()
-            verify(transitions, times(1))
-                .startTransition(eq(TRANSIT_CHANGE), arg.capture(), isNull())
-            assertThat(arg.firstValue.changes[freeformTask.token.asBinder()]?.windowingMode)
-                .isEqualTo(WINDOWING_MODE_FREEFORM)
-            assertThat(arg.firstValue.changes[fullscreenTask.token.asBinder()]?.windowingMode)
-                .isEqualTo(WINDOWING_MODE_UNDEFINED)
-        }
-    }
-
-    private fun connectExternalDisplay() {
-        whenever(rootTaskDisplayAreaOrganizer.getDisplayIds())
-            .thenReturn(intArrayOf(DEFAULT_DISPLAY, externalDisplayId))
-        onDisplaysChangedListenerCaptor.lastValue.onDisplayAdded(externalDisplayId)
-    }
-
-    private fun disconnectExternalDisplay() {
-        whenever(rootTaskDisplayAreaOrganizer.getDisplayIds())
-            .thenReturn(intArrayOf(DEFAULT_DISPLAY))
+    fun testDisconnectExternalDisplay() {
         onDisplaysChangedListenerCaptor.lastValue.onDisplayRemoved(externalDisplayId)
-    }
-
-    private class ExtendedDisplaySettingsSession(
-        private val contentResolver: ContentResolver,
-        private val overrideValue: Int,
-    ) : AutoCloseable {
-        private val settingName = DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS
-        private val initialValue = Settings.Global.getInt(contentResolver, settingName, 0)
-
-        init {
-            Settings.Global.putInt(contentResolver, settingName, overrideValue)
-        }
-
-        override fun close() {
-            Settings.Global.putInt(contentResolver, settingName, initialValue)
-        }
+        verify(desktopDisplayModeController).refreshDisplayWindowingMode()
     }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopDisplayModeControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopDisplayModeControllerTest.kt
new file mode 100644
index 0000000..f0c97d3
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopDisplayModeControllerTest.kt
@@ -0,0 +1,237 @@
+/*
+ * Copyright (C) 2025 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.wm.shell.desktopmode
+
+import android.app.ActivityManager.RunningTaskInfo
+import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
+import android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN
+import android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED
+import android.content.ContentResolver
+import android.os.Binder
+import android.provider.Settings
+import android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS
+import android.testing.AndroidTestingRunner
+import android.view.Display.DEFAULT_DISPLAY
+import android.view.IWindowManager
+import android.view.WindowManager.TRANSIT_CHANGE
+import android.window.DisplayAreaInfo
+import android.window.WindowContainerTransaction
+import androidx.test.filters.SmallTest
+import com.android.dx.mockito.inline.extended.ExtendedMockito.never
+import com.android.wm.shell.MockToken
+import com.android.wm.shell.RootTaskDisplayAreaOrganizer
+import com.android.wm.shell.ShellTaskOrganizer
+import com.android.wm.shell.ShellTestCase
+import com.android.wm.shell.TestRunningTaskInfoBuilder
+import com.android.wm.shell.desktopmode.desktopwallpaperactivity.DesktopWallpaperActivityTokenProvider
+import com.android.wm.shell.transition.Transitions
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.isNull
+import org.mockito.Mockito.anyInt
+import org.mockito.Mockito.times
+import org.mockito.Mockito.verify
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.whenever
+
+/**
+ * Test class for [DesktopDisplayModeController]
+ *
+ * Usage: atest WMShellUnitTests:DesktopDisplayModeControllerTest
+ */
+@SmallTest
+@RunWith(AndroidTestingRunner::class)
+class DesktopDisplayModeControllerTest : ShellTestCase() {
+    private val transitions = mock<Transitions>()
+    private val rootTaskDisplayAreaOrganizer = mock<RootTaskDisplayAreaOrganizer>()
+    private val mockWindowManager = mock<IWindowManager>()
+    private val shellTaskOrganizer = mock<ShellTaskOrganizer>()
+    private val desktopWallpaperActivityTokenProvider =
+        mock<DesktopWallpaperActivityTokenProvider>()
+
+    private lateinit var controller: DesktopDisplayModeController
+
+    private val runningTasks = mutableListOf<RunningTaskInfo>()
+    private val freeformTask =
+        TestRunningTaskInfoBuilder().setWindowingMode(WINDOWING_MODE_FREEFORM).build()
+    private val fullscreenTask =
+        TestRunningTaskInfoBuilder().setWindowingMode(WINDOWING_MODE_FULLSCREEN).build()
+    private val defaultTDA = DisplayAreaInfo(MockToken().token(), DEFAULT_DISPLAY, 0)
+    private val wallpaperToken = MockToken().token()
+
+    @Before
+    fun setUp() {
+        whenever(transitions.startTransition(anyInt(), any(), isNull())).thenReturn(Binder())
+        whenever(rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(DEFAULT_DISPLAY))
+            .thenReturn(defaultTDA)
+        controller =
+            DesktopDisplayModeController(
+                context,
+                transitions,
+                rootTaskDisplayAreaOrganizer,
+                mockWindowManager,
+                shellTaskOrganizer,
+                desktopWallpaperActivityTokenProvider,
+            )
+        runningTasks.add(freeformTask)
+        runningTasks.add(fullscreenTask)
+        whenever(shellTaskOrganizer.getRunningTasks(anyInt())).thenReturn(ArrayList(runningTasks))
+        whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(wallpaperToken)
+    }
+
+    private fun testDisplayWindowingModeSwitch(
+        defaultWindowingMode: Int,
+        extendedDisplayEnabled: Boolean,
+        expectToSwitch: Boolean,
+    ) {
+        defaultTDA.configuration.windowConfiguration.windowingMode = defaultWindowingMode
+        whenever(mockWindowManager.getWindowingMode(anyInt())).thenReturn(defaultWindowingMode)
+        val settingsSession =
+            ExtendedDisplaySettingsSession(
+                context.contentResolver,
+                if (extendedDisplayEnabled) 1 else 0,
+            )
+
+        settingsSession.use {
+            connectExternalDisplay()
+            if (expectToSwitch) {
+                // Assumes [connectExternalDisplay] properly triggered the switching transition.
+                // Will verify the transition later along with [disconnectExternalDisplay].
+                defaultTDA.configuration.windowConfiguration.windowingMode = WINDOWING_MODE_FREEFORM
+            }
+            disconnectExternalDisplay()
+
+            if (expectToSwitch) {
+                val arg = argumentCaptor<WindowContainerTransaction>()
+                verify(transitions, times(2))
+                    .startTransition(eq(TRANSIT_CHANGE), arg.capture(), isNull())
+                assertThat(arg.firstValue.changes[defaultTDA.token.asBinder()]?.windowingMode)
+                    .isEqualTo(WINDOWING_MODE_FREEFORM)
+                assertThat(arg.firstValue.changes[wallpaperToken.asBinder()]?.windowingMode)
+                    .isEqualTo(WINDOWING_MODE_FULLSCREEN)
+                assertThat(arg.secondValue.changes[defaultTDA.token.asBinder()]?.windowingMode)
+                    .isEqualTo(defaultWindowingMode)
+                assertThat(arg.secondValue.changes[wallpaperToken.asBinder()]?.windowingMode)
+                    .isEqualTo(WINDOWING_MODE_FULLSCREEN)
+            } else {
+                verify(transitions, never()).startTransition(eq(TRANSIT_CHANGE), any(), isNull())
+            }
+        }
+    }
+
+    @Test
+    fun displayWindowingModeSwitchOnDisplayConnected_extendedDisplayDisabled() {
+        testDisplayWindowingModeSwitch(
+            defaultWindowingMode = WINDOWING_MODE_FULLSCREEN,
+            extendedDisplayEnabled = false,
+            expectToSwitch = false,
+        )
+    }
+
+    @Test
+    fun displayWindowingModeSwitchOnDisplayConnected_fullscreenDisplay() {
+        testDisplayWindowingModeSwitch(
+            defaultWindowingMode = WINDOWING_MODE_FULLSCREEN,
+            extendedDisplayEnabled = true,
+            expectToSwitch = true,
+        )
+    }
+
+    @Test
+    fun displayWindowingModeSwitchOnDisplayConnected_freeformDisplay() {
+        testDisplayWindowingModeSwitch(
+            defaultWindowingMode = WINDOWING_MODE_FREEFORM,
+            extendedDisplayEnabled = true,
+            expectToSwitch = false,
+        )
+    }
+
+    @Test
+    fun displayWindowingModeSwitch_existingTasksOnConnected() {
+        defaultTDA.configuration.windowConfiguration.windowingMode = WINDOWING_MODE_FULLSCREEN
+        whenever(mockWindowManager.getWindowingMode(anyInt())).thenReturn(WINDOWING_MODE_FULLSCREEN)
+
+        ExtendedDisplaySettingsSession(context.contentResolver, 1).use {
+            connectExternalDisplay()
+
+            val arg = argumentCaptor<WindowContainerTransaction>()
+            verify(transitions, times(1))
+                .startTransition(eq(TRANSIT_CHANGE), arg.capture(), isNull())
+            assertThat(arg.firstValue.changes[freeformTask.token.asBinder()]?.windowingMode)
+                .isEqualTo(WINDOWING_MODE_UNDEFINED)
+            assertThat(arg.firstValue.changes[fullscreenTask.token.asBinder()]?.windowingMode)
+                .isEqualTo(WINDOWING_MODE_FULLSCREEN)
+        }
+    }
+
+    @Test
+    fun displayWindowingModeSwitch_existingTasksOnDisconnected() {
+        defaultTDA.configuration.windowConfiguration.windowingMode = WINDOWING_MODE_FREEFORM
+        whenever(mockWindowManager.getWindowingMode(anyInt())).thenAnswer {
+            WINDOWING_MODE_FULLSCREEN
+        }
+
+        ExtendedDisplaySettingsSession(context.contentResolver, 1).use {
+            disconnectExternalDisplay()
+
+            val arg = argumentCaptor<WindowContainerTransaction>()
+            verify(transitions, times(1))
+                .startTransition(eq(TRANSIT_CHANGE), arg.capture(), isNull())
+            assertThat(arg.firstValue.changes[freeformTask.token.asBinder()]?.windowingMode)
+                .isEqualTo(WINDOWING_MODE_FREEFORM)
+            assertThat(arg.firstValue.changes[fullscreenTask.token.asBinder()]?.windowingMode)
+                .isEqualTo(WINDOWING_MODE_UNDEFINED)
+        }
+    }
+
+    private fun connectExternalDisplay() {
+        whenever(rootTaskDisplayAreaOrganizer.getDisplayIds())
+            .thenReturn(intArrayOf(DEFAULT_DISPLAY, EXTERNAL_DISPLAY_ID))
+        controller.refreshDisplayWindowingMode()
+    }
+
+    private fun disconnectExternalDisplay() {
+        whenever(rootTaskDisplayAreaOrganizer.getDisplayIds())
+            .thenReturn(intArrayOf(DEFAULT_DISPLAY))
+        controller.refreshDisplayWindowingMode()
+    }
+
+    private class ExtendedDisplaySettingsSession(
+        private val contentResolver: ContentResolver,
+        private val overrideValue: Int,
+    ) : AutoCloseable {
+        private val settingName = DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS
+        private val initialValue = Settings.Global.getInt(contentResolver, settingName, 0)
+
+        init {
+            Settings.Global.putInt(contentResolver, settingName, overrideValue)
+        }
+
+        override fun close() {
+            Settings.Global.putInt(contentResolver, settingName, initialValue)
+        }
+    }
+
+    private companion object {
+        const val EXTERNAL_DISPLAY_ID = 100
+    }
+}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandlerTest.kt
index 4c3325d..0d1c5722 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandlerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMinimizationTransitionHandlerTest.kt
@@ -21,6 +21,7 @@
 import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
 import android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN
 import android.app.WindowConfiguration.WindowingMode
+import android.os.Handler
 import android.testing.AndroidTestingRunner
 import android.testing.TestableLooper.RunWithLooper
 import android.view.SurfaceControl
@@ -56,7 +57,12 @@
     @Before
     fun setUp() {
         handler =
-            DesktopMinimizationTransitionHandler(testExecutor, testExecutor, displayController)
+            DesktopMinimizationTransitionHandler(
+                testExecutor,
+                testExecutor,
+                displayController,
+                mock<Handler>(),
+            )
         whenever(displayController.getDisplayContext(any())).thenReturn(mContext)
     }
 
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicatorTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicatorTest.kt
index 20d50aa..dcc9e24 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicatorTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeVisualIndicatorTest.kt
@@ -36,6 +36,7 @@
 import com.android.wm.shell.common.DisplayLayout
 import com.android.wm.shell.common.SyncTransactionQueue
 import com.android.wm.shell.shared.bubbles.BubbleDropTargetBoundsProvider
+import com.android.wm.shell.windowdecor.tiling.SnapEventHandler
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
 import org.junit.Rule
@@ -67,6 +68,7 @@
     @Mock private lateinit var taskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer
     @Mock private lateinit var displayLayout: DisplayLayout
     @Mock private lateinit var bubbleBoundsProvider: BubbleDropTargetBoundsProvider
+    @Mock private lateinit var snapEventHandler: SnapEventHandler
 
     private lateinit var visualIndicator: DesktopModeVisualIndicator
     private val desktopExecutor = TestShellExecutor()
@@ -356,6 +358,7 @@
                 taskDisplayAreaOrganizer,
                 dragStartState,
                 bubbleBoundsProvider,
+                snapEventHandler,
             )
     }
 
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopRepositoryTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopRepositoryTest.kt
index ed9b97d..a43b4dd 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopRepositoryTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopRepositoryTest.kt
@@ -31,12 +31,14 @@
 import com.android.wm.shell.ShellTestCase
 import com.android.wm.shell.TestShellExecutor
 import com.android.wm.shell.common.ShellExecutor
+import com.android.wm.shell.desktopmode.DesktopRepository.Companion.INVALID_DESK_ID
 import com.android.wm.shell.desktopmode.persistence.Desktop
 import com.android.wm.shell.desktopmode.persistence.DesktopPersistentRepository
 import com.android.wm.shell.sysui.ShellInit
 import com.google.common.truth.Truth.assertThat
 import junit.framework.Assert.fail
 import kotlin.test.assertEquals
+import kotlin.test.assertNotNull
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -333,7 +335,7 @@
     @Test
     fun isOnlyVisibleNonClosingTask_singleVisibleClosingTask() {
         repo.updateTask(DEFAULT_DISPLAY, taskId = 1, isVisible = true)
-        repo.addClosingTask(DEFAULT_DISPLAY, 1)
+        repo.addClosingTask(displayId = DEFAULT_DISPLAY, deskId = 0, taskId = 1)
 
         // A visible task that's closing
         assertThat(repo.isVisibleTask(1)).isTrue()
@@ -1430,6 +1432,161 @@
             )
     }
 
+    @Test
+    @EnableFlags(FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun addDesk_updatesListener() {
+        val listener = TestDeskChangeListener()
+        val executor = TestShellExecutor()
+        repo.addDeskChangeListener(listener, executor)
+
+        repo.addDesk(displayId = 0, deskId = 1)
+        executor.flushAll()
+
+        val lastAddition = assertNotNull(listener.lastAddition)
+        assertThat(lastAddition.displayId).isEqualTo(0)
+        assertThat(lastAddition.deskId).isEqualTo(1)
+    }
+
+    @Test
+    @EnableFlags(FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun removeDesk_updatesListener() {
+        val listener = TestDeskChangeListener()
+        val executor = TestShellExecutor()
+        repo.addDeskChangeListener(listener, executor)
+        repo.addDesk(displayId = 0, deskId = 1)
+
+        repo.removeDesk(deskId = 1)
+        executor.flushAll()
+
+        val lastRemoval = assertNotNull(listener.lastRemoval)
+        assertThat(lastRemoval.displayId).isEqualTo(0)
+        assertThat(lastRemoval.deskId).isEqualTo(1)
+    }
+
+    @Test
+    @EnableFlags(FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun removeDesk_didNotExist_doesNotUpdateListener() {
+        val listener = TestDeskChangeListener()
+        val executor = TestShellExecutor()
+        repo.addDeskChangeListener(listener, executor)
+        repo.addDesk(displayId = 0, deskId = 1)
+
+        repo.removeDesk(deskId = 2)
+        executor.flushAll()
+
+        assertThat(listener.lastRemoval).isNull()
+    }
+
+    @Test
+    @EnableFlags(FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun removeDesk_wasActive_updatesActiveChangeListener() {
+        val listener = TestDeskChangeListener()
+        val executor = TestShellExecutor()
+        repo.addDeskChangeListener(listener, executor)
+        repo.addDesk(displayId = 0, deskId = 1)
+        repo.setActiveDesk(displayId = 0, deskId = 1)
+
+        repo.removeDesk(deskId = 1)
+        executor.flushAll()
+
+        val lastActivationChange = assertNotNull(listener.lastActivationChange)
+        assertThat(lastActivationChange.displayId).isEqualTo(0)
+        assertThat(lastActivationChange.oldActive).isEqualTo(1)
+        assertThat(lastActivationChange.newActive).isEqualTo(INVALID_DESK_ID)
+    }
+
+    @Test
+    @EnableFlags(FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun setDeskActive_fromNoActive_updatesListener() {
+        val listener = TestDeskChangeListener()
+        val executor = TestShellExecutor()
+        repo.addDeskChangeListener(listener, executor)
+        repo.addDesk(displayId = 1, deskId = 1)
+
+        repo.setActiveDesk(displayId = 1, deskId = 1)
+        executor.flushAll()
+
+        val lastActivationChange = assertNotNull(listener.lastActivationChange)
+        assertThat(lastActivationChange.displayId).isEqualTo(1)
+        assertThat(lastActivationChange.oldActive).isEqualTo(INVALID_DESK_ID)
+        assertThat(lastActivationChange.newActive).isEqualTo(1)
+    }
+
+    @Test
+    @EnableFlags(FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun setDeskActive_fromOtherActive_updatesListener() {
+        val listener = TestDeskChangeListener()
+        val executor = TestShellExecutor()
+        repo.addDeskChangeListener(listener, executor)
+        repo.addDesk(displayId = 1, deskId = 1)
+        repo.addDesk(displayId = 1, deskId = 2)
+        repo.setActiveDesk(displayId = 1, deskId = 1)
+
+        repo.setActiveDesk(displayId = 1, deskId = 2)
+        executor.flushAll()
+
+        val lastActivationChange = assertNotNull(listener.lastActivationChange)
+        assertThat(lastActivationChange.displayId).isEqualTo(1)
+        assertThat(lastActivationChange.oldActive).isEqualTo(1)
+        assertThat(lastActivationChange.newActive).isEqualTo(2)
+    }
+
+    @Test
+    @EnableFlags(FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun setDeskInactive_updatesListener() {
+        val listener = TestDeskChangeListener()
+        val executor = TestShellExecutor()
+        repo.addDeskChangeListener(listener, executor)
+        repo.addDesk(displayId = 0, deskId = 1)
+        repo.setActiveDesk(displayId = 0, deskId = 1)
+
+        repo.setDeskInactive(deskId = 1)
+        executor.flushAll()
+
+        val lastActivationChange = assertNotNull(listener.lastActivationChange)
+        assertThat(lastActivationChange.displayId).isEqualTo(0)
+        assertThat(lastActivationChange.oldActive).isEqualTo(1)
+        assertThat(lastActivationChange.newActive).isEqualTo(INVALID_DESK_ID)
+    }
+
+    private class TestDeskChangeListener : DesktopRepository.DeskChangeListener {
+        var lastAddition: LastAddition? = null
+            private set
+
+        var lastRemoval: LastRemoval? = null
+            private set
+
+        var lastActivationChange: LastActivationChange? = null
+            private set
+
+        override fun onDeskAdded(displayId: Int, deskId: Int) {
+            lastAddition = LastAddition(displayId, deskId)
+        }
+
+        override fun onDeskRemoved(displayId: Int, deskId: Int) {
+            lastRemoval = LastRemoval(displayId, deskId)
+        }
+
+        override fun onActiveDeskChanged(
+            displayId: Int,
+            newActiveDeskId: Int,
+            oldActiveDeskId: Int,
+        ) {
+            lastActivationChange =
+                LastActivationChange(
+                    displayId = displayId,
+                    oldActive = oldActiveDeskId,
+                    newActive = newActiveDeskId,
+                )
+        }
+
+        data class LastAddition(val displayId: Int, val deskId: Int)
+
+        data class LastRemoval(val displayId: Int, val deskId: Int)
+
+        data class LastActivationChange(val displayId: Int, val oldActive: Int, val newActive: Int)
+    }
+
     class TestListener : DesktopRepository.ActiveTasksListener {
         var activeChangesOnDefaultDisplay = 0
         var activeChangesOnSecondaryDisplay = 0
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
index fcd92ac..04acaef 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
@@ -261,6 +261,7 @@
     @Mock private lateinit var desksTransitionsObserver: DesksTransitionObserver
     @Mock private lateinit var packageManager: PackageManager
     @Mock private lateinit var mockDisplayContext: Context
+    @Mock private lateinit var dragToDisplayTransitionHandler: DragToDisplayTransitionHandler
 
     private lateinit var controller: DesktopTasksController
     private lateinit var shellInit: ShellInit
@@ -431,6 +432,7 @@
             desksTransitionsObserver,
             userProfileContexts,
             desktopModeCompatPolicy,
+            dragToDisplayTransitionHandler,
         )
 
     @After
@@ -1675,6 +1677,7 @@
 
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY)
+    @DisableFlags(Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION)
     fun moveRunningTaskToDesktop_topActivityTranslucentWithDisplay_doesNothing() {
         val task =
             setUpFullscreenTask().apply {
@@ -2068,6 +2071,21 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun moveToFullscreen_fromDeskWithMultipleTasks_deactivatesDesk() {
+        val deskId = 1
+        taskRepository.addDesk(displayId = DEFAULT_DISPLAY, deskId = deskId)
+        taskRepository.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = deskId)
+        val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY, deskId = deskId)
+        val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY, deskId = deskId)
+
+        controller.moveToFullscreen(task1.taskId, transitionSource = UNKNOWN)
+
+        val wct = getLatestExitDesktopWct()
+        verify(desksOrganizer).deactivateDesk(wct, deskId = deskId)
+    }
+
+    @Test
     fun moveToFullscreen_tdaFullscreen_windowingModeSetToUndefined() {
         val task = setUpFreeformTask()
         val tda = rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(DEFAULT_DISPLAY)!!
@@ -2277,7 +2295,10 @@
     }
 
     @Test
-    @DisableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    @DisableFlags(
+        Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND,
+        Flags.FLAG_ENABLE_DESKTOP_WINDOWING_PIP,
+    )
     fun moveToFullscreen_multipleVisibleNonMinimizedTasks_doesNotRemoveWallpaperActivity() {
         val homeTask = setUpHomeTask()
         val task1 = setUpFreeformTask()
@@ -2304,29 +2325,6 @@
     }
 
     @Test
-    @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
-    fun moveToFullscreen_multipleVisibleNonMinimizedTasks_doesNotRemoveWallpaperActivity_multiDesksEnabled() {
-        val homeTask = setUpHomeTask()
-        val task1 = setUpFreeformTask()
-        // Setup task2
-        setUpFreeformTask()
-
-        val tdaInfo = rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(DEFAULT_DISPLAY)
-        assertNotNull(tdaInfo).configuration.windowConfiguration.windowingMode =
-            WINDOWING_MODE_FULLSCREEN
-
-        controller.moveToFullscreen(task1.taskId, transitionSource = UNKNOWN)
-
-        val wct = getLatestExitDesktopWct()
-        val task1Change = assertNotNull(wct.changes[task1.token.asBinder()])
-        assertThat(task1Change.windowingMode).isEqualTo(WINDOWING_MODE_UNDEFINED)
-        verify(desktopModeEnterExitTransitionListener)
-            .onExitDesktopModeTransitionStarted(FULLSCREEN_ANIMATION_DURATION)
-        // Does not remove wallpaper activity, as desktop still has a visible desktop task
-        wct.assertWithoutHop(ReorderPredicate(wallpaperToken, toTop = false))
-    }
-
-    @Test
     fun moveToFullscreen_nonExistentTask_doesNothing() {
         controller.moveToFullscreen(999, transitionSource = UNKNOWN)
         verifyExitDesktopWCTNotExecuted()
@@ -2477,8 +2475,7 @@
         controller.moveTaskToFront(task.taskId, unminimizeReason = UnminimizeReason.UNKNOWN)
 
         val wct = getLatestDesktopMixedTaskWct(type = TRANSIT_OPEN)
-        assertThat(wct.hierarchyOps).hasSize(1)
-        wct.assertLaunchTaskAt(0, task.taskId, WINDOWING_MODE_FREEFORM)
+        wct.assertLaunchTask(task.taskId, WINDOWING_MODE_FREEFORM)
     }
 
     @Test
@@ -2780,6 +2777,79 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun moveToNextDisplay_toDeskInOtherDisplay_movesToDeskAndActivates() {
+        val transition = Binder()
+        val targetDeskId = 4
+        taskRepository.addDesk(displayId = SECOND_DISPLAY, deskId = targetDeskId)
+        taskRepository.setDeskInactive(deskId = targetDeskId)
+        // Set up two display ids
+        whenever(rootTaskDisplayAreaOrganizer.displayIds)
+            .thenReturn(intArrayOf(DEFAULT_DISPLAY, SECOND_DISPLAY))
+        // Create a mock for the target display area: second display
+        val secondDisplayArea = DisplayAreaInfo(MockToken().token(), SECOND_DISPLAY, 0)
+        whenever(rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(SECOND_DISPLAY))
+            .thenReturn(secondDisplayArea)
+        whenever(transitions.startTransition(eq(TRANSIT_CHANGE), any(), anyOrNull()))
+            .thenReturn(transition)
+
+        val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY)
+        taskRepository.addTaskToDesk(
+            displayId = DEFAULT_DISPLAY,
+            deskId = 0,
+            taskId = task.taskId,
+            isVisible = true,
+        )
+        controller.moveToNextDisplay(task.taskId)
+
+        verify(desksOrganizer).moveTaskToDesk(any(), eq(targetDeskId), eq(task))
+        verify(desksOrganizer).activateDesk(any(), eq(targetDeskId))
+        verify(desksTransitionsObserver)
+            .addPendingTransition(
+                DeskTransition.ActiveDeskWithTask(
+                    token = transition,
+                    displayId = SECOND_DISPLAY,
+                    deskId = targetDeskId,
+                    enterTaskId = task.taskId,
+                )
+            )
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun moveToNextDisplay_wasLastTaskInSourceDesk_deactivates() {
+        val transition = Binder()
+        val sourceDeskId = 0
+        val targetDeskId = 4
+        taskRepository.addDesk(displayId = SECOND_DISPLAY, deskId = targetDeskId)
+        taskRepository.setDeskInactive(deskId = targetDeskId)
+        // Set up two display ids
+        whenever(rootTaskDisplayAreaOrganizer.displayIds)
+            .thenReturn(intArrayOf(DEFAULT_DISPLAY, SECOND_DISPLAY))
+        // Create a mock for the target display area: second display
+        val secondDisplayArea = DisplayAreaInfo(MockToken().token(), SECOND_DISPLAY, 0)
+        whenever(rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(SECOND_DISPLAY))
+            .thenReturn(secondDisplayArea)
+        whenever(transitions.startTransition(eq(TRANSIT_CHANGE), any(), anyOrNull()))
+            .thenReturn(transition)
+
+        val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY)
+        taskRepository.addTaskToDesk(
+            displayId = DEFAULT_DISPLAY,
+            deskId = sourceDeskId,
+            taskId = task.taskId,
+            isVisible = true,
+        )
+        controller.moveToNextDisplay(task.taskId)
+
+        verify(desksOrganizer).deactivateDesk(any(), eq(sourceDeskId))
+        verify(desksTransitionsObserver)
+            .addPendingTransition(
+                DeskTransition.DeactivateDesk(token = transition, deskId = sourceDeskId)
+            )
+    }
+
+    @Test
     fun getTaskWindowingMode() {
         val fullscreenTask = setUpFullscreenTask()
         val freeformTask = setUpFreeformTask()
@@ -2810,6 +2880,7 @@
 
         // Should launch home
         wct.assertPendingIntentAt(0, launchHomeIntent(DEFAULT_DISPLAY))
+        wct.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY)
     }
 
     @Test
@@ -2827,7 +2898,7 @@
     fun onDesktopWindowClose_singleActiveTask_isClosing() {
         val task = setUpFreeformTask()
 
-        taskRepository.addClosingTask(DEFAULT_DISPLAY, task.taskId)
+        taskRepository.addClosingTask(displayId = DEFAULT_DISPLAY, deskId = 0, taskId = task.taskId)
 
         val wct = WindowContainerTransaction()
         controller.onDesktopWindowClose(wct, displayId = DEFAULT_DISPLAY, task)
@@ -2864,7 +2935,11 @@
         val task1 = setUpFreeformTask()
         val task2 = setUpFreeformTask()
 
-        taskRepository.addClosingTask(DEFAULT_DISPLAY, task2.taskId)
+        taskRepository.addClosingTask(
+            displayId = DEFAULT_DISPLAY,
+            deskId = 0,
+            taskId = task2.taskId,
+        )
 
         val wct = WindowContainerTransaction()
         controller.onDesktopWindowClose(wct, displayId = DEFAULT_DISPLAY, task1)
@@ -2966,9 +3041,13 @@
         val captor = argumentCaptor<WindowContainerTransaction>()
         verify(freeformTaskTransitionStarter)
             .startMinimizedModeTransition(captor.capture(), eq(task.taskId), eq(false))
-        captor.firstValue.hierarchyOps.none { hop ->
-            hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK && hop.container == wallpaperToken.asBinder()
-        }
+        assertThat(
+                captor.firstValue.hierarchyOps.none { hop ->
+                    hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK &&
+                        hop.container == wallpaperToken.asBinder()
+                }
+            )
+            .isTrue()
     }
 
     @Test
@@ -3057,9 +3136,13 @@
 
         val captor = argumentCaptor<WindowContainerTransaction>()
         verify(freeformTaskTransitionStarter).startPipTransition(captor.capture())
-        captor.firstValue.hierarchyOps.none { hop ->
-            hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK && hop.container == wallpaperToken.asBinder()
-        }
+        assertThat(
+                captor.firstValue.hierarchyOps.none { hop ->
+                    hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK &&
+                        hop.container == wallpaperToken.asBinder()
+                }
+            )
+            .isTrue()
     }
 
     @Test
@@ -3080,7 +3163,12 @@
         val captor = argumentCaptor<WindowContainerTransaction>()
         verify(freeformTaskTransitionStarter)
             .startMinimizedModeTransition(captor.capture(), eq(task.taskId), eq(true))
-        captor.firstValue.hierarchyOps.none { hop -> hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK }
+        assertThat(
+                captor.firstValue.hierarchyOps.none { hop ->
+                    hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK
+                }
+            )
+            .isTrue()
     }
 
     @Test
@@ -3127,9 +3215,13 @@
         val captor = argumentCaptor<WindowContainerTransaction>()
         verify(freeformTaskTransitionStarter)
             .startMinimizedModeTransition(captor.capture(), eq(task.taskId), eq(false))
-        captor.firstValue.hierarchyOps.none { hop ->
-            hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK && hop.container == wallpaperToken.asBinder()
-        }
+        assertThat(
+                captor.firstValue.hierarchyOps.none { hop ->
+                    hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK &&
+                        hop.container == wallpaperToken.asBinder()
+                }
+            )
+            .isTrue()
     }
 
     @Test
@@ -3151,9 +3243,13 @@
         val captor = argumentCaptor<WindowContainerTransaction>()
         verify(freeformTaskTransitionStarter)
             .startMinimizedModeTransition(captor.capture(), eq(task1.taskId), eq(false))
-        captor.firstValue.hierarchyOps.none { hop ->
-            hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK && hop.container == wallpaperToken.asBinder()
-        }
+        assertThat(
+                captor.firstValue.hierarchyOps.none { hop ->
+                    hop.type == HIERARCHY_OP_TYPE_REMOVE_TASK &&
+                        hop.container == wallpaperToken.asBinder()
+                }
+            )
+            .isTrue()
     }
 
     @Test
@@ -3225,6 +3321,30 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun onDesktopWindowMinimize_minimizesTask() {
+        val task = setUpFreeformTask()
+        val transition = Binder()
+        val runOnTransit = RunOnStartTransitionCallback()
+        whenever(
+                freeformTaskTransitionStarter.startMinimizedModeTransition(
+                    any(),
+                    anyInt(),
+                    anyBoolean(),
+                )
+            )
+            .thenReturn(transition)
+        whenever(mMockDesktopImmersiveController.exitImmersiveIfApplicable(any(), eq(task), any()))
+            .thenReturn(
+                ExitResult.Exit(exitingTask = task.taskId, runOnTransitionStart = runOnTransit)
+            )
+
+        controller.minimizeTask(task, MinimizeReason.MINIMIZE_BUTTON)
+
+        verify(desksOrganizer).minimizeTask(any(), /* deskId= */ eq(0), eq(task))
+    }
+
+    @Test
     fun onDesktopWindowMinimize_triesToStopTiling() {
         val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY)
         val transition = Binder()
@@ -3684,6 +3804,7 @@
 
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY)
+    @DisableFlags(Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION)
     fun handleRequest_topActivityTransparentWithDisplay_returnSwitchToFullscreenWCT() {
         val freeformTask = setUpFreeformTask()
         markTaskVisible(freeformTask)
@@ -3705,6 +3826,7 @@
         Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY,
         Flags.FLAG_INCLUDE_TOP_TRANSPARENT_FULLSCREEN_TASK_IN_DESKTOP_HEURISTIC,
     )
+    @DisableFlags(Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION)
     fun handleRequest_topActivityTransparentWithDisplay_savedToDesktopRepository() {
         val freeformTask = setUpFreeformTask(displayId = DEFAULT_DISPLAY)
         markTaskVisible(freeformTask)
@@ -3726,6 +3848,7 @@
         Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY,
         Flags.FLAG_INCLUDE_TOP_TRANSPARENT_FULLSCREEN_TASK_IN_DESKTOP_HEURISTIC,
     )
+    @DisableFlags(Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION)
     fun handleRequest_desktopNotShowing_topTransparentFullscreenTask_notSavedToDesktopRepository() {
         val task = setUpFullscreenTask(displayId = DEFAULT_DISPLAY)
 
@@ -3883,6 +4006,7 @@
         // Should launch home
         assertNotNull(result, "Should handle request")
             .assertPendingIntentAt(0, launchHomeIntent(DEFAULT_DISPLAY))
+        result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY)
     }
 
     @Test
@@ -3909,6 +4033,7 @@
         // Should launch home
         assertNotNull(result, "Should handle request")
             .assertPendingIntentAt(0, launchHomeIntent(DEFAULT_DISPLAY))
+        result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY)
     }
 
     @Test
@@ -3972,7 +4097,11 @@
         val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY)
         val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY)
 
-        taskRepository.addClosingTask(displayId = DEFAULT_DISPLAY, taskId = task2.taskId)
+        taskRepository.addClosingTask(
+            displayId = DEFAULT_DISPLAY,
+            deskId = 0,
+            taskId = task2.taskId,
+        )
         val result =
             controller.handleRequest(Binder(), createTransition(task1, type = TRANSIT_TO_BACK))
 
@@ -4037,6 +4166,7 @@
         // Should launch home
         assertNotNull(result, "Should handle request")
             .assertPendingIntentAt(0, launchHomeIntent(DEFAULT_DISPLAY))
+        result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY)
     }
 
     @Test
@@ -4053,6 +4183,7 @@
         // Should launch home
         assertNotNull(result, "Should handle request")
             .assertPendingIntentAt(0, launchHomeIntent(SECOND_DISPLAY))
+        result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, SECOND_DISPLAY)
     }
 
     @Test
@@ -4083,6 +4214,36 @@
     }
 
     @Test
+    @EnableFlags(
+        Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY,
+        Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER,
+        Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND,
+    )
+    fun handleRequest_closeTransition_onlyDesktopTask_deactivatesDesk() {
+        val task = setUpFreeformTask()
+
+        controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_CLOSE))
+
+        verify(desksOrganizer).deactivateDesk(any(), /* deskId= */ eq(0))
+    }
+
+    @Test
+    @EnableFlags(
+        Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY,
+        Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER,
+        Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND,
+    )
+    fun handleRequest_closeTransition_onlyDesktopTask_addsDeactivatesDeskTransition() {
+        val transition = Binder()
+        val task = setUpFreeformTask()
+
+        controller.handleRequest(transition, createTransition(task, type = TRANSIT_CLOSE))
+
+        verify(desksTransitionsObserver)
+            .addPendingTransition(DeskTransition.DeactivateDesk(token = transition, deskId = 0))
+    }
+
+    @Test
     @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
     fun handleRequest_closeTransition_multipleTasks_noWallpaper_doesNotHandle() {
         val task1 = setUpFreeformTask()
@@ -4115,7 +4276,11 @@
         val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY)
         val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY)
 
-        taskRepository.addClosingTask(displayId = DEFAULT_DISPLAY, taskId = task2.taskId)
+        taskRepository.addClosingTask(
+            displayId = DEFAULT_DISPLAY,
+            deskId = 0,
+            taskId = task2.taskId,
+        )
         val result =
             controller.handleRequest(Binder(), createTransition(task1, type = TRANSIT_CLOSE))
 
@@ -4287,7 +4452,10 @@
     }
 
     @Test
-    @DisableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    @DisableFlags(
+        Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND,
+        Flags.FLAG_ENABLE_DESKTOP_WINDOWING_PIP,
+    )
     fun moveFocusedTaskToFullscreen_multipleVisibleTasks_doesNotRemoveWallpaperActivity() {
         val homeTask = setUpHomeTask()
         val task1 = setUpFreeformTask()
@@ -4312,27 +4480,6 @@
 
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
-    fun moveFocusedTaskToFullscreen_multipleVisibleTasks_doesNotRemoveWallpaperActivity_multiDesksEnabled() {
-        val homeTask = setUpHomeTask()
-        val task1 = setUpFreeformTask()
-        val task2 = setUpFreeformTask()
-        val task3 = setUpFreeformTask()
-
-        task1.isFocused = false
-        task2.isFocused = true
-        task3.isFocused = false
-        controller.enterFullscreen(DEFAULT_DISPLAY, transitionSource = UNKNOWN)
-
-        val wct = getLatestExitDesktopWct()
-        val taskChange = assertNotNull(wct.changes[task2.token.asBinder()])
-        assertThat(taskChange.windowingMode)
-            .isEqualTo(WINDOWING_MODE_UNDEFINED) // inherited FULLSCREEN
-        // Does not remove wallpaper activity
-        wct.assertWithoutHop(ReorderPredicate(wallpaperToken, toTop = null))
-    }
-
-    @Test
-    @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
     fun moveFocusedTaskToFullscreen_multipleVisibleTasks_fullscreenOverHome_multiDesksEnabled() {
         val homeTask = setUpHomeTask()
         val task1 = setUpFreeformTask()
@@ -4863,7 +5010,7 @@
                 Mockito.argThat { wct ->
                     return@argThat wct.hierarchyOps[0].isReparent
                 },
-                eq(null),
+                eq(dragToDisplayTransitionHandler),
             )
     }
 
@@ -5057,6 +5204,10 @@
     }
 
     @Test
+    @DisableFlags(
+        Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND,
+        Flags.FLAG_ENABLE_DESKTOP_WINDOWING_PIP,
+    )
     fun enterSplit_multipleVisibleNonMinimizedTasks_removesWallpaperActivity() {
         val task1 = setUpFreeformTask()
         val task2 = setUpFreeformTask()
@@ -5081,6 +5232,24 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun enterSplit_wasInDesk_deactivatesDesk() {
+        val deskId = 5
+        taskRepository.addDesk(displayId = DEFAULT_DISPLAY, deskId = deskId)
+        taskRepository.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = deskId)
+        val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY, deskId = deskId)
+        val transition = Binder()
+        whenever(splitScreenController.requestEnterSplitSelect(eq(task), any(), any(), any()))
+            .thenReturn(transition)
+
+        controller.requestSplit(task, leftOrTop = false)
+
+        verify(desksOrganizer).deactivateDesk(any(), eq(deskId))
+        verify(desksTransitionsObserver)
+            .addPendingTransition(DeskTransition.DeactivateDesk(transition, deskId))
+    }
+
+    @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MULTI_INSTANCE_FEATURES)
     fun newWindow_fromFullscreenOpensInSplit() {
         setUpLandscapeDisplay()
@@ -6240,6 +6409,61 @@
         assertThat(taskRepository.getNumberOfDesks(DEFAULT_DISPLAY)).isEqualTo(currentDeskCount + 1)
     }
 
+    @Test
+    @EnableFlags(
+        Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY,
+        Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER,
+    )
+    fun startLaunchTransition_desktopNotShowing_movesWallpaperToFront() {
+        val launchingTask = createFreeformTask()
+        val wct = WindowContainerTransaction()
+        wct.reorder(launchingTask.token, /* onTop= */ true)
+        whenever(
+                desktopMixedTransitionHandler.startLaunchTransition(
+                    eq(TRANSIT_OPEN),
+                    any(),
+                    anyOrNull(),
+                    anyOrNull(),
+                    anyOrNull(),
+                )
+            )
+            .thenReturn(Binder())
+
+        controller.startLaunchTransition(TRANSIT_OPEN, wct, launchingTaskId = null)
+
+        val latestWct = getLatestDesktopMixedTaskWct(type = TRANSIT_OPEN)
+        val launchingTaskReorderIndex = latestWct.indexOfReorder(launchingTask, toTop = true)
+        val wallpaperReorderIndex = latestWct.indexOfReorder(wallpaperToken, toTop = true)
+        assertThat(launchingTaskReorderIndex).isNotEqualTo(-1)
+        assertThat(wallpaperReorderIndex).isNotEqualTo(-1)
+        assertThat(launchingTaskReorderIndex).isGreaterThan(wallpaperReorderIndex)
+    }
+
+    @Test
+    @EnableFlags(
+        Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY,
+        Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER,
+    )
+    fun startLaunchTransition_desktopShowing_doesNotReorderWallpaper() {
+        val wct = WindowContainerTransaction()
+        whenever(
+                desktopMixedTransitionHandler.startLaunchTransition(
+                    eq(TRANSIT_OPEN),
+                    any(),
+                    anyOrNull(),
+                    anyOrNull(),
+                    anyOrNull(),
+                )
+            )
+            .thenReturn(Binder())
+
+        setUpFreeformTask()
+        controller.startLaunchTransition(TRANSIT_OPEN, wct, launchingTaskId = null)
+
+        val latestWct = getLatestDesktopMixedTaskWct(type = TRANSIT_OPEN)
+        assertNull(latestWct.hierarchyOps.find { op -> op.container == wallpaperToken.asBinder() })
+    }
+
     private class RunOnStartTransitionCallback : ((IBinder) -> Unit) {
         var invocations = 0
             private set
@@ -6378,6 +6602,7 @@
         bounds: Rect? = null,
         active: Boolean = true,
         background: Boolean = false,
+        deskId: Int? = null,
     ): RunningTaskInfo {
         val task = createFreeformTask(displayId, bounds)
         val activityInfo = ActivityInfo()
@@ -6390,7 +6615,11 @@
         } else {
             whenever(shellTaskOrganizer.getRunningTaskInfo(task.taskId)).thenReturn(task)
         }
-        taskRepository.addTask(displayId, task.taskId, isVisible = active)
+        if (deskId != null) {
+            taskRepository.addTaskToDesk(displayId, deskId, task.taskId, isVisible = active)
+        } else {
+            taskRepository.addTask(displayId, task.taskId, isVisible = active)
+        }
         if (!background) {
             runningTasks.add(task)
         }
@@ -6626,11 +6855,18 @@
 }
 
 private fun WindowContainerTransaction.indexOfReorder(
+    token: WindowContainerToken,
+    toTop: Boolean? = null,
+): Int {
+    val hop = hierarchyOps.singleOrNull(ReorderPredicate(token, toTop)) ?: return -1
+    return hierarchyOps.indexOf(hop)
+}
+
+private fun WindowContainerTransaction.indexOfReorder(
     task: RunningTaskInfo,
     toTop: Boolean? = null,
 ): Int {
-    val hop = hierarchyOps.singleOrNull(ReorderPredicate(task.token, toTop)) ?: return -1
-    return hierarchyOps.indexOf(hop)
+    return indexOfReorder(task.token, toTop)
 }
 
 private class ReorderPredicate(val token: WindowContainerToken, val toTop: Boolean? = null) :
@@ -6750,6 +6986,29 @@
     assertThat(op.pendingIntent?.intent?.categories).isEqualTo(intent.categories)
 }
 
+private fun WindowContainerTransaction.assertPendingIntentActivityOptionsLaunchDisplayIdAt(
+    index: Int,
+    displayId: Int,
+) {
+    assertIndexInBounds(index)
+    val op = hierarchyOps[index]
+    if (op.launchOptions != null) {
+        val options = ActivityOptions(op.launchOptions)
+        assertThat(options.launchDisplayId).isEqualTo(displayId)
+    }
+}
+
+private fun WindowContainerTransaction.assertLaunchTask(taskId: Int, windowingMode: Int) {
+    val keyLaunchWindowingMode = "android.activity.windowingMode"
+
+    assertHop { hop ->
+        hop.type == HIERARCHY_OP_TYPE_LAUNCH_TASK &&
+            hop.launchOptions?.getInt(LAUNCH_KEY_TASK_ID) == taskId &&
+            hop.launchOptions?.getInt(keyLaunchWindowingMode, WINDOWING_MODE_UNDEFINED) ==
+                windowingMode
+    }
+}
+
 private fun WindowContainerTransaction.assertLaunchTaskAt(
     index: Int,
     taskId: Int,
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt
index d33209d..62e3c54 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt
@@ -37,7 +37,6 @@
 import com.android.dx.mockito.inline.extended.ExtendedMockito
 import com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn
 import com.android.dx.mockito.inline.extended.StaticMockitoSession
-import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_MINIMIZE_WINDOW
 import com.android.internal.jank.InteractionJankMonitor
 import com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION
 import com.android.wm.shell.ShellTaskOrganizer
@@ -72,8 +71,6 @@
 import org.mockito.Mockito.mock
 import org.mockito.Mockito.spy
 import org.mockito.Mockito.`when`
-import org.mockito.kotlin.eq
-import org.mockito.kotlin.verify
 import org.mockito.quality.Strictness
 
 /**
@@ -521,85 +518,6 @@
     }
 
     @Test
-    fun minimizeTransitionReadyAndFinished_logsJankInstrumentationBeginAndEnd() {
-        desktopTaskRepo.addDesk(displayId = DEFAULT_DISPLAY, deskId = 0)
-        desktopTaskRepo.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0)
-        (1..<MAX_TASK_LIMIT).forEach { _ -> setUpFreeformTask() }
-        val transition = Binder()
-        val task = setUpFreeformTask()
-        addPendingMinimizeChange(transition, taskId = task.taskId)
-
-        callOnTransitionReady(
-            transition,
-            TransitionInfoBuilder(TRANSIT_OPEN).addChange(TRANSIT_TO_BACK, task).build(),
-        )
-
-        desktopTasksLimiter.getTransitionObserver().onTransitionStarting(transition)
-
-        verify(interactionJankMonitor)
-            .begin(any(), eq(mContext), eq(handler), eq(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW))
-
-        desktopTasksLimiter
-            .getTransitionObserver()
-            .onTransitionFinished(transition, /* aborted= */ false)
-
-        verify(interactionJankMonitor).end(eq(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW))
-    }
-
-    @Test
-    fun minimizeTransitionReadyAndAborted_logsJankInstrumentationBeginAndCancel() {
-        desktopTaskRepo.addDesk(displayId = DEFAULT_DISPLAY, deskId = 0)
-        desktopTaskRepo.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0)
-        (1..<MAX_TASK_LIMIT).forEach { _ -> setUpFreeformTask() }
-        val transition = Binder()
-        val task = setUpFreeformTask()
-        addPendingMinimizeChange(transition, taskId = task.taskId)
-
-        callOnTransitionReady(
-            transition,
-            TransitionInfoBuilder(TRANSIT_OPEN).addChange(TRANSIT_TO_BACK, task).build(),
-        )
-
-        desktopTasksLimiter.getTransitionObserver().onTransitionStarting(transition)
-
-        verify(interactionJankMonitor)
-            .begin(any(), eq(mContext), eq(handler), eq(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW))
-
-        desktopTasksLimiter
-            .getTransitionObserver()
-            .onTransitionFinished(transition, /* aborted= */ true)
-
-        verify(interactionJankMonitor).cancel(eq(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW))
-    }
-
-    @Test
-    fun minimizeTransitionReadyAndMerged_logsJankInstrumentationBeginAndEnd() {
-        desktopTaskRepo.addDesk(displayId = DEFAULT_DISPLAY, deskId = 0)
-        desktopTaskRepo.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0)
-        (1..<MAX_TASK_LIMIT).forEach { _ -> setUpFreeformTask() }
-        val mergedTransition = Binder()
-        val newTransition = Binder()
-        val task = setUpFreeformTask()
-        addPendingMinimizeChange(mergedTransition, taskId = task.taskId)
-
-        callOnTransitionReady(
-            mergedTransition,
-            TransitionInfoBuilder(TRANSIT_OPEN).addChange(TRANSIT_TO_BACK, task).build(),
-        )
-
-        desktopTasksLimiter.getTransitionObserver().onTransitionStarting(mergedTransition)
-
-        verify(interactionJankMonitor)
-            .begin(any(), eq(mContext), eq(handler), eq(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW))
-
-        desktopTasksLimiter
-            .getTransitionObserver()
-            .onTransitionMerged(mergedTransition, newTransition)
-
-        verify(interactionJankMonitor).end(eq(CUJ_DESKTOP_MODE_MINIMIZE_WINDOW))
-    }
-
-    @Test
     fun getMinimizingTask_noPendingTransition_returnsNull() {
         val transition = Binder()
 
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTestHelpers.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTestHelpers.kt
index 8b6cafb..c00083b 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTestHelpers.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTestHelpers.kt
@@ -22,6 +22,7 @@
 import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
 import android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN
 import android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW
+import android.content.ComponentName
 import android.graphics.Rect
 import android.view.Display.DEFAULT_DISPLAY
 import com.android.wm.shell.MockToken
@@ -84,4 +85,10 @@
     /** Create a new System Modal task, i.e. a task with only transparent activities. */
     fun createSystemModalTask(displayId: Int = DEFAULT_DISPLAY): RunningTaskInfo =
         createSystemModalTaskBuilder(displayId).build()
+
+    /** Create a new System Modal task with a base Activity. */
+    fun createSystemModalTaskWithBaseActivity() =
+        createSystemModalTask().apply {
+            baseActivity = ComponentName("com.test.dummypackage", "TestClass")
+        }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandlerTest.kt
index 85f6cd3..de55db8 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandlerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandlerTest.kt
@@ -8,6 +8,7 @@
 import android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW
 import android.app.WindowConfiguration.WindowingMode
 import android.graphics.PointF
+import android.graphics.Rect
 import android.os.IBinder
 import android.os.SystemProperties
 import android.testing.AndroidTestingRunner
@@ -36,6 +37,7 @@
 import com.android.wm.shell.splitscreen.SplitScreenController
 import com.android.wm.shell.transition.Transitions
 import com.android.wm.shell.windowdecor.MoveToDesktopAnimator
+import com.google.common.truth.Truth.assertThat
 import java.util.Optional
 import java.util.function.Supplier
 import junit.framework.Assert.assertEquals
@@ -694,6 +696,50 @@
             .cancel(eq(CUJ_DESKTOP_MODE_ENTER_APP_HANDLE_DRAG_HOLD))
     }
 
+    @Test
+    fun getAnimationFraction_returnsFraction() {
+        val fraction =
+            SpringDragToDesktopTransitionHandler.getAnimationFraction(
+                startBounds = Rect(0, 0, 0, 0),
+                endBounds = Rect(0, 0, 10, 10),
+                animBounds = Rect(0, 0, 5, 5),
+            )
+        assertThat(fraction).isWithin(TOLERANCE).of(0.5f)
+    }
+
+    @Test
+    fun getAnimationFraction_animBoundsSameAsEnd_returnsOne() {
+        val fraction =
+            SpringDragToDesktopTransitionHandler.getAnimationFraction(
+                startBounds = Rect(0, 0, 0, 0),
+                endBounds = Rect(0, 0, 10, 10),
+                animBounds = Rect(0, 0, 10, 10),
+            )
+        assertThat(fraction).isWithin(TOLERANCE).of(1f)
+    }
+
+    @Test
+    fun getAnimationFraction_startAndEndBoundsSameWidth_usesHeight() {
+        val fraction =
+            SpringDragToDesktopTransitionHandler.getAnimationFraction(
+                startBounds = Rect(0, 0, 10, 10),
+                endBounds = Rect(0, 0, 10, 30),
+                animBounds = Rect(0, 0, 10, 25),
+            )
+        assertThat(fraction).isWithin(TOLERANCE).of(0.75f)
+    }
+
+    @Test
+    fun getAnimationFraction_startAndEndBoundsSame_returnsZero() {
+        val fraction =
+            SpringDragToDesktopTransitionHandler.getAnimationFraction(
+                startBounds = Rect(0, 0, 10, 10),
+                endBounds = Rect(0, 0, 10, 10),
+                animBounds = Rect(0, 0, 10, 25),
+            )
+        assertThat(fraction).isWithin(TOLERANCE).of(0f)
+    }
+
     private fun startDrag(
         handler: DragToDesktopTransitionHandler,
         task: RunningTaskInfo = createTask(),
@@ -826,4 +872,8 @@
 
     private fun systemPropertiesKey(name: String) =
         "${SpringDragToDesktopTransitionHandler.SYSTEM_PROPERTIES_GROUP}.$name"
+
+    private companion object {
+        private const val TOLERANCE = 1e-5f
+    }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DragToDisplayTransitionHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DragToDisplayTransitionHandlerTest.kt
new file mode 100644
index 0000000..51c3029
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DragToDisplayTransitionHandlerTest.kt
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2025 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.wm.shell.desktopmode
+
+import android.graphics.Point
+import android.graphics.Rect
+import android.os.IBinder
+import android.view.SurfaceControl
+import android.window.TransitionInfo
+import android.window.TransitionRequestInfo
+import com.android.wm.shell.transition.Transitions
+import org.junit.Before
+import org.junit.Test
+import org.mockito.Mockito.verify
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.whenever
+
+/**
+ * Test class for {@link DragToDisplayTransitionHandler}
+ *
+ * Usage: atest WMShellUnitTests:DragToDisplayTransitionHandlerTest
+ */
+class DragToDisplayTransitionHandlerTest {
+    private lateinit var handler: DragToDisplayTransitionHandler
+    private val mockTransition: IBinder = mock()
+    private val mockRequestInfo: TransitionRequestInfo = mock()
+    private val mockTransitionInfo: TransitionInfo = mock()
+    private val mockStartTransaction: SurfaceControl.Transaction = mock()
+    private val mockFinishTransaction: SurfaceControl.Transaction = mock()
+    private val mockFinishCallback: Transitions.TransitionFinishCallback = mock()
+
+    @Before
+    fun setUp() {
+        handler = DragToDisplayTransitionHandler()
+        whenever(mockStartTransaction.setWindowCrop(any(), any(), any()))
+            .thenReturn(mockStartTransaction)
+        whenever(mockFinishTransaction.setWindowCrop(any(), any(), any()))
+            .thenReturn(mockFinishTransaction)
+    }
+
+    @Test
+    fun handleRequest_anyRequest_returnsNull() {
+        val result = handler.handleRequest(mockTransition, mockRequestInfo)
+        assert(result == null)
+    }
+
+    @Test
+    fun startAnimation_verifyTransformationsApplied() {
+        val mockChange1 = mock<TransitionInfo.Change>()
+        val leash1 = mock<SurfaceControl>()
+        val endBounds1 = Rect(0, 0, 50, 50)
+        val endPosition1 = Point(5, 5)
+
+        whenever(mockChange1.leash).doReturn(leash1)
+        whenever(mockChange1.endAbsBounds).doReturn(endBounds1)
+        whenever(mockChange1.endRelOffset).doReturn(endPosition1)
+
+        val mockChange2 = mock<TransitionInfo.Change>()
+        val leash2 = mock<SurfaceControl>()
+        val endBounds2 = Rect(100, 100, 200, 150)
+        val endPosition2 = Point(15, 25)
+
+        whenever(mockChange2.leash).doReturn(leash2)
+        whenever(mockChange2.endAbsBounds).doReturn(endBounds2)
+        whenever(mockChange2.endRelOffset).doReturn(endPosition2)
+
+        whenever(mockTransitionInfo.changes).doReturn(listOf(mockChange1, mockChange2))
+
+        handler.startAnimation(
+            mockTransition,
+            mockTransitionInfo,
+            mockStartTransaction,
+            mockFinishTransaction,
+            mockFinishCallback,
+        )
+
+        verify(mockStartTransaction).setWindowCrop(leash1, endBounds1.width(), endBounds1.height())
+        verify(mockStartTransaction)
+            .setPosition(leash1, endPosition1.x.toFloat(), endPosition1.y.toFloat())
+        verify(mockStartTransaction).setWindowCrop(leash2, endBounds2.width(), endBounds2.height())
+        verify(mockStartTransaction)
+            .setPosition(leash2, endPosition2.x.toFloat(), endPosition2.y.toFloat())
+        verify(mockStartTransaction).apply()
+        verify(mockFinishCallback).onTransitionFinished(null)
+    }
+}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/VisualIndicatorViewContainerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/VisualIndicatorViewContainerTest.kt
index 79b0f1c..4c8cb38 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/VisualIndicatorViewContainerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/VisualIndicatorViewContainerTest.kt
@@ -38,6 +38,7 @@
 import com.android.wm.shell.common.SyncTransactionQueue
 import com.android.wm.shell.shared.bubbles.BubbleDropTargetBoundsProvider
 import com.android.wm.shell.windowdecor.WindowDecoration.SurfaceControlViewHostFactory
+import com.android.wm.shell.windowdecor.tiling.SnapEventHandler
 import com.google.common.truth.Truth.assertThat
 import kotlin.test.Test
 import org.junit.Before
@@ -71,6 +72,7 @@
     @Mock private lateinit var mockSurfaceControlViewHostFactory: SurfaceControlViewHostFactory
     @Mock private lateinit var mockBackground: LayerDrawable
     @Mock private lateinit var bubbleDropTargetBoundsProvider: BubbleDropTargetBoundsProvider
+    @Mock private lateinit var snapEventHandler: SnapEventHandler
     private val taskInfo: RunningTaskInfo = createTaskInfo()
     private val mainExecutor = TestShellExecutor()
     private val desktopExecutor = TestShellExecutor()
@@ -81,6 +83,8 @@
         whenever(displayLayout.getStableBounds(any())).thenAnswer { i ->
             (i.arguments.first() as Rect).set(DISPLAY_BOUNDS)
         }
+        whenever(snapEventHandler.getRightSnapBoundsIfTiled(any())).thenReturn(Rect(1, 2, 3, 4))
+        whenever(snapEventHandler.getLeftSnapBoundsIfTiled(any())).thenReturn(Rect(5, 6, 7, 8))
         whenever(mockSurfaceControlViewHostFactory.create(any(), any(), any()))
             .thenReturn(mock(SurfaceControlViewHost::class.java))
     }
@@ -117,7 +121,7 @@
             DesktopModeVisualIndicator.IndicatorType.TO_FULLSCREEN_INDICATOR,
         )
         desktopExecutor.flushAll()
-        verify(spyViewContainer).fadeInIndicator(any(), any())
+        verify(spyViewContainer).fadeInIndicator(any(), any(), any(), any())
     }
 
     @Test
@@ -135,6 +139,8 @@
                 any(),
                 eq(DesktopModeVisualIndicator.IndicatorType.TO_FULLSCREEN_INDICATOR),
                 anyOrNull(),
+                eq(taskInfo.displayId),
+                eq(snapEventHandler),
             )
     }
 
@@ -167,6 +173,8 @@
                     DesktopModeVisualIndicator.IndicatorType.TO_FULLSCREEN_INDICATOR,
                     displayLayout,
                     bubbleDropTargetBoundsProvider,
+                    taskInfo.displayId,
+                    snapEventHandler,
                 )
             }
         assertThat(animator?.indicatorStartBounds).isEqualTo(Rect(15, 15, 985, 985))
@@ -174,6 +182,46 @@
     }
 
     @Test
+    fun testFadeInBoundsCalculationForLeftSnap() {
+        val spyIndicator = setupSpyViewContainer()
+        val animator =
+            spyIndicator.indicatorView?.let {
+                VisualIndicatorViewContainer.VisualIndicatorAnimator.fadeBoundsIn(
+                    it,
+                    DesktopModeVisualIndicator.IndicatorType.TO_SPLIT_LEFT_INDICATOR,
+                    displayLayout,
+                    bubbleDropTargetBoundsProvider,
+                    taskInfo.displayId,
+                    snapEventHandler,
+                )
+            }
+
+        // Right bound is the same as whatever right bound snapEventHandler returned minus padding,
+        // in this case, the right bound for the left app is 7.
+        assertThat(animator?.indicatorEndBounds).isEqualTo(Rect(0, 0, 7, 1000))
+    }
+
+    @Test
+    fun testFadeInBoundsCalculationForRightSnap() {
+        val spyIndicator = setupSpyViewContainer()
+        val animator =
+            spyIndicator.indicatorView?.let {
+                VisualIndicatorViewContainer.VisualIndicatorAnimator.fadeBoundsIn(
+                    it,
+                    DesktopModeVisualIndicator.IndicatorType.TO_SPLIT_RIGHT_INDICATOR,
+                    displayLayout,
+                    bubbleDropTargetBoundsProvider,
+                    taskInfo.displayId,
+                    snapEventHandler,
+                )
+            }
+
+        // Left bound is the same as whatever left bound snapEventHandler returned plus padding
+        // in this case, the left bound of the right app is 1.
+        assertThat(animator?.indicatorEndBounds).isEqualTo(Rect(1, 0, 1000, 1000))
+    }
+
+    @Test
     fun testFadeOutBoundsCalculation() {
         val spyIndicator = setupSpyViewContainer()
         val animator =
@@ -183,6 +231,8 @@
                     DesktopModeVisualIndicator.IndicatorType.TO_FULLSCREEN_INDICATOR,
                     displayLayout,
                     bubbleDropTargetBoundsProvider,
+                    taskInfo.displayId,
+                    snapEventHandler,
                 )
             }
         assertThat(animator?.indicatorStartBounds).isEqualTo(Rect(0, 0, 1000, 1000))
@@ -199,6 +249,8 @@
                 DesktopModeVisualIndicator.IndicatorType.TO_FULLSCREEN_INDICATOR,
                 DesktopModeVisualIndicator.IndicatorType.TO_SPLIT_LEFT_INDICATOR,
                 bubbleDropTargetBoundsProvider,
+                taskInfo.displayId,
+                snapEventHandler,
             )
         // Test desktop to split-right bounds.
         animator =
@@ -208,6 +260,8 @@
                 DesktopModeVisualIndicator.IndicatorType.TO_DESKTOP_INDICATOR,
                 DesktopModeVisualIndicator.IndicatorType.TO_SPLIT_RIGHT_INDICATOR,
                 bubbleDropTargetBoundsProvider,
+                taskInfo.displayId,
+                snapEventHandler,
             )
     }
 
@@ -220,6 +274,7 @@
                 syncQueue,
                 mockSurfaceControlViewHostFactory,
                 bubbleDropTargetBoundsProvider,
+                snapEventHandler,
             )
         viewContainer.createView(
             context,
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/compatui/SystemModalsTransitionHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/compatui/SystemModalsTransitionHandlerTest.kt
index 9cb2a05..143d232 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/compatui/SystemModalsTransitionHandlerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/compatui/SystemModalsTransitionHandlerTest.kt
@@ -16,8 +16,10 @@
 
 package com.android.wm.shell.desktopmode.compatui
 
+import android.Manifest.permission.SYSTEM_ALERT_WINDOW
 import android.content.ComponentName
 import android.content.Intent
+import android.content.pm.PackageInfo
 import android.content.pm.PackageManager
 import android.os.Binder
 import android.testing.AndroidTestingRunner
@@ -34,6 +36,7 @@
 import com.android.wm.shell.desktopmode.DesktopTestHelpers.createFullscreenTaskBuilder
 import com.android.wm.shell.desktopmode.DesktopTestHelpers.createSystemModalTask
 import com.android.wm.shell.desktopmode.DesktopTestHelpers.createSystemModalTaskBuilder
+import com.android.wm.shell.desktopmode.DesktopTestHelpers.createSystemModalTaskWithBaseActivity
 import com.android.wm.shell.desktopmode.DesktopUserRepositories
 import com.android.wm.shell.desktopmode.DesktopWallpaperActivity
 import com.android.wm.shell.shared.desktopmode.DesktopModeCompatPolicy
@@ -46,7 +49,9 @@
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.ArgumentMatchers.anyInt
+import org.mockito.ArgumentMatchers.anyString
 import org.mockito.kotlin.any
+import org.mockito.kotlin.eq
 import org.mockito.kotlin.mock
 import org.mockito.kotlin.spy
 import org.mockito.kotlin.verify
@@ -85,6 +90,7 @@
         whenever(packageManager.getHomeActivities(ArrayList())).thenReturn(componentName)
         desktopModeCompatPolicy = DesktopModeCompatPolicy(spyContext)
         transitionHandler = createTransitionHandler()
+        allowOverlayPermission(arrayOf(SYSTEM_ALERT_WINDOW))
     }
 
     private fun createTransitionHandler() =
@@ -108,7 +114,7 @@
         whenever(desktopUserRepositories.current.getVisibleTaskCount(anyInt())).thenReturn(1)
         val info =
             TransitionInfoBuilder(TRANSIT_OPEN)
-                .addChange(TRANSIT_OPEN, createSystemModalTask())
+                .addChange(TRANSIT_OPEN, createSystemModalTaskWithBaseActivity())
                 .build()
 
         assertThat(transitionHandler.startAnimation(Binder(), info, startT, finishT) {}).isTrue()
@@ -118,7 +124,7 @@
     fun startAnimation_launchingSystemModal_animates() {
         val info =
             TransitionInfoBuilder(TRANSIT_OPEN)
-                .addChange(TRANSIT_OPEN, createSystemModalTask())
+                .addChange(TRANSIT_OPEN, createSystemModalTaskWithBaseActivity())
                 .build()
 
         assertThat(transitionHandler.startAnimation(Binder(), info, startT, finishT) {}).isTrue()
@@ -161,7 +167,7 @@
     fun startAnimation_closingSystemModal_animates() {
         val info =
             TransitionInfoBuilder(TRANSIT_CLOSE)
-                .addChange(TRANSIT_CLOSE, createSystemModalTask())
+                .addChange(TRANSIT_CLOSE, createSystemModalTaskWithBaseActivity())
                 .build()
 
         assertThat(transitionHandler.startAnimation(Binder(), info, startT, finishT) {}).isTrue()
@@ -179,7 +185,7 @@
 
     @Test
     fun startAnimation_closingPreviouslyLaunchedSystemModal_animates() {
-        val systemModalTask = createSystemModalTask()
+        val systemModalTask = createSystemModalTaskWithBaseActivity()
         val nonModalSystemModalTask =
             createFullscreenTaskBuilder().setTaskId(systemModalTask.taskId).build()
         val launchInfo =
@@ -193,4 +199,11 @@
         assertThat(transitionHandler.startAnimation(Binder(), closeInfo, startT, finishT) {})
             .isTrue()
     }
+
+    fun allowOverlayPermission(permissions: Array<String>) {
+        val packageInfo = mock<PackageInfo>()
+        packageInfo.requestedPermissions = permissions
+        whenever(packageManager.getPackageInfo(anyString(), eq(PackageManager.GET_PERMISSIONS)))
+            .thenReturn(packageInfo)
+    }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/multidesks/DesksTransitionObserverTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/multidesks/DesksTransitionObserverTest.kt
index 4dcf669..409ca57 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/multidesks/DesksTransitionObserverTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/multidesks/DesksTransitionObserverTest.kt
@@ -181,6 +181,23 @@
 
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun onTransitionReady_activateDesk_noTransitChange_updatesRepository() {
+        val transition = Binder()
+        val activateTransition =
+            DeskTransition.ActivateDesk(transition, displayId = DEFAULT_DISPLAY, deskId = 5)
+        repository.addDesk(DEFAULT_DISPLAY, deskId = 5)
+
+        observer.addPendingTransition(activateTransition)
+        observer.onTransitionReady(
+            transition = transition,
+            info = TransitionInfo(TRANSIT_TO_FRONT, /* flags= */ 0), // no changes.
+        )
+
+        assertThat(repository.getActiveDeskId(DEFAULT_DISPLAY)).isEqualTo(5)
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
     fun onTransitionReady_deactivateDesk_updatesRepository() {
         val transition = Binder()
         val deskChange = Change(mock(), mock())
@@ -244,4 +261,28 @@
 
         assertThat(repository.getActiveDeskId(DEFAULT_DISPLAY)).isNull()
     }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    fun onTransitionReady_twoPendingTransitions_handlesBoth() {
+        val transition = Binder()
+        // Active one desk and deactivate another in different displays, such as in some
+        // move-to-next-display CUJs.
+        repository.addDesk(displayId = 0, deskId = 1)
+        repository.addDesk(displayId = 1, deskId = 2)
+        repository.setActiveDesk(displayId = 0, deskId = 1)
+        repository.setDeskInactive(2)
+        val activateTransition = DeskTransition.ActivateDesk(transition, displayId = 1, deskId = 2)
+        val deactivateTransition = DeskTransition.DeactivateDesk(transition, deskId = 1)
+
+        observer.addPendingTransition(activateTransition)
+        observer.addPendingTransition(deactivateTransition)
+        observer.onTransitionReady(
+            transition = transition,
+            info = TransitionInfo(TRANSIT_CHANGE, /* flags= */ 0),
+        )
+
+        assertThat(repository.getActiveDeskId(displayId = 0)).isNull()
+        assertThat(repository.getActiveDeskId(displayId = 1)).isEqualTo(2)
+    }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/multidesks/RootTaskDesksOrganizerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/multidesks/RootTaskDesksOrganizerTest.kt
index 8b10ca1..96b85ad 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/multidesks/RootTaskDesksOrganizerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/multidesks/RootTaskDesksOrganizerTest.kt
@@ -22,6 +22,7 @@
 import android.view.WindowManager.TRANSIT_TO_FRONT
 import android.window.TransitionInfo
 import android.window.WindowContainerTransaction
+import android.window.WindowContainerTransaction.Change
 import android.window.WindowContainerTransaction.HierarchyOp
 import android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_SET_LAUNCH_ROOT
 import androidx.test.filters.SmallTest
@@ -29,15 +30,19 @@
 import com.android.wm.shell.ShellTestCase
 import com.android.wm.shell.TestShellExecutor
 import com.android.wm.shell.desktopmode.DesktopTestHelpers.createFreeformTask
+import com.android.wm.shell.desktopmode.multidesks.RootTaskDesksOrganizer.DeskMinimizationRoot
 import com.android.wm.shell.desktopmode.multidesks.RootTaskDesksOrganizer.DeskRoot
 import com.android.wm.shell.sysui.ShellCommandHandler
 import com.android.wm.shell.sysui.ShellInit
 import com.google.common.truth.Truth.assertThat
+import kotlin.test.assertNotNull
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertThrows
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
+import org.mockito.Mockito.verify
+import org.mockito.kotlin.argThat
 import org.mockito.kotlin.mock
 
 /**
@@ -75,6 +80,43 @@
     }
 
     @Test
+    fun testCreateDesk_createsMinimizationRoot() {
+        val callback = FakeOnCreateCallback()
+        organizer.createDesk(Display.DEFAULT_DISPLAY, callback)
+        val freeformRoot = createFreeformTask().apply { parentTaskId = -1 }
+        organizer.onTaskAppeared(freeformRoot, SurfaceControl())
+
+        val minimizationRootTask = createFreeformTask().apply { parentTaskId = -1 }
+        organizer.onTaskAppeared(minimizationRootTask, SurfaceControl())
+
+        val minimizationRoot = organizer.deskMinimizationRootsByDeskId[freeformRoot.taskId]
+        assertNotNull(minimizationRoot)
+        assertThat(minimizationRoot.deskId).isEqualTo(freeformRoot.taskId)
+        assertThat(minimizationRoot.rootId).isEqualTo(minimizationRootTask.taskId)
+    }
+
+    @Test
+    fun testCreateMinimizationRoot_marksHidden() {
+        organizer.createDesk(Display.DEFAULT_DISPLAY, FakeOnCreateCallback())
+        val freeformRoot = createFreeformTask().apply { parentTaskId = -1 }
+        organizer.onTaskAppeared(freeformRoot, SurfaceControl())
+
+        val minimizationRootTask = createFreeformTask().apply { parentTaskId = -1 }
+        organizer.onTaskAppeared(minimizationRootTask, SurfaceControl())
+
+        verify(mockShellTaskOrganizer)
+            .applyTransaction(
+                argThat { wct ->
+                    wct.changes.any { change ->
+                        change.key == minimizationRootTask.token.asBinder() &&
+                            (change.value.changeMask and Change.CHANGE_HIDDEN != 0) &&
+                            change.value.hidden
+                    }
+                }
+            )
+    }
+
+    @Test
     fun testOnTaskAppeared_withoutRequest_throws() {
         val freeformRoot = createFreeformTask().apply { parentTaskId = -1 }
 
@@ -105,57 +147,122 @@
     }
 
     @Test
+    fun testOnTaskAppeared_duplicateMinimizedRoot_throws() {
+        organizer.createDesk(Display.DEFAULT_DISPLAY, FakeOnCreateCallback())
+        val freeformRoot = createFreeformTask().apply { parentTaskId = -1 }
+        val minimizationRootTask = createFreeformTask().apply { parentTaskId = -1 }
+        organizer.onTaskAppeared(freeformRoot, SurfaceControl())
+        organizer.onTaskAppeared(minimizationRootTask, SurfaceControl())
+
+        assertThrows(Exception::class.java) {
+            organizer.onTaskAppeared(minimizationRootTask, SurfaceControl())
+        }
+    }
+
+    @Test
     fun testOnTaskVanished_removesRoot() {
         val desk = createDesk()
 
-        organizer.onTaskVanished(desk.taskInfo)
+        organizer.onTaskVanished(desk.deskRoot.taskInfo)
 
-        assertThat(organizer.roots.contains(desk.deskId)).isFalse()
+        assertThat(organizer.deskRootsByDeskId.contains(desk.deskRoot.deskId)).isFalse()
+    }
+
+    @Test
+    fun testOnTaskVanished_removesMinimizedRoot() {
+        val desk = createDesk()
+
+        organizer.onTaskVanished(desk.deskRoot.taskInfo)
+        organizer.onTaskVanished(desk.minimizationRoot.taskInfo)
+
+        assertThat(organizer.deskMinimizationRootsByDeskId.contains(desk.deskRoot.deskId)).isFalse()
     }
 
     @Test
     fun testDesktopWindowAppearsInDesk() {
         val desk = createDesk()
-        val child = createFreeformTask().apply { parentTaskId = desk.deskId }
+        val child = createFreeformTask().apply { parentTaskId = desk.deskRoot.deskId }
 
         organizer.onTaskAppeared(child, SurfaceControl())
 
-        assertThat(desk.children).contains(child.taskId)
+        assertThat(desk.deskRoot.children).contains(child.taskId)
+    }
+
+    @Test
+    fun testDesktopWindowAppearsInDeskMinimizationRoot() {
+        val desk = createDesk()
+        val child = createFreeformTask().apply { parentTaskId = desk.minimizationRoot.rootId }
+
+        organizer.onTaskAppeared(child, SurfaceControl())
+
+        assertThat(desk.minimizationRoot.children).contains(child.taskId)
+    }
+
+    @Test
+    fun testDesktopWindowMovesToMinimizationRoot() {
+        val desk = createDesk()
+        val child = createFreeformTask().apply { parentTaskId = desk.deskRoot.deskId }
+        organizer.onTaskAppeared(child, SurfaceControl())
+
+        child.parentTaskId = desk.minimizationRoot.rootId
+        organizer.onTaskInfoChanged(child)
+
+        assertThat(desk.deskRoot.children).doesNotContain(child.taskId)
+        assertThat(desk.minimizationRoot.children).contains(child.taskId)
     }
 
     @Test
     fun testDesktopWindowDisappearsFromDesk() {
         val desk = createDesk()
-        val child = createFreeformTask().apply { parentTaskId = desk.deskId }
+        val child = createFreeformTask().apply { parentTaskId = desk.deskRoot.deskId }
 
         organizer.onTaskAppeared(child, SurfaceControl())
         organizer.onTaskVanished(child)
 
-        assertThat(desk.children).doesNotContain(child.taskId)
+        assertThat(desk.deskRoot.children).doesNotContain(child.taskId)
     }
 
     @Test
-    fun testRemoveDesk() {
+    fun testDesktopWindowDisappearsFromDeskMinimizationRoot() {
+        val desk = createDesk()
+        val child = createFreeformTask().apply { parentTaskId = desk.minimizationRoot.rootId }
+
+        organizer.onTaskAppeared(child, SurfaceControl())
+        organizer.onTaskVanished(child)
+
+        assertThat(desk.minimizationRoot.children).doesNotContain(child.taskId)
+    }
+
+    @Test
+    fun testRemoveDesk_removesDeskRoot() {
         val desk = createDesk()
 
         val wct = WindowContainerTransaction()
-        organizer.removeDesk(wct, desk.deskId)
+        organizer.removeDesk(wct, desk.deskRoot.deskId)
 
         assertThat(
                 wct.hierarchyOps.any { hop ->
                     hop.type == HierarchyOp.HIERARCHY_OP_TYPE_REMOVE_ROOT_TASK &&
-                        hop.container == desk.taskInfo.token.asBinder()
+                        hop.container == desk.deskRoot.token.asBinder()
                 }
             )
             .isTrue()
     }
 
     @Test
-    fun testRemoveDesk_didNotExist_throws() {
-        val freeformRoot = createFreeformTask().apply { parentTaskId = -1 }
+    fun testRemoveDesk_removesMinimizationRoot() {
+        val desk = createDesk()
 
         val wct = WindowContainerTransaction()
-        assertThrows(Exception::class.java) { organizer.removeDesk(wct, freeformRoot.taskId) }
+        organizer.removeDesk(wct, desk.deskRoot.deskId)
+
+        assertThat(
+                wct.hierarchyOps.any { hop ->
+                    hop.type == HierarchyOp.HIERARCHY_OP_TYPE_REMOVE_ROOT_TASK &&
+                        hop.container == desk.minimizationRoot.token.asBinder()
+                }
+            )
+            .isTrue()
     }
 
     @Test
@@ -163,20 +270,20 @@
         val desk = createDesk()
 
         val wct = WindowContainerTransaction()
-        organizer.activateDesk(wct, desk.deskId)
+        organizer.activateDesk(wct, desk.deskRoot.deskId)
 
         assertThat(
                 wct.hierarchyOps.any { hop ->
                     hop.type == HierarchyOp.HIERARCHY_OP_TYPE_REORDER &&
                         hop.toTop &&
-                        hop.container == desk.taskInfo.token.asBinder()
+                        hop.container == desk.deskRoot.taskInfo.token.asBinder()
                 }
             )
             .isTrue()
         assertThat(
                 wct.hierarchyOps.any { hop ->
                     hop.type == HierarchyOp.HIERARCHY_OP_TYPE_SET_LAUNCH_ROOT &&
-                        hop.container == desk.taskInfo.token.asBinder()
+                        hop.container == desk.deskRoot.taskInfo.token.asBinder()
                 }
             )
             .isTrue()
@@ -196,14 +303,14 @@
 
         val desktopTask = createFreeformTask().apply { parentTaskId = -1 }
         val wct = WindowContainerTransaction()
-        organizer.moveTaskToDesk(wct, desk.deskId, desktopTask)
+        organizer.moveTaskToDesk(wct, desk.deskRoot.deskId, desktopTask)
 
         assertThat(
                 wct.hierarchyOps.any { hop ->
                     hop.isReparent &&
                         hop.toTop &&
                         hop.container == desktopTask.token.asBinder() &&
-                        hop.newParent == desk.taskInfo.token.asBinder()
+                        hop.newParent == desk.deskRoot.taskInfo.token.asBinder()
                 }
             )
             .isTrue()
@@ -231,13 +338,26 @@
     fun testGetDeskAtEnd() {
         val desk = createDesk()
 
-        val task = createFreeformTask().apply { parentTaskId = desk.deskId }
+        val task = createFreeformTask().apply { parentTaskId = desk.deskRoot.deskId }
         val endDesk =
             organizer.getDeskAtEnd(
                 TransitionInfo.Change(task.token, SurfaceControl()).apply { taskInfo = task }
             )
 
-        assertThat(endDesk).isEqualTo(desk.deskId)
+        assertThat(endDesk).isEqualTo(desk.deskRoot.deskId)
+    }
+
+    @Test
+    fun testGetDeskAtEnd_inMinimizationRoot() {
+        val desk = createDesk()
+
+        val task = createFreeformTask().apply { parentTaskId = desk.minimizationRoot.rootId }
+        val endDesk =
+            organizer.getDeskAtEnd(
+                TransitionInfo.Change(task.token, SurfaceControl()).apply { taskInfo = task }
+            )
+
+        assertThat(endDesk).isEqualTo(desk.deskRoot.deskId)
     }
 
     @Test
@@ -264,14 +384,14 @@
     fun deactivateDesk_clearsLaunchRoot() {
         val wct = WindowContainerTransaction()
         val desk = createDesk()
-        organizer.activateDesk(wct, desk.deskId)
+        organizer.activateDesk(wct, desk.deskRoot.deskId)
 
-        organizer.deactivateDesk(wct, desk.deskId)
+        organizer.deactivateDesk(wct, desk.deskRoot.deskId)
 
         assertThat(
                 wct.hierarchyOps.any { hop ->
                     hop.type == HIERARCHY_OP_TYPE_SET_LAUNCH_ROOT &&
-                        hop.container == desk.taskInfo.token.asBinder() &&
+                        hop.container == desk.deskRoot.taskInfo.token.asBinder() &&
                         hop.windowingModes == null &&
                         hop.activityTypes == null
                 }
@@ -280,25 +400,129 @@
     }
 
     @Test
-    fun isDeskChange() {
+    fun isDeskChange_forDeskId() {
         val desk = createDesk()
 
         assertThat(
                 organizer.isDeskChange(
-                    TransitionInfo.Change(desk.taskInfo.token, desk.leash).apply {
-                        taskInfo = desk.taskInfo
+                    TransitionInfo.Change(desk.deskRoot.taskInfo.token, desk.deskRoot.leash).apply {
+                        taskInfo = desk.deskRoot.taskInfo
                     },
-                    desk.deskId,
+                    desk.deskRoot.deskId,
                 )
             )
             .isTrue()
     }
 
-    private fun createDesk(): DeskRoot {
+    @Test
+    fun isDeskChange_forDeskId_inMinimizationRoot() {
+        val desk = createDesk()
+
+        assertThat(
+                organizer.isDeskChange(
+                    change =
+                        TransitionInfo.Change(
+                                desk.minimizationRoot.token,
+                                desk.minimizationRoot.leash,
+                            )
+                            .apply { taskInfo = desk.minimizationRoot.taskInfo },
+                    deskId = desk.deskRoot.deskId,
+                )
+            )
+            .isTrue()
+    }
+
+    @Test
+    fun isDeskChange_anyDesk() {
+        val desk = createDesk()
+
+        assertThat(
+                organizer.isDeskChange(
+                    change =
+                        TransitionInfo.Change(desk.deskRoot.taskInfo.token, desk.deskRoot.leash)
+                            .apply { taskInfo = desk.deskRoot.taskInfo }
+                )
+            )
+            .isTrue()
+    }
+
+    @Test
+    fun isDeskChange_anyDesk_inMinimizationRoot() {
+        val desk = createDesk()
+
+        assertThat(
+                organizer.isDeskChange(
+                    change =
+                        TransitionInfo.Change(
+                                desk.minimizationRoot.taskInfo.token,
+                                desk.minimizationRoot.leash,
+                            )
+                            .apply { taskInfo = desk.minimizationRoot.taskInfo }
+                )
+            )
+            .isTrue()
+    }
+
+    @Test
+    fun minimizeTask() {
+        val desk = createDesk()
+        val task = createFreeformTask().apply { parentTaskId = desk.deskRoot.deskId }
+        val wct = WindowContainerTransaction()
+        organizer.moveTaskToDesk(wct, desk.deskRoot.deskId, task)
+        organizer.onTaskAppeared(task, SurfaceControl())
+
+        organizer.minimizeTask(wct, deskId = desk.deskRoot.deskId, task)
+
+        assertThat(
+                wct.hierarchyOps.any { hop ->
+                    hop.isReparent &&
+                        hop.container == task.token.asBinder() &&
+                        hop.newParent == desk.minimizationRoot.token.asBinder()
+                }
+            )
+            .isTrue()
+    }
+
+    @Test
+    fun minimizeTask_alreadyMinimized_noOp() {
+        val desk = createDesk()
+        val task = createFreeformTask().apply { parentTaskId = desk.minimizationRoot.rootId }
+        val wct = WindowContainerTransaction()
+        organizer.onTaskAppeared(task, SurfaceControl())
+
+        organizer.minimizeTask(wct, deskId = desk.deskRoot.deskId, task)
+
+        assertThat(wct.isEmpty).isTrue()
+    }
+
+    @Test
+    fun minimizeTask_inDifferentDesk_noOp() {
+        val desk = createDesk()
+        val otherDesk = createDesk()
+        val task = createFreeformTask().apply { parentTaskId = otherDesk.deskRoot.deskId }
+        val wct = WindowContainerTransaction()
+        organizer.onTaskAppeared(task, SurfaceControl())
+
+        organizer.minimizeTask(wct, deskId = desk.deskRoot.deskId, task)
+
+        assertThat(wct.isEmpty).isTrue()
+    }
+
+    private data class DeskRoots(
+        val deskRoot: DeskRoot,
+        val minimizationRoot: DeskMinimizationRoot,
+    )
+
+    private fun createDesk(): DeskRoots {
         organizer.createDesk(Display.DEFAULT_DISPLAY, FakeOnCreateCallback())
         val freeformRoot = createFreeformTask().apply { parentTaskId = -1 }
         organizer.onTaskAppeared(freeformRoot, SurfaceControl())
-        return organizer.roots[freeformRoot.taskId]
+        val minimizationRoot = createFreeformTask().apply { parentTaskId = -1 }
+        organizer.onTaskAppeared(minimizationRoot, SurfaceControl())
+        return DeskRoots(
+            organizer.deskRootsByDeskId[freeformRoot.taskId],
+            checkNotNull(organizer.deskMinimizationRootsByDeskId[freeformRoot.taskId]),
+        )
     }
 
     private class FakeOnCreateCallback : DesksOrganizer.OnCreateCallback {
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipTaskOrganizerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipTaskOrganizerTest.java
index 2668823..c6a0fc3 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipTaskOrganizerTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipTaskOrganizerTest.java
@@ -164,10 +164,12 @@
 
     @Test
     public void startSwipePipToHome_updatesOverrideMinSize() {
-        final Size minSize = new Size(400, 320);
+        final Rational aspectRatio = new Rational(2, 1);
+        final Size defaultSize = mSizeSpecSource.getDefaultSize(aspectRatio.floatValue());
+        final Size minSize = new Size(defaultSize.getWidth() / 2, defaultSize.getHeight() / 2);
 
         mPipTaskOrganizer.startSwipePipToHome(mComponent1, createActivityInfo(minSize),
-                createPipParams(null));
+                createPipParams(aspectRatio));
 
         assertEquals(minSize, mPipBoundsState.getOverrideMinSize());
     }
@@ -192,10 +194,12 @@
 
     @Test
     public void onTaskAppeared_updatesOverrideMinSize() {
-        final Size minSize = new Size(400, 320);
+        final Rational aspectRatio = new Rational(2, 1);
+        final Size defaultSize = mSizeSpecSource.getDefaultSize(aspectRatio.floatValue());
+        final Size minSize = new Size(defaultSize.getWidth() / 2, defaultSize.getHeight() / 2);
 
         mPipTaskOrganizer.onTaskAppeared(
-                createTaskInfo(mComponent1, createPipParams(null), minSize),
+                createTaskInfo(mComponent1, createPipParams(aspectRatio), minSize),
                 mock(SurfaceControl.class));
 
         assertEquals(minSize, mPipBoundsState.getOverrideMinSize());
@@ -248,13 +252,15 @@
 
     @Test
     public void onTaskInfoChanged_inPip_updatesOverrideMinSize() {
+        final Rational aspectRatio = new Rational(2, 1);
+        final Size defaultSize = mSizeSpecSource.getDefaultSize(aspectRatio.floatValue());
+        final Size minSize = new Size(defaultSize.getWidth() / 2, defaultSize.getHeight() / 2);
         mPipTaskOrganizer.onTaskAppeared(createTaskInfo(mComponent1,
-                createPipParams(null)), mock(SurfaceControl.class));
+                createPipParams(aspectRatio)), mock(SurfaceControl.class));
         sendOnPipTransitionFinished(TRANSITION_DIRECTION_TO_PIP);
 
-        final Size minSize = new Size(400, 320);
         mPipTaskOrganizer.onTaskInfoChanged(createTaskInfo(mComponent2,
-                createPipParams(null), minSize));
+                createPipParams(aspectRatio), minSize));
 
         assertEquals(minSize, mPipBoundsState.getOverrideMinSize());
     }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/GroupedTaskInfoTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/GroupedTaskInfoTest.kt
index 3209664..6ecebd7 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/GroupedTaskInfoTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/GroupedTaskInfoTest.kt
@@ -26,7 +26,7 @@
 import androidx.test.filters.SmallTest
 import com.android.wm.shell.ShellTestCase
 import com.android.wm.shell.shared.GroupedTaskInfo
-import com.android.wm.shell.shared.GroupedTaskInfo.TYPE_FREEFORM
+import com.android.wm.shell.shared.GroupedTaskInfo.TYPE_DESK
 import com.android.wm.shell.shared.GroupedTaskInfo.TYPE_FULLSCREEN
 import com.android.wm.shell.shared.GroupedTaskInfo.TYPE_SPLIT
 import com.android.wm.shell.shared.split.SplitBounds
@@ -87,14 +87,14 @@
     }
 
     @Test
-    fun testFreeformTasks_hasCorrectType() {
-        assertThat(freeformTasksGroupInfo(freeformTaskIds = arrayOf(1)).isBaseType(TYPE_FREEFORM))
+    fun testDeskTasks_hasCorrectType() {
+        assertThat(deskTasksGroupInfo(deskId = 0, freeformTaskIds = arrayOf(1)).isBaseType(TYPE_DESK))
             .isTrue()
     }
 
     @Test
-    fun testCreateFreeformTasks_hasCorrectNumberOfTasks() {
-        val list = freeformTasksGroupInfo(freeformTaskIds = arrayOf(1, 2, 3)).taskInfoList
+    fun testCreateDeskTasks_hasCorrectNumberOfTasks() {
+        val list = deskTasksGroupInfo(deskId = 0, freeformTaskIds = arrayOf(1, 2, 3)).taskInfoList
         assertThat(list).hasSize(3)
         assertThat(list[0].taskId).isEqualTo(1)
         assertThat(list[1].taskId).isEqualTo(2)
@@ -102,9 +102,9 @@
     }
 
     @Test
-    fun testCreateFreeformTasks_nonExistentMinimizedTaskId_throwsException() {
+    fun testCreateDeskTasks_nonExistentMinimizedTaskId_throwsException() {
         assertThrows(IllegalArgumentException::class.java) {
-            freeformTasksGroupInfo(
+            deskTasksGroupInfo(deskId = 0,
                 freeformTaskIds = arrayOf(1, 2, 3),
                 minimizedTaskIds = arrayOf(1, 4)
             )
@@ -122,8 +122,8 @@
     }
 
     @Test
-    fun testMixedWithFreeformBase_hasCorrectType() {
-        assertThat(mixedTaskGroupInfoWithFreeformBase().isBaseType(TYPE_FREEFORM)).isTrue()
+    fun testMixedWithDeskBase_hasCorrectType() {
+        assertThat(mixedTaskGroupInfoWithDeskBase().isBaseType(TYPE_DESK)).isTrue()
     }
 
     @Test
@@ -190,15 +190,16 @@
     }
 
     @Test
-    fun testParcelling_freeformTasks() {
-        val taskInfo = freeformTasksGroupInfo(freeformTaskIds = arrayOf(1, 2, 3))
+    fun testParcelling_DeskTasks() {
+        val taskInfo = deskTasksGroupInfo(deskId = 50, freeformTaskIds = arrayOf(1, 2, 3))
         val parcel = Parcel.obtain()
         taskInfo.writeToParcel(parcel, 0)
         parcel.setDataPosition(0)
         // Read the object back from the parcel
         val taskInfoFromParcel: GroupedTaskInfo =
             GroupedTaskInfo.CREATOR.createFromParcel(parcel)
-        assertThat(taskInfoFromParcel.isBaseType(TYPE_FREEFORM)).isTrue()
+        assertThat(taskInfoFromParcel.deskId).isEqualTo(taskInfo.deskId)
+        assertThat(taskInfoFromParcel.isBaseType(TYPE_DESK)).isTrue()
         assertThat(taskInfoFromParcel.taskInfoList).hasSize(3)
         // Only compare task ids
         val taskIdComparator = Correspondence.transforming<TaskInfo, Int>(
@@ -209,8 +210,8 @@
     }
 
     @Test
-    fun testParcelling_freeformTasks_minimizedTasks() {
-        val taskInfo = freeformTasksGroupInfo(
+    fun testParcelling_DeskTasks_minimizedTasks() {
+        val taskInfo = deskTasksGroupInfo(deskId = 0,
             freeformTaskIds = arrayOf(1, 2, 3), minimizedTaskIds = arrayOf(2))
 
         val parcel = Parcel.obtain()
@@ -220,14 +221,14 @@
         // Read the object back from the parcel
         val taskInfoFromParcel: GroupedTaskInfo =
             GroupedTaskInfo.CREATOR.createFromParcel(parcel)
-        assertThat(taskInfoFromParcel.isBaseType(TYPE_FREEFORM)).isTrue()
+        assertThat(taskInfoFromParcel.isBaseType(TYPE_DESK)).isTrue()
         assertThat(taskInfoFromParcel.minimizedTaskIds).isEqualTo(arrayOf(2).toIntArray())
     }
 
     @Test
     fun testParcelling_mixedTasks() {
         val taskInfo = GroupedTaskInfo.forMixed(listOf(
-                freeformTasksGroupInfo(freeformTaskIds = arrayOf(4, 5, 6),
+                deskTasksGroupInfo(deskId = 0, freeformTaskIds = arrayOf(4, 5, 6),
                     minimizedTaskIds = arrayOf(5)),
                 splitTasksGroupInfo(firstId = 2, secondId = 3),
                 singleTaskGroupInfo(id = 1)))
@@ -239,7 +240,7 @@
         // Read the object back from the parcel
         val taskInfoFromParcel: GroupedTaskInfo =
             GroupedTaskInfo.CREATOR.createFromParcel(parcel)
-        assertThat(taskInfoFromParcel.isBaseType(TYPE_FREEFORM)).isTrue()
+        assertThat(taskInfoFromParcel.isBaseType(TYPE_DESK)).isTrue()
         assertThat(taskInfoFromParcel.baseGroupedTask.minimizedTaskIds).isEqualTo(
             arrayOf(5).toIntArray())
         for (i in 1..6) {
@@ -275,12 +276,14 @@
     }
 
     @Test
-    fun testTaskProperties_freeformTasks() {
+    fun testTaskProperties_DeskTasks() {
         val task1 = createTaskInfo(id = 1)
         val task2 = createTaskInfo(id = 2)
 
-        val taskInfo = GroupedTaskInfo.forFreeformTasks(listOf(task1, task2), setOf())
+        val taskInfo = GroupedTaskInfo.forDeskTasks(
+            /* deskId = */ 500, listOf(task1, task2), setOf())
 
+        assertThat(taskInfo.deskId).isEqualTo(500)
         assertThat(taskInfo.getTaskById(1)).isEqualTo(task1)
         assertThat(taskInfo.getTaskById(2)).isEqualTo(task2)
         assertThat(taskInfo.containsTask(1)).isTrue()
@@ -325,11 +328,13 @@
         return GroupedTaskInfo.forSplitTasks(task1, task2, splitBounds)
     }
 
-    private fun freeformTasksGroupInfo(
+    private fun deskTasksGroupInfo(
+        deskId: Int,
         freeformTaskIds: Array<Int>,
         minimizedTaskIds: Array<Int> = emptyArray()
     ): GroupedTaskInfo {
-        return GroupedTaskInfo.forFreeformTasks(
+        return GroupedTaskInfo.forDeskTasks(
+            deskId,
             freeformTaskIds.map { createTaskInfo(it) }.toList(),
             minimizedTaskIds.toSet())
     }
@@ -346,9 +351,9 @@
             singleTaskGroupInfo(id = 1)))
     }
 
-    private fun mixedTaskGroupInfoWithFreeformBase(): GroupedTaskInfo {
+    private fun mixedTaskGroupInfoWithDeskBase(): GroupedTaskInfo {
         return GroupedTaskInfo.forMixed(listOf(
-            freeformTasksGroupInfo(freeformTaskIds = arrayOf(2, 3, 4)),
+            deskTasksGroupInfo(deskId = 0, freeformTaskIds = arrayOf(2, 3, 4)),
             singleTaskGroupInfo(id = 1)))
     }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentTasksControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentTasksControllerTest.java
index a546b3e..bf65cae 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentTasksControllerTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentTasksControllerTest.java
@@ -24,7 +24,7 @@
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
 import static com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_PERSISTENCE;
-import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_FREEFORM;
+import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_DESK;
 import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_FULLSCREEN;
 import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_SPLIT;
 import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_2_50_50;
@@ -349,7 +349,7 @@
         GroupedTaskInfo freeformGroup = recentTasks.get(2);
 
         // Check that groups have expected types
-        assertTrue(freeformGroup.isBaseType(TYPE_FREEFORM));
+        assertTrue(freeformGroup.isBaseType(TYPE_DESK));
         assertTrue(singleGroup1.isBaseType(TYPE_FULLSCREEN));
         assertTrue(singleGroup2.isBaseType(TYPE_FULLSCREEN));
 
@@ -389,7 +389,7 @@
 
         // Check that groups have expected types
         assertTrue(splitGroup.isBaseType(TYPE_SPLIT));
-        assertTrue(freeformGroup.isBaseType(TYPE_FREEFORM));
+        assertTrue(freeformGroup.isBaseType(TYPE_DESK));
         assertTrue(singleGroup.isBaseType(TYPE_FULLSCREEN));
 
         // Check freeform group entries
@@ -460,7 +460,7 @@
         GroupedTaskInfo freeformGroup = recentTasks.get(2);
 
         // Check that groups have expected types
-        assertTrue(freeformGroup.isBaseType(TYPE_FREEFORM));
+        assertTrue(freeformGroup.isBaseType(TYPE_DESK));
         assertTrue(singleGroup1.isBaseType(TYPE_FULLSCREEN));
         assertTrue(singleGroup2.isBaseType(TYPE_FULLSCREEN));
 
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentsTransitionHandlerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentsTransitionHandlerTest.java
index fd5e567..93dd345 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentsTransitionHandlerTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/recents/RecentsTransitionHandlerTest.java
@@ -17,16 +17,20 @@
 package com.android.wm.shell.recents;
 
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
 import static android.view.WindowManager.TRANSIT_CLOSE;
 import static android.view.WindowManager.TRANSIT_OPEN;
+import static android.view.WindowManager.TRANSIT_SLEEP;
 import static android.view.WindowManager.TRANSIT_TO_FRONT;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
 import static com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_RECENTS_TRANSITIONS_CORNERS_BUGFIX;
+import static com.android.wm.shell.Flags.FLAG_ENABLE_RECENTS_BOOKEND_TRANSITION;
 import static com.android.wm.shell.recents.RecentsTransitionStateListener.TRANSITION_STATE_ANIMATING;
 import static com.android.wm.shell.recents.RecentsTransitionStateListener.TRANSITION_STATE_NOT_RUNNING;
 import static com.android.wm.shell.recents.RecentsTransitionStateListener.TRANSITION_STATE_REQUESTED;
+import static com.android.wm.shell.transition.Transitions.TRANSIT_END_RECENTS_TRANSITION;
 import static com.android.wm.shell.transition.Transitions.TRANSIT_START_RECENTS_TRANSITION;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -64,7 +68,6 @@
 import com.android.dx.mockito.inline.extended.ExtendedMockito;
 import com.android.dx.mockito.inline.extended.StaticMockitoSession;
 import com.android.internal.os.IResultReceiver;
-import com.android.wm.shell.R;
 import com.android.wm.shell.ShellTaskOrganizer;
 import com.android.wm.shell.ShellTestCase;
 import com.android.wm.shell.TestRunningTaskInfoBuilder;
@@ -73,6 +76,7 @@
 import com.android.wm.shell.common.TaskStackListenerImpl;
 import com.android.wm.shell.desktopmode.DesktopRepository;
 import com.android.wm.shell.desktopmode.DesktopUserRepositories;
+import com.android.wm.shell.shared.R;
 import com.android.wm.shell.shared.desktopmode.DesktopModeStatus;
 import com.android.wm.shell.sysui.ShellCommandHandler;
 import com.android.wm.shell.sysui.ShellController;
@@ -308,8 +312,7 @@
         mRecentsTransitionHandler.findController(transition).merge(
                 mergeTransitionInfo,
                 new StubTransaction(),
-                finishT,
-                transition,
+                new StubTransaction(),
                 mock(Transitions.TransitionFinishCallback.class));
         mMainExecutor.flushAll();
 
@@ -318,6 +321,69 @@
     }
 
     @Test
+    @EnableFlags(FLAG_ENABLE_RECENTS_BOOKEND_TRANSITION)
+    public void testMerge_consumeBookendTransition() throws Exception {
+        // Start and finish the transition
+        final IRecentsAnimationRunner animationRunner = mock(IRecentsAnimationRunner.class);
+        final IBinder transition = startRecentsTransition(/* synthetic= */ false, animationRunner);
+        mRecentsTransitionHandler.startAnimation(
+                transition, createTransitionInfo(), new StubTransaction(), new StubTransaction(),
+                mock(Transitions.TransitionFinishCallback.class));
+        mRecentsTransitionHandler.findController(transition).finish(/* toHome= */ false,
+                false /* sendUserLeaveHint */, mock(IResultReceiver.class));
+        mMainExecutor.flushAll();
+
+        // Merge the bookend transition
+        TransitionInfo mergeTransitionInfo =
+                new TransitionInfoBuilder(TRANSIT_END_RECENTS_TRANSITION)
+                        .addChange(TRANSIT_OPEN, new TestRunningTaskInfoBuilder().build())
+                        .build();
+        SurfaceControl.Transaction finishT = mock(SurfaceControl.Transaction.class);
+        Transitions.TransitionFinishCallback finishCallback
+                = mock(Transitions.TransitionFinishCallback.class);
+        mRecentsTransitionHandler.findController(transition).merge(
+                mergeTransitionInfo,
+                new StubTransaction(),
+                finishT,
+                finishCallback);
+        mMainExecutor.flushAll();
+
+        // Verify that we've merged
+        verify(finishCallback).onTransitionFinished(any());
+    }
+
+    @Test
+    @EnableFlags(FLAG_ENABLE_RECENTS_BOOKEND_TRANSITION)
+    public void testMerge_pendingBookendTransition_mergesTransition() throws Exception {
+        // Start and finish the transition
+        final IRecentsAnimationRunner animationRunner = mock(IRecentsAnimationRunner.class);
+        final IBinder transition = startRecentsTransition(/* synthetic= */ false, animationRunner);
+        mRecentsTransitionHandler.startAnimation(
+                transition, createTransitionInfo(), new StubTransaction(), new StubTransaction(),
+                mock(Transitions.TransitionFinishCallback.class));
+        mRecentsTransitionHandler.findController(transition).finish(/* toHome= */ false,
+                false /* sendUserLeaveHint */, mock(IResultReceiver.class));
+        mMainExecutor.flushAll();
+
+        // Merge a new transition while we have a pending finish
+        TransitionInfo mergeTransitionInfo = new TransitionInfoBuilder(TRANSIT_OPEN)
+                .addChange(TRANSIT_OPEN, new TestRunningTaskInfoBuilder().build())
+                .build();
+        SurfaceControl.Transaction finishT = mock(SurfaceControl.Transaction.class);
+        Transitions.TransitionFinishCallback finishCallback
+                = mock(Transitions.TransitionFinishCallback.class);
+        mRecentsTransitionHandler.findController(transition).merge(
+                mergeTransitionInfo,
+                new StubTransaction(),
+                finishT,
+                finishCallback);
+        mMainExecutor.flushAll();
+
+        // Verify that we've cleaned up the original transition
+        assertNull(mRecentsTransitionHandler.findController(transition));
+    }
+
+    @Test
     @EnableFlags(FLAG_ENABLE_DESKTOP_RECENTS_TRANSITIONS_CORNERS_BUGFIX)
     public void testMergeAndFinish_openingFreeformTasks_setsCornerRadius() {
         ActivityManager.RunningTaskInfo freeformTask =
@@ -336,7 +402,6 @@
                 mergeTransitionInfo,
                 new StubTransaction(),
                 finishT,
-                transition,
                 mock(Transitions.TransitionFinishCallback.class));
         mRecentsTransitionHandler.findController(transition).finish(/* toHome= */ false,
                 false /* sendUserLeaveHint */, mock(IResultReceiver.class));
@@ -385,15 +450,23 @@
     }
 
     private TransitionInfo createTransitionInfo() {
-        final ActivityManager.RunningTaskInfo task = new TestRunningTaskInfoBuilder()
+        final ActivityManager.RunningTaskInfo homeTask = new TestRunningTaskInfoBuilder()
                 .setTopActivityType(ACTIVITY_TYPE_HOME)
                 .build();
+        final ActivityManager.RunningTaskInfo appTask = new TestRunningTaskInfoBuilder()
+                .setTopActivityType(ACTIVITY_TYPE_STANDARD)
+                .build();
         final TransitionInfo.Change homeChange = new TransitionInfo.Change(
-                task.token, new SurfaceControl());
+                homeTask.token, new SurfaceControl());
         homeChange.setMode(TRANSIT_TO_FRONT);
-        homeChange.setTaskInfo(task);
+        homeChange.setTaskInfo(homeTask);
+        final TransitionInfo.Change appChange = new TransitionInfo.Change(
+                appTask.token, new SurfaceControl());
+        appChange.setMode(TRANSIT_TO_FRONT);
+        appChange.setTaskInfo(appTask);
         return new TransitionInfoBuilder(TRANSIT_START_RECENTS_TRANSITION)
                 .addChange(homeChange)
+                .addChange(appChange)
                 .build();
     }
 
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/animation/MinimizeAnimatorTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/animation/MinimizeAnimatorTest.kt
new file mode 100644
index 0000000..ba609d4
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/animation/MinimizeAnimatorTest.kt
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2025 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.wm.shell.shared.animation
+
+import android.animation.Animator
+import android.animation.AnimatorSet
+import android.animation.ValueAnimator
+import android.content.Context
+import android.content.res.Resources
+import android.os.Handler
+import android.util.DisplayMetrics
+import android.view.SurfaceControl
+import android.view.SurfaceControl.Transaction
+import android.window.TransitionInfo
+import android.window.WindowContainerToken
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread
+import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_MINIMIZE_WINDOW
+import com.android.internal.jank.InteractionJankMonitor
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.any
+import org.mockito.ArgumentMatchers.anyFloat
+import org.mockito.ArgumentMatchers.anyLong
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.never
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class MinimizeAnimatorTest {
+    private val context = mock<Context>()
+    private val resources = mock<Resources>()
+    private val transaction = mock<Transaction>()
+    private val leash = mock<SurfaceControl>()
+    private val interactionJankMonitor = mock<InteractionJankMonitor>()
+    private val animationHandler = mock<Handler>()
+
+    private val displayMetrics = DisplayMetrics().apply { density = 1f }
+
+    @Before
+    fun setup() {
+        whenever(context.resources).thenReturn(resources)
+        whenever(resources.displayMetrics).thenReturn(displayMetrics)
+        whenever(transaction.setAlpha(any(), anyFloat())).thenReturn(transaction)
+        whenever(transaction.setPosition(any(), anyFloat(), anyFloat())).thenReturn(transaction)
+        whenever(transaction.setScale(any(), anyFloat(), anyFloat())).thenReturn(transaction)
+        whenever(transaction.setFrameTimeline(anyLong())).thenReturn(transaction)
+    }
+
+    @Test
+    fun create_returnsBoundsAndAlphaAnimators() {
+        val change = TransitionInfo.Change(mock<WindowContainerToken>(), leash)
+
+        val animator = createAnimator(change)
+
+        assertThat(animator).isInstanceOf(AnimatorSet::class.java)
+        val animatorSet = animator as AnimatorSet
+        assertThat(animatorSet.childAnimations).hasSize(2)
+        assertIsBoundsAnimator(animatorSet.childAnimations[0])
+        assertIsAlphaAnimator(animatorSet.childAnimations[1])
+    }
+
+    @Test
+    fun create_doesNotlogJankInstrumentation() = runOnUiThread {
+        val change = TransitionInfo.Change(mock<WindowContainerToken>(), leash)
+
+        createAnimator(change)
+
+        verify(interactionJankMonitor, never()).begin(
+            leash, context, animationHandler, CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
+    }
+
+    @Test
+    fun onAnimationStart_logsJankInstrumentation() = runOnUiThread {
+        val change = TransitionInfo.Change(mock<WindowContainerToken>(), leash)
+
+        createAnimator(change).start()
+
+        verify(interactionJankMonitor).begin(
+            leash, context, animationHandler, CUJ_DESKTOP_MODE_MINIMIZE_WINDOW)
+    }
+
+    private fun createAnimator(change: TransitionInfo.Change): Animator =
+        MinimizeAnimator.create(context, change, transaction, {}, interactionJankMonitor,
+            animationHandler)
+
+    private fun assertIsBoundsAnimator(animator: Animator) {
+        assertThat(animator).isInstanceOf(ValueAnimator::class.java)
+        assertThat(animator.duration).isEqualTo(200)
+        assertThat(animator.interpolator).isEqualTo(Interpolators.STANDARD_ACCELERATE)
+    }
+
+    private fun assertIsAlphaAnimator(animator: Animator) {
+        assertThat(animator).isInstanceOf(ValueAnimator::class.java)
+        assertThat(animator.duration).isEqualTo(100)
+        assertThat(animator.interpolator).isEqualTo(Interpolators.LINEAR)
+    }
+}
+
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicyTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicyTest.kt
index f69bf34..5ac6800 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicyTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/shared/desktopmode/DesktopModeCompatPolicyTest.kt
@@ -16,13 +16,16 @@
 
 package com.android.wm.shell.shared.desktopmode
 
+import android.Manifest.permission.SYSTEM_ALERT_WINDOW
 import android.app.TaskInfo
 import android.compat.testing.PlatformCompatChangeRule
 import android.content.ComponentName
 import android.content.pm.ActivityInfo
 import android.content.pm.ApplicationInfo
+import android.content.pm.PackageInfo
 import android.content.pm.PackageManager
 import android.os.Process
+import android.platform.test.annotations.DisableFlags
 import android.platform.test.annotations.EnableFlags
 import android.testing.AndroidTestingRunner
 import androidx.test.filters.SmallTest
@@ -39,8 +42,12 @@
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.anyString
 import org.mockito.kotlin.any
+import org.mockito.kotlin.eq
 import org.mockito.kotlin.mock
+import org.mockito.kotlin.times
+import org.mockito.kotlin.verify
 import org.mockito.kotlin.whenever
 
 /**
@@ -55,6 +62,7 @@
     private lateinit var desktopModeCompatPolicy: DesktopModeCompatPolicy
     private val packageManager: PackageManager = mock()
     private val homeActivities = ComponentName(HOME_LAUNCHER_PACKAGE_NAME, /* class */ "")
+    private val baseActivityTest = ComponentName("com.test.dummypackage", "TestClass")
 
     @Before
     fun setUp() {
@@ -64,6 +72,7 @@
     }
 
     @Test
+    @DisableFlags(Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION)
     fun testIsTopActivityExemptFromDesktopWindowing_onlyTransparentActivitiesInStack() {
         assertTrue(desktopModeCompatPolicy.isTopActivityExemptFromDesktopWindowing(
             createFreeformTask(/* displayId */ 0)
@@ -71,10 +80,65 @@
                         isActivityStackTransparent = true
                         isTopActivityNoDisplay = false
                         numActivities = 1
+                        baseActivity = baseActivityTest
                     }))
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION)
+    fun testIsTopActivityExemptWithPermission_onlyTransparentActivitiesInStack() {
+        allowOverlayPermission(arrayOf(SYSTEM_ALERT_WINDOW))
+        assertTrue(desktopModeCompatPolicy.isTopActivityExemptFromDesktopWindowing(
+            createFreeformTask(/* displayId */ 0)
+                .apply {
+                    isActivityStackTransparent = true
+                    isTopActivityNoDisplay = false
+                    numActivities = 1
+                    baseActivity = baseActivityTest
+                }))
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION)
+    fun testIsTopActivityExemptWithNoPermission_onlyTransparentActivitiesInStack() {
+        allowOverlayPermission(arrayOf())
+        assertFalse(desktopModeCompatPolicy.isTopActivityExemptFromDesktopWindowing(
+            createFreeformTask(/* displayId */ 0)
+                .apply {
+                    isActivityStackTransparent = true
+                    isTopActivityNoDisplay = false
+                    numActivities = 1
+                    baseActivity = baseActivityTest
+                }))
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION)
+    fun testIsTopActivityExemptCachedPermissionCheckIsUsed() {
+        allowOverlayPermission(arrayOf())
+        assertFalse(desktopModeCompatPolicy.isTopActivityExemptFromDesktopWindowing(
+            createFreeformTask(/* displayId */ 0)
+                .apply {
+                    isActivityStackTransparent = true
+                    isTopActivityNoDisplay = false
+                    numActivities = 1
+                    baseActivity = baseActivityTest
+                }))
+        assertFalse(desktopModeCompatPolicy.isTopActivityExemptFromDesktopWindowing(
+            createFreeformTask(/* displayId */ 0)
+                .apply {
+                    isActivityStackTransparent = true
+                    isTopActivityNoDisplay = false
+                    numActivities = 1
+                    baseActivity = baseActivityTest
+                }))
+        verify(packageManager, times(1)).getPackageInfo(
+            eq("com.test.dummypackage"),
+            eq(PackageManager.GET_PERMISSIONS)
+        )
+    }
+
+    @Test
     fun testIsTopActivityExemptFromDesktopWindowing_noActivitiesInStack() {
         assertFalse(desktopModeCompatPolicy.isTopActivityExemptFromDesktopWindowing(
             createFreeformTask(/* displayId */ 0)
@@ -219,4 +283,15 @@
                 }
             }
         }
+
+    fun allowOverlayPermission(permissions: Array<String>) {
+        val packageInfo = mock<PackageInfo>()
+        packageInfo.requestedPermissions = permissions
+        whenever(
+            packageManager.getPackageInfo(
+                anyString(),
+                eq(PackageManager.GET_PERMISSIONS)
+            )
+        ).thenReturn(packageInfo)
+    }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java
index 10c2862..e9c4c31 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java
@@ -38,6 +38,8 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
@@ -48,6 +50,7 @@
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -58,6 +61,7 @@
 import android.app.PendingIntent;
 import android.content.res.Configuration;
 import android.graphics.Rect;
+import android.os.Binder;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -196,6 +200,7 @@
         when(token.asBinder()).thenReturn(mBinder);
         when(mRunningTaskInfo.getToken()).thenReturn(token);
         when(mTaskOrganizer.getRunningTaskInfo(mTaskId)).thenReturn(mRunningTaskInfo);
+        when(mTaskOrganizer.startNewTransition(anyInt(), any())).thenReturn(new Binder());
         when(mRootTDAOrganizer.getDisplayAreaInfo(DEFAULT_DISPLAY)).thenReturn(mDisplayAreaInfo);
 
         when(mSplitLayout.getTopLeftBounds()).thenReturn(mBounds1);
@@ -557,6 +562,60 @@
         assertFalse(c != null && c.getWindowingMode() == WINDOWING_MODE_FULLSCREEN);
     }
 
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    public void testRequestEnterSplit_didNotEnterSplitSelect_doesNotApplyTransaction() {
+        final WindowContainerTransaction wct = new WindowContainerTransaction();
+        mStageCoordinator.registerSplitSelectListener(
+                new TestSplitSelectListener(/* alwaysEnter = */ false));
+
+        final IBinder transition = mStageCoordinator.requestEnterSplitSelect(mRunningTaskInfo, wct,
+                SPLIT_POSITION_TOP_OR_LEFT, new Rect(0, 0, 100, 100));
+
+        assertNull(transition);
+        verify(mTaskOrganizer, never()).applyTransaction(wct);
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    public void testRequestEnterSplit_enteredSplitSelect_appliesTransaction() {
+        final WindowContainerTransaction wct = new WindowContainerTransaction();
+        mStageCoordinator.registerSplitSelectListener(
+                new TestSplitSelectListener(/* alwaysEnter = */ true));
+
+        final IBinder transition = mStageCoordinator.requestEnterSplitSelect(mRunningTaskInfo, wct,
+                SPLIT_POSITION_TOP_OR_LEFT, new Rect(0, 0, 100, 100));
+
+        assertNull(transition);
+        verify(mTaskOrganizer).applyTransaction(wct);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    public void testRequestEnterSplit_didNotEnterSplitSelect_doesNotStartTransition() {
+        final WindowContainerTransaction wct = new WindowContainerTransaction();
+        mStageCoordinator.registerSplitSelectListener(
+                new TestSplitSelectListener(/* alwaysEnter = */ false));
+
+        final IBinder transition = mStageCoordinator.requestEnterSplitSelect(mRunningTaskInfo, wct,
+                SPLIT_POSITION_TOP_OR_LEFT, new Rect(0, 0, 100, 100));
+
+        assertNull(transition);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
+    public void testRequestEnterSplit_enteredSplitSelect_startsTransition() {
+        final WindowContainerTransaction wct = new WindowContainerTransaction();
+        mStageCoordinator.registerSplitSelectListener(
+                new TestSplitSelectListener(/* alwaysEnter = */ true));
+
+        final IBinder transition = mStageCoordinator.requestEnterSplitSelect(mRunningTaskInfo, wct,
+                SPLIT_POSITION_TOP_OR_LEFT, new Rect(0, 0, 100, 100));
+
+        assertNotNull(transition);
+    }
+
     private Transitions createTestTransitions() {
         ShellInit shellInit = new ShellInit(mMainExecutor);
         final Transitions t = new Transitions(mContext, shellInit, mock(ShellController.class),
@@ -566,4 +625,18 @@
         shellInit.init();
         return t;
     }
+
+    private static class TestSplitSelectListener implements SplitScreen.SplitSelectListener {
+        private final boolean mAlwaysEnter;
+
+        TestSplitSelectListener(boolean alwaysEnter) {
+            mAlwaysEnter = alwaysEnter;
+        }
+
+        @Override
+        public boolean onRequestEnterSplitSelect(ActivityManager.RunningTaskInfo taskInfo,
+                int splitPosition, Rect taskBounds) {
+            return mAlwaysEnter;
+        }
+    }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/HomeTransitionObserverTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/HomeTransitionObserverTest.java
index 6f28e656..3099b0f 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/HomeTransitionObserverTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/HomeTransitionObserverTest.java
@@ -17,36 +17,44 @@
 package com.android.wm.shell.transition;
 
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
 import static android.view.WindowManager.TRANSIT_CHANGE;
 import static android.view.WindowManager.TRANSIT_OPEN;
 import static android.view.WindowManager.TRANSIT_PREPARE_BACK_NAVIGATION;
 import static android.view.WindowManager.TRANSIT_TO_BACK;
+import static android.view.WindowManager.TRANSIT_TO_FRONT;
 import static android.window.TransitionInfo.FLAG_BACK_GESTURE_ANIMATED;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.wm.shell.desktopmode.DesktopModeTransitionTypes.TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP;
+import static com.android.wm.shell.transition.Transitions.TRANSIT_CONVERT_TO_BUBBLE;
 
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.when;
 
 import android.app.ActivityManager;
 import android.app.WindowConfiguration.ActivityType;
 import android.content.Context;
+import android.os.Binder;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Looper;
 import android.os.RemoteException;
+import android.platform.test.annotations.EnableFlags;
 import android.view.SurfaceControl;
 import android.window.TransitionInfo;
 import android.window.TransitionInfo.TransitionMode;
+import android.window.WindowContainerToken;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.platform.app.InstrumentationRegistry;
 
+import com.android.wm.shell.Flags;
 import com.android.wm.shell.ShellTaskOrganizer;
 import com.android.wm.shell.ShellTestCase;
 import com.android.wm.shell.TestShellExecutor;
@@ -188,6 +196,72 @@
     }
 
     @Test
+    @EnableFlags({Flags.FLAG_ENABLE_BUBBLE_TO_FULLSCREEN, Flags.FLAG_ENABLE_CREATE_ANY_BUBBLE})
+    public void testDragTaskToBubbleOverHome_notifiesHomeIsVisible() throws RemoteException {
+        ActivityManager.RunningTaskInfo homeTask = createTaskInfo(1, ACTIVITY_TYPE_HOME);
+        ActivityManager.RunningTaskInfo bubbleTask = createTaskInfo(2, ACTIVITY_TYPE_STANDARD);
+
+        TransitionInfo startDragTransition =
+                new TransitionInfoBuilder(TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP)
+                        .addChange(TRANSIT_TO_FRONT, homeTask)
+                        .addChange(TRANSIT_TO_BACK, bubbleTask)
+                        .build();
+
+        // Start drag to desktop which brings home to front
+        mHomeTransitionObserver.onTransitionReady(new Binder(), startDragTransition,
+                MockTransactionPool.create(), MockTransactionPool.create());
+        // Does not notify home visibility yet
+        verify(mListener, never()).onHomeVisibilityChanged(anyBoolean());
+
+        TransitionInfo convertToBubbleTransition =
+                new TransitionInfoBuilder(TRANSIT_CONVERT_TO_BUBBLE)
+                        .addChange(TRANSIT_TO_FRONT, bubbleTask)
+                        .build();
+
+        // Convert to bubble. Transition does not include changes for home task
+        mHomeTransitionObserver.onTransitionReady(new Binder(), convertToBubbleTransition,
+                MockTransactionPool.create(), MockTransactionPool.create());
+
+        // Notifies home visibility change that was pending from the start of drag
+        verify(mListener).onHomeVisibilityChanged(true);
+    }
+
+    @Test
+    @EnableFlags({Flags.FLAG_ENABLE_BUBBLE_TO_FULLSCREEN, Flags.FLAG_ENABLE_CREATE_ANY_BUBBLE})
+    public void testDragTaskToBubbleOverOtherTask_notifiesHomeIsNotVisible()
+            throws RemoteException {
+        ActivityManager.RunningTaskInfo homeTask = createTaskInfo(1, ACTIVITY_TYPE_HOME);
+        ActivityManager.RunningTaskInfo bubbleTask = createTaskInfo(2, ACTIVITY_TYPE_STANDARD);
+        ActivityManager.RunningTaskInfo otherTask = createTaskInfo(3, ACTIVITY_TYPE_STANDARD);
+
+        TransitionInfo startDragTransition =
+                new TransitionInfoBuilder(TRANSIT_DESKTOP_MODE_START_DRAG_TO_DESKTOP)
+                        .addChange(TRANSIT_TO_FRONT, homeTask)
+                        .addChange(TRANSIT_TO_BACK, bubbleTask)
+                        .build();
+
+        // Start drag to desktop which brings home to front
+        mHomeTransitionObserver.onTransitionReady(new Binder(), startDragTransition,
+                MockTransactionPool.create(), MockTransactionPool.create());
+        // Does not notify home visibility yet
+        verify(mListener, never()).onHomeVisibilityChanged(anyBoolean());
+
+        TransitionInfo convertToBubbleTransition =
+                new TransitionInfoBuilder(TRANSIT_CONVERT_TO_BUBBLE)
+                        .addChange(TRANSIT_TO_FRONT, bubbleTask)
+                        .addChange(TRANSIT_TO_FRONT, otherTask)
+                        .addChange(TRANSIT_TO_BACK, homeTask)
+                        .build();
+
+        // Convert to bubble. Transition includes home task to back which updates home visibility
+        mHomeTransitionObserver.onTransitionReady(new Binder(), convertToBubbleTransition,
+                MockTransactionPool.create(), MockTransactionPool.create());
+
+        // Notifies home visibility change due to home moving to back in the second transition
+        verify(mListener).onHomeVisibilityChanged(false);
+    }
+
+    @Test
     public void testHomeActivityWithBackGestureNotifiesHomeIsVisibleAfterClose()
             throws RemoteException {
         TransitionInfo info = mock(TransitionInfo.class);
@@ -227,4 +301,14 @@
         when(change.getMode()).thenReturn(mode);
         taskInfo.isRunning = isRunning;
     }
+
+    private static ActivityManager.RunningTaskInfo createTaskInfo(int taskId, int activityType) {
+        ActivityManager.RunningTaskInfo taskInfo = new ActivityManager.RunningTaskInfo();
+        taskInfo.taskId = taskId;
+        taskInfo.topActivityType = activityType;
+        taskInfo.configuration.windowConfiguration.setActivityType(activityType);
+        taskInfo.token = mock(WindowContainerToken.class);
+        taskInfo.isRunning = true;
+        return taskInfo;
+    }
 }
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/ShellTransitionTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/ShellTransitionTests.java
index 6f73db0..6773307 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/ShellTransitionTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/ShellTransitionTests.java
@@ -1316,9 +1316,11 @@
                         mTransactionPool, createTestDisplayController(), mMainExecutor,
                         mMainHandler, mAnimExecutor, mock(HomeTransitionObserver.class),
                         mock(FocusTransitionObserver.class));
+        final RecentTasksController mockRecentsTaskController = mock(RecentTasksController.class);
+        doReturn(mContext).when(mockRecentsTaskController).getContext();
         final RecentsTransitionHandler recentsHandler =
                 new RecentsTransitionHandler(shellInit, mock(ShellTaskOrganizer.class), transitions,
-                        mock(RecentTasksController.class), mock(HomeTransitionObserver.class));
+                        mockRecentsTaskController, mock(HomeTransitionObserver.class));
         transitions.replaceDefaultHandlerForTest(mDefaultHandler);
         shellInit.init();
 
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt
index d8d45c0..16c7935 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt
@@ -278,6 +278,7 @@
 
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY)
+    @DisableFlags(Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION)
     fun testDecorationIsNotCreatedForTopTranslucentActivities() {
         val task = createTask(windowingMode = WINDOWING_MODE_FULLSCREEN).apply {
             isActivityStackTransparent = true
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTestsBase.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTestsBase.kt
index 8cccdb2..81dfaed 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTestsBase.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTestsBase.kt
@@ -52,6 +52,7 @@
 import com.android.wm.shell.common.DisplayController
 import com.android.wm.shell.common.DisplayInsetsController
 import com.android.wm.shell.common.DisplayLayout
+import com.android.wm.shell.common.MultiDisplayDragMoveIndicatorController
 import com.android.wm.shell.common.MultiInstanceHelper
 import com.android.wm.shell.common.SyncTransactionQueue
 import com.android.wm.shell.desktopmode.DesktopActivityOrientationChangeHandler
@@ -138,6 +139,8 @@
     protected val mockFreeformTaskTransitionStarter = mock<FreeformTaskTransitionStarter>()
     protected val mockActivityOrientationChangeHandler =
         mock<DesktopActivityOrientationChangeHandler>()
+    protected val mockMultiDisplayDragMoveIndicatorController =
+        mock<MultiDisplayDragMoveIndicatorController>()
     protected val mockInputManager = mock<InputManager>()
     private val mockTaskPositionerFactory =
         mock<DesktopModeWindowDecorViewModel.TaskPositionerFactory>()
@@ -229,6 +232,7 @@
             mockRecentsTransitionHandler,
             desktopModeCompatPolicy,
             mockTilingWindowDecoration,
+            mockMultiDisplayDragMoveIndicatorController,
         )
         desktopModeWindowDecorViewModel.setSplitScreenController(mockSplitScreenController)
         whenever(mockDisplayController.getDisplayLayout(any())).thenReturn(mockDisplayLayout)
@@ -243,6 +247,7 @@
                 any(),
                 any(),
                 any(),
+                any(),
                 any()
             )
         )
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositionerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositionerTest.kt
index 937938d..a6b0770 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositionerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositionerTest.kt
@@ -41,6 +41,7 @@
 import com.android.wm.shell.ShellTestCase
 import com.android.wm.shell.common.DisplayController
 import com.android.wm.shell.common.DisplayLayout
+import com.android.wm.shell.common.MultiDisplayDragMoveIndicatorController
 import com.android.wm.shell.common.MultiDisplayTestUtil
 import com.android.wm.shell.transition.Transitions
 import com.android.wm.shell.transition.Transitions.TransitionFinishCallback
@@ -62,8 +63,8 @@
 import org.mockito.Mockito.never
 import org.mockito.Mockito.times
 import org.mockito.Mockito.verify
-import org.mockito.Mockito.`when` as whenever
 import org.mockito.Mockito.`when`
+import org.mockito.Mockito.`when` as whenever
 import org.mockito.MockitoAnnotations
 
 /**
@@ -93,7 +94,8 @@
     @Mock private lateinit var mockTransitions: Transitions
     @Mock private lateinit var mockInteractionJankMonitor: InteractionJankMonitor
     @Mock private lateinit var mockSurfaceControl: SurfaceControl
-
+    @Mock private lateinit var mockMultiDisplayDragMoveIndicatorController:
+            MultiDisplayDragMoveIndicatorController
     private lateinit var resources: TestableResources
     private lateinit var spyDisplayLayout0: DisplayLayout
     private lateinit var spyDisplayLayout1: DisplayLayout
@@ -170,10 +172,11 @@
                 mockDesktopWindowDecoration,
                 mockDisplayController,
                 mockDragEventListener,
-                mockTransactionFactory,
+                { mockTransaction },
                 mockTransitions,
                 mockInteractionJankMonitor,
                 mainHandler,
+                mockMultiDisplayDragMoveIndicatorController,
             )
     }
 
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModelTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModelTest.kt
index 2cabb9a..646ec21 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModelTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModelTest.kt
@@ -16,6 +16,7 @@
 package com.android.wm.shell.windowdecor.tiling
 
 import android.content.Context
+import android.content.res.Resources
 import android.graphics.Rect
 import android.testing.AndroidTestingRunner
 import androidx.test.filters.SmallTest
@@ -23,12 +24,13 @@
 import com.android.wm.shell.ShellTaskOrganizer
 import com.android.wm.shell.ShellTestCase
 import com.android.wm.shell.common.DisplayController
+import com.android.wm.shell.common.DisplayLayout
 import com.android.wm.shell.common.ShellExecutor
 import com.android.wm.shell.common.SyncTransactionQueue
 import com.android.wm.shell.desktopmode.DesktopModeEventLogger
-import com.android.wm.shell.desktopmode.DesktopUserRepositories
 import com.android.wm.shell.desktopmode.DesktopTasksController
 import com.android.wm.shell.desktopmode.DesktopTestHelpers.createFreeformTask
+import com.android.wm.shell.desktopmode.DesktopUserRepositories
 import com.android.wm.shell.desktopmode.ReturnToDragStartAnimator
 import com.android.wm.shell.desktopmode.ToggleResizeDesktopTaskTransitionHandler
 import com.android.wm.shell.transition.FocusTransitionObserver
@@ -52,6 +54,7 @@
 @RunWith(AndroidTestingRunner::class)
 class DesktopTilingDecorViewModelTest : ShellTestCase() {
     private val contextMock: Context = mock()
+    private val resourcesMock: Resources = mock()
     private val mainDispatcher: MainCoroutineDispatcher = mock()
     private val bgScope: CoroutineScope = mock()
     private val displayControllerMock: DisplayController = mock()
@@ -70,6 +73,7 @@
     private val desktopTilingDecoration: DesktopTilingWindowDecoration = mock()
     private val taskResourceLoader: WindowDecorTaskResourceLoader = mock()
     private val focusTransitionObserver: FocusTransitionObserver = mock()
+    private val displayLayout: DisplayLayout = mock()
     private val mainExecutor: ShellExecutor = mock()
     private lateinit var desktopTilingDecorViewModel: DesktopTilingDecorViewModel
 
@@ -91,9 +95,16 @@
                 desktopModeEventLogger,
                 taskResourceLoader,
                 focusTransitionObserver,
-                mainExecutor
+                mainExecutor,
             )
         whenever(contextMock.createContextAsUser(any(), any())).thenReturn(contextMock)
+        whenever(displayControllerMock.getDisplayLayout(any())).thenReturn(displayLayout)
+        whenever(displayLayout.getStableBounds(any())).thenAnswer { i ->
+            (i.arguments.first() as Rect).set(STABLE_BOUNDS)
+        }
+        whenever(contextMock.createContextAsUser(any(), any())).thenReturn(context)
+        whenever(contextMock.resources).thenReturn(resourcesMock)
+        whenever(resourcesMock.getDimensionPixelSize(any())).thenReturn(10)
     }
 
     @Test
@@ -202,7 +213,21 @@
         verify(desktopTilingDecoration, times(1)).resetTilingSession()
     }
 
+    @Test
+    fun getTiledAppBounds_NoTilingTransitionHandlerObject() {
+        // Right bound of the left app here represents default 8 / 2 - 2 ( {Right bound} / 2 -
+        // {divider pixel size})
+        assertThat(desktopTilingDecorViewModel.getLeftSnapBoundsIfTiled(1))
+            .isEqualTo(Rect(6, 7, 2, 9))
+
+        // Left bound of the right app here represents default 8 / 2 + 6 + 2 ( {Left bound} +
+        // {width}/ 2 + {divider pixel size})
+        assertThat(desktopTilingDecorViewModel.getRightSnapBoundsIfTiled(1))
+            .isEqualTo(Rect(12, 7, 8, 9))
+    }
+
     companion object {
         private val BOUNDS = Rect(1, 2, 3, 4)
+        private val STABLE_BOUNDS = Rect(6, 7, 8, 9)
     }
 }
diff --git a/libs/androidfw/AssetManager2.cpp b/libs/androidfw/AssetManager2.cpp
index 7a51c20..714f6e4 100644
--- a/libs/androidfw/AssetManager2.cpp
+++ b/libs/androidfw/AssetManager2.cpp
@@ -23,6 +23,7 @@
 #include <map>
 #include <set>
 #include <span>
+#include <sstream>
 #include <utility>
 
 #include "android-base/logging.h"
@@ -64,7 +65,7 @@
   return table_entry->value();
 }
 
-}  // namespace
+} // namespace
 
 struct FindEntryResult {
   // The cookie representing the ApkAssets in which the value resides.
@@ -441,6 +442,24 @@
   return false;
 }
 
+static std::string ConfigVecToString(std::span<const ResTable_config> configurations) {
+  std::stringstream ss;
+  ss << "[";
+  bool first = true;
+  for (const auto& config : configurations) {
+    if (!first) {
+      ss << ",";
+    }
+    char out[RESTABLE_MAX_LOCALE_LEN] = {};
+    config.getBcp47Locale(out);
+    ss << out;
+    first = false;
+  }
+  ss << "]";
+  return ss.str();
+}
+
+
 void AssetManager2::SetConfigurations(std::span<const ResTable_config> configurations,
                                       bool force_refresh) {
   int diff = 0;
@@ -455,6 +474,17 @@
       }
     }
   }
+
+  // Log the locale list change to investigate b/392255526
+  if (diff & ConfigDescription::CONFIG_LOCALE) {
+    auto oldstr = ConfigVecToString(configurations_);
+    auto newstr = ConfigVecToString(configurations);
+    if (oldstr != newstr) {
+      LOG(INFO) << "AssetManager2(" << this << ") locale list changing from "
+                << oldstr << " to " << newstr;
+    }
+  }
+
   configurations_.clear();
   for (auto&& config : configurations) {
     configurations_.emplace_back(config);
@@ -465,6 +495,28 @@
   }
 }
 
+void AssetManager2::SetDefaultLocale(std::optional<ResTable_config> default_locale) {
+  int diff = 0;
+  if (default_locale_ && default_locale) {
+    diff = default_locale_->diff(default_locale.value());
+  } else if (default_locale_ || default_locale) {
+    diff = -1;
+  }
+  if (diff & ConfigDescription::CONFIG_LOCALE) {
+    char old_loc[RESTABLE_MAX_LOCALE_LEN] = {};
+    char new_loc[RESTABLE_MAX_LOCALE_LEN] = {};
+    if (default_locale_) {
+      default_locale_->getBcp47Locale(old_loc);
+    }
+    if (default_locale) {
+      default_locale->getBcp47Locale(new_loc);
+    }
+    LOG(INFO) << "AssetManager2(" << this << ") default locale changing from '"
+              << old_loc << "' to '" << new_loc << "'";
+  }
+  default_locale_ = default_locale;
+}
+
 void AssetManager2::SetOverlayConstraints(int32_t display_id, int32_t device_id) {
   bool changed = false;
   if (display_id_ != display_id) {
@@ -735,7 +787,7 @@
             ConfigDescription best_frro_config;
             Res_value best_frro_value;
             bool frro_found = false;
-            for (const auto& [config, value] : overlay_entry.GetInlineValue()) {
+            for(const auto& [config, value] : overlay_entry.GetInlineValue()) {
               if ((!frro_found || config.isBetterThan(best_frro_config, desired_config))
                   && config.match(*desired_config)) {
                 frro_found = true;
@@ -814,11 +866,11 @@
 
     bool has_locale = false;
     if (result->config.locale == 0) {
-      if (default_locale_ != 0) {
-        ResTable_config conf = {.locale = default_locale_};
-        // Since we know conf has a locale and only a locale, match will tell us if that locale
-        // matches
-        has_locale = conf.match(config);
+      // The default_locale_ is the locale used for any resources with no locale in the config
+      if (default_locale_) {
+        // Since we know default_locale_ has a locale and only a locale, match will tell us if that
+        // locale matches
+        has_locale = default_locale_->match(config);
       }
     } else {
       has_locale = true;
@@ -1505,7 +1557,7 @@
       base::expected<uint32_t, NullOrIOError> resid = package->FindEntryByName(type16, entry16);
       if (UNLIKELY(IsIOError(resid))) {
          return base::unexpected(resid.error());
-      }
+       }
 
       if (!resid.has_value() && kAttr16 == type16) {
         // Private attributes in libraries (such as the framework) are sometimes encoded
diff --git a/libs/androidfw/include/androidfw/AssetManager2.h b/libs/androidfw/include/androidfw/AssetManager2.h
index a47fe6a7..b017952 100644
--- a/libs/androidfw/include/androidfw/AssetManager2.h
+++ b/libs/androidfw/include/androidfw/AssetManager2.h
@@ -21,6 +21,7 @@
 
 #include <array>
 #include <limits>
+#include <optional>
 #include <set>
 #include <span>
 #include <unordered_map>
@@ -167,9 +168,7 @@
     return configurations_;
   }
 
-  inline void SetDefaultLocale(uint32_t default_locale) {
-    default_locale_ = default_locale;
-  }
+  void SetDefaultLocale(const std::optional<ResTable_config> default_locale);
 
   void SetOverlayConstraints(int32_t display_id, int32_t device_id);
 
@@ -481,7 +480,7 @@
   // without taking too much memory.
   std::array<uint8_t, std::numeric_limits<uint8_t>::max() + 1> package_ids_ = {};
 
-  uint32_t default_locale_ = 0;
+  std::optional<ResTable_config> default_locale_;
 
   // The current configurations set for this AssetManager. When this changes, cached resources
   // may need to be purged.
diff --git a/libs/hostgraphics/Fence.cpp b/libs/hostgraphics/Fence.cpp
index 4383bf0..938a938 100644
--- a/libs/hostgraphics/Fence.cpp
+++ b/libs/hostgraphics/Fence.cpp
@@ -18,6 +18,6 @@
 
 namespace android {
 
-const sp<Fence> Fence::NO_FENCE = sp<Fence>(new Fence);
+const sp<Fence> Fence::NO_FENCE = sp<Fence>::make();
 
 } // namespace android
diff --git a/libs/hostgraphics/include/gui/BufferItemConsumer.h b/libs/hostgraphics/include/gui/BufferItemConsumer.h
index c259411..5c96c82 100644
--- a/libs/hostgraphics/include/gui/BufferItemConsumer.h
+++ b/libs/hostgraphics/include/gui/BufferItemConsumer.h
@@ -17,6 +17,8 @@
 #ifndef ANDROID_GUI_BUFFERITEMCONSUMER_H
 #define ANDROID_GUI_BUFFERITEMCONSUMER_H
 
+#include <com_android_graphics_libgui_flags.h>
+#include <gui/BufferQueue.h>
 #include <gui/ConsumerBase.h>
 #include <gui/IGraphicBufferConsumer.h>
 #include <utils/RefBase.h>
@@ -26,9 +28,22 @@
 class BufferItemConsumer : public ConsumerBase {
 public:
     BufferItemConsumer(const sp<IGraphicBufferConsumer>& consumer, uint64_t consumerUsage,
-                       int bufferCount, bool controlledByApp)
+                       int bufferCount = -1, bool controlledByApp = false)
           : mConsumer(consumer) {}
 
+#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
+    BufferItemConsumer(uint64_t consumerUsage, int bufferCount = -1,
+                       bool controlledByApp = false, bool isConsumerSurfaceFlinger = false) {
+        sp<IGraphicBufferProducer> producer;
+        BufferQueue::createBufferQueue(&producer, &mConsumer);
+        mSurface = sp<Surface>::make(producer, controlledByApp);
+    }
+
+    status_t setConsumerIsProtected(bool isProtected) {
+        return OK;
+    }
+#endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
+
     status_t acquireBuffer(BufferItem* item, nsecs_t presentWhen, bool waitForFence = true) {
         return mConsumer->acquireBuffer(item, presentWhen, 0);
     }
@@ -71,8 +86,20 @@
         return OK;
     }
 
+#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
+// Returns a Surface that can be used as the producer for this consumer.
+    sp<Surface> getSurface() const {
+        return mSurface;
+    }
+#endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
+
 private:
     sp<IGraphicBufferConsumer> mConsumer;
+#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
+        // This Surface wraps the IGraphicBufferConsumer created for this
+    // ConsumerBase.
+    sp<Surface> mSurface;
+#endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
 };
 
 } // namespace android
diff --git a/libs/hostgraphics/include/gui/Surface.h b/libs/hostgraphics/include/gui/Surface.h
index 2774f89..e268ce6 100644
--- a/libs/hostgraphics/include/gui/Surface.h
+++ b/libs/hostgraphics/include/gui/Surface.h
@@ -34,6 +34,10 @@
         ANativeWindow::query = hook_query;
     }
 
+    sp<IGraphicBufferProducer> getIGraphicBufferProducer() const {
+        return mBufferProducer;
+    }
+
     static bool isValid(const sp<Surface>& surface) {
         return surface != nullptr;
     }
diff --git a/libs/hostgraphics/include/ui/Fence.h b/libs/hostgraphics/include/ui/Fence.h
index 187c311..3364b8ae 100644
--- a/libs/hostgraphics/include/ui/Fence.h
+++ b/libs/hostgraphics/include/ui/Fence.h
@@ -60,6 +60,10 @@
         return 0;
     }
 
+    int get() const {
+        return 0;
+    }
+
     inline Status getStatus() {
         // The sync_wait call underlying wait() has been measured to be
         // significantly faster than the sync_fence_info call underlying
diff --git a/libs/hwui/Android.bp b/libs/hwui/Android.bp
index bb2a53b..38ac8ab 100644
--- a/libs/hwui/Android.bp
+++ b/libs/hwui/Android.bp
@@ -233,6 +233,14 @@
 }
 
 filegroup {
+    name: "framework-graphics-ravenwood-policies",
+    srcs: [
+        "framework-graphics-ravenwood-policies.txt",
+    ],
+    visibility: ["//frameworks/base/ravenwood"],
+}
+
+filegroup {
     name: "framework-graphics-srcs",
     srcs: [
         "apex/java/**/*.java",
@@ -461,6 +469,10 @@
         },
         linux: {
             srcs: ["platform/linux/utils/SharedLib.cpp"],
+            shared_libs: [
+                "libbinder",
+                "libbinder_ndk",
+            ],
         },
         darwin: {
             srcs: ["platform/darwin/utils/SharedLib.cpp"],
diff --git a/libs/hwui/framework-graphics-ravenwood-policies.txt b/libs/hwui/framework-graphics-ravenwood-policies.txt
new file mode 100644
index 0000000..7296225
--- /dev/null
+++ b/libs/hwui/framework-graphics-ravenwood-policies.txt
@@ -0,0 +1 @@
+class android.graphics.ColorMatrix keepclass
diff --git a/libs/hwui/jni/Bitmap.cpp b/libs/hwui/jni/Bitmap.cpp
index cfde0b2..27d4ac7 100644
--- a/libs/hwui/jni/Bitmap.cpp
+++ b/libs/hwui/jni/Bitmap.cpp
@@ -613,7 +613,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 // TODO: Move somewhere else
-#ifdef __ANDROID__  // Layoutlib does not support parcel
+#ifdef __linux__  // Only Linux support parcel
 #define ON_ERROR_RETURN(X) \
     if ((error = (X)) != STATUS_OK) return error
 
@@ -717,7 +717,7 @@
 
 #undef ON_ERROR_RETURN
 
-#endif // __ANDROID__ // Layoutlib does not support parcel
+#endif // __linux__ // Only Linux support parcel
 
 // This is the maximum possible size because the SkColorSpace must be
 // representable (and therefore serializable) using a matrix and numerical
@@ -733,7 +733,7 @@
 }
 
 static jobject Bitmap_createFromParcel(JNIEnv* env, jobject, jobject parcel) {
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
     if (parcel == NULL) {
         jniThrowNullPointerException(env, "parcel cannot be null");
         return NULL;
@@ -836,14 +836,14 @@
     return createBitmap(env, nativeBitmap.release(), getPremulBitmapCreateFlags(isMutable), nullptr,
                         nullptr, density, sourceId);
 #else
-    jniThrowRuntimeException(env, "Cannot use parcels outside of Android");
+    jniThrowRuntimeException(env, "Cannot use parcels outside of Linux");
     return NULL;
 #endif
 }
 
 static jboolean Bitmap_writeToParcel(JNIEnv* env, jobject, jlong bitmapHandle, jint density,
                                      jobject parcel) {
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
     if (parcel == NULL) {
         ALOGD("------- writeToParcel null parcel\n");
         return JNI_FALSE;
@@ -901,7 +901,7 @@
     }
     return JNI_TRUE;
 #else
-    doThrowRE(env, "Cannot use parcels outside of Android");
+    doThrowRE(env, "Cannot use parcels outside of Linux");
     return JNI_FALSE;
 #endif
 }
diff --git a/libs/hwui/jni/Region.cpp b/libs/hwui/jni/Region.cpp
index 1e064b8..76986eeb 100644
--- a/libs/hwui/jni/Region.cpp
+++ b/libs/hwui/jni/Region.cpp
@@ -18,7 +18,7 @@
 #include "SkPath.h"
 #include "GraphicsJNI.h"
 
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
 #include <android/binder_parcel.h>
 #include <android/binder_parcel_jni.h>
 #include <android/binder_parcel_utils.h>
@@ -202,7 +202,7 @@
 
 static jlong Region_createFromParcel(JNIEnv* env, jobject clazz, jobject parcel)
 {
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
     if (parcel == nullptr) {
         return 0;
     }
@@ -230,7 +230,7 @@
 
 static jboolean Region_writeToParcel(JNIEnv* env, jobject clazz, jlong regionHandle, jobject parcel)
 {
-#ifdef __ANDROID__ // Layoutlib does not support parcel
+#ifdef __linux__ // Only Linux support parcel
     const SkRegion* region = reinterpret_cast<SkRegion*>(regionHandle);
     if (parcel == nullptr) {
         return JNI_FALSE;
diff --git a/libs/hwui/jni/ScopedParcel.cpp b/libs/hwui/jni/ScopedParcel.cpp
index 95e4e01..52cd988 100644
--- a/libs/hwui/jni/ScopedParcel.cpp
+++ b/libs/hwui/jni/ScopedParcel.cpp
@@ -15,7 +15,7 @@
  */
 #include "ScopedParcel.h"
 
-#ifdef __ANDROID__  // Layoutlib does not support parcel
+#ifdef __linux__  // Only Linux support parcel
 
 using namespace android;
 
@@ -92,4 +92,4 @@
         AParcel_writeByteArray(mParcel, nullptr, -1);
     }
 }
-#endif  // __ANDROID__ // Layoutlib does not support parcel
+#endif  // __linux__  // Only Linux support parcel
diff --git a/libs/hwui/jni/ScopedParcel.h b/libs/hwui/jni/ScopedParcel.h
index f2f138f..f2b793a 100644
--- a/libs/hwui/jni/ScopedParcel.h
+++ b/libs/hwui/jni/ScopedParcel.h
@@ -15,7 +15,7 @@
  */
 #include "SkData.h"
 
-#ifdef __ANDROID__  // Layoutlib does not support parcel
+#ifdef __linux__  // Only Linux support parcel
 #include <android-base/unique_fd.h>
 #include <android/binder_parcel.h>
 #include <android/binder_parcel_jni.h>
@@ -64,4 +64,4 @@
     ASHMEM,
 };
 
-#endif  // __ANDROID__ // Layoutlib does not support parcel
\ No newline at end of file
+#endif  // __linux__ // Only Linux support parcel
diff --git a/libs/hwui/jni/graphics_jni_helpers.h b/libs/hwui/jni/graphics_jni_helpers.h
index 91db134..ff26ec1 100644
--- a/libs/hwui/jni/graphics_jni_helpers.h
+++ b/libs/hwui/jni/graphics_jni_helpers.h
@@ -21,6 +21,7 @@
 #include <nativehelper/JNIPlatformHelp.h>
 #include <nativehelper/scoped_local_ref.h>
 #include <nativehelper/scoped_utf_chars.h>
+#include <nativehelper/scoped_primitive_array.h>
 #include <string>
 
 // Host targets (layoutlib) do not differentiate between regular and critical native methods,
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index f119102..3de8e05 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -312,7 +312,7 @@
     };
 
     // Need at least 4 because we do quad buffer. Add a few more for good measure.
-    RingBuffer<SwapHistory, 7> mSwapHistory;
+    RingBuffer<SwapHistory, 8> mSwapHistory;
     // Frame numbers start at 1, 0 means uninitialized
     uint64_t mFrameNumber = 0;
     int64_t mDamageId = 0;
diff --git a/location/java/android/location/GnssMeasurement.java b/location/java/android/location/GnssMeasurement.java
index 200d4ef..6ae73a2 100644
--- a/location/java/android/location/GnssMeasurement.java
+++ b/location/java/android/location/GnssMeasurement.java
@@ -1484,6 +1484,10 @@
      * in an open sky test - the important aspect of this output is that changes in this value are
      * indicative of changes on input signal power in the frequency band for this measurement.
      *
+     * <p> This field is part of the GnssMeasurement object so it is only reported when the GNSS
+     * measurement is reported. E.g., when a GNSS signal is too weak to be acquired, the AGC value
+     * is not reported.
+     *
      * <p> The value is only available if {@link #hasAutomaticGainControlLevelDb()} is {@code true}
      *
      * @deprecated Use {@link GnssMeasurementsEvent#getGnssAutomaticGainControls()} instead.
diff --git a/location/java/android/location/GnssMeasurementsEvent.java b/location/java/android/location/GnssMeasurementsEvent.java
index 4fc2ee8..8cdfd01 100644
--- a/location/java/android/location/GnssMeasurementsEvent.java
+++ b/location/java/android/location/GnssMeasurementsEvent.java
@@ -158,6 +158,14 @@
     /**
      * Gets the collection of {@link GnssAutomaticGainControl} associated with the
      * current event.
+     *
+     * <p>This field must be reported when the GNSS measurement engine is running, even when the
+     * GnssMeasurement or GnssClock fields are not reported yet. E.g., when a GNSS signal is too
+     * weak to be acquired, the AGC value must still be reported.
+     *
+     * <p>For devices that do not support this field, an empty collection is returned. In that case,
+     * please use {@link GnssMeasurement#hasAutomaticGainControlLevelDb()}
+     * and {@link GnssMeasuremen#getAutomaticGainControlLevelDb()}.
      */
     @NonNull
     public Collection<GnssAutomaticGainControl> getGnssAutomaticGainControls() {
diff --git a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
index 8b6194f..fb89973 100644
--- a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
+++ b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
@@ -28,7 +28,6 @@
 import android.util.Log;
 
 import com.android.internal.annotations.KeepForWeakReference;
-import com.android.internal.telephony.flags.Flags;
 
 import java.util.concurrent.TimeUnit;
 
@@ -146,17 +145,12 @@
                         < emergencyExtensionMillis);
         boolean isInEmergencyCallback = false;
         boolean isInEmergencySmsMode = false;
-        if (!Flags.enforceTelephonyFeatureMappingForPublicApis()) {
+        PackageManager pm = mContext.getPackageManager();
+        if (pm != null && pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_CALLING)) {
             isInEmergencyCallback = mTelephonyManager.getEmergencyCallbackMode();
+        }
+        if (pm != null && pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_MESSAGING)) {
             isInEmergencySmsMode = mTelephonyManager.isInEmergencySmsMode();
-        } else {
-            PackageManager pm = mContext.getPackageManager();
-            if (pm != null && pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_CALLING)) {
-                isInEmergencyCallback = mTelephonyManager.getEmergencyCallbackMode();
-            }
-            if (pm != null && pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_MESSAGING)) {
-                isInEmergencySmsMode = mTelephonyManager.isInEmergencySmsMode();
-            }
         }
         return mIsInEmergencyCall || isInEmergencyCallback || isInEmergencyExtension
                 || isInEmergencySmsMode;
diff --git a/media/java/android/media/AudioDeviceVolumeManager.java b/media/java/android/media/AudioDeviceVolumeManager.java
index 892a861..56d3df3 100644
--- a/media/java/android/media/AudioDeviceVolumeManager.java
+++ b/media/java/android/media/AudioDeviceVolumeManager.java
@@ -16,6 +16,9 @@
 
 package android.media;
 
+import static android.annotation.SystemApi.Client.MODULE_LIBRARIES;
+import static android.media.audio.Flags.FLAG_UNIFY_ABSOLUTE_VOLUME_MANAGEMENT;
+
 import static com.android.media.flags.Flags.FLAG_ENABLE_AUDIO_INPUT_DEVICE_ROUTING_AND_VOLUME_CONTROL;
 
 import android.Manifest;
@@ -91,6 +94,8 @@
      * @see #setDeviceAbsoluteVolumeBehavior(AudioDeviceAttributes, VolumeInfo, boolean, Executor,
      *          OnAudioDeviceVolumeChangedListener)
      */
+    @SystemApi(client = MODULE_LIBRARIES)
+    @FlaggedApi(FLAG_UNIFY_ABSOLUTE_VOLUME_MANAGEMENT)
     public interface OnAudioDeviceVolumeChangedListener {
         /**
          * Called the device for the given audio device has changed.
@@ -203,6 +208,30 @@
      * volume updates to apply on that device
      * @param device the audio device set to absolute volume mode
      * @param volume the type of volume this device responds to
+     * @param executor the Executor used for receiving volume updates through the listener
+     * @param vclistener the callback for volume updates
+     */
+    @SystemApi(client = MODULE_LIBRARIES)
+    @RequiresPermission(anyOf = { android.Manifest.permission.MODIFY_AUDIO_ROUTING,
+            android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED,
+            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
+            android.Manifest.permission.BLUETOOTH_STACK})
+    @FlaggedApi(FLAG_UNIFY_ABSOLUTE_VOLUME_MANAGEMENT)
+    public void setDeviceAbsoluteVolumeBehavior(
+            @NonNull AudioDeviceAttributes device,
+            @NonNull VolumeInfo volume,
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull OnAudioDeviceVolumeChangedListener vclistener) {
+        setDeviceAbsoluteVolumeBehavior(device, volume, /*handlesVolumeAdjustment=*/false, executor,
+                vclistener);
+    }
+
+    /**
+     * @hide
+     * Configures a device to use absolute volume model, and registers a listener for receiving
+     * volume updates to apply on that device
+     * @param device the audio device set to absolute volume mode
+     * @param volume the type of volume this device responds to
      * @param handlesVolumeAdjustment whether the controller handles volume adjustments separately
      * from volume changes. If true, adjustments from {@link AudioManager#adjustStreamVolume}
      * will be sent via {@link OnAudioDeviceVolumeChangedListener#onAudioDeviceVolumeAdjusted}.
@@ -210,7 +239,7 @@
      * @param vclistener the callback for volume updates
      */
     @RequiresPermission(anyOf = { android.Manifest.permission.MODIFY_AUDIO_ROUTING,
-            android.Manifest.permission.BLUETOOTH_PRIVILEGED })
+            android.Manifest.permission.BLUETOOTH_PRIVILEGED})
     public void setDeviceAbsoluteVolumeBehavior(
             @NonNull AudioDeviceAttributes device,
             @NonNull VolumeInfo volume,
@@ -229,6 +258,30 @@
      * registers a listener for receiving volume updates to apply on that device
      * @param device the audio device set to absolute multi-volume mode
      * @param volumes the list of volumes the given device responds to
+     * @param executor the Executor used for receiving volume updates through the listener
+     * @param vclistener the callback for volume updates
+     */
+    @SystemApi(client = MODULE_LIBRARIES)
+    @RequiresPermission(anyOf = { android.Manifest.permission.MODIFY_AUDIO_ROUTING,
+            android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED,
+            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
+            android.Manifest.permission.BLUETOOTH_STACK})
+    @FlaggedApi(FLAG_UNIFY_ABSOLUTE_VOLUME_MANAGEMENT)
+    public void setDeviceAbsoluteMultiVolumeBehavior(
+            @NonNull AudioDeviceAttributes device,
+            @NonNull List<VolumeInfo> volumes,
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull OnAudioDeviceVolumeChangedListener vclistener) {
+        setDeviceAbsoluteMultiVolumeBehavior(device, volumes, /*handlesVolumeAdjustment=*/false,
+                executor, vclistener);
+    }
+
+    /**
+     * @hide
+     * Configures a device to use absolute volume model applied to different volume types, and
+     * registers a listener for receiving volume updates to apply on that device
+     * @param device the audio device set to absolute multi-volume mode
+     * @param volumes the list of volumes the given device responds to
      * @param handlesVolumeAdjustment whether the controller handles volume adjustments separately
      * from volume changes. If true, adjustments from {@link AudioManager#adjustStreamVolume}
      * will be sent via {@link OnAudioDeviceVolumeChangedListener#onAudioDeviceVolumeAdjusted}.
@@ -236,7 +289,7 @@
      * @param vclistener the callback for volume updates
      */
     @RequiresPermission(anyOf = { android.Manifest.permission.MODIFY_AUDIO_ROUTING,
-            android.Manifest.permission.BLUETOOTH_PRIVILEGED })
+            android.Manifest.permission.BLUETOOTH_PRIVILEGED})
     public void setDeviceAbsoluteMultiVolumeBehavior(
             @NonNull AudioDeviceAttributes device,
             @NonNull List<VolumeInfo> volumes,
diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java
index e01cb92..ad6f2e52 100644
--- a/media/java/android/media/AudioSystem.java
+++ b/media/java/android/media/AudioSystem.java
@@ -1134,6 +1134,9 @@
     public static final Set<Integer> DEVICE_ALL_HDMI_SYSTEM_AUDIO_AND_SPEAKER_SET;
     /** @hide */
     public static final Set<Integer> DEVICE_OUT_ALL_BLE_SET;
+    /** @hide */
+    public static final Set<Integer> DEVICE_OUT_PICK_FOR_VOLUME_SET;
+
     static {
         DEVICE_OUT_ALL_SET = new HashSet<>();
         DEVICE_OUT_ALL_SET.add(DEVICE_OUT_EARPIECE);
@@ -1201,6 +1204,22 @@
         DEVICE_OUT_ALL_BLE_SET.add(DEVICE_OUT_BLE_HEADSET);
         DEVICE_OUT_ALL_BLE_SET.add(DEVICE_OUT_BLE_SPEAKER);
         DEVICE_OUT_ALL_BLE_SET.add(DEVICE_OUT_BLE_BROADCAST);
+
+        DEVICE_OUT_PICK_FOR_VOLUME_SET = new HashSet<>();
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_WIRED_HEADSET);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_WIRED_HEADPHONE);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_USB_DEVICE);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_USB_HEADSET);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_A2DP);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_SCO);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_SCO_HEADSET);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLUETOOTH_SCO_CARKIT);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_HEARING_AID);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLE_HEADSET);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLE_SPEAKER);
+        DEVICE_OUT_PICK_FOR_VOLUME_SET.add(DEVICE_OUT_BLE_BROADCAST);
     }
 
     // input devices
diff --git a/media/java/android/media/tv/flags/media_tv.aconfig b/media/java/android/media/tv/flags/media_tv.aconfig
index 28da556..7670514 100644
--- a/media/java/android/media/tv/flags/media_tv.aconfig
+++ b/media/java/android/media/tv/flags/media_tv.aconfig
@@ -129,4 +129,14 @@
   metadata {
     purpose: PURPOSE_BUGFIX
   }
+}
+
+flag {
+  name: "media_quality_fw_bugfix"
+  namespace: "tv_os"
+  description: "Bug fix flag for Media Quality framework"
+  bug: "398304867"
+  metadata {
+    purpose: PURPOSE_BUGFIX
+  }
 }
\ No newline at end of file
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp
index 61c287b..ae54c18 100644
--- a/media/jni/android_media_MediaCodec.cpp
+++ b/media/jni/android_media_MediaCodec.cpp
@@ -2990,11 +2990,16 @@
         }
         *memory = context->toHidlMemory();
     }
-    if (context->mBlock == nullptr || context->mReadWriteMapping == nullptr) {
-        ALOGW("extractMemoryFromContext: Cannot extract memory as C2Block is not created/mapped");
+    if (context->mBlock == nullptr) {
+        // this should be ok as we may only have IMemory/hidlMemory
+        // e.g. video codecs may only have IMemory and no mBlock
         return;
     }
-    if (context->mReadWriteMapping->error() != C2_OK) {
+
+    // if we have mBlock and memory, then we will copy data from mBlock to hidlMemory
+    // e.g. audio codecs may only have mBlock and wanted to decrypt using hidlMemory
+    // and also wanted to re-use mBlock
+    if (context->mReadWriteMapping == nullptr || context->mReadWriteMapping->error() != C2_OK) {
         ALOGW("extractMemoryFromContext: failed to map C2Block (%d)",
                 context->mReadWriteMapping->error());
         return;
diff --git a/native/android/OWNERS b/native/android/OWNERS
index 3ea2d35..1e8d30d 100644
--- a/native/android/OWNERS
+++ b/native/android/OWNERS
@@ -6,8 +6,7 @@
 
 # Networking
 per-file libandroid_net.map.txt, net.c = set noparent
-per-file libandroid_net.map.txt, net.c = codewiz@google.com, jchalard@google.com, junyulai@google.com
-per-file libandroid_net.map.txt, net.c = lorenzo@google.com, reminv@google.com, satk@google.com
+per-file libandroid_net.map.txt, net.c = file:platform/packages/modules/Connectivity:main:/OWNERS_core_networking
 
 # Fonts
 per-file system_fonts.cpp = file:/graphics/java/android/graphics/fonts/OWNERS
diff --git a/packages/CompanionDeviceManager/res/drawable/btn_positive_bottom.xml b/packages/CompanionDeviceManager/res/drawable/btn_positive_button.xml
similarity index 82%
rename from packages/CompanionDeviceManager/res/drawable/btn_positive_bottom.xml
rename to packages/CompanionDeviceManager/res/drawable/btn_positive_button.xml
index 2cff473..30cf60a 100644
--- a/packages/CompanionDeviceManager/res/drawable/btn_positive_bottom.xml
+++ b/packages/CompanionDeviceManager/res/drawable/btn_positive_button.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2022 The Android Open Source Project
+  ~ Copyright (C) 2025 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.
@@ -16,8 +16,8 @@
   -->
 
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
-       android:shape="rectangle">
+    android:shape="rectangle">
     <solid android:color="@android:color/system_accent1_100"/>
     <corners android:topLeftRadius="12dp" android:topRightRadius="12dp"
-             android:bottomLeftRadius="4dp" android:bottomRightRadius="4dp"/>
-</shape>
+        android:bottomLeftRadius="4dp" android:bottomRightRadius="4dp"/>
+</shape>
\ No newline at end of file
diff --git a/packages/CompanionDeviceManager/res/drawable/btn_positive_button_with_arrow.xml b/packages/CompanionDeviceManager/res/drawable/btn_positive_button_with_arrow.xml
new file mode 100644
index 0000000..1fe4af7
--- /dev/null
+++ b/packages/CompanionDeviceManager/res/drawable/btn_positive_button_with_arrow.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2025 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.
+  -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item>
+        <shape android:shape="rectangle">
+            <solid android:color="@android:color/system_accent1_100" />
+            <corners
+                android:bottomLeftRadius="4dp"
+                android:bottomRightRadius="4dp"
+                android:topLeftRadius="12dp"
+                android:topRightRadius="12dp" />
+        </shape>
+    </item>
+    <item
+        android:drawable="@drawable/ic_downward_arrow"
+        android:gravity="center" />
+</layer-list>
\ No newline at end of file
diff --git a/packages/CompanionDeviceManager/res/drawable/ic_downward_arrow.xml b/packages/CompanionDeviceManager/res/drawable/ic_downward_arrow.xml
new file mode 100644
index 0000000..98fd71b
--- /dev/null
+++ b/packages/CompanionDeviceManager/res/drawable/ic_downward_arrow.xml
@@ -0,0 +1,25 @@
+<!--
+  ~ Copyright (C) 2025 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.
+  -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960"
+    android:tint="?attr/colorControlNormal">
+    <path android:fillColor="@android:color/system_accent1_600"
+        android:pathData="M480,720L240,480L296,424L440,568L440,200L520,200L520,568L664,424L720,480L480,720Z"/>
+</vector>
\ No newline at end of file
diff --git a/packages/CompanionDeviceManager/res/values/strings.xml b/packages/CompanionDeviceManager/res/values/strings.xml
index 20ede5f..60f209b 100644
--- a/packages/CompanionDeviceManager/res/values/strings.xml
+++ b/packages/CompanionDeviceManager/res/values/strings.xml
@@ -139,6 +139,12 @@
     <!-- Back button for the helper consent dialog [CHAR LIMIT=30] -->
     <string name="consent_back">Back</string>
 
+    <!-- Downward arrow button action for scroll down the permission list [CHAR LIMIT=30] -->
+    <string name="downward_arrow_action">Scroll down the list</string>
+
+    <!-- Downward arrow button [CHAR LIMIT=30] -->
+    <string name="downward_arrow">Downward arrow</string>
+
     <!-- Expand permission in the list CHAR LIMIT=30] -->
     <string name="permission_expand">Expand <xliff:g id="permission_type" example="Notification">%1$s</xliff:g></string>
 
diff --git a/packages/CompanionDeviceManager/res/values/styles.xml b/packages/CompanionDeviceManager/res/values/styles.xml
index 30813ba..814cc4d 100644
--- a/packages/CompanionDeviceManager/res/values/styles.xml
+++ b/packages/CompanionDeviceManager/res/values/styles.xml
@@ -119,7 +119,7 @@
         <item name="android:layout_marginEnd">32dp</item>
         <item name="android:textColor">@android:color/system_neutral1_900</item>
         <item name="android:textAppearance">@android:style/TextAppearance.DeviceDefault.Medium</item>
-        <item name="android:background">@drawable/btn_positive_bottom</item>
+        <item name="android:background">@drawable/btn_positive_button</item>
     </style>
 
     <style name="NegativeButton"
diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionAssociationActivity.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionAssociationActivity.java
index ea40e13..3113129 100644
--- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionAssociationActivity.java
+++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionAssociationActivity.java
@@ -176,6 +176,8 @@
     // an association to CDM.
     private boolean mApproved;
     private boolean mCancelled;
+    // Indicates user has completely scrolled through the permissions list.
+    private boolean mIsPermissionsListScrolledToBottom;
     // A reference to the device selected by the user, to be sent back to the application via
     // onActivityResult() after the association is created.
     private @Nullable DeviceFilterPair<?> mSelectedDevice;
@@ -450,7 +452,7 @@
     }
 
     private void stopDiscovery() {
-        if (!mRequest.isSelfManaged()) {
+        if (mRequest != null && !mRequest.isSelfManaged()) {
             CompanionDeviceDiscoveryService.stop(this);
         }
     }
@@ -670,10 +672,30 @@
 
     private void onPositiveButtonClick(View v) {
         Slog.d(TAG, "onPositiveButtonClick()");
+        // Scroll the permission list when a user presses the `Allow` button.
+        if (mPermissionListRecyclerView != null
+                && mPermissionListRecyclerView.isVisibleToUser()
+                && !mIsPermissionsListScrolledToBottom) {
+            LinearLayoutManager layoutManager =
+                    (LinearLayoutManager) mPermissionListRecyclerView.getLayoutManager();
+            if (layoutManager == null) return;
 
+            int lastVisibleItemPosition = layoutManager.findLastCompletelyVisibleItemPosition();
+            int firstVisibleItemPosition = layoutManager.findFirstCompletelyVisibleItemPosition();
+            int scrollOffset = lastVisibleItemPosition - firstVisibleItemPosition;
+            int numItems = mPermissionListRecyclerView.getAdapter().getItemCount();
+
+            // Calculate the next scroll position with the offset
+            int nextScrollPosition = Math.min(
+                    lastVisibleItemPosition + scrollOffset + 1, numItems - 1);
+            mPermissionListRecyclerView.smoothScrollToPosition(nextScrollPosition);
+
+            return;
+        }
         // Disable the button, to prevent more clicks.
         v.setEnabled(false);
 
+        // Approved the association creation if the list is scrolled to the bottom.
         if (mRequest.isSelfManaged()) {
             onAssociationApproved(null);
         } else {
@@ -774,31 +796,48 @@
         }
     }
 
-    // Disable and grey out the Allow and Don't allow buttons if the last permission in the
+    // 1. Disable and grey out the Don't allow button if the last permission in the
     // permission list is not visible to the users.
+    // 2. Remove the text for Allow button.
+    // 3. Set the background that includes the downward arrow icon.
     private void disableButtons() {
-        mButtonAllow.setEnabled(false);
+        mButtonAllow.setText("");
+        mButtonAllow.setBackgroundResource(R.drawable.btn_positive_button_with_arrow);
+        mButtonAllow.setContentDescription("");
+        mButtonAllow.setAccessibilityDelegate(new View.AccessibilityDelegate() {
+            public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
+                super.onInitializeAccessibilityNodeInfo(host, info);
+                info.setContentDescription(getString(R.string.downward_arrow));
+                info.addAction(
+                        new AccessibilityNodeInfo.AccessibilityAction(
+                                AccessibilityNodeInfo.ACTION_CLICK,
+                                getString(R.string.downward_arrow_action)
+                        )
+                );
+            }
+        });
+
         mButtonNotAllow.setEnabled(false);
-        mButtonAllow.setTextColor(
-                getResources().getColor(android.R.color.system_neutral1_400, null));
         mButtonNotAllow.setTextColor(
                 getResources().getColor(android.R.color.system_neutral1_400, null));
-        mButtonAllow.getBackground().setColorFilter(
-                (new BlendModeColorFilter(Color.LTGRAY,  BlendMode.DARKEN)));
         mButtonNotAllow.getBackground().setColorFilter(
                 (new BlendModeColorFilter(Color.LTGRAY,  BlendMode.DARKEN)));
     }
-    // Enable and restore the color for the Allow and Don't allow buttons if the last permission in
-    // the permission list is visible to the users.
+    // 1.Enable and restore the color for the Allow and Don't allow buttons if the
+    // last permission in the permission list is visible to the users.
+    // 2. Re-set the background for the Allow button which remove the downward arrow icon.
     private void enableButtons() {
-        mButtonAllow.setEnabled(true);
+        mButtonAllow.setText(R.string.consent_yes);
+        mButtonAllow.setBackgroundResource(R.drawable.btn_positive_button);
+        mButtonAllow.setContentDescription(getString(R.string.consent_yes));
+        mButtonAllow.setAccessibilityDelegate(null);
+
         mButtonNotAllow.setEnabled(true);
-        mButtonAllow.getBackground().setColorFilter(null);
         mButtonNotAllow.getBackground().setColorFilter(null);
-        mButtonAllow.setTextColor(
-                getResources().getColor(android.R.color.system_neutral1_900, null));
         mButtonNotAllow.setTextColor(
                 getResources().getColor(android.R.color.system_neutral1_900, null));
+
+        mIsPermissionsListScrolledToBottom = true;
     }
 
     private final ResultReceiver mOnAssociationCreatedReceiver =
diff --git a/packages/InputDevices/res/values-af/strings.xml b/packages/InputDevices/res/values-af/strings.xml
index 273cfa0..0fc0c05 100644
--- a/packages/InputDevices/res/values-af/strings.xml
+++ b/packages/InputDevices/res/values-af/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serwies (Cyrillies)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegryns (Cyrillies)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Roemeens"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Engels (Indië)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-am/strings.xml b/packages/InputDevices/res/values-am/strings.xml
index 8593253..722d949 100644
--- a/packages/InputDevices/res/values-am/strings.xml
+++ b/packages/InputDevices/res/values-am/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"ሰርቢያኛ (ሲሪሊክኛ)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"ሞንቴኔግሮኛ (ሲሪሊክኛ)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"ሮማኒያኛ"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"እንግሊዝኛ (ሕንድ)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-as/strings.xml b/packages/InputDevices/res/values-as/strings.xml
index e6540e4..acff29d 100644
--- a/packages/InputDevices/res/values-as/strings.xml
+++ b/packages/InputDevices/res/values-as/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"ছাৰ্বিয়ান (চিৰিলিক)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"মণ্টেনেগ্ৰিণ (চিৰিলিক)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"ৰোমানিয়ান"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"ইংৰাজী (ভাৰত)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-az/strings.xml b/packages/InputDevices/res/values-az/strings.xml
index aa93a92..c0fe764 100644
--- a/packages/InputDevices/res/values-az/strings.xml
+++ b/packages/InputDevices/res/values-az/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serb dili (Kiril)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Monteneqro dili (Kiril)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Rumın dili"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"İngilis dili (Hindistan)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-bg/strings.xml b/packages/InputDevices/res/values-bg/strings.xml
index ceb7e37..78b93da 100644
--- a/packages/InputDevices/res/values-bg/strings.xml
+++ b/packages/InputDevices/res/values-bg/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"сръбски (кирилица)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"черногорски (кирилица)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"румънски"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"английски (Индия)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-bn/strings.xml b/packages/InputDevices/res/values-bn/strings.xml
index 369a803..da529e1 100644
--- a/packages/InputDevices/res/values-bn/strings.xml
+++ b/packages/InputDevices/res/values-bn/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"সার্বিয়ান (সিরিলিক)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"মন্টেনেগ্রিন (সিরিলিক)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"রোমানিয়ান"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"ইংরাজি (ভারত)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ca/strings.xml b/packages/InputDevices/res/values-ca/strings.xml
index bbf3946..8b05b49 100644
--- a/packages/InputDevices/res/values-ca/strings.xml
+++ b/packages/InputDevices/res/values-ca/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbi (ciríl·lic)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrí (ciríl·lic)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Romanès"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Anglès (Índia)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-da/strings.xml b/packages/InputDevices/res/values-da/strings.xml
index 00a2a620..a9925ad 100644
--- a/packages/InputDevices/res/values-da/strings.xml
+++ b/packages/InputDevices/res/values-da/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbisk (kyrillisk)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrinsk (kyrillisk)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Rumænsk"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Engelsk (Indien)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-de/strings.xml b/packages/InputDevices/res/values-de/strings.xml
index 717c597..9bd23eb 100644
--- a/packages/InputDevices/res/values-de/strings.xml
+++ b/packages/InputDevices/res/values-de/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbisch (kyrillisch)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrinisch (kyrillisch)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Rumänisch"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Englisch (Indien)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-el/strings.xml b/packages/InputDevices/res/values-el/strings.xml
index 02b7f1f..cf49339 100644
--- a/packages/InputDevices/res/values-el/strings.xml
+++ b/packages/InputDevices/res/values-el/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Σερβικά (Κυριλλικά)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Μαυροβουνιακά (Κυριλλικά)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Ρουμανικά"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Αγγλικά (Ινδίας)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-en-rAU/strings.xml b/packages/InputDevices/res/values-en-rAU/strings.xml
index 1cdcc55..3b8c50d 100644
--- a/packages/InputDevices/res/values-en-rAU/strings.xml
+++ b/packages/InputDevices/res/values-en-rAU/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbian (Cyrillic)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrin (Cyrillic)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Romanian"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"English (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-en-rGB/strings.xml b/packages/InputDevices/res/values-en-rGB/strings.xml
index 1cdcc55..3b8c50d 100644
--- a/packages/InputDevices/res/values-en-rGB/strings.xml
+++ b/packages/InputDevices/res/values-en-rGB/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbian (Cyrillic)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrin (Cyrillic)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Romanian"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"English (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-en-rIN/strings.xml b/packages/InputDevices/res/values-en-rIN/strings.xml
index 1cdcc55..3b8c50d 100644
--- a/packages/InputDevices/res/values-en-rIN/strings.xml
+++ b/packages/InputDevices/res/values-en-rIN/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbian (Cyrillic)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrin (Cyrillic)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Romanian"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"English (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-es-rUS/strings.xml b/packages/InputDevices/res/values-es-rUS/strings.xml
index edd7657..48ccb8de 100644
--- a/packages/InputDevices/res/values-es-rUS/strings.xml
+++ b/packages/InputDevices/res/values-es-rUS/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbio (cirílico)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrino (cirílico)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Rumano"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Inglés (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-es/strings.xml b/packages/InputDevices/res/values-es/strings.xml
index b522845..ef73625 100644
--- a/packages/InputDevices/res/values-es/strings.xml
+++ b/packages/InputDevices/res/values-es/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbio (cirílico)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrino (cirílico)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Rumano"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Inglés (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-et/strings.xml b/packages/InputDevices/res/values-et/strings.xml
index 82670dd..2289197 100644
--- a/packages/InputDevices/res/values-et/strings.xml
+++ b/packages/InputDevices/res/values-et/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"serbia (kirillitsa)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"montenegro (kirillitsa)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"rumeenia"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"inglise (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-eu/strings.xml b/packages/InputDevices/res/values-eu/strings.xml
index b777b8c..0fe3b57 100644
--- a/packages/InputDevices/res/values-eu/strings.xml
+++ b/packages/InputDevices/res/values-eu/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbiarra (zirilikoa)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegroarra (zirilikoa)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Errumaniera"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Ingelesa (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-fa/strings.xml b/packages/InputDevices/res/values-fa/strings.xml
index 9ec7a34..16b9ad4 100644
--- a/packages/InputDevices/res/values-fa/strings.xml
+++ b/packages/InputDevices/res/values-fa/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"صربی (سیریلیک)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"مونته‌نگرویی (سیریلیک)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"رومانیایی"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"انگلیسی (هند)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-fi/strings.xml b/packages/InputDevices/res/values-fi/strings.xml
index 6825ea9..0d8bd06 100644
--- a/packages/InputDevices/res/values-fi/strings.xml
+++ b/packages/InputDevices/res/values-fi/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"serbia (kyrillinen)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"montenegro (kyrillinen)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"romania"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"englanti (Intia)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-fr/strings.xml b/packages/InputDevices/res/values-fr/strings.xml
index fb4d144..bdb0d02 100644
--- a/packages/InputDevices/res/values-fr/strings.xml
+++ b/packages/InputDevices/res/values-fr/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbe (cyrillique)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Monténégrin (cyrillique)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Roumain"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Anglais (Inde)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-gl/strings.xml b/packages/InputDevices/res/values-gl/strings.xml
index 925adf9..c62abba 100644
--- a/packages/InputDevices/res/values-gl/strings.xml
+++ b/packages/InputDevices/res/values-gl/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbio (cirílico)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrino (cirílico)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Romanés"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Inglés (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-hi/strings.xml b/packages/InputDevices/res/values-hi/strings.xml
index 1751979..bf3bd9a 100644
--- a/packages/InputDevices/res/values-hi/strings.xml
+++ b/packages/InputDevices/res/values-hi/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"सर्बियन (सिरिलिक)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"मोंटेनेग्रिन (सिरिलिक)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"रोमेनियन"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"अंग्रेज़ी (भारत)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-hu/strings.xml b/packages/InputDevices/res/values-hu/strings.xml
index c83ba84..6b4259a 100644
--- a/packages/InputDevices/res/values-hu/strings.xml
+++ b/packages/InputDevices/res/values-hu/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"szerb (cirill betűs)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"montenegrói (cirill betűs)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"román"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"angol (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-hy/strings.xml b/packages/InputDevices/res/values-hy/strings.xml
index 718f8d1..43153fa 100644
--- a/packages/InputDevices/res/values-hy/strings.xml
+++ b/packages/InputDevices/res/values-hy/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"սերբերեն (կյուրեղատառ)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"չեռնոգորերեն (կյուրեղատառ)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Ռումիներեն"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"անգլերեն (Հնդկաստան)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-in/strings.xml b/packages/InputDevices/res/values-in/strings.xml
index ba2e5bd3..1aa1b2b 100644
--- a/packages/InputDevices/res/values-in/strings.xml
+++ b/packages/InputDevices/res/values-in/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbia (Sirilik)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegro (Sirilik)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Rumania"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Inggris (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-is/strings.xml b/packages/InputDevices/res/values-is/strings.xml
index 842119d..9547882 100644
--- a/packages/InputDevices/res/values-is/strings.xml
+++ b/packages/InputDevices/res/values-is/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbneska (kyrillískt)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Svartfellska (kyrillískt)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"rúmenska"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Enska (Indland)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-it/strings.xml b/packages/InputDevices/res/values-it/strings.xml
index f7f76e0..090397d 100644
--- a/packages/InputDevices/res/values-it/strings.xml
+++ b/packages/InputDevices/res/values-it/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbo (cirillico)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrino (cirillico)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Rumeno"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Inglese (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-iw/strings.xml b/packages/InputDevices/res/values-iw/strings.xml
index 0df5d20..b0faa6e 100644
--- a/packages/InputDevices/res/values-iw/strings.xml
+++ b/packages/InputDevices/res/values-iw/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"סרבית (אותיות קיריליות)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"מונטנגרית (אותיות קיריליות)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"רומנית"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"אנגלית (הודו)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-kk/strings.xml b/packages/InputDevices/res/values-kk/strings.xml
index 60ad838..05f9243 100644
--- a/packages/InputDevices/res/values-kk/strings.xml
+++ b/packages/InputDevices/res/values-kk/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Сербия (кириллица)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Черногория (кириллица)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Румын"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Ағылшын (Үндістан)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-km/strings.xml b/packages/InputDevices/res/values-km/strings.xml
index 936c925..03a3a43 100644
--- a/packages/InputDevices/res/values-km/strings.xml
+++ b/packages/InputDevices/res/values-km/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"សែប៊ី (ស៊ីរីលីក)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"ម៉ុងតេណេហ្គ្រោ (ស៊ីរីលីក)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"រ៉ូម៉ានី"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"អង់គ្លេស (ឥណ្ឌា)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-kn/strings.xml b/packages/InputDevices/res/values-kn/strings.xml
index 2453951..f4f4fa4 100644
--- a/packages/InputDevices/res/values-kn/strings.xml
+++ b/packages/InputDevices/res/values-kn/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"ಸೆರ್ಬಿಯನ್ (ಸಿರಿಲಿಕ್)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"ಮೊಂಟೆನೆಗ್ರಿನ್ (ಸಿರಿಲಿಕ್)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"ರೊಮೇನಿಯನ್"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"ಇಂಗ್ಲಿಷ್ (ಭಾರತ)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ky/strings.xml b/packages/InputDevices/res/values-ky/strings.xml
index f6d018e..2222900 100644
--- a/packages/InputDevices/res/values-ky/strings.xml
+++ b/packages/InputDevices/res/values-ky/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Сербче (Кирилл)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Черногориялыкча (Кирилл)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Румынча"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Англисче (Индия)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-lo/strings.xml b/packages/InputDevices/res/values-lo/strings.xml
index 61f8f71..44380b0 100644
--- a/packages/InputDevices/res/values-lo/strings.xml
+++ b/packages/InputDevices/res/values-lo/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"ເຊີບຽນ (ຊີຣິວລິກ)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"ມອນເທເນກຣິນ (ຊີຣິວລິກ)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"ໂຣມານຽນ"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"ອັງກິດ (ອິນເດຍ)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-lv/strings.xml b/packages/InputDevices/res/values-lv/strings.xml
index cc2c94c..3a55b6a 100644
--- a/packages/InputDevices/res/values-lv/strings.xml
+++ b/packages/InputDevices/res/values-lv/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbu (kirilica)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Melnkalniešu (kirilica)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Rumāņu"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Angļu (Indija)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-mk/strings.xml b/packages/InputDevices/res/values-mk/strings.xml
index 60981d6..351ac94 100644
--- a/packages/InputDevices/res/values-mk/strings.xml
+++ b/packages/InputDevices/res/values-mk/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"српски (кирилица)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"црногорски (кирилица)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"романски"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"англиски (Индија)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ml/strings.xml b/packages/InputDevices/res/values-ml/strings.xml
index 8064c74..ed6cb8b7 100644
--- a/packages/InputDevices/res/values-ml/strings.xml
+++ b/packages/InputDevices/res/values-ml/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"സെർബിയൻ (സിറിലിക്)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"മോണ്ടിനെഗ്രിൻ (സിറിലിക്)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"റൊമേനിയൻ"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"ഇംഗ്ലീഷ് (ഇന്ത്യ)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-mn/strings.xml b/packages/InputDevices/res/values-mn/strings.xml
index 547ce49..e77551e 100644
--- a/packages/InputDevices/res/values-mn/strings.xml
+++ b/packages/InputDevices/res/values-mn/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Серби (кирилл)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Монтенегро (кирилл)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Румын"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Англи хэл (Энэтхэг)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-mr/strings.xml b/packages/InputDevices/res/values-mr/strings.xml
index 25bdfab..9483a47 100644
--- a/packages/InputDevices/res/values-mr/strings.xml
+++ b/packages/InputDevices/res/values-mr/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"सर्बियन (सिरिलिक)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"मॉन्टेनेग्रिन (सिरिलिक)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"रोमानियन"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"इंग्रजी (भारत)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-my/strings.xml b/packages/InputDevices/res/values-my/strings.xml
index 4ef5aab..1325470 100644
--- a/packages/InputDevices/res/values-my/strings.xml
+++ b/packages/InputDevices/res/values-my/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"ဆားဘီးယား (စီရီလစ်)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"မွန်တီနီဂရင်း (စီရီလစ်)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"ရိုမေးနီးယား"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"အင်္ဂလိပ် (အိန္ဒိယ)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-nb/strings.xml b/packages/InputDevices/res/values-nb/strings.xml
index 837e246..e6c0826 100644
--- a/packages/InputDevices/res/values-nb/strings.xml
+++ b/packages/InputDevices/res/values-nb/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbisk (kyrillisk)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrisk (kyrillisk)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Rumensk"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Engelsk (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ne/strings.xml b/packages/InputDevices/res/values-ne/strings.xml
index 0ab1ea6..bc2d0bfa 100644
--- a/packages/InputDevices/res/values-ne/strings.xml
+++ b/packages/InputDevices/res/values-ne/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"सर्बियाली (सिरिलिक)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"मोन्टेनिग्रिन (सिरिलिक)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"रोमानियाली"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"अङ्ग्रेजी (भारत)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-or/strings.xml b/packages/InputDevices/res/values-or/strings.xml
index 97f9088..7606b6f 100644
--- a/packages/InputDevices/res/values-or/strings.xml
+++ b/packages/InputDevices/res/values-or/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"ସର୍ବିଆନ (ସିରିଲିକ)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"ମଣ୍ଟେନେଗ୍ରିନ (ସିରିଲିକ)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"ରୋମାନିଆନ"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"ଇଂରାଜୀ (ଭାରତ)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-pl/strings.xml b/packages/InputDevices/res/values-pl/strings.xml
index 0fd962b..7f4b58f 100644
--- a/packages/InputDevices/res/values-pl/strings.xml
+++ b/packages/InputDevices/res/values-pl/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"serbski (cyrylica)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"czarnogórski (cyrylica)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"rumuński"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Angielski (Indie)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ro/strings.xml b/packages/InputDevices/res/values-ro/strings.xml
index 169378d..a416a48 100644
--- a/packages/InputDevices/res/values-ro/strings.xml
+++ b/packages/InputDevices/res/values-ro/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Sârbă (caractere chirilice)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Muntenegreană (Chirilică)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Română"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Engleză (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-si/strings.xml b/packages/InputDevices/res/values-si/strings.xml
index ba27136..2d5ffc3 100644
--- a/packages/InputDevices/res/values-si/strings.xml
+++ b/packages/InputDevices/res/values-si/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"සර්බියානු (සිරිලික්)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"මොන්ටෙනේග්‍රීන් (සිරිලික්)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"රුමේනියානු"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"ඉංග්‍රීසි (ඉන්දියාව)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-sq/strings.xml b/packages/InputDevices/res/values-sq/strings.xml
index c77de92..97ab5f9 100644
--- a/packages/InputDevices/res/values-sq/strings.xml
+++ b/packages/InputDevices/res/values-sq/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbisht (cirilike)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Malazisht (cirilike)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Rumanisht"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Anglisht (Indi)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-sw/strings.xml b/packages/InputDevices/res/values-sw/strings.xml
index d9ac91f8..fd8b845 100644
--- a/packages/InputDevices/res/values-sw/strings.xml
+++ b/packages/InputDevices/res/values-sw/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Kiserbia (Kisiriliki)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Kimontenegri (Kisiriliki)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Kiromania"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Kiingereza (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ta/strings.xml b/packages/InputDevices/res/values-ta/strings.xml
index fc91d696..0bf41fe 100644
--- a/packages/InputDevices/res/values-ta/strings.xml
+++ b/packages/InputDevices/res/values-ta/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"செர்பியன் (சிரிலிக்)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"மாண்டினெக்ரன் (சிரிலிக்)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"ரோமானியன்"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"ஆங்கிலம் (இந்தியா)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-tl/strings.xml b/packages/InputDevices/res/values-tl/strings.xml
index ea815d5..270331d 100644
--- a/packages/InputDevices/res/values-tl/strings.xml
+++ b/packages/InputDevices/res/values-tl/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbian (Cyrillic)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrin (Cyrillic)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Romanian"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"English (India)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-tr/strings.xml b/packages/InputDevices/res/values-tr/strings.xml
index 3a40c84..1d1d4e1 100644
--- a/packages/InputDevices/res/values-tr/strings.xml
+++ b/packages/InputDevices/res/values-tr/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Sırpça (Kiril)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Karadağca (Kiril)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Rumence"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"İngilizce (Hindistan)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-uk/strings.xml b/packages/InputDevices/res/values-uk/strings.xml
index 0e0d562..70f731d 100644
--- a/packages/InputDevices/res/values-uk/strings.xml
+++ b/packages/InputDevices/res/values-uk/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Сербська (кирилиця)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Чорногорська (кирилиця)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Румунська"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Англійська (Індія)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-ur/strings.xml b/packages/InputDevices/res/values-ur/strings.xml
index 44721b8..07e3835 100644
--- a/packages/InputDevices/res/values-ur/strings.xml
+++ b/packages/InputDevices/res/values-ur/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"سربیائی (سیریلک)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"مونٹے نیگریائی (سیریلک)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"رومانیائی"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"انگریزی (ہندوستان)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-uz/strings.xml b/packages/InputDevices/res/values-uz/strings.xml
index 776c1c7..b44820a 100644
--- a/packages/InputDevices/res/values-uz/strings.xml
+++ b/packages/InputDevices/res/values-uz/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serb (kirill)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Chernogor (kirill)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Rumin"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Ingliz (Hindiston)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-vi/strings.xml b/packages/InputDevices/res/values-vi/strings.xml
index 1fcba42..3f9de67 100644
--- a/packages/InputDevices/res/values-vi/strings.xml
+++ b/packages/InputDevices/res/values-vi/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Tiếng Serbia (Chữ Kirin)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Tiếng Montenegro (Chữ Kirin)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"Tiếng Romania"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"Tiếng Anh (Ấn Độ)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-zh-rCN/strings.xml b/packages/InputDevices/res/values-zh-rCN/strings.xml
index cb7f6cb..bf37dc5 100644
--- a/packages/InputDevices/res/values-zh-rCN/strings.xml
+++ b/packages/InputDevices/res/values-zh-rCN/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"塞尔维亚语（西里尔字母）"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"黑山语（西里尔字母）"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"罗马尼亚语"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"英语（印度）"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-zh-rHK/strings.xml b/packages/InputDevices/res/values-zh-rHK/strings.xml
index c718760..c30c972 100644
--- a/packages/InputDevices/res/values-zh-rHK/strings.xml
+++ b/packages/InputDevices/res/values-zh-rHK/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"塞爾維亞文 (西里爾字母)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"蒙特內哥羅文 (西里爾字母)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"羅馬尼亞文"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"英文 (印度)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-zh-rTW/strings.xml b/packages/InputDevices/res/values-zh-rTW/strings.xml
index 68cf9b0..b840b1c 100644
--- a/packages/InputDevices/res/values-zh-rTW/strings.xml
+++ b/packages/InputDevices/res/values-zh-rTW/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"塞爾維亞文 (西里爾字母)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"蒙特內哥羅文 (西里爾字母)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"羅馬尼亞文"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"英文 (印度)"</string>
 </resources>
diff --git a/packages/InputDevices/res/values-zu/strings.xml b/packages/InputDevices/res/values-zu/strings.xml
index 4ae9e47..bc79dbd 100644
--- a/packages/InputDevices/res/values-zu/strings.xml
+++ b/packages/InputDevices/res/values-zu/strings.xml
@@ -57,6 +57,5 @@
     <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbian (Cyrillic)"</string>
     <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrin (Cyrillic)"</string>
     <string name="keyboard_layout_romanian" msgid="8698989892731726903">"IsiRomanian"</string>
-    <!-- no translation found for keyboard_layout_english_india (7962353311188603367) -->
-    <skip />
+    <string name="keyboard_layout_english_india" msgid="7962353311188603367">"IsiNgisi (India)"</string>
 </resources>
diff --git a/packages/SettingsLib/ActionButtonsPreference/res/layout-v35/settingslib_expressive_action_buttons.xml b/packages/SettingsLib/ActionButtonsPreference/res/layout-v36/settingslib_expressive_action_buttons.xml
similarity index 100%
rename from packages/SettingsLib/ActionButtonsPreference/res/layout-v35/settingslib_expressive_action_buttons.xml
rename to packages/SettingsLib/ActionButtonsPreference/res/layout-v36/settingslib_expressive_action_buttons.xml
diff --git a/packages/SettingsLib/ActionButtonsPreference/res/values-v35/styles_expressive.xml b/packages/SettingsLib/ActionButtonsPreference/res/values-v36/styles_expressive.xml
similarity index 100%
rename from packages/SettingsLib/ActionButtonsPreference/res/values-v35/styles_expressive.xml
rename to packages/SettingsLib/ActionButtonsPreference/res/values-v36/styles_expressive.xml
diff --git a/packages/SettingsLib/BannerMessagePreference/Android.bp b/packages/SettingsLib/BannerMessagePreference/Android.bp
index 182daeb..203a3bf 100644
--- a/packages/SettingsLib/BannerMessagePreference/Android.bp
+++ b/packages/SettingsLib/BannerMessagePreference/Android.bp
@@ -31,5 +31,6 @@
     apex_available: [
         "//apex_available:platform",
         "com.android.healthfitness",
+        "com.android.permission",
     ],
 }
diff --git a/packages/SettingsLib/BannerMessagePreference/res/drawable-v35/settingslib_expressive_card_background.xml b/packages/SettingsLib/BannerMessagePreference/res/drawable-v36/settingslib_expressive_card_background.xml
similarity index 100%
rename from packages/SettingsLib/BannerMessagePreference/res/drawable-v35/settingslib_expressive_card_background.xml
rename to packages/SettingsLib/BannerMessagePreference/res/drawable-v36/settingslib_expressive_card_background.xml
diff --git a/packages/SettingsLib/BannerMessagePreference/res/drawable-v36/settingslib_resolved_banner_avd.xml b/packages/SettingsLib/BannerMessagePreference/res/drawable-v36/settingslib_resolved_banner_avd.xml
new file mode 100644
index 0000000..c999de7
--- /dev/null
+++ b/packages/SettingsLib/BannerMessagePreference/res/drawable-v36/settingslib_resolved_banner_avd.xml
@@ -0,0 +1,157 @@
+<!--
+  ~ Copyright (C) 2025 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.
+  -->
+<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:aapt="http://schemas.android.com/aapt">
+    <aapt:attr name="android:drawable">
+        <vector
+            android:width="112dp"
+            android:height="112dp"
+            android:viewportHeight="112"
+            android:viewportWidth="112">
+            <group android:name="_R_G">
+                <group
+                    android:name="_R_G_L_1_G"
+                    android:translateX="56.5"
+                    android:translateY="56.625">
+                    <path
+                        android:name="_R_G_L_1_G_D_0_P_0"
+                        android:fillAlpha="0"
+                        android:fillColor="?android:attr/textColorPrimary"
+                        android:fillType="nonZero"
+                        android:pathData=" M-14.75 -0.59 C-14.75,-0.59 -15.32,-1.16 -15.32,-1.16 C-15.32,-1.16 -14.67,-0.73 -14.67,-0.73 C-14.67,-0.73 -14.39,-0.44 -14.39,-0.44 C-14.39,-0.44 -17.32,2.5 -17.32,2.5 C-17.32,2.5 -17.59,2.23 -17.59,2.23 C-17.59,2.23 -14.75,-0.59 -14.75,-0.59c "
+                        android:trimPathEnd="1"
+                        android:trimPathOffset="0"
+                        android:trimPathStart="0" />
+                </group>
+                <group
+                    android:name="_R_G_L_0_G"
+                    android:rotation="-90"
+                    android:translateX="56"
+                    android:translateY="56">
+                    <path
+                        android:name="_R_G_L_0_G_D_0_P_0"
+                        android:pathData=" M53.5 0 C53.5,-29.53 29.53,-53.5 0,-53.5 C0,-53.5 0,-53.5 0,-53.5 C-29.53,-53.5 -53.5,-29.53 -53.5,0 C-53.5,0 -53.5,0 -53.5,0 C-53.5,29.53 -29.53,53.5 0,53.5 C0,53.5 0,53.5 0,53.5 C29.53,53.5 53.5,29.53 53.5,0 C53.5,0 53.5,0 53.5,0c "
+                        android:strokeAlpha="1"
+                        android:strokeColor="?android:attr/textColorTertiary"
+                        android:strokeLineCap="round"
+                        android:strokeLineJoin="round"
+                        android:strokeWidth="5"
+                        android:trimPathEnd="0"
+                        android:trimPathOffset="0"
+                        android:trimPathStart="0" />
+                </group>
+            </group>
+            <group android:name="time_group" />
+        </vector>
+    </aapt:attr>
+    <target android:name="_R_G_L_1_G_D_0_P_0">
+        <aapt:attr name="android:animation">
+            <set android:ordering="together">
+                <objectAnimator
+                    android:duration="400"
+                    android:propertyName="fillAlpha"
+                    android:startOffset="0"
+                    android:valueFrom="0"
+                    android:valueTo="0"
+                    android:valueType="floatType">
+                    <aapt:attr name="android:interpolator">
+                        <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
+                    </aapt:attr>
+                </objectAnimator>
+                <objectAnimator
+                    android:duration="17"
+                    android:propertyName="fillAlpha"
+                    android:startOffset="400"
+                    android:valueFrom="0"
+                    android:valueTo="1"
+                    android:valueType="floatType">
+                    <aapt:attr name="android:interpolator">
+                        <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
+                    </aapt:attr>
+                </objectAnimator>
+            </set>
+        </aapt:attr>
+    </target>
+    <target android:name="_R_G_L_1_G_D_0_P_0">
+        <aapt:attr name="android:animation">
+            <set android:ordering="together">
+                <objectAnimator
+                    android:duration="400"
+                    android:propertyName="pathData"
+                    android:startOffset="0"
+                    android:valueFrom="M-14.75 -0.59 C-14.75,-0.59 -15.32,-1.16 -15.32,-1.16 C-15.32,-1.16 -14.67,-0.73 -14.67,-0.73 C-14.67,-0.73 -14.39,-0.44 -14.39,-0.44 C-14.39,-0.44 -17.32,2.5 -17.32,2.5 C-17.32,2.5 -17.59,2.23 -17.59,2.23 C-17.59,2.23 -14.75,-0.59 -14.75,-0.59c "
+                    android:valueTo="M-14.75 -0.59 C-14.75,-0.59 -15.32,-1.16 -15.32,-1.16 C-15.32,-1.16 -14.67,-0.73 -14.67,-0.73 C-14.67,-0.73 -14.39,-0.44 -14.39,-0.44 C-14.39,-0.44 -17.32,2.5 -17.32,2.5 C-17.32,2.5 -17.59,2.23 -17.59,2.23 C-17.59,2.23 -14.75,-0.59 -14.75,-0.59c "
+                    android:valueType="pathType">
+                    <aapt:attr name="android:interpolator">
+                        <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
+                    </aapt:attr>
+                </objectAnimator>
+                <objectAnimator
+                    android:duration="83"
+                    android:propertyName="pathData"
+                    android:startOffset="400"
+                    android:valueFrom="M-14.75 -0.59 C-14.75,-0.59 -15.32,-1.16 -15.32,-1.16 C-15.32,-1.16 -14.67,-0.73 -14.67,-0.73 C-14.67,-0.73 -14.39,-0.44 -14.39,-0.44 C-14.39,-0.44 -17.32,2.5 -17.32,2.5 C-17.32,2.5 -17.59,2.23 -17.59,2.23 C-17.59,2.23 -14.75,-0.59 -14.75,-0.59c "
+                    android:valueTo="M-14.75 -0.59 C-14.75,-0.59 -6.41,7.75 -6.41,7.75 C-6.41,7.75 -6.3,7.65 -6.3,7.65 C-6.3,7.65 -3.48,10.47 -3.48,10.47 C-3.48,10.47 -6.41,13.41 -6.41,13.41 C-6.41,13.41 -17.59,2.23 -17.59,2.23 C-17.59,2.23 -14.75,-0.59 -14.75,-0.59c "
+                    android:valueType="pathType">
+                    <aapt:attr name="android:interpolator">
+                        <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" />
+                    </aapt:attr>
+                </objectAnimator>
+                <objectAnimator
+                    android:duration="167"
+                    android:propertyName="pathData"
+                    android:startOffset="483"
+                    android:valueFrom="M-14.75 -0.59 C-14.75,-0.59 -6.41,7.75 -6.41,7.75 C-6.41,7.75 -6.3,7.65 -6.3,7.65 C-6.3,7.65 -3.48,10.47 -3.48,10.47 C-3.48,10.47 -6.41,13.41 -6.41,13.41 C-6.41,13.41 -17.59,2.23 -17.59,2.23 C-17.59,2.23 -14.75,-0.59 -14.75,-0.59c "
+                    android:valueTo="M-14.75 -0.59 C-14.75,-0.59 -6.41,7.75 -6.41,7.75 C-6.41,7.75 14.77,-13.41 14.77,-13.41 C14.77,-13.41 17.59,-10.59 17.59,-10.59 C17.59,-10.59 -6.41,13.41 -6.41,13.41 C-6.41,13.41 -17.59,2.23 -17.59,2.23 C-17.59,2.23 -14.75,-0.59 -14.75,-0.59c "
+                    android:valueType="pathType">
+                    <aapt:attr name="android:interpolator">
+                        <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.667,1 1.0,1.0" />
+                    </aapt:attr>
+                </objectAnimator>
+            </set>
+        </aapt:attr>
+    </target>
+    <target android:name="_R_G_L_0_G_D_0_P_0">
+        <aapt:attr name="android:animation">
+            <set android:ordering="together">
+                <objectAnimator
+                    android:duration="500"
+                    android:propertyName="trimPathEnd"
+                    android:startOffset="0"
+                    android:valueFrom="0"
+                    android:valueTo="1"
+                    android:valueType="floatType">
+                    <aapt:attr name="android:interpolator">
+                        <pathInterpolator android:pathData="M 0.0,0.0 c0.2,0 0,1 1.0,1.0" />
+                    </aapt:attr>
+                </objectAnimator>
+            </set>
+        </aapt:attr>
+    </target>
+    <target android:name="time_group">
+        <aapt:attr name="android:animation">
+            <set android:ordering="together">
+                <objectAnimator
+                    android:duration="667"
+                    android:propertyName="translateX"
+                    android:startOffset="0"
+                    android:valueFrom="0"
+                    android:valueTo="1"
+                    android:valueType="floatType" />
+            </set>
+        </aapt:attr>
+    </target>
+</animated-vector>
\ No newline at end of file
diff --git a/packages/SettingsLib/BannerMessagePreference/res/layout-v35/settingslib_expressive_banner_message.xml b/packages/SettingsLib/BannerMessagePreference/res/layout-v35/settingslib_expressive_banner_message.xml
deleted file mode 100644
index b10ef6e..0000000
--- a/packages/SettingsLib/BannerMessagePreference/res/layout-v35/settingslib_expressive_banner_message.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2025 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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-    android:paddingStart="?android:attr/listPreferredItemPaddingStart">
-
-    <com.android.settingslib.widget.BannerMessageView
-        android:id="@+id/banner_background"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        style="@style/Banner.Preference.SettingsLib.Expressive">
-
-        <RelativeLayout
-            android:id="@+id/top_row"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal">
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_alignParentStart="true"
-                android:layout_marginEnd="@dimen/settingslib_expressive_space_medium4"
-                android:orientation="vertical">
-                <TextView
-                    android:id="@+id/banner_header"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    style="@style/Banner.Header.SettingsLib.Expressive"/>
-
-                <LinearLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content">
-
-                    <ImageView
-                        android:id="@+id/banner_icon"
-                        android:layout_width="@dimen/settingslib_expressive_space_small3"
-                        android:layout_height="@dimen/settingslib_expressive_space_small3"
-                        android:layout_gravity="center_vertical"
-                        android:importantForAccessibility="no"
-                        android:scaleType="fitCenter" />
-
-                    <TextView
-                        android:id="@+id/banner_title"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        style="@style/Banner.Title.SettingsLib.Expressive" />
-                </LinearLayout>
-
-                <TextView
-                    android:id="@+id/banner_subtitle"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    style="@style/Banner.Subtitle.SettingsLib.Expressive"/>
-            </LinearLayout>
-
-            <ImageButton
-                android:id="@+id/banner_dismiss_btn"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                style="@style/Banner.Dismiss.SettingsLib.Expressive" />
-        </RelativeLayout>
-
-        <TextView
-            android:id="@+id/banner_summary"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            style="@style/Banner.Summary.SettingsLib.Expressive"/>
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:id="@+id/banner_buttons_frame"
-            android:paddingTop="@dimen/settingslib_expressive_space_extrasmall6"
-            android:orientation="horizontal">
-
-            <com.google.android.material.button.MaterialButton
-                android:id="@+id/banner_negative_btn"
-                android:layout_weight="1"
-                style="@style/Banner.NegativeButton.SettingsLib.Expressive"/>
-            <Space
-                android:layout_width="@dimen/settingslib_expressive_space_extrasmall4"
-                android:layout_height="@dimen/settingslib_expressive_space_small1"/>
-            <com.google.android.material.button.MaterialButton
-                android:id="@+id/banner_positive_btn"
-                android:layout_weight="1"
-                style="@style/Banner.PositiveButton.SettingsLib.Expressive"/>
-        </LinearLayout>
-    </com.android.settingslib.widget.BannerMessageView>
-</LinearLayout>
\ No newline at end of file
diff --git a/packages/SettingsLib/BannerMessagePreference/res/layout-v36/settingslib_expressive_banner_message.xml b/packages/SettingsLib/BannerMessagePreference/res/layout-v36/settingslib_expressive_banner_message.xml
new file mode 100644
index 0000000..c448a2d
--- /dev/null
+++ b/packages/SettingsLib/BannerMessagePreference/res/layout-v36/settingslib_expressive_banner_message.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2025 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.
+  -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart">
+
+    <com.android.settingslib.widget.BannerMessageView
+        android:id="@+id/banner_background"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        style="@style/Banner.Preference.SettingsLib.Expressive">
+
+        <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <LinearLayout
+                android:id="@+id/banner_content"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical">
+
+                <RelativeLayout
+                    android:id="@+id/top_row"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal">
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentStart="true"
+                        android:layout_marginEnd="@dimen/settingslib_expressive_space_medium4"
+                        android:orientation="vertical">
+                        <TextView
+                            android:id="@+id/banner_header"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            style="@style/Banner.Header.SettingsLib.Expressive"/>
+
+                        <LinearLayout
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content">
+
+                            <ImageView
+                                android:id="@+id/banner_icon"
+                                android:layout_width="@dimen/settingslib_expressive_space_small3"
+                                android:layout_height="@dimen/settingslib_expressive_space_small3"
+                                android:layout_gravity="center_vertical"
+                                android:layout_marginEnd="@dimen/settingslib_expressive_space_extrasmall4"
+                                android:importantForAccessibility="no"
+                                android:scaleType="fitCenter" />
+
+                            <TextView
+                                android:id="@+id/banner_title"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                style="@style/Banner.Title.SettingsLib.Expressive" />
+                        </LinearLayout>
+
+                        <TextView
+                            android:id="@+id/banner_subtitle"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            style="@style/Banner.Subtitle.SettingsLib.Expressive"/>
+                    </LinearLayout>
+
+                    <ImageButton
+                        android:id="@+id/banner_dismiss_btn"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:contentDescription="@string/accessibility_banner_message_dismiss"
+                        style="@style/Banner.Dismiss.SettingsLib.Expressive" />
+                </RelativeLayout>
+
+                <TextView
+                    android:id="@+id/banner_summary"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    style="@style/Banner.Summary.SettingsLib.Expressive"/>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:id="@+id/banner_buttons_frame"
+                    android:paddingTop="@dimen/settingslib_expressive_space_extrasmall6"
+                    android:orientation="horizontal">
+
+                    <com.google.android.material.button.MaterialButton
+                        android:id="@+id/banner_negative_btn"
+                        android:layout_weight="1"
+                        style="@style/Banner.NegativeButton.SettingsLib.Expressive"/>
+                    <Space
+                        android:id="@+id/banner_button_space"
+                        android:layout_width="@dimen/settingslib_expressive_space_extrasmall4"
+                        android:layout_height="@dimen/settingslib_expressive_space_small1"/>
+                    <com.google.android.material.button.MaterialButton
+                        android:id="@+id/banner_positive_btn"
+                        android:layout_weight="1"
+                        style="@style/Banner.PositiveButton.SettingsLib.Expressive"/>
+                </LinearLayout>
+            </LinearLayout>
+
+            <TextView
+                android:id="@+id/resolved_banner_text"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:drawableTop="@drawable/settingslib_resolved_banner_avd"
+                android:visibility="gone"
+                style="@style/Banner.ResolvedText.SettingsLib.Expressive"/>
+        </FrameLayout>
+    </com.android.settingslib.widget.BannerMessageView>
+</LinearLayout>
\ No newline at end of file
diff --git a/packages/SettingsLib/BannerMessagePreference/res/values-v35/styles_expressive.xml b/packages/SettingsLib/BannerMessagePreference/res/values-v36/styles_expressive.xml
similarity index 89%
rename from packages/SettingsLib/BannerMessagePreference/res/values-v35/styles_expressive.xml
rename to packages/SettingsLib/BannerMessagePreference/res/values-v36/styles_expressive.xml
index b864311..09e07cc 100644
--- a/packages/SettingsLib/BannerMessagePreference/res/values-v35/styles_expressive.xml
+++ b/packages/SettingsLib/BannerMessagePreference/res/values-v36/styles_expressive.xml
@@ -33,7 +33,6 @@
     <style name="Banner.Title.SettingsLib.Expressive"
         parent="">
         <item name="android:layout_gravity">start</item>
-        <item name="android:layout_marginLeft">@dimen/settingslib_expressive_space_extrasmall4</item>
         <item name="android:textAlignment">viewStart</item>
         <item name="android:textAppearance">@style/TextAppearance.SettingsLib.TitleLarge.Emphasized</item>
         <item name="android:textColor">?android:attr/textColorPrimary</item>
@@ -73,4 +72,11 @@
         parent="@style/SettingsLibButtonStyle.Expressive.Outline.Extra">
         <item name="materialSizeOverlay">@style/SizeOverlay.Material3Expressive.Button.Small</item>
     </style>
+
+    <style name="Banner.ResolvedText.SettingsLib.Expressive" parent="">
+        <item name="android:layout_gravity">center</item>
+        <item name="android:drawablePadding">@dimen/settingslib_expressive_space_small1</item>
+        <item name="android:textAppearance">@style/TextAppearance.SettingsLib.BodyMedium</item>
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
+    </style>
 </resources>
diff --git a/packages/SettingsLib/BannerMessagePreference/src/com/android/settingslib/widget/BannerMessagePreference.java b/packages/SettingsLib/BannerMessagePreference/src/com/android/settingslib/widget/BannerMessagePreference.java
index c82829d..c90a76a 100644
--- a/packages/SettingsLib/BannerMessagePreference/src/com/android/settingslib/widget/BannerMessagePreference.java
+++ b/packages/SettingsLib/BannerMessagePreference/src/com/android/settingslib/widget/BannerMessagePreference.java
@@ -35,6 +35,8 @@
 
 import androidx.annotation.ColorInt;
 import androidx.annotation.ColorRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
 import androidx.annotation.StringRes;
 import androidx.preference.Preference;
@@ -43,6 +45,9 @@
 import com.android.settingslib.widget.preference.banner.R;
 
 import com.google.android.material.button.MaterialButton;
+
+import java.util.Objects;
+
 /**
  * Banner message is a banner displaying important information (permission request, page error etc),
  * and provide actions for user to address. It requires a user action to be dismissed.
@@ -67,13 +72,15 @@
                 R.color.banner_accent_attention_normal,
                 R.color.settingslib_banner_button_background_normal);
 
-        // Corresponds to the enum valye of R.attr.attentionLevel
+        // Corresponds to the enum value of R.attr.attentionLevel
         private final int mAttrValue;
         @ColorRes private final int mBackgroundColorResId;
         @ColorRes private final int mAccentColorResId;
         @ColorRes private final int mButtonBackgroundColorResId;
 
-        AttentionLevel(int attrValue, @ColorRes int backgroundColorResId,
+        AttentionLevel(
+                int attrValue,
+                @ColorRes int backgroundColorResId,
                 @ColorRes int accentColorResId,
                 @ColorRes int buttonBackgroundColorResId) {
             mAttrValue = attrValue;
@@ -115,33 +122,38 @@
             new BannerMessagePreference.DismissButtonInfo();
 
     // Default attention level is High.
-    private AttentionLevel mAttentionLevel = AttentionLevel.HIGH;
-    private CharSequence mSubtitle;
-    private CharSequence mHeader;
+    @NonNull private AttentionLevel mAttentionLevel = AttentionLevel.HIGH;
+    @Nullable private CharSequence mSubtitle;
+    @Nullable private CharSequence mHeader;
     private int mButtonOrientation;
+    @Nullable private ResolutionAnimator.Data mResolutionData;
 
-    public BannerMessagePreference(Context context) {
+    public BannerMessagePreference(@NonNull Context context) {
         super(context);
         init(context, null /* attrs */);
     }
 
-    public BannerMessagePreference(Context context, AttributeSet attrs) {
+    public BannerMessagePreference(@NonNull Context context, @Nullable AttributeSet attrs) {
         super(context, attrs);
         init(context, attrs);
     }
 
-    public BannerMessagePreference(Context context, AttributeSet attrs, int defStyleAttr) {
+    public BannerMessagePreference(
+            @NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
         init(context, attrs);
     }
 
-    public BannerMessagePreference(Context context, AttributeSet attrs, int defStyleAttr,
+    public BannerMessagePreference(
+            @NonNull Context context,
+            @Nullable AttributeSet attrs,
+            int defStyleAttr,
             int defStyleRes) {
         super(context, attrs, defStyleAttr, defStyleRes);
         init(context, attrs);
     }
 
-    private void init(Context context, AttributeSet attrs) {
+    private void init(@NonNull Context context, @Nullable AttributeSet attrs) {
         setSelectable(false);
         int resId = SettingsThemeHelper.isExpressiveTheme(context)
                 ? R.layout.settingslib_expressive_banner_message
@@ -166,7 +178,7 @@
     }
 
     @Override
-    public void onBindViewHolder(PreferenceViewHolder holder) {
+    public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
         super.onBindViewHolder(holder);
         final Context context = getContext();
 
@@ -193,14 +205,20 @@
         final ImageView iconView = (ImageView) holder.findViewById(R.id.banner_icon);
         if (iconView != null) {
             Drawable icon = getIcon();
-            iconView.setImageDrawable(
-                    icon == null
-                            ? getContext().getDrawable(R.drawable.ic_warning)
-                            : icon);
-            if (mAttentionLevel != AttentionLevel.NORMAL
-                    && !SettingsThemeHelper.isExpressiveTheme(context)) {
-                iconView.setColorFilter(
-                        new PorterDuffColorFilter(accentColor, PorterDuff.Mode.SRC_IN));
+
+            if (icon == null && SettingsThemeHelper.isExpressiveTheme(context)) {
+                iconView.setVisibility(View.GONE);
+            } else {
+                iconView.setVisibility(View.VISIBLE);
+                iconView.setImageDrawable(
+                        icon == null
+                                ? getContext().getDrawable(R.drawable.ic_warning)
+                                : icon);
+                if (mAttentionLevel != AttentionLevel.NORMAL
+                        && !SettingsThemeHelper.isExpressiveTheme(context)) {
+                    iconView.setColorFilter(
+                            new PorterDuffColorFilter(accentColor, PorterDuff.Mode.SRC_IN));
+                }
             }
         }
 
@@ -233,8 +251,10 @@
             mDismissButtonInfo.setUpButton();
 
             final TextView subtitleView = (TextView) holder.findViewById(R.id.banner_subtitle);
-            subtitleView.setText(mSubtitle);
-            subtitleView.setVisibility(mSubtitle == null ? View.GONE : View.VISIBLE);
+            if (subtitleView != null) {
+                subtitleView.setText(mSubtitle);
+                subtitleView.setVisibility(mSubtitle == null ? View.GONE : View.VISIBLE);
+            }
 
             TextView headerView = (TextView) holder.findViewById(R.id.banner_header);
             if (headerView != null) {
@@ -268,11 +288,25 @@
                 linearLayout.setOrientation(mButtonOrientation);
             }
         }
+
+        View buttonSpace = holder.findViewById(R.id.banner_button_space);
+        if (buttonSpace != null) {
+            if (mPositiveButtonInfo.shouldBeVisible() && mNegativeButtonInfo.shouldBeVisible()) {
+                buttonSpace.setVisibility(View.VISIBLE);
+            } else {
+                buttonSpace.setVisibility(View.GONE);
+            }
+        }
+
+        if (mResolutionData != null) {
+            new ResolutionAnimator(mResolutionData, holder).startResolutionAnimation();
+        }
     }
 
     /**
-     * Set the visibility state of positive button.
+     * Sets the visibility state of the positive button.
      */
+    @NonNull
     public BannerMessagePreference setPositiveButtonVisible(boolean isVisible) {
         if (isVisible != mPositiveButtonInfo.mIsVisible) {
             mPositiveButtonInfo.mIsVisible = isVisible;
@@ -282,8 +316,9 @@
     }
 
     /**
-     * Set the visibility state of negative button.
+     * Sets the visibility state of the negative button.
      */
+    @NonNull
     public BannerMessagePreference setNegativeButtonVisible(boolean isVisible) {
         if (isVisible != mNegativeButtonInfo.mIsVisible) {
             mNegativeButtonInfo.mIsVisible = isVisible;
@@ -293,9 +328,10 @@
     }
 
     /**
-     * Set the visibility state of dismiss button.
+     * Sets the visibility state of the dismiss button.
      */
     @RequiresApi(Build.VERSION_CODES.S)
+    @NonNull
     public BannerMessagePreference setDismissButtonVisible(boolean isVisible) {
         if (isVisible != mDismissButtonInfo.mIsVisible) {
             mDismissButtonInfo.mIsVisible = isVisible;
@@ -305,10 +341,35 @@
     }
 
     /**
-     * Register a callback to be invoked when positive button is clicked.
+     * Sets the enabled state of the positive button.
      */
+    @NonNull
+    public BannerMessagePreference setPositiveButtonEnabled(boolean isEnabled) {
+        if (isEnabled != mPositiveButtonInfo.mIsEnabled) {
+            mPositiveButtonInfo.mIsEnabled = isEnabled;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Sets the enabled state of the negative button.
+     */
+    @NonNull
+    public BannerMessagePreference setNegativeButtonEnabled(boolean isEnabled) {
+        if (isEnabled != mNegativeButtonInfo.mIsEnabled) {
+            mNegativeButtonInfo.mIsEnabled = isEnabled;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Registers a callback to be invoked when positive button is clicked.
+     */
+    @NonNull
     public BannerMessagePreference setPositiveButtonOnClickListener(
-            View.OnClickListener listener) {
+            @Nullable View.OnClickListener listener) {
         if (listener != mPositiveButtonInfo.mListener) {
             mPositiveButtonInfo.mListener = listener;
             notifyChanged();
@@ -317,10 +378,11 @@
     }
 
     /**
-     * Register a callback to be invoked when negative button is clicked.
+     * Registers a callback to be invoked when negative button is clicked.
      */
+    @NonNull
     public BannerMessagePreference setNegativeButtonOnClickListener(
-            View.OnClickListener listener) {
+            @Nullable View.OnClickListener listener) {
         if (listener != mNegativeButtonInfo.mListener) {
             mNegativeButtonInfo.mListener = listener;
             notifyChanged();
@@ -329,11 +391,12 @@
     }
 
     /**
-     * Register a callback to be invoked when the dismiss button is clicked.
+     * Registers a callback to be invoked when the dismiss button is clicked.
      */
     @RequiresApi(Build.VERSION_CODES.S)
+    @NonNull
     public BannerMessagePreference setDismissButtonOnClickListener(
-            View.OnClickListener listener) {
+            @Nullable View.OnClickListener listener) {
         if (listener != mDismissButtonInfo.mListener) {
             mDismissButtonInfo.mListener = listener;
             notifyChanged();
@@ -344,6 +407,7 @@
     /**
      * Sets the text to be displayed in positive button.
      */
+    @NonNull
     public BannerMessagePreference setPositiveButtonText(@StringRes int textResId) {
         return setPositiveButtonText(getContext().getString(textResId));
     }
@@ -351,7 +415,9 @@
     /**
      * Sets the text to be displayed in positive button.
      */
-    public BannerMessagePreference setPositiveButtonText(CharSequence positiveButtonText) {
+    @NonNull
+    public BannerMessagePreference setPositiveButtonText(
+            @Nullable CharSequence positiveButtonText) {
         if (!TextUtils.equals(positiveButtonText, mPositiveButtonInfo.mText)) {
             mPositiveButtonInfo.mText = positiveButtonText;
             notifyChanged();
@@ -362,6 +428,7 @@
     /**
      * Sets the text to be displayed in negative button.
      */
+    @NonNull
     public BannerMessagePreference setNegativeButtonText(@StringRes int textResId) {
         return setNegativeButtonText(getContext().getString(textResId));
     }
@@ -369,7 +436,9 @@
     /**
      * Sets the text to be displayed in negative button.
      */
-    public BannerMessagePreference setNegativeButtonText(CharSequence negativeButtonText) {
+    @NonNull
+    public BannerMessagePreference setNegativeButtonText(
+            @Nullable CharSequence negativeButtonText) {
         if (!TextUtils.equals(negativeButtonText, mNegativeButtonInfo.mText)) {
             mNegativeButtonInfo.mText = negativeButtonText;
             notifyChanged();
@@ -380,8 +449,12 @@
     /**
      * Sets button orientation.
      */
-    @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
+    @NonNull
     public BannerMessagePreference setButtonOrientation(int orientation) {
+        if (!SettingsThemeHelper.isExpressiveTheme(getContext())) {
+            return this;
+        }
+
         if (mButtonOrientation != orientation) {
             mButtonOrientation = orientation;
             notifyChanged();
@@ -393,6 +466,7 @@
      * Sets the subtitle.
      */
     @RequiresApi(Build.VERSION_CODES.S)
+    @NonNull
     public BannerMessagePreference setSubtitle(@StringRes int textResId) {
         return setSubtitle(getContext().getString(textResId));
     }
@@ -401,7 +475,8 @@
      * Sets the subtitle.
      */
     @RequiresApi(Build.VERSION_CODES.S)
-    public BannerMessagePreference setSubtitle(CharSequence subtitle) {
+    @NonNull
+    public BannerMessagePreference setSubtitle(@Nullable CharSequence subtitle) {
         if (!TextUtils.equals(subtitle, mSubtitle)) {
             mSubtitle = subtitle;
             notifyChanged();
@@ -412,7 +487,7 @@
     /**
      * Sets the header.
      */
-    @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
+    @NonNull
     public BannerMessagePreference setHeader(@StringRes int textResId) {
         return setHeader(getContext().getString(textResId));
     }
@@ -420,8 +495,12 @@
     /**
      * Sets the header.
      */
-    @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
-    public BannerMessagePreference setHeader(CharSequence header) {
+    @NonNull
+    public BannerMessagePreference setHeader(@Nullable CharSequence header) {
+        if (!SettingsThemeHelper.isExpressiveTheme(getContext())) {
+            return this;
+        }
+
         if (!TextUtils.equals(header, mHeader)) {
             mHeader = header;
             notifyChanged();
@@ -430,32 +509,75 @@
     }
 
     /**
-     * Sets the attention level. This will update the color theme of the preference.
+     * Plays a resolution animation, showing the given message.
      */
-    public BannerMessagePreference setAttentionLevel(AttentionLevel attentionLevel) {
-        if (attentionLevel == mAttentionLevel) {
+    @NonNull
+    public BannerMessagePreference showResolutionAnimation(
+            @NonNull CharSequence resolutionMessage,
+            @NonNull ResolutionCompletedCallback onCompletionCallback) {
+        if (!SettingsThemeHelper.isExpressiveTheme(getContext())) {
             return this;
         }
-
-        if (attentionLevel != null) {
-            mAttentionLevel = attentionLevel;
+        ResolutionAnimator.Data resolutionData =
+                new ResolutionAnimator.Data(resolutionMessage, onCompletionCallback);
+        if (!Objects.equals(mResolutionData, resolutionData)) {
+            mResolutionData = resolutionData;
             notifyChanged();
         }
         return this;
     }
 
+    /**
+     * Removes the resolution animation from this preference.
+     *
+     * <p>Should be called after the resolution animation completes if this preference will be
+     * reused. Otherwise the resolution animation will be played everytime this preference is
+     * displayed.
+     */
+    @NonNull
+    public BannerMessagePreference clearResolutionAnimation() {
+        if (!SettingsThemeHelper.isExpressiveTheme(getContext())) {
+            return this;
+        }
+        if (mResolutionData != null) {
+            mResolutionData = null;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Sets the attention level. This will update the color theme of the preference.
+     */
+    @NonNull
+    public BannerMessagePreference setAttentionLevel(@NonNull AttentionLevel attentionLevel) {
+        if (attentionLevel == mAttentionLevel) {
+            return this;
+        }
+
+        mAttentionLevel = attentionLevel;
+        notifyChanged();
+        return this;
+    }
+
     static class ButtonInfo {
-        private Button mButton;
-        private CharSequence mText;
-        private View.OnClickListener mListener;
+        @Nullable private Button mButton;
+        @Nullable private CharSequence mText;
+        @Nullable private View.OnClickListener mListener;
         private boolean mIsVisible = true;
+        private boolean mIsEnabled = true;
         @ColorInt private int mColor;
         @ColorInt private int mBackgroundColor;
-        private ColorStateList mStrokeColor;
+        @Nullable private ColorStateList mStrokeColor;
 
         void setUpButton() {
+            if (mButton == null) {
+                return;
+            }
+
             mButton.setText(mText);
             mButton.setOnClickListener(mListener);
+            mButton.setEnabled(mIsEnabled);
 
             MaterialButton btn = null;
             if (mButton instanceof MaterialButton) {
@@ -492,11 +614,15 @@
     }
 
     static class DismissButtonInfo {
-        private ImageButton mButton;
-        private View.OnClickListener mListener;
+        @Nullable private ImageButton mButton;
+        @Nullable private View.OnClickListener mListener;
         private boolean mIsVisible = true;
 
         void setUpButton() {
+            if (mButton == null) {
+                return;
+            }
+
             mButton.setOnClickListener(mListener);
             if (shouldBeVisible()) {
                 mButton.setVisibility(View.VISIBLE);
diff --git a/packages/SettingsLib/BannerMessagePreference/src/com/android/settingslib/widget/BannerMessageView.java b/packages/SettingsLib/BannerMessagePreference/src/com/android/settingslib/widget/BannerMessageView.java
index ff4e79d..eabb634 100644
--- a/packages/SettingsLib/BannerMessagePreference/src/com/android/settingslib/widget/BannerMessageView.java
+++ b/packages/SettingsLib/BannerMessagePreference/src/com/android/settingslib/widget/BannerMessageView.java
@@ -23,6 +23,7 @@
 import android.view.View;
 import android.widget.LinearLayout;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import com.android.settingslib.widget.preference.banner.R;
@@ -34,22 +35,25 @@
  * {@link BannerMessagePreference} to a {@code PreferenceScreen}.
  */
 public class BannerMessageView extends LinearLayout {
-    private Rect mTouchTargetForDismissButton;
+    @Nullable private Rect mTouchTargetForDismissButton;
 
-    public BannerMessageView(Context context) {
+    public BannerMessageView(@NonNull Context context) {
         super(context);
     }
 
-    public BannerMessageView(Context context,
-            @Nullable AttributeSet attrs) {
+    public BannerMessageView(@NonNull Context context, @Nullable AttributeSet attrs) {
         super(context, attrs);
     }
 
-    public BannerMessageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+    public BannerMessageView(
+            @NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
     }
 
-    public BannerMessageView(Context context, AttributeSet attrs, int defStyleAttr,
+    public BannerMessageView(
+            @NonNull Context context,
+            @Nullable AttributeSet attrs,
+            int defStyleAttr,
             int defStyleRes) {
         super(context, attrs, defStyleAttr, defStyleRes);
     }
diff --git a/packages/SettingsLib/BannerMessagePreference/src/com/android/settingslib/widget/ResolutionAnimator.kt b/packages/SettingsLib/BannerMessagePreference/src/com/android/settingslib/widget/ResolutionAnimator.kt
new file mode 100644
index 0000000..fbf910a
--- /dev/null
+++ b/packages/SettingsLib/BannerMessagePreference/src/com/android/settingslib/widget/ResolutionAnimator.kt
@@ -0,0 +1,196 @@
+/*
+ * Copyright (C) 2025 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.settingslib.widget
+
+import android.graphics.drawable.Animatable2
+import android.graphics.drawable.AnimatedVectorDrawable
+import android.graphics.drawable.Drawable
+import android.os.Build
+import android.provider.DeviceConfig
+import android.transition.Fade
+import android.transition.Transition
+import android.transition.TransitionListenerAdapter
+import android.transition.TransitionManager
+import android.transition.TransitionSet
+import android.view.View
+import android.view.ViewGroup
+import android.view.animation.LinearInterpolator
+import android.widget.TextView
+import androidx.preference.PreferenceViewHolder
+import com.android.settingslib.widget.preference.banner.R
+import java.time.Duration
+
+/** Callback to communicate when a banner message resolution animation is completed. */
+fun interface ResolutionCompletedCallback {
+    fun onCompleted()
+}
+
+internal class ResolutionAnimator(
+    private val data: Data,
+    private val preferenceViewHolder: PreferenceViewHolder,
+) {
+
+    data class Data(
+        val resolutionMessage: CharSequence,
+        val resolutionCompletedCallback: ResolutionCompletedCallback,
+    )
+
+    private val defaultBannerContent: View?
+        get() = preferenceViewHolder.findView(R.id.banner_content)
+    private val resolvedTextView: TextView?
+        get() = preferenceViewHolder.findView(R.id.resolved_banner_text)
+
+    fun startResolutionAnimation() {
+        resolvedTextView?.text = data.resolutionMessage
+        resolvedTextView?.resolutionDrawable?.reset()
+
+        val transitionSet =
+            TransitionSet()
+                .setOrdering(TransitionSet.ORDERING_SEQUENTIAL)
+                .setInterpolator(linearInterpolator)
+                .addTransition(hideIssueContentTransition)
+                .addTransition(
+                    showResolvedContentTransition
+                        .clone()
+                        .addListener(
+                            object : TransitionListenerAdapter() {
+                                override fun onTransitionEnd(transition: Transition) {
+                                    super.onTransitionEnd(transition)
+                                    startIssueResolvedAnimation()
+                                }
+                            }
+                        )
+                )
+
+        preferenceViewHolder.itemView.post {
+            TransitionManager.beginDelayedTransition(
+                preferenceViewHolder.itemView as ViewGroup,
+                transitionSet,
+            )
+
+            defaultBannerContent?.visibility = View.INVISIBLE
+            resolvedTextView?.visibility = View.VISIBLE
+        }
+
+        preferenceViewHolder.itemView.addOnAttachStateChangeListener(
+            object : View.OnAttachStateChangeListener {
+                override fun onViewAttachedToWindow(v: View) {}
+
+                override fun onViewDetachedFromWindow(v: View) {
+                    v.removeOnAttachStateChangeListener(this)
+                    cancelAnimationsAndFinish()
+                }
+            }
+        )
+    }
+
+    private fun startIssueResolvedAnimation() {
+        val animatedDrawable = resolvedTextView?.resolutionDrawable
+
+        if (animatedDrawable == null) {
+            hideResolvedUiAndFinish()
+            return
+        }
+
+        animatedDrawable.apply {
+            clearAnimationCallbacks()
+            registerAnimationCallback(
+                object : Animatable2.AnimationCallback() {
+                    override fun onAnimationEnd(drawable: Drawable) {
+                        super.onAnimationEnd(drawable)
+                        hideResolvedUiAndFinish()
+                    }
+                }
+            )
+            start()
+        }
+    }
+
+    private fun hideResolvedUiAndFinish() {
+        val hideTransition =
+            hideResolvedContentTransition
+                .clone()
+                .setInterpolator(linearInterpolator)
+                .addListener(
+                    object : TransitionListenerAdapter() {
+                        override fun onTransitionEnd(transition: Transition) {
+                            super.onTransitionEnd(transition)
+                            data.resolutionCompletedCallback.onCompleted()
+                        }
+                    }
+                )
+        TransitionManager.beginDelayedTransition(
+            preferenceViewHolder.itemView as ViewGroup,
+            hideTransition,
+        )
+        resolvedTextView?.visibility = View.GONE
+    }
+
+    private fun cancelAnimationsAndFinish() {
+        TransitionManager.endTransitions(preferenceViewHolder.itemView as ViewGroup)
+
+        resolvedTextView?.visibility = View.GONE
+
+        val animatedDrawable = resolvedTextView?.resolutionDrawable
+        animatedDrawable?.clearAnimationCallbacks()
+        animatedDrawable?.stop()
+
+        data.resolutionCompletedCallback.onCompleted()
+    }
+
+    private companion object {
+        private val linearInterpolator = LinearInterpolator()
+
+        private val HIDE_ISSUE_CONTENT_TRANSITION_DURATION = Duration.ofMillis(333)
+        private val hideIssueContentTransition =
+            Fade(Fade.OUT).setDuration(HIDE_ISSUE_CONTENT_TRANSITION_DURATION.toMillis())
+
+        private val SHOW_RESOLVED_CONTENT_TRANSITION_DELAY = Duration.ofMillis(133)
+        private val SHOW_RESOLVED_CONTENT_TRANSITION_DURATION = Duration.ofMillis(250)
+        private val showResolvedContentTransition =
+            Fade(Fade.IN)
+                .setStartDelay(SHOW_RESOLVED_CONTENT_TRANSITION_DELAY.toMillis())
+                .setDuration(SHOW_RESOLVED_CONTENT_TRANSITION_DURATION.toMillis())
+
+        private val hideResolvedContentTransitionDelay
+            get() =
+                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+                    Duration.ofMillis(
+                        DeviceConfig.getLong(
+                            "settings_ui",
+                            "banner_message_pref_hide_resolved_content_delay_millis",
+                            400,
+                        )
+                    )
+                } else {
+                    Duration.ofMillis(400)
+                }
+
+        private val HIDE_RESOLVED_UI_TRANSITION_DURATION = Duration.ofMillis(167)
+        private val hideResolvedContentTransition
+            get() =
+                Fade(Fade.OUT)
+                    .setStartDelay(hideResolvedContentTransitionDelay.toMillis())
+                    .setDuration(HIDE_RESOLVED_UI_TRANSITION_DURATION.toMillis())
+
+        inline fun <reified T : View> PreferenceViewHolder.findView(id: Int): T? =
+            findViewById(id) as? T
+
+        val TextView.resolutionDrawable: AnimatedVectorDrawable?
+            get() = compoundDrawables.find { it != null } as? AnimatedVectorDrawable
+    }
+}
diff --git a/packages/SettingsLib/ButtonPreference/Android.bp b/packages/SettingsLib/ButtonPreference/Android.bp
index a377f31..c8375a9 100644
--- a/packages/SettingsLib/ButtonPreference/Android.bp
+++ b/packages/SettingsLib/ButtonPreference/Android.bp
@@ -30,5 +30,6 @@
     apex_available: [
         "//apex_available:platform",
         "com.android.healthfitness",
+        "com.android.permission",
     ],
 }
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_filled.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_filled.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_filled.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_filled.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_filled_extra.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_filled_extra.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_filled_extra.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_filled_extra.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_filled_large.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_filled_large.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_filled_large.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_filled_large.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_outline.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_outline.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_outline.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_outline.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_outline_extra.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_outline_extra.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_outline_extra.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_outline_extra.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_outline_large.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_outline_large.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_outline_large.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_outline_large.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_tonal.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_tonal.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_tonal.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_tonal.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_tonal_extra.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_tonal_extra.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_tonal_extra.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_tonal_extra.xml
diff --git a/packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_tonal_large.xml b/packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_tonal_large.xml
similarity index 100%
rename from packages/SettingsLib/ButtonPreference/res/layout-v35/settingslib_expressive_button_tonal_large.xml
rename to packages/SettingsLib/ButtonPreference/res/layout-v36/settingslib_expressive_button_tonal_large.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/drawable-v35/settingslib_expressive_icon_back.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/drawable-v36/settingslib_expressive_icon_back.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/drawable-v35/settingslib_expressive_icon_back.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/drawable-v36/settingslib_expressive_icon_back.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/non_collapsing_toolbar_base_layout.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/non_collapsing_toolbar_base_layout.xml
index 1e48443..a49f4be 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/non_collapsing_toolbar_base_layout.xml
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/non_collapsing_toolbar_base_layout.xml
@@ -19,7 +19,8 @@
     android:id="@+id/content_parent"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:fitsSystemWindows="true">
+    android:fitsSystemWindows="true"
+    android:filterTouchesWhenObscured="false">
 
     <include layout="@layout/non_collapsing_toolbar_content_layout"/>
 </androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v35/settingslib_expressive_collapsing_toolbar_base_layout.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v36/settingslib_expressive_collapsing_toolbar_base_layout.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v35/settingslib_expressive_collapsing_toolbar_base_layout.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v36/settingslib_expressive_collapsing_toolbar_base_layout.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v35/settingslib_expressive_collapsing_toolbar_content_layout.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v36/settingslib_expressive_collapsing_toolbar_content_layout.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v35/settingslib_expressive_collapsing_toolbar_content_layout.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v36/settingslib_expressive_collapsing_toolbar_content_layout.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night-v35/themes.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night-v36/themes.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night-v35/themes.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-night-v36/themes.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/styles.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/styles.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/styles.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/styles.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/styles_expressive.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/styles_expressive.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/styles_expressive.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/styles_expressive.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/themes.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/themes.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/themes.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/themes.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/themes_expressive.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/themes_expressive.xml
similarity index 100%
rename from packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v35/themes_expressive.xml
rename to packages/SettingsLib/CollapsingToolbarBaseActivity/res/values-v36/themes_expressive.xml
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarDelegate.java b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarDelegate.java
index 01ecb66..de0d609 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarDelegate.java
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/CollapsingToolbarDelegate.java
@@ -89,6 +89,10 @@
 
     private boolean mIsExpressiveTheme;
 
+    public CollapsingToolbarDelegate(@NonNull HostCallback hostCallback) {
+        this(hostCallback, /* useCollapsingToolbar= */ true);
+    }
+
     public CollapsingToolbarDelegate(@NonNull HostCallback hostCallback,
             boolean useCollapsingToolbar) {
         mHostCallback = hostCallback;
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/widget/CollapsingCoordinatorLayout.java b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/widget/CollapsingCoordinatorLayout.java
index 51d7504..25d0400 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/widget/CollapsingCoordinatorLayout.java
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/widget/CollapsingCoordinatorLayout.java
@@ -105,6 +105,7 @@
         return true;
     }
 
+    @SuppressWarnings("RestrictTo")
     private void init() {
         int resId = SettingsThemeHelper.isExpressiveTheme(getContext())
                 ? R.layout.settingslib_expressive_collapsing_toolbar_content_layout
diff --git a/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt b/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt
index 9d037e9..806580b 100644
--- a/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt
+++ b/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt
@@ -17,20 +17,20 @@
 package com.android.settingslib.widget
 
 import android.content.Context
-import android.os.Build
 import android.text.TextUtils
 import android.util.AttributeSet
 import android.view.View
-import androidx.annotation.RequiresApi
 import androidx.preference.Preference
 import androidx.preference.PreferenceViewHolder
 import com.android.settingslib.widget.preference.intro.R
 
-class IntroPreference @JvmOverloads constructor(
+class IntroPreference
+@JvmOverloads
+constructor(
     context: Context,
     attrs: AttributeSet? = null,
     defStyleAttr: Int = 0,
-    defStyleRes: Int = 0
+    defStyleRes: Int = 0,
 ) : Preference(context, attrs, defStyleAttr, defStyleRes), GroupSectionDividerMixin {
 
     private var isCollapsable: Boolean = true
@@ -66,9 +66,9 @@
 
     /**
      * Sets whether the summary is collapsable.
+     *
      * @param collapsable True if the summary should be collapsable, false otherwise.
      */
-    @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
     fun setCollapsable(collapsable: Boolean) {
         isCollapsable = collapsable
         minLines = if (isCollapsable) DEFAULT_MIN_LINES else DEFAULT_MAX_LINES
@@ -77,9 +77,9 @@
 
     /**
      * Sets the minimum number of lines to display when collapsed.
+     *
      * @param lines The minimum number of lines.
      */
-    @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
     fun setMinLines(lines: Int) {
         minLines = lines.coerceIn(1, DEFAULT_MAX_LINES)
         notifyChanged()
@@ -87,9 +87,9 @@
 
     /**
      * Sets the action when clicking on the hyperlink in the text.
+     *
      * @param listener The click listener for hyperlink.
      */
-    @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
     fun setHyperlinkListener(listener: View.OnClickListener) {
         if (hyperlinkListener != listener) {
             hyperlinkListener = listener
@@ -99,9 +99,9 @@
 
     /**
      * Sets the action when clicking on the learn more view.
+     *
      * @param listener The click listener for learn more.
      */
-    @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
     fun setLearnMoreAction(listener: View.OnClickListener) {
         if (learnMoreListener != listener) {
             learnMoreListener = listener
@@ -111,9 +111,9 @@
 
     /**
      * Sets the text of learn more view.
+     *
      * @param text The text of learn more.
      */
-    @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
     fun setLearnMoreText(text: CharSequence) {
         if (!TextUtils.equals(learnMoreText, text)) {
             learnMoreText = text
diff --git a/packages/SettingsLib/MainSwitchPreference/res/color-night-v35/settingslib_main_switch_text_color.xml b/packages/SettingsLib/MainSwitchPreference/res/color-night-v36/settingslib_main_switch_text_color.xml
similarity index 100%
rename from packages/SettingsLib/MainSwitchPreference/res/color-night-v35/settingslib_main_switch_text_color.xml
rename to packages/SettingsLib/MainSwitchPreference/res/color-night-v36/settingslib_main_switch_text_color.xml
diff --git a/packages/SettingsLib/MainSwitchPreference/res/color-v35/settingslib_main_switch_text_color.xml b/packages/SettingsLib/MainSwitchPreference/res/color-v36/settingslib_main_switch_text_color.xml
similarity index 100%
rename from packages/SettingsLib/MainSwitchPreference/res/color-v35/settingslib_main_switch_text_color.xml
rename to packages/SettingsLib/MainSwitchPreference/res/color-v36/settingslib_main_switch_text_color.xml
diff --git a/packages/SettingsLib/MainSwitchPreference/res/drawable-v35/settingslib_expressive_switch_bar_bg.xml b/packages/SettingsLib/MainSwitchPreference/res/drawable-v36/settingslib_expressive_switch_bar_bg.xml
similarity index 100%
rename from packages/SettingsLib/MainSwitchPreference/res/drawable-v35/settingslib_expressive_switch_bar_bg.xml
rename to packages/SettingsLib/MainSwitchPreference/res/drawable-v36/settingslib_expressive_switch_bar_bg.xml
diff --git a/packages/SettingsLib/MainSwitchPreference/res/layout-v35/settingslib_expressive_main_switch_bar.xml b/packages/SettingsLib/MainSwitchPreference/res/layout-v36/settingslib_expressive_main_switch_bar.xml
similarity index 100%
rename from packages/SettingsLib/MainSwitchPreference/res/layout-v35/settingslib_expressive_main_switch_bar.xml
rename to packages/SettingsLib/MainSwitchPreference/res/layout-v36/settingslib_expressive_main_switch_bar.xml
diff --git a/packages/SettingsLib/MainSwitchPreference/res/layout-v35/settingslib_expressive_main_switch_layout.xml b/packages/SettingsLib/MainSwitchPreference/res/layout-v36/settingslib_expressive_main_switch_layout.xml
similarity index 100%
rename from packages/SettingsLib/MainSwitchPreference/res/layout-v35/settingslib_expressive_main_switch_layout.xml
rename to packages/SettingsLib/MainSwitchPreference/res/layout-v36/settingslib_expressive_main_switch_layout.xml
diff --git a/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt b/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt
index 1cb8005..02bef9f 100644
--- a/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt
+++ b/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt
@@ -59,8 +59,6 @@
     private val preferenceHierarchy: PreferenceHierarchy,
 ) : KeyedDataObservable<String>() {
 
-    private val mainExecutor = HandlerExecutor.main
-
     private val preferenceLifecycleContext =
         object : PreferenceLifecycleContext(context) {
             override val lifecycleScope: LifecycleCoroutineScope
@@ -88,11 +86,11 @@
     private val preferences: ImmutableMap<String, PreferenceHierarchyNode>
     private val dependencies: ImmutableMultimap<String, String>
     private val lifecycleAwarePreferences: Array<PreferenceLifecycleProvider>
-    private val storages = mutableMapOf<String, KeyedObservable<String>>()
+    private val observables = mutableMapOf<String, KeyedObservable<String>>()
 
     private val preferenceObserver: KeyedObserver<String?>
 
-    private val storageObserver =
+    private val observer =
         KeyedObserver<String> { key, reason ->
             if (DataChangeReason.isDataChange(reason)) {
                 notifyChange(key, PreferenceChangeReason.VALUE)
@@ -133,15 +131,19 @@
         this.dependencies = dependenciesBuilder.build()
         this.lifecycleAwarePreferences = lifecycleAwarePreferences.toTypedArray()
 
+        val executor = HandlerExecutor.main
         preferenceObserver = KeyedObserver { key, reason -> onPreferenceChange(key, reason) }
-        addObserver(preferenceObserver, mainExecutor)
+        addObserver(preferenceObserver, executor)
 
         preferenceScreen.forEachRecursively {
-            it.preferenceDataStore?.findKeyValueStore()?.let { keyValueStore ->
-                val key = it.key
-                storages[key] = keyValueStore
-                keyValueStore.addObserver(key, storageObserver, mainExecutor)
-            }
+            val key = it.key ?: return@forEachRecursively
+            @Suppress("UNCHECKED_CAST")
+            val observable =
+                it.preferenceDataStore?.findKeyValueStore()
+                    ?: (preferences[key]?.metadata as? KeyedObservable<String>)
+                    ?: return@forEachRecursively
+            observables[key] = observable
+            observable.addObserver(key, observer, executor)
         }
     }
 
@@ -212,7 +214,7 @@
 
     fun onDestroy() {
         removeObserver(preferenceObserver)
-        for ((key, storage) in storages) storage.removeObserver(key, storageObserver)
+        for ((key, observable) in observables) observable.removeObserver(key, observer)
         for (preference in lifecycleAwarePreferences) {
             preference.onDestroy(preferenceLifecycleContext)
         }
diff --git a/packages/SettingsLib/ProfileSelector/res/color-night-v35/settingslib_tabs_indicator_color.xml b/packages/SettingsLib/ProfileSelector/res/color-night-v36/settingslib_tabs_indicator_color.xml
similarity index 100%
rename from packages/SettingsLib/ProfileSelector/res/color-night-v35/settingslib_tabs_indicator_color.xml
rename to packages/SettingsLib/ProfileSelector/res/color-night-v36/settingslib_tabs_indicator_color.xml
diff --git a/packages/SettingsLib/SelectorWithWidgetPreference/res/layout/preference_widget_checkbox.xml b/packages/SettingsLib/SelectorWithWidgetPreference/res/layout/settingslib_preference_widget_checkbox.xml
similarity index 100%
rename from packages/SettingsLib/SelectorWithWidgetPreference/res/layout/preference_widget_checkbox.xml
rename to packages/SettingsLib/SelectorWithWidgetPreference/res/layout/settingslib_preference_widget_checkbox.xml
diff --git a/packages/SettingsLib/SelectorWithWidgetPreference/res/layout/preference_widget_radiobutton.xml b/packages/SettingsLib/SelectorWithWidgetPreference/res/layout/settingslib_preference_widget_radiobutton.xml
similarity index 100%
rename from packages/SettingsLib/SelectorWithWidgetPreference/res/layout/preference_widget_radiobutton.xml
rename to packages/SettingsLib/SelectorWithWidgetPreference/res/layout/settingslib_preference_widget_radiobutton.xml
diff --git a/packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java b/packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java
index 218983a..cde8b33 100644
--- a/packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java
+++ b/packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java
@@ -234,9 +234,9 @@
     private void init(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr,
             int defStyleRes) {
         if (mIsCheckBox) {
-            setWidgetLayoutResource(R.layout.preference_widget_checkbox);
+            setWidgetLayoutResource(R.layout.settingslib_preference_widget_checkbox);
         } else {
-            setWidgetLayoutResource(R.layout.preference_widget_radiobutton);
+            setWidgetLayoutResource(R.layout.settingslib_preference_widget_radiobutton);
         }
         setLayoutResource(R.layout.preference_selector_with_widget);
         setIconSpaceReserved(false);
diff --git a/packages/SettingsLib/SettingsTheme/res/color-night-v35/settingslib_switch_track_outline_color.xml b/packages/SettingsLib/SettingsTheme/res/color-night-v36/settingslib_switch_track_outline_color.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/color-night-v35/settingslib_switch_track_outline_color.xml
rename to packages/SettingsLib/SettingsTheme/res/color-night-v36/settingslib_switch_track_outline_color.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_expressive_color_main_switch_track.xml b/packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_expressive_color_main_switch_track.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_expressive_color_main_switch_track.xml
rename to packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_expressive_color_main_switch_track.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_preference_bg_color.xml b/packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_preference_bg_color.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_preference_bg_color.xml
rename to packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_preference_bg_color.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_switch_track_outline_color.xml b/packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_switch_track_outline_color.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_switch_track_outline_color.xml
rename to packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_switch_track_outline_color.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_text_color_primary.xml b/packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_text_color_primary.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_text_color_primary.xml
rename to packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_text_color_primary.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_text_color_secondary.xml b/packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_text_color_secondary.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/color-v35/settingslib_text_color_secondary.xml
rename to packages/SettingsLib/SettingsTheme/res/color-v36/settingslib_text_color_secondary.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_arrow_drop_down.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_arrow_drop_down.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_arrow_drop_down.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_arrow_drop_down.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_list_divider.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_list_divider.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_list_divider.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_list_divider.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_progress_horizontal.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_progress_horizontal.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_progress_horizontal.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_progress_horizontal.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_bottom.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_bottom.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_bottom.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_bottom.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_bottom_highlighted.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_bottom_highlighted.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_bottom_highlighted.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_bottom_highlighted.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_bottom_selected.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_bottom_selected.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_bottom_selected.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_bottom_selected.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_center.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_center.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_center.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_center.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_center_highlighted.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_center_highlighted.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_center_highlighted.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_center_highlighted.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_center_selected.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_center_selected.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_center_selected.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_center_selected.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_highlighted.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_highlighted.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_highlighted.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_highlighted.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_selected.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_selected.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_selected.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_selected.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_top.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_top.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_top.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_top.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_top_highlighted.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_top_highlighted.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_top_highlighted.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_top_highlighted.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_top_selected.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_top_selected.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_round_background_top_selected.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_round_background_top_selected.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_spinner_background.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_spinner_background.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_spinner_background.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_spinner_background.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_spinner_dropdown_background.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_spinner_dropdown_background.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/drawable-v35/settingslib_spinner_dropdown_background.xml
rename to packages/SettingsLib/SettingsTheme/res/drawable-v36/settingslib_spinner_dropdown_background.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_preference.xml b/packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_preference.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_preference.xml
rename to packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_preference.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_preference_icon_frame.xml b/packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_preference_icon_frame.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_preference_icon_frame.xml
rename to packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_preference_icon_frame.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_preference_switch.xml b/packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_preference_switch.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_preference_switch.xml
rename to packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_preference_switch.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_two_target_divider.xml b/packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_two_target_divider.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/layout-v35/settingslib_expressive_two_target_divider.xml
rename to packages/SettingsLib/SettingsTheme/res/layout-v36/settingslib_expressive_two_target_divider.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-night-v35/colors.xml b/packages/SettingsLib/SettingsTheme/res/values-night-v36/colors.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-night-v35/colors.xml
rename to packages/SettingsLib/SettingsTheme/res/values-night-v36/colors.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/colors.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/colors.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/colors.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/colors.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/dimens.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/dimens.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/dimens.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/dimens.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/styles_expressive.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/styles_expressive.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/styles_preference_expressive.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/styles_preference_expressive.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/styles_preference_expressive.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/styles_preference_expressive.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/themes.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/themes.xml
similarity index 94%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/themes.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/themes.xml
index b6e80c7..1c45ff6 100644
--- a/packages/SettingsLib/SettingsTheme/res/values-v35/themes.xml
+++ b/packages/SettingsLib/SettingsTheme/res/values-v36/themes.xml
@@ -16,7 +16,7 @@
   -->
 
 <resources>
-    <style name="Theme.SettingsBase_v35" parent="Theme.SettingsBase_v33" >
+    <style name="Theme.SettingsBase_v36" parent="Theme.SettingsBase_v33" >
         <item name="android:colorAccent">@color/settingslib_materialColorPrimary</item>
         <item name="android:colorBackground">@color/settingslib_materialColorSurfaceContainer</item>
         <item name="android:textColorPrimary">@color/settingslib_materialColorOnSurface</item>
@@ -27,5 +27,5 @@
         <item name="android:clipChildren">false</item>
     </style>
 
-    <style name="Theme.SettingsBase" parent="Theme.SettingsBase_v35" />
+    <style name="Theme.SettingsBase" parent="Theme.SettingsBase_v36" />
 </resources>
\ No newline at end of file
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/themes_expressive.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/themes_expressive.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/themes_expressive.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/themes_expressive.xml
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/themes_preference_expressive.xml b/packages/SettingsLib/SettingsTheme/res/values-v36/themes_preference_expressive.xml
similarity index 100%
rename from packages/SettingsLib/SettingsTheme/res/values-v35/themes_preference_expressive.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v36/themes_preference_expressive.xml
diff --git a/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/SettingsPreferenceGroupAdapter.kt b/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/SettingsPreferenceGroupAdapter.kt
index 6a06320..a04fce7 100644
--- a/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/SettingsPreferenceGroupAdapter.kt
+++ b/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/SettingsPreferenceGroupAdapter.kt
@@ -47,7 +47,7 @@
 
     private val mHandler = Handler(Looper.getMainLooper())
 
-    private val syncRunnable = Runnable { updatePreferences() }
+    private val syncRunnable = Runnable { updatePreferencesList() }
 
     init {
         val context = preferenceGroup.context
@@ -64,7 +64,7 @@
             true, /* resolveRefs */
         )
         mLegacyBackgroundRes = outValue.resourceId
-        updatePreferences()
+        updatePreferencesList()
     }
 
     @SuppressLint("RestrictedApi")
@@ -82,7 +82,7 @@
         updateBackground(holder, position)
     }
 
-    private fun updatePreferences() {
+    private fun updatePreferencesList() {
         val oldList = ArrayList(mRoundCornerMappingList)
         mRoundCornerMappingList = ArrayList()
         mappingPreferenceGroup(mRoundCornerMappingList, mPreferenceGroup)
diff --git a/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/SettingsThemeHelper.kt b/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/SettingsThemeHelper.kt
index 1f4a48d..5bf8f60 100644
--- a/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/SettingsThemeHelper.kt
+++ b/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/SettingsThemeHelper.kt
@@ -52,7 +52,7 @@
     private fun tryInit(context: Context) {
         expressiveThemeState =
             if (
-                (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) &&
+                (Build.VERSION.SDK_INT > Build.VERSION_CODES.VANILLA_ICE_CREAM) &&
                         (getPropBoolean(context, IS_EXPRESSIVE_DESIGN_ENABLED, false) ||
                                 Flags.isExpressiveDesignEnabled())
             ) {
diff --git a/packages/SettingsLib/Spa/build.gradle.kts b/packages/SettingsLib/Spa/build.gradle.kts
index 5e72c43..50408190 100644
--- a/packages/SettingsLib/Spa/build.gradle.kts
+++ b/packages/SettingsLib/Spa/build.gradle.kts
@@ -28,7 +28,7 @@
 
 allprojects {
     extra["androidTop"] = androidTop
-    extra["jetpackComposeVersion"] = "1.8.0-alpha08"
+    extra["jetpackComposeVersion"] = "1.8.0-beta02"
 }
 
 subprojects {
diff --git a/packages/SettingsLib/Spa/gradle/libs.versions.toml b/packages/SettingsLib/Spa/gradle/libs.versions.toml
index 4113ad8..b074f4b 100644
--- a/packages/SettingsLib/Spa/gradle/libs.versions.toml
+++ b/packages/SettingsLib/Spa/gradle/libs.versions.toml
@@ -15,7 +15,7 @@
 #
 
 [versions]
-agp = "8.8.0"
+agp = "8.8.1"
 dexmaker-mockito = "2.28.3"
 jvm = "21"
 kotlin = "2.0.21"
diff --git a/packages/SettingsLib/Spa/spa/build.gradle.kts b/packages/SettingsLib/Spa/spa/build.gradle.kts
index de1fa4e..7ce5b71 100644
--- a/packages/SettingsLib/Spa/spa/build.gradle.kts
+++ b/packages/SettingsLib/Spa/spa/build.gradle.kts
@@ -51,16 +51,15 @@
 
 dependencies {
     api(project(":SettingsLibColor"))
-    api(project(":SettingsLib:SettingsTheme"))
     api("androidx.appcompat:appcompat:1.7.0")
-    api("androidx.compose.material3:material3:1.4.0-alpha05")
+    api("androidx.compose.material3:material3:1.4.0-alpha08")
     api("androidx.compose.material:material-icons-extended")
     api("androidx.compose.runtime:runtime-livedata:$jetpackComposeVersion")
     api("androidx.compose.ui:ui-tooling-preview:$jetpackComposeVersion")
     api("androidx.graphics:graphics-shapes-android:1.0.1")
     api("androidx.lifecycle:lifecycle-livedata-ktx")
     api("androidx.lifecycle:lifecycle-runtime-compose")
-    api("androidx.navigation:navigation-compose:2.9.0-alpha04")
+    api("androidx.navigation:navigation-compose:2.9.0-alpha06")
     api("com.github.PhilJay:MPAndroidChart:v3.1.0-alpha")
     api("com.google.android.material:material:1.13.0-alpha08")
     debugApi("androidx.compose.ui:ui-tooling:$jetpackComposeVersion")
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SpaEnvironment.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SpaEnvironment.kt
index 11ae9e9..53f97d2 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SpaEnvironment.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SpaEnvironment.kt
@@ -21,6 +21,7 @@
 import android.util.Log
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.platform.LocalContext
+import com.android.settingslib.spa.framework.util.SystemProperties
 
 private const val TAG = "SpaEnvironment"
 
@@ -50,9 +51,7 @@
         Log.d(TAG, "resetForPreview")
     }
 
-    fun isReady(): Boolean {
-        return spaEnvironment != null
-    }
+    fun isReady(): Boolean = spaEnvironment != null
 
     val instance: SpaEnvironment
         get() {
@@ -60,6 +59,14 @@
                 throw UnsupportedOperationException("Spa environment is not set")
             return spaEnvironment!!
         }
+
+    /**
+     * Optional instance of SpaEnvironment.
+     *
+     * Useful when there is fallback logic.
+     */
+    val optionalInstance: SpaEnvironment?
+        get() = spaEnvironment
 }
 
 abstract class SpaEnvironment(context: Context) {
@@ -81,6 +88,11 @@
     // Specify provider authorities for debugging purpose.
     open val searchProviderAuthorities: String? = null
 
+    /** Specify whether expressive design is enabled. */
+    open val isSpaExpressiveEnabled by lazy {
+        SystemProperties.getBoolean("is_expressive_design_enabled", false)
+    }
+
     // TODO: add other environment setup here.
     companion object {
         /**
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsTheme.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsTheme.kt
index badf7ae..6531fba 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsTheme.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsTheme.kt
@@ -21,8 +21,7 @@
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.CompositionLocalProvider
-import com.android.settingslib.spa.framework.util.SystemProperties
-import com.android.settingslib.widget.theme.flags.Flags
+import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory
 
 /**
  * The Material 3 Theme for Settings.
@@ -44,6 +43,5 @@
 }
 
 val isSpaExpressiveEnabled by lazy {
-    SystemProperties.getBoolean("is_expressive_design_enabled", false) ||
-        Flags.isExpressiveDesignEnabled()
+    SpaEnvironmentFactory.optionalInstance?.isSpaExpressiveEnabled ?: false
 }
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/SystemProperties.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/SystemProperties.kt
index ed4936b..3b4a675 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/SystemProperties.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/SystemProperties.kt
@@ -20,7 +20,7 @@
 import android.util.Log
 
 @SuppressLint("PrivateApi")
-object SystemProperties {
+internal object SystemProperties {
     private const val TAG = "SystemProperties"
 
     fun getBoolean(key: String, default: Boolean): Boolean = try {
diff --git a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/button/ActionButtonsTest.kt b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/button/ActionButtonsTest.kt
index bab02b0..8d9bac6 100644
--- a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/button/ActionButtonsTest.kt
+++ b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/button/ActionButtonsTest.kt
@@ -16,8 +16,6 @@
 
 package com.android.settingslib.spa.widget.button
 
-import android.platform.test.annotations.RequiresFlagsDisabled
-import android.platform.test.flag.junit.DeviceFlagsValueProvider
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.automirrored.outlined.Launch
 import androidx.compose.material.icons.outlined.Close
@@ -30,7 +28,6 @@
 import androidx.compose.ui.test.onNodeWithText
 import androidx.compose.ui.test.performClick
 import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settingslib.widget.theme.flags.Flags.FLAG_IS_EXPRESSIVE_DESIGN_ENABLED
 import com.google.common.truth.Truth.assertThat
 import org.junit.Rule
 import org.junit.Test
@@ -40,8 +37,6 @@
 class ActionButtonsTest {
     @get:Rule
     val composeTestRule = createComposeRule()
-    @get:Rule
-    val mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
 
     @Test
     fun button_displayed() {
@@ -59,7 +54,6 @@
         composeTestRule.onNodeWithText("Open").assertIsDisplayed()
     }
 
-    @RequiresFlagsDisabled(FLAG_IS_EXPRESSIVE_DESIGN_ENABLED)
     @Test
     fun button_clickable() {
         var clicked by mutableStateOf(false)
diff --git a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/scaffold/CustomizedAppBarTest.kt b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/scaffold/CustomizedAppBarTest.kt
index 89206ba..0a4f0d9 100644
--- a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/scaffold/CustomizedAppBarTest.kt
+++ b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/scaffold/CustomizedAppBarTest.kt
@@ -16,8 +16,6 @@
 
 package com.android.settingslib.spa.widget.scaffold
 
-import android.platform.test.annotations.RequiresFlagsDisabled
-import android.platform.test.flag.junit.DeviceFlagsValueProvider
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.fillMaxSize
 import androidx.compose.foundation.lazy.LazyColumn
@@ -54,7 +52,6 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settingslib.spa.testutils.rootWidth
 import com.android.settingslib.spa.testutils.setContentForSizeAssertions
-import com.android.settingslib.widget.theme.flags.Flags.FLAG_IS_EXPRESSIVE_DESIGN_ENABLED
 import com.google.common.truth.Truth.assertThat
 import org.junit.Rule
 import org.junit.Test
@@ -65,8 +62,6 @@
 class CustomizedAppBarTest {
 
     @get:Rule val rule = createComposeRule()
-    @get:Rule
-    val mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
 
     @Test
     fun smallTopAppBar_expandsToScreen() {
@@ -102,7 +97,6 @@
         assertThat(textStyle).isEqualTo(expectedTextStyle)
     }
 
-    @RequiresFlagsDisabled(FLAG_IS_EXPRESSIVE_DESIGN_ENABLED)
     @Test
     fun smallTopAppBar_contentColor() {
         var titleColor: Color = Color.Unspecified
diff --git a/packages/SettingsLib/TwoTargetPreference/res/layout-v35/settingslib_expressive_preference_two_target.xml b/packages/SettingsLib/TwoTargetPreference/res/layout-v36/settingslib_expressive_preference_two_target.xml
similarity index 100%
rename from packages/SettingsLib/TwoTargetPreference/res/layout-v35/settingslib_expressive_preference_two_target.xml
rename to packages/SettingsLib/TwoTargetPreference/res/layout-v36/settingslib_expressive_preference_two_target.xml
diff --git a/packages/SettingsLib/res/layout-v33/preference_checkable_two_target.xml b/packages/SettingsLib/res/layout-v33/preference_checkable_two_target.xml
index 7ad018c..60d03e3 100644
--- a/packages/SettingsLib/res/layout-v33/preference_checkable_two_target.xml
+++ b/packages/SettingsLib/res/layout-v33/preference_checkable_two_target.xml
@@ -47,7 +47,7 @@
             android:clipToPadding="false"
             android:paddingTop="4dp"
             android:paddingBottom="4dp">
-            <include layout="@layout/preference_widget_checkbox" />
+            <include layout="@layout/settingslib_preference_widget_checkbox" />
         </LinearLayout>
 
         <RelativeLayout
diff --git a/packages/SettingsLib/res/layout/preference_checkable_two_target.xml b/packages/SettingsLib/res/layout/preference_checkable_two_target.xml
index f512f9b..ab7b04b 100644
--- a/packages/SettingsLib/res/layout/preference_checkable_two_target.xml
+++ b/packages/SettingsLib/res/layout/preference_checkable_two_target.xml
@@ -47,7 +47,7 @@
             android:clipToPadding="false"
             android:paddingTop="4dp"
             android:paddingBottom="4dp">
-            <include layout="@layout/preference_widget_checkbox" />
+            <include layout="@layout/settingslib_preference_widget_checkbox" />
         </LinearLayout>
 
         <RelativeLayout
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index dbc4e5a..dcad735 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Kon nie omgewing opdateer nie"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktief (net media). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktiewe (net media). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Gastetoestel. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Gastetoestel. L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Gastetoestel (net media). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Gastetoestel (net media). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Gekoppel (steun oudiodeling). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Gekoppel (steun oudiodeling). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Gekoppel (steun oudiodeling). Links: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Gekoppel (steun oudiodeling). Regs: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Gekoppel (steun oudiodeling)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Gastetoestel (steun oudiodeling). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Gastetoestel (steun oudiodeling). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Gastetoestel (steun oudiodeling)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktief (net media)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Gastetoestel"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Gastetoestel (net media)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Steun oudiodeling"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Gastetoestel. Steun oudiodeling"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktief (net media), net linkerkant"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktief (net media), net regterkant"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktief (net media), linker- en regterkant"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardeware-versnelde lewering"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitering"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Vensterbestuur"</string>
     <string name="strict_mode" msgid="889864762140862437">"Strengmodus geaktiveer"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Flits skerm as apps lang bewerkings uitvoer op die hoofdraad"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Wyserligging"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView-implementering"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Stel WebView-implementering"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Hierdie keuse is nie meer geldig nie. Probeer weer."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Webaansig-Ontwikkelaarnutsgoed"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Webaansigpakket nie gevind nie."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Kon nie Ontwikkelaarnutsgoed begin nie."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Fotokleurmodus"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Gebruik sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Gedeaktiveer"</string>
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index bfe6006..dc6bd0f 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"በዙሪያ ያሉትን ማዘመን አልተቻለም"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"ገቢር (ሚዲያ ብቻ)። <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ባትሪ።"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"ገቢር (ሚዲያ ብቻ)። ግ፦ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>፣ ቀ፦ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ባትሪ።"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"የእንግዳ መሣሪያ። <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ባትሪ።"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"የእንግዳ መሣሪያ። ግ፦ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>፣ ቀ፦ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ባትሪ።"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"የእንግዳ መሣሪያ (ሚዲያ ብቻ)። <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ባትሪ።"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"የእንግዳ መሣሪያ (ሚዲያ ብቻ)። ግ፦ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>፣ ቀ፦ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ባትሪ።"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"ተገናኝቷል (የድምፅ ማጋራት ይደግፋል)፣ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ባትሪ።"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"ተገናኝቷል (የድምፅ ማጋራት ይደግፋል) ግ፦ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>፣ ቀ፦ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ባትሪ።"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"ተገናኝቷል (የድምፅ ማጋራት ይደግፋል)። ግራ፦<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ባትሪ።"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"ተገናኝቷል (የድምፅ ማጋራት ይደግፋል)። ቀኝ፦ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ባትሪ።"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"ተገናኝቷል (የድምፅ ማጋራት ይደግፋል)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"የእንግዳ መሣሪያ (የድምፅ ማጋራትን ይደግፋል)። <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ባትሪ።"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"የእንግዳ መሣሪያ (የድምፅ ማጋራትን ይደግፋል)። ግ፦ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>፣ ቀ፦ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ባትሪ።"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"የእንግዳ መሣሪያ (የድምፅ ማጋራትን ይደግፋል)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"ገቢር (ሚዲያ ብቻ)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"የእንግዳ መሣሪያ"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"የእንግዳ መሣሪያ (ሚዲያ ብቻ)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"ድምፅ ማጋራትን ይደግፋል"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"የእንግዳ መሣሪያ። የድምፅ ማጋራትን ይደግፋል"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"ገቢር (ሚዲያ ብቻ)፣ ግራ ብቻ"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"ገቢር (ሚዲያ ብቻ) ቀኝ ብቻ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"ገቢር (ሚዲያ ብቻ)፣ ግራ እና ቀኝ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"የተፋጠነ የሃርድዌር አሰጣጥ"</string>
     <string name="media_category" msgid="8122076702526144053">"ማህደረመረጃ"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"ቁጥጥር"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"የመስኮት አስተዳደር"</string>
     <string name="strict_mode" msgid="889864762140862437">"ጥብቅ ሁነታ ነቅቷል"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"መተግበሪያዎች ረጅም ክንውኖች ወደ ዋና ክሮች ሲያካሂዱ ማያላይ ብልጭ አድርግ።"</string>
     <string name="pointer_location" msgid="7516929526199520173">"የአመልካች ሥፍራ"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"የWebView ትግበራ"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"የWebView ትግበራን ያዘጋጁ"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"ይህ ምርጫ ከአሁን በኋላ የሚሰራ አይደለም። እንደገና ይሞክሩ።"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"የድር ዕይታ DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"የድር ዕይታ ጥቅል አልተገኘም።"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevToolsን ማስጀመር አልተቻለም።"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"የስዕል ቀለም ሁነታ"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB ይጠቀሙ"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"ተሰናክሏል"</string>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index 64a021d..e2487d7 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"تعذَّر تعديل حالة الأصوات المحيطة"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"‏البلوتوث نشِط (للوسائط فقط). مستوى شحن البطارية: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"‏البلوتوث نشِط (للوسائط فقط)، مستوى الشحن في سماعة الرأس اليسرى: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، مستوى الشحن في سماعة الرأس اليمنى: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"‏جهاز ضيف. مستوى شحن البطارية: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"‏جهاز ضيف. اليسرى: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، اليمنى: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> من البطارية"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"‏جهاز ضيف (للوسائط فقط). مستوى شحن البطارية: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"‏جهاز ضيف (للوسائط فقط). اليسرى: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، اليمنى: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> من البطارية"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"‏البلوتوث متصل (ميزة \"مشاركة الصوت\" متاحة). مستوى شحن البطارية: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"‏البلوتوث متصل (ميزة \"مشاركة الصوت\" متاحة). مستوى الشحن في سماعة الرأس اليسرى: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، مستوى الشحن في سماعة الرأس اليمنى: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"‏البلوتوث متصل (ميزة \"مشاركة الصوت\" متاحة). مستوى الشحن في سماعة الرأس اليسرى: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"‏البلوتوث متصل (ميزة \"مشاركة الصوت\" متاحة). مستوى الشحن في سماعة الرأس اليمنى: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"البلوتوث متصل (ميزة \"مشاركة الصوت\" متاحة)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"‏جهاز ضيف (يوفِّر ميزة \"مشاركة الصوت\"). مستوى شحن البطارية: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"‏جهاز ضيف (يوفِّر ميزة \"مشاركة الصوت\"). اليسرى: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، اليمنى: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> من البطارية"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"جهاز ضيف (يوفِّر ميزة \"مشاركة الصوت\")"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"البلوتوث مفعَّل (للوسائط فقط)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"جهاز ضيف"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"جهاز ضيف (للوسائط فقط)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"تتوفّر ميزة \"مشاركة الصوت\""</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"جهاز ضيف. يوفِّر ميزة \"مشاركة الصوت\""</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"السماعة اليسرى فقط مشغَّلة (للوسائط فقط)"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"السماعة اليمنى فقط مشغَّلة (للوسائط فقط)"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"السماعتان اليسرى واليمنى مشغَّلتان (للوسائط فقط)"</string>
@@ -492,12 +482,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"‏تطبيق WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"‏تعيين تطبيق WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"لم يعد هذا الاختيار صالحًا. أعد المحاولة."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"‏أدوات مطوري البرامج في WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"‏تعذَّر العثور على حزمة WebView."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"تعذَّر تشغيل \"أدوات مطوري البرامج\"."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"نمط لون الصورة"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"‏استخدام sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"غير مفعّل"</string>
diff --git a/packages/SettingsLib/res/values-as/strings.xml b/packages/SettingsLib/res/values-as/strings.xml
index 82ee7f3..f95a66b 100644
--- a/packages/SettingsLib/res/values-as/strings.xml
+++ b/packages/SettingsLib/res/values-as/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"আশ-পাশ আপডে’ট কৰিব পৰা নগ’ল"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"সক্ৰিয় হৈ আছে (কেৱল মিডিয়া)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> বেটাৰী।"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"সক্ৰিয় হৈ আছে (কেৱল মিডিয়া)। বাওঁ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, সোঁ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> বেটাৰী।"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"অতিথিৰ ডিভাইচ। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> বেটাৰী।"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"অতিথিৰ ডিভাইচ। বাওঁ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, সোঁ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> বেটাৰী।"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"অতিথিৰ ডিভাইচ (কেৱল মিডিয়া)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> বেটাৰী।"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"অতিথিৰ ডিভাইচ (কেৱল মিডিয়া)। বাওঁ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, সোঁ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> বেটাৰী।"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"সংযুক্ত হৈ আছে (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> বেটাৰী।"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"সংযুক্ত হৈ আছে (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে), বাওঁ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, সোঁ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> বেটাৰী"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"সংযুক্ত হৈ আছে (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে)। বাকী আছে: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> বেটাৰী।"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"সংযুক্ত হৈ আছে (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে)। সোঁ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> বেটাৰী।"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"সংযুক্ত হৈ আছে (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"অতিথিৰ ডিভাইচ (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> বেটাৰী।"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"অতিথিৰ ডিভাইচ (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে)। বাওঁ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, সোঁ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> বেটাৰী।"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"অতিথিৰ ডিভাইচ (অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"সক্ৰিয় হৈ আছে (কেৱল মিডিয়া)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"অতিথিৰ ডিভাইচ"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"অতিথিৰ ডিভাইচ (কেৱল মিডিয়া)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"অতিথিৰ ডিভাইচ। অডিঅ’ শ্বেয়াৰিং সমৰ্থন কৰে"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"সক্ৰিয় হৈ আছে (কেৱল মিডিয়া), কেৱল বাওঁ"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"সক্ৰিয় হৈ আছে (কেৱল মিডিয়া), কেৱল সোঁ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"সক্ৰিয় হৈ আছে (কেৱল মিডিয়া), বাওঁ আৰু সোঁ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"হাৰ্ডৱেৰৰদ্বাৰা ত্বৰিত ৰেণ্ডাৰিং"</string>
     <string name="media_category" msgid="8122076702526144053">"মিডিয়া"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"নিৰীক্ষণ কৰি থকা হৈছে"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"ৱিণ্ড’ পৰিচালনা"</string>
     <string name="strict_mode" msgid="889864762140862437">"কঠোৰ ম’ড সক্ষম কৰা হৈছে"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"যেতিয়া এপ্‌সমূহে মুখ্য থ্ৰেডত দীঘলীয়া কাৰ্যকলাপ চলায়, তেতিয়া স্ক্ৰীন ফ্লাশ্ব কৰক"</string>
     <string name="pointer_location" msgid="7516929526199520173">"পইণ্টাৰৰ অৱস্থান"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"ৱেবভিউ প্ৰয়োগ"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"ৱেবভিউ প্ৰয়োগ ছেট কৰক"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"বাছনিটো এতিয়া আৰু মান্য় নহয়। আকৌ চেষ্টা কৰক।"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView পেকেজ বিচাৰি পোৱা নগ’ল।"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools লঞ্চ কৰিব পৰা নগ’ল।"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"চিত্ৰৰ ৰং ম’ড"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"এছআৰজিবি ব্যৱহাৰ কৰক"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"নিষ্ক্ৰিয় হৈ আছে"</string>
diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml
index aa93964..5e47ff9 100644
--- a/packages/SettingsLib/res/values-az/strings.xml
+++ b/packages/SettingsLib/res/values-az/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Ətraf mühit güncəllənmədi"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktiv (yalnız media). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batareya."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktiv (yalnız media). Sol: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Sağ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batareya."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Qonaq cihaz. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batareya."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Qonaq cihaz. Sol: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Sağ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batareya."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Qonaq cihaz (yalnız media). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batareya."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Qonaq cihaz (yalnız media). Sol: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Sağ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batareya."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Qoşulub (audio paylaşma dəstəklənir). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batareya."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Qoşulub (audio paylaşma dəstəklənir). Sol: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Sağ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batareya."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Qoşulub (audio paylaşma dəstəklənir). Sol: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batareya."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Qoşulub (audio paylaşma dəstəklənir). Sağ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batareya."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Qoşulub (audio paylaşma dəstəklənir)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Qonaq cihaz (auido paylaşma dəstəklənir). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batareya."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Qonaq cihaz (auido paylaşma dəstəklənir). Sol: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Sağ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batareya."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Qonaq cihaz (audio paylaşma dəstəklənir)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktiv (yalnız media)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Qonaq cihaz"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Qonaq cihaz (yalnız media)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Audio paylaşma dəstəklənir"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Qonaq cihaz. Audio paylaşma dəstəklənir"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktiv (yalnız media), yalnız sol"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktiv (yalnız media), yalnız sağ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktiv (yalnız media), sol və sağ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Renderinq aparat sürətlənməsi"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitorinq"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Pəncərə idarəetməsi"</string>
     <string name="strict_mode" msgid="889864762140862437">"Ciddi rejim"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Uzun əməliyyatlar ərzində ekran işıqlandırılsın"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Kursor yeri"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView servisi"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView servisini ayarlayın"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Bu seçim artıq etibarlı deyil. Yenidən cəhd edin."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebGörüntü üzrə DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebGörüntü paketi tapılmadı."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools-u başlatmaq mümkün olmadı."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Şəkil rəng rejimi"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB istifadə edin"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Deaktiv"</string>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index 7f60500..cb62399 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Ažuriranje okruženja nije uspelo"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktivno (samo za medije). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktivno (samo za medije). Levo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, desno: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Uređaj gosta. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Uređaj gosta. Levo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, desno: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Uređaj gosta (samo za medije). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Uređaj gosta (samo za medije). Levo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, desno: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Povezano (podržava deljenje zvuka), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Povezano (podržava deljenje zvuka), levo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, desno: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Povezano (podržava deljenje zvuka). Levo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Povezano (podržava deljenje zvuka). Desno: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Povezano (podržava deljenje zvuka)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Uređaj gosta (podržava deljenje zvuka). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Uređaj gosta (podržava deljenje zvuka). Levo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, desno: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Uređaj gosta (podržava deljenje zvuka)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktivan (samo za medije)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Uređaj gosta"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Uređaj gosta (samo za medije)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Podržava deljenje zvuka"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Uređaj gosta. Podržava deljenje zvuka"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktivan (samo za medije), samo levo"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktivan (samo za medije), samo desno"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktivan (samo za medije), levo i desno"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardverski ubrzano prikazivanje"</string>
     <string name="media_category" msgid="8122076702526144053">"Mediji"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Nadgledanje"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Upravljanje prozorima"</string>
     <string name="strict_mode" msgid="889864762140862437">"Omogućen je strogi režim"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Ekran treperi kada aplikacije obavljaju duge operacije na glavnoj niti"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Lokacija pokazivača"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Primena WebView-a"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Podesite primenu WebView-a"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Ovaj izbor više nije važeći. Probajte ponovo."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView alatke za programere"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Paket za WebView nije pronađen."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Pokretanje alatki za programere nije uspelo."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Režim boja slika"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Koristi sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Onemogućeno je"</string>
diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml
index 50de924..ef66fb3 100644
--- a/packages/SettingsLib/res/values-be/strings.xml
+++ b/packages/SettingsLib/res/values-be/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Не ўдалося абнавіць стан навакольных гукаў"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Выкарыстоўваецца (толькі для мультымедыя). Зарад акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Выкарыстоўваецца (толькі для мультымедыя). Зарад акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (левы навушнік), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (правы навушнік)."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Гасцявая прылада. Зарад акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Гасцявая прылада. Зарад акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (левы навушнік), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (правы навушнік)."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Гасцявая прылада (толькі мультымедыя). Зарад акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Гасцявая прылада (толькі мультымедыя). Зарад акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (левы навушнік), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (правы навушнік)."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Падключана (падтрымліваецца абагульванне аўдыя). Зарад акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Падключана (падтрымліваецца абагульванне аўдыя). Зарад акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (левы навушнік), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (правы навушнік)."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Падключана (падтрымліваецца абагульванне аўдыя). Зарад акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> (левы навушнік)."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Падключана (падтрымліваецца абагульванне аўдыя). Зарад акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> (правы навушнік)."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Падключана (падтрымліваецца абагульванне аўдыя)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Гасцявая прылада (падтрымлівае абагульванне аўдыя). Зарад акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Гасцявая прылада (падтрымлівае абагульванне аўдыя). Зарад акумулятара: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (левы навушнік), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (правы навушнік)."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Гасцявая прылада (падтрымлівае абагульванне аўдыя)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Выкарыстоўваецца (толькі для мультымедыя)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Гасцявая прылада"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Гасцявая прылада (толькі мультымедыя)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Падтрымліваецца абагульванне аўдыя"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Гасцявая прылада. Падтрымлівае абагульванне аўдыя."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Выкарыстоўваецца (толькі для мультымедыя), толькі левы навушнік"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Выкарыстоўваецца (толькі для мультымедыя), толькі правы навушнік"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Выкарыстоўваецца (толькі для мультымедыя), левы і правы навушнікі"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Апаратнае паскарэнне рэндэрынгу"</string>
     <string name="media_category" msgid="8122076702526144053">"Медыя"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Маніторынг"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Кіраванне вокнамі"</string>
     <string name="strict_mode" msgid="889864762140862437">"Уключаны строгі рэжым"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Падсвечваць экран падчас доўгіх аперацый"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Пазіцыя ўказальніка"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Рэалізацыя WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Наладзіць рэалізацыю WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Гэты варыянт больш не даступны. Паспрабуйце яшчэ раз."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Інструменты распрацоўшчыка WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Пакет WebView не знойдзены."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Не ўдалося запусціць інструменты распрацоўшчыка."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Каляровы рэжым выявы"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Выкарыстоўваць sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Выключана"</string>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index c3c1783..69d6866 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Данните за околните звуци не бяха актуализирани"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Активно (само за мултимедия). Батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Активно (само за мултимедия). Л: батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Д: батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Устройство на гост. Батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Устройство на гост. Л: батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Д: батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Устройство на гост (само за мултимедия). Батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Устройство на гост (само за мултимедия). Л: батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Д: батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Свързано (поддържа споделяне на звука). Батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Свързано (поддържа споделяне на звука). Л: батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Д: батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Свързано (поддържа споделяне на звука). За ляво ухо. Батерия: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Свързано (поддържа споделяне на звука). За дясно ухо. Батерия: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Свързано (поддържа споделяне на звука)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Устройство на гост (поддържа споделяне на звука). Батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Устройство на гост (поддържа споделяне на звука). Л: батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Д: батерия – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Устройство на гост (поддържа споделяне на звука)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Активно (само за мултимедия)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Устройство на гост"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Устройство на гост (само за мултимедия)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Поддържа споделяне на звука"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Устройство на гост. Поддържа споделяне на звука"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Активно (само за мултимедия), само лявата"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Активно (само за мултимедия), само дясната"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Активно (само за мултимедия), лявата и дясната"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Хардуерно ускорено изобразяване"</string>
     <string name="media_category" msgid="8122076702526144053">"Мултимедия"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Наблюдение"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Управление на прозорците"</string>
     <string name="strict_mode" msgid="889864762140862437">"Активиран строг режим"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Примигване на екрана при дълги операции в главната нишка"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Mестопол. на показалеца"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Внедряване на WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Задаване на внедряването на WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Този избор вече не е валиден. Опитайте отново."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"DevTools за WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Пакетът на WebView не е намерен."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools не се стартира."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Цветови режим за снимките"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Използване на sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Деактивирано"</string>
diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml
index 93b6521..7e8e3fe 100644
--- a/packages/SettingsLib/res/values-bn/strings.xml
+++ b/packages/SettingsLib/res/values-bn/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"সারাউন্ডিং আপডেট করা যায়নি"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"চালু আছে (শুধুমাত্র মিডিয়া)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ব্যাটারি।"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"চালু আছে (শুধুমাত্র মিডিয়া), বাঁদিক: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ডানদিক: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ব্যাটারি।"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"অতিথি ডিভাইস। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ব্যাটারি।"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"অতিথি ডিভাইস। বাঁদিক: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ডানদিক: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ব্যাটারি।"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"অতিথি ডিভাইস (শুধুমাত্র মিডিয়া)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ব্যাটারি।"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"অতিথি ডিভাইস (শুধুমাত্র মিডিয়া)। বাঁদিক: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ডানদিক: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ব্যাটারি।"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"কানেক্ট করা আছে (অডিও শেয়ারিংয়ে কাজ করে), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ব্যাটারি।"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"কানেক্ট করা আছে (অডিও শেয়ারিংয়ে কাজ করে), বাঁদিক: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ডানদিক: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ব্যাটারি।"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"কানেক্ট করা আছে (অডিও শেয়ারিংয়ে কাজ করে)। বাঁদিক: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ব্যাটারি।"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"কানেক্ট করা আছে (অডিও শেয়ারিংয়ে কাজ করে)। ডানদিকে: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ব্যাটারি।"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"কানেক্ট করা আছে (অডিও শেয়ারিংয়ে কাজ করে)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"অতিথি ডিভাইস (অডিও শেয়ারিং কাজ করে)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ব্যাটারি।"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"অতিথি ডিভাইস (অডিও শেয়ারিং কাজ করে)। বাঁদিক: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ডানদিক: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ব্যাটারি।"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"অতিথি ডিভাইস (অডিও শেয়ারিং কাজ করে)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"চালু আছে (শুধুমাত্র মিডিয়া)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"অতিথি ডিভাইস"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"অতিথি ডিভাইস (শুধুমাত্র মিডিয়া)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"অডিও শেয়ারিংয়ে কাজ করে"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"অতিথি ডিভাইস। অডিও শেয়ারিং কাজ করে"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"চালু আছে (শুধুমাত্র মিডিয়া), শুধুমাত্র বাঁদিক"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"চালু আছে (শুধুমাত্র মিডিয়া), শুধুমাত্র ডানদিক"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"চালু আছে (শুধুমাত্র মিডিয়া), বাঁদিক ও ডানদিক"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"হার্ডওয়্যার দ্বারা চালিত রেন্ডারিং"</string>
     <string name="media_category" msgid="8122076702526144053">"মিডিয়া"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"পর্যবেক্ষণে রাখা"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"উইন্ডো ম্যানেজমেন্ট"</string>
     <string name="strict_mode" msgid="889864762140862437">"স্ট্রিক্ট মোড চালু আছে"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"মুখ্য থ্রেডে অ্যাপগুলির দীর্ঘ কার্যকলাপের ক্ষেত্রে স্ক্রিন ফ্ল্যাশ করে"</string>
     <string name="pointer_location" msgid="7516929526199520173">"পয়েন্টারের লোকেশন"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"ওয়েবভিউ প্রয়োগ"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"ওয়েবভিউ প্রয়োগ সেট করুন"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"এই পছন্দটি আর বৈধ নেই৷ আবার চেষ্টা করুন৷"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView প্রদানকারীর DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView প্যাকেজ পাওয়া যায়নি।"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools চালু করা যায়নি।"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"ছবি রঙ মোড"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB ব্যবহার করুন"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"অক্ষম হয়েছে"</string>
diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml
index abb0775..d0b15d9e 100644
--- a/packages/SettingsLib/res/values-bs/strings.xml
+++ b/packages/SettingsLib/res/values-bs/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Ažuriranje okruženja nije uspjelo"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktivno (samo za medijski sadržaj). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktivno (samo za medijski sadržaj). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> baterije, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Gostujući uređaj. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Gostujući uređaj. L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> baterije, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Gostujući uređaj (samo za medijski sadržaj). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Gostujući uređaj (samo za medijski sadržaj). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> baterije, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Povezano (podržava dijeljenje zvuka). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Povezano (podržava dijeljenje zvuka). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> baterije, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Povezano (podržava dijeljenje zvuka). Lijevo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Povezano (podržava dijeljenje zvuka). Desno: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Povezano (podržava dijeljenje zvuka)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Gostujući uređaj (podržava dijeljenje zvuka). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Gostujući uređaj (podržava dijeljenje zvuka). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> baterije, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Gostujući uređaj (podržava dijeljenje zvuka)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktivno (samo za medijski sadržaj)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Gostujući uređaj"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Gostujući uređaj (samo za medijski sadržaj)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Podržava dijeljenje zvuka"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Gostujući uređaj. Podržava dijeljenje zvuka"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktivno (samo za medijski sadržaj), samo lijevo"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktivno (samo za medijski sadržaj), samo desno"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktivno (samo za medijski sadržaj), lijevo i desno"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardverski ubrzano prikazivanje"</string>
     <string name="media_category" msgid="8122076702526144053">"Mediji"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Praćenje"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Upravljanje prozorima"</string>
     <string name="strict_mode" msgid="889864762140862437">"Omogući strogi način rada"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Ekran bljeska kada aplikacije vrše duge operacije u glavnoj niti"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Lokacija pokazivača"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Postavljanje WebViewa"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Podesi WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Ovaj izbor više ne vrijedi. Pokušajte ponovo."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Alati za programere za WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Paket WebViewa nije pronađen."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Pokretanje alata za programere nije uspjelo."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Način rada boja slika"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Koristi sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Onemogućeno"</string>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index ed49307c..283182c 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"No s\'ha pogut actualitzar l\'entorn"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Actiu (només contingut multimèdia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Actiu (només contingut multimèdia), E: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Dispositiu convidat. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Dispositiu convidat. E: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Dispositiu convidat (només contingut multimèdia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Dispositiu convidat (només contingut multimèdia). E: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Connectat (admet compartició d\'àudio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Connectat (admet compartició d\'àudio), E: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Connectat (admet compartició d\'àudio). Esquerre: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Connectat (admet compartició d\'àudio). Dret: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Connectat (admet compartició d\'àudio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Dispositiu convidat (admet compartició d\'àudio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Dispositiu convidat (admet compartició d\'àudio). E: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Dispositiu convidat (admet compartició d\'àudio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Actiu (només contingut multimèdia)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Dispositiu convidat"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Dispositiu convidat (només contingut multimèdia)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Admet compartició d\'àudio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Dispositiu convidat. Admet compartició d\'àudio"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Actiu (només contingut multimèdia), només esquerre"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Actiu (només contingut multimèdia), només dret"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Actiu (només contingut multimèdia), esquerre i dret"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Renderització accelerada per maquinari"</string>
     <string name="media_category" msgid="8122076702526144053">"Multimèdia"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Supervisió"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Gestió de finestres"</string>
     <string name="strict_mode" msgid="889864762140862437">"Mode estricte activat"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Il·lumina la pantalla quan les aplicacions facin operacions llargues al fil principal"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Ubicació del punter"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementació de WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Estableix implementació de WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Aquesta opció ja no és vàlida. Torna-ho a provar."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"DevTools de WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"No s\'ha trobat el paquet de WebView."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"No s\'ha pogut iniciar DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Mode de color de la imatge"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Utilitza sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Desactivat"</string>
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index 7ea6e43..bc00d47 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Okolí se nepodařilo aktualizovat"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktivní (pouze média). Baterie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktivní (pouze média), baterie: L <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Zařízení hosta. Baterie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Zařízení hosta. Baterie: L <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Zařízení hosta (jen média). Baterie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Zařízení hosta (jen média). Baterie: L <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Připojeno (podporuje sdílení zvuku), baterie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Připojeno (podporuje sdílení zvuku), baterie: L <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Připojeno (podporuje sdílení zvuku). Levá strana: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterie"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Připojeno (podporuje sdílení zvuku). Pravá strana: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterie."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Připojeno (podporuje sdílení zvuku)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Zařízení hosta (podporuje sdílení zvuku). Baterie: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Zařízení hosta (podporuje sdílení zvuku). Baterie: L <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Zařízení hosta (podporuje sdílení zvuku)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktivní (pouze média)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Zařízení hosta"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Zařízení hosta (jen media)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Podporuje sdílení zvuku"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Zařízení hosta. Podporuje sdílení zvuku"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktivní (pouze média), pouze levé"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktivní (pouze média), pouze pravé"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktivní (pouze média), levé a pravé"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardwarově urychlené vykreslování"</string>
     <string name="media_category" msgid="8122076702526144053">"Média"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Sledování"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Správa oken"</string>
     <string name="strict_mode" msgid="889864762140862437">"Přísný režim aktivován"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Rozblikat obrazovku při dlouhých operacích hlavního vlákna"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Umístění ukazatele"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementace WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Nastavte implementaci WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Tato volba již není platná. Zkuste to znovu."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Nástroje pro vývojáře WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Balíček WebView nebyl nalezen."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Nástroje pro vývojáře nelze spustit."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Režim barev obrázku"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Použije se barevný prostor sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Vypnuto"</string>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index 4aad2a2..986c40f 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Omgivelserne kunne ikke opdateres"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktiveret (kun for medier). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktiveret (kun for medier), V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Gæsteenhed. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Gæsteenhed. V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Gæsteenhed (kun medier). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Gæsteenhed (kun medier). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Forbundet (understøtter lyddeling). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Forbundet (understøtter lyddeling), V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Forbundet (understøtter lyddeling). Venstre: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Forbundet (understøtter lyddeling). Højre: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Forbundet (understøtter lyddeling)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Gæsteenhed (understøtter lyddeling). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Gæsteenhed (understøtter lyddeling). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Gæsteenhed (understøtter lyddeling)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktiveret (kun for medier)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Gæsteenhed"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Gæsteenhed (kun medier)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Understøtter lyddeling"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Gæsteenhed. Understøtter lyddeling"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktiveret (kun for medier), kun venstre"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktiveret (kun for medier), kun højre"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktiveret (kun for medier), venstre og højre"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardware-accelereret gengivelse"</string>
     <string name="media_category" msgid="8122076702526144053">"Medie"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Overvågning"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Administration af vinduer"</string>
     <string name="strict_mode" msgid="889864762140862437">"Striks tilstand aktiveret"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Blink med skærmen, når apps foretager handlinger på hovedtråd"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Markørens lokation"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView-implementering"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Konfigurer WebView-implementering"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Dette valg er ikke længere gyldigt. Prøv igen."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Udviklerværktøjer til Webvisning"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Pakken Webvisning blev ikke fundet."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Udviklerværktøjer kunne ikke åbnes."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Farvetilstand for billeder"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Brug sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Deaktiveret"</string>
diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml
index 55cae96..e7ffaa4 100644
--- a/packages/SettingsLib/res/values-de/strings.xml
+++ b/packages/SettingsLib/res/values-de/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Status der Umgebungsgeräusche konnte nicht aktualisiert werden"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktiv (nur Medien). Akku: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktiv (nur Medien). Akku links: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Akku rechts: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Gastgerät. Akku: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Gastgerät. Akku links: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Akku rechts: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Gastgerät (nur Medien). Akku: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Gastgerät (nur Medien). Akku links: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Akku rechts: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Verbunden (unterstützt Audiofreigabe). Akku: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Verbunden (unterstützt Audiofreigabe). Akku links: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Akku rechts: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Verbunden (unterstützt Audiofreigabe). Akku links: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Verbunden (unterstützt Audiofreigabe). Akku rechts: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Verbunden (unterstützt Audiofreigabe)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Gastgerät (unterstützt Audiofreigabe). Akku: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Gastgerät (unterstützt Audiofreigabe). Akku links: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Akku rechts: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Gastgerät (unterstützt Audiofreigabe)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktiv (nur Medien)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Gastgerät"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Gastgerät (nur Medien)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Unterstützt Audiofreigabe"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Gastgerät. Unterstützt Audiofreigabe."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktiv (nur Medien), nur links"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktiv (nur Medien), nur rechts"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktiv (nur Medien), links und rechts"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardwarebeschleunigtes Rendering"</string>
     <string name="media_category" msgid="8122076702526144053">"Medien"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitoring"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Fensterverwaltung"</string>
     <string name="strict_mode" msgid="889864762140862437">"Strikter Modus aktiviert"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Bei langen App-Vorgängen im Hauptthread blinkt Bildschirm"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Zeigerposition"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView-Implementierung"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView-Implementierung festlegen"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Diese Auswahl ist nicht mehr gültig. Bitte versuche es noch einmal."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView-Entwicklertools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Das WebView-Paket wurde nicht gefunden."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Die Entwicklertools konnten nicht gestartet werden."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Farbmodus für Bilder"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB verwenden"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Deaktiviert"</string>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index 6b6b7fb..2fc0ff2 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Δεν ήταν δυνατή η ενημέρωση των ήχων περιβάλλοντος"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Ενεργό (μόνο για μέσα). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> μπαταρία."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Ενεργό (μόνο για μέσα). Α: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Δ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> μπαταρία."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Συσκευή επισκέπτη. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> μπαταρία."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Συσκευή επισκέπτη. Α: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Δ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> μπαταρία."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Συσκευή επισκέπτη (μόνο για μέσα). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> μπαταρία."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Συσκευή επισκέπτη (μόνο για μέσα). Α: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Δ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> μπαταρία."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Συνδεδεμένο (υποστηρίζει κοινή χρήση ήχου). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> μπαταρία."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Συνδεδεμένο (υποστηρίζει κοινή χρήση ήχου). Α: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Δ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> μπαταρία."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Συνδεδεμένο (υποστηρίζει κοινή χρήση ήχου). Αριστερά: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> μπαταρία."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Συνδεδεμένο (υποστηρίζει κοινή χρήση ήχου). Δεξιά: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> μπαταρία."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Συνδεδεμένο (υποστηρίζει κοινή χρήση ήχου)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Συσκευή επισκέπτη (υποστηρίζει κοινή χρήση ήχου). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> μπαταρία."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Συσκευή επισκέπτη (υποστηρίζει κοινή χρήση ήχου). Α: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Δ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> μπαταρία."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Συσκευή επισκέπτη (υποστηρίζει κοινή χρήση ήχου)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Ενεργό (μόνο για μέσα)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Συσκευή επισκέπτη"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Συσκευή επισκέπτη (μόνο μέσα)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Υποστηρίζει κοινή χρήση ήχου"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Συσκευή επισκέπτη. Υποστηρίζει κοινή χρήση ήχου"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Ενεργό (μόνο για μέσα), μόνο αριστερό"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Ενεργό (μόνο για μέσα), μόνο δεξί"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Ενεργό (μόνο για μέσα), αριστερό και δεξί"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Απόδοση με επιτάχυνση από υλικό εξοπλισμό"</string>
     <string name="media_category" msgid="8122076702526144053">"Μέσα"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Παρακολούθηση"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Διαχείριση παραθύρων"</string>
     <string name="strict_mode" msgid="889864762140862437">"Ενεργ. αυστηρής λειτουργ."</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Αναβ. οθόνη σε εκτέλεση μεγάλων λειτ.σε κύριο νήμα"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Θέση δείκτη"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Υλοποίηση WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Ορισμός υλοποίησης WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Αυτή η επιλογή δεν είναι πια έγκυρη. Δοκιμάστε ξανά."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Εργαλεία για προγραμματιστές Προβολής στον ιστό"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Δεν βρέθηκε το πακέτο Προβολή στον ιστό."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Αδύνατη εκκίνηση Εργαλείων για προγραμματιστές."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Λειτουργία χρώματος εικόνας"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Χρήση sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Απενεργοποιημένο"</string>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index a811960..34d6bf7 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Couldn\'t update surroundings"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Active (media only). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Active (media only). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Guest device. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Guest device. L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Guest device (media only). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Guest device (media only). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Connected (supports audio sharing). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Connected (supports audio sharing). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Connected (supports audio sharing). Left: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Connected (supports audio sharing). Right: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Connected (supports audio sharing)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Guest device (supports audio sharing). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Guest device (supports audio sharing). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Guest device (supports audio sharing)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Active (media only)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Guest device"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Guest device (media only)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Supports audio sharing"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Guest device. Supports audio sharing"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Active (media only), left only"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Active (media only), right only"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Active (media only), left and right"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardware accelerated rendering"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitoring"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Window management"</string>
     <string name="strict_mode" msgid="889864762140862437">"Strict mode enabled"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Flash screen when apps do long operations on main thread"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Pointer location"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView implementation"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Set WebView implementation"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"This choice is no longer valid. Try again."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView package not found."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Could not launch DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Picture colour mode"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Use sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Disabled"</string>
diff --git a/packages/SettingsLib/res/values-en-rCA/strings.xml b/packages/SettingsLib/res/values-en-rCA/strings.xml
index a12b46c..1203437 100644
--- a/packages/SettingsLib/res/values-en-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-en-rCA/strings.xml
@@ -386,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardware accelerated rendering"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitoring"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Window Management"</string>
     <string name="strict_mode" msgid="889864762140862437">"Strict mode enabled"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Flash screen when apps do long operations on main thread"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Pointer location"</string>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index a811960..34d6bf7 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Couldn\'t update surroundings"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Active (media only). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Active (media only). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Guest device. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Guest device. L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Guest device (media only). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Guest device (media only). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Connected (supports audio sharing). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Connected (supports audio sharing). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Connected (supports audio sharing). Left: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Connected (supports audio sharing). Right: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Connected (supports audio sharing)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Guest device (supports audio sharing). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Guest device (supports audio sharing). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Guest device (supports audio sharing)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Active (media only)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Guest device"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Guest device (media only)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Supports audio sharing"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Guest device. Supports audio sharing"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Active (media only), left only"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Active (media only), right only"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Active (media only), left and right"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardware accelerated rendering"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitoring"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Window management"</string>
     <string name="strict_mode" msgid="889864762140862437">"Strict mode enabled"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Flash screen when apps do long operations on main thread"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Pointer location"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView implementation"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Set WebView implementation"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"This choice is no longer valid. Try again."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView package not found."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Could not launch DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Picture colour mode"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Use sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Disabled"</string>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index a811960..34d6bf7 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Couldn\'t update surroundings"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Active (media only). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Active (media only). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Guest device. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Guest device. L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Guest device (media only). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Guest device (media only). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Connected (supports audio sharing). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Connected (supports audio sharing). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Connected (supports audio sharing). Left: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Connected (supports audio sharing). Right: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Connected (supports audio sharing)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Guest device (supports audio sharing). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Guest device (supports audio sharing). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> battery."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Guest device (supports audio sharing)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Active (media only)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Guest device"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Guest device (media only)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Supports audio sharing"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Guest device. Supports audio sharing"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Active (media only), left only"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Active (media only), right only"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Active (media only), left and right"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardware accelerated rendering"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitoring"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Window management"</string>
     <string name="strict_mode" msgid="889864762140862437">"Strict mode enabled"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Flash screen when apps do long operations on main thread"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Pointer location"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView implementation"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Set WebView implementation"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"This choice is no longer valid. Try again."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView package not found."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Could not launch DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Picture colour mode"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Use sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Disabled"</string>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index 6c3c98a..ca17178 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"No se pudo actualizar el sonido envolvente"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Activado (solo para contenido multimedia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Activo (solo para contenido multimedia); I: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>; D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Dispositivo de invitado. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Dispositivo de invitado. I: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>; D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Dispositivo de invitado (solo para contenido multimedia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Dispositivo de invitado (solo para contenido multimedia). I: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>; D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Conectado (admite el uso compartido de audio); <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Conectado (admite el uso compartido de audio); I: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>; D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Conectado (admite el uso compartido de audio). Izquierdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Conectado (admite el uso compartido de audio). Derecho: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Conectado (admite el uso compartido de audio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Dispositivo de invitado (admite el uso compartido de audio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Dispositivo de invitado (admite el uso compartido de audio). I: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>; D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Dispositivo de invitado (admite el uso compartido de audio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Activo (solo para contenido multimedia)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Dispositivo de invitado"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Dispositivo de invitado (solo para contenido multimedia)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Admite el uso compartido de audio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Dispositivo de invitado. Admite el uso compartido de audio"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Activo (solo para contenido multimedia); solo izquierdo"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Activo (solo para contenido multimedia); solo derecho"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Activo (solo para contenido multimedia); izquierdo y derecho"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Renderización acelerada por hardware"</string>
     <string name="media_category" msgid="8122076702526144053">"Multimedia"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Supervisión"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Administración de ventanas"</string>
     <string name="strict_mode" msgid="889864762140862437">"Modo estricto"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Parpadear si aplicaciones tardan en proceso principal"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Ubicación del puntero"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementación de WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Configurar la implementación de WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Esta opción ya no es válida. Vuelve a intentarlo."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Herramientas para desarrolladores de WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"No se encontró el paquete WebView."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"No se pudieron iniciar las Herramientas para desarrolladores."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Modo de color de la imagen"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Usa sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Inhabilitado"</string>
@@ -667,7 +653,7 @@
     <string name="user_grant_admin_message" msgid="1673791931033486709">"Los administradores tienen privilegios especiales que no tienen otros usuarios. Un administrador puede administrar a todos los usuarios, actualizar o restablecer el dispositivo, modificar parámetros de configuración, ver todas las apps instaladas y otorgar o revocar privilegios de administrador de otros usuarios."</string>
     <string name="user_grant_admin_button" msgid="5441486731331725756">"Convertir en administrador"</string>
     <string name="user_setup_dialog_title" msgid="8037342066381939995">"¿Configurar el usuario ahora?"</string>
-    <string name="user_setup_dialog_message" msgid="269931619868102841">"Asegúrate de que la persona pueda acceder al dispositivo y configurar su espacio."</string>
+    <string name="user_setup_dialog_message" msgid="269931619868102841">"Asegúrate de que la persona pueda acceder al dispositivo y configurar su espacio"</string>
     <string name="user_setup_profile_dialog_message" msgid="4788197052296962620">"¿Quieres configurar tu perfil ahora?"</string>
     <string name="user_setup_button_setup_now" msgid="1708269547187760639">"Configurar ahora"</string>
     <string name="user_setup_button_setup_later" msgid="8712980133555493516">"Ahora no"</string>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index b91c9b4..22e8b11 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"No se han podido actualizar los alrededores"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Activo (solo multimedia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Activo (solo multimedia). Izquierdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batería. Derecho: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Dispositivo invitado. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Dispositivo invitado. Izquierdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batería. Derecho: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Dispositivo invitado (solo multimedia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Dispositivo invitado (solo multimedia). Izquierdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batería. Derecho: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Conectado (permite compartir audio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Conectado (admite Compartir audio). Izquierdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batería. Derecho: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Conectado (admite Compartir audio). Izquierdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Conectado (admite Compartir audio). Derecho: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Conectado (admite Compartir audio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Dispositivo invitado (admite Compartir audio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Dispositivo invitado (admite Compartir audio). Izquierdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batería. Derecho: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Dispositivo invitado (admite Compartir audio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Activo (solo multimedia)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Dispositivo invitado"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Dispositivo invitado (solo multimedia)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Permite compartir audio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Dispositivo invitado. Admite Compartir audio."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Activo (solo multimedia), solo el izquierdo"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Activo (solo multimedia), solo el derecho"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Activo (solo multimedia), izquierdo y derecho"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Renderización acelerada por hardware"</string>
     <string name="media_category" msgid="8122076702526144053">"Multimedia"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Supervisión"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Gestión de ventanas"</string>
     <string name="strict_mode" msgid="889864762140862437">"Modo Estricto habilitado"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Hace parpadear la pantalla si las aplicaciones tardan mucho en el subproceso principal"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Ubicación del puntero"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementación de WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Establecer implementación de WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Esta opción ya no está disponible. Vuelve a intentarlo."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"DevTools de WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"No se ha encontrado el paquete WebView."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"No se ha podido iniciar DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Modo de color de imagen"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Utiliza sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Inhabilitado"</string>
diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml
index 8c5d7fe..0de0197 100644
--- a/packages/SettingsLib/res/values-et/strings.xml
+++ b/packages/SettingsLib/res/values-et/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Ümbritsevate helide seadeid ei saanud värskendada"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktiivne (ainult meedia). Aku <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktiivne (ainult meedia). Aku: V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Külalisseade. Aku: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Külalisseade. Aku: V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Külalisseade (ainult meedia). Aku: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Külalisseade (ainult meedia). Aku: V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Ühendatud (toetab heli jagamist). Aku <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Ühendatud (toetab heli jagamist). Aku: V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Ühendatud (toetab heli jagamist). Vasak: aku <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Ühendatud (toetab heli jagamist). Parem: aku <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Ühendatud (toetab heli jagamist)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Külalisseade (toetab heli jagamist). Aku: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Külalisseade (toetab heli jagamist). Aku: V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Külalisseade (toetab heli jagamist)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktiivne (ainult meedia)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Külalisseade"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Külalisseade (ainult meedia)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Toetab heli jagamist"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Külalisseade. Toetab heli jagamist."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktiivne (ainult meedia), ainult vasak"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktiivne (ainult meedia), ainult parem"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktiivne (ainult meedia), vasak ja parem"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Riistvarakiirendusega renderdamine"</string>
     <string name="media_category" msgid="8122076702526144053">"Meedia"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Jälgimine"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Akende haldamine"</string>
     <string name="strict_mode" msgid="889864762140862437">"Range režiim on lubatud"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Ekraan vilgub, kui rakendused teevad pealõimes pikki toiminguid"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Kursori asukoht"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView\' rakendamine"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView\' rakendamise seadistamine"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"See valik ei kehti enam. Proovige uuesti."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView\' arendaja tööriistad"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView\' paketti ei leitud."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Ei saanud arendaja tööriistu käivitada."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Pildi värvirežiim"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB kasutamine"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Keelatud"</string>
diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml
index a1e4664..7a8bf56 100644
--- a/packages/SettingsLib/res/values-eu/strings.xml
+++ b/packages/SettingsLib/res/values-eu/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Ezin izan da eguneratu ingurunea"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktibo (multimedia-edukia soilik). Bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktibo (multimedia-edukia soilik). L aldearen bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. R aldearen bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Gailu gonbidatua. Bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Gailu gonbidatua. L aldearen bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. R aldearen bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Gailu gonbidatua (multimedia-edukia soilik). Bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Gailu gonbidatua (multimedia-edukia soilik). L aldearen bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. R aldearen bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Konektatuta (audioa partekatzeko eginbidea onartzen du). Bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Konektatuta (audioa partekatzeko eginbidea onartzen du). L aldearen bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. R aldearen bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Konektatuta (audioa partekatzeko eginbidea onartzen du). Ezkerreko aldearen bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Konektatuta (audioa partekatzeko eginbidea onartzen du). Eskuineko aldearen bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Konektatuta (audioa partekatzeko eginbidea onartzen du)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Gailu gonbidatua (audioa partekatzeko eginbidea onartzen du). Bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Gailu gonbidatua (audioa partekatzeko eginbidea onartzen du). L aldearen bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. R aldearen bateria: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Gailu gonbidatua (audioa partekatzeko eginbidea onartzen du)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktibo (multimedia-edukia soilik)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Gailu gonbidatua"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Gailu gonbidatua (multimedia-edukia soilik)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Audioa partekatzeko eginbidea onartzen du"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Gailu gonbidatua. Audioa partekatzeko eginbidea onartzen du."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktibo (multimedia-edukia soilik); ezkerreko aldea soilik"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktibo (multimedia-edukia soilik); eskuineko aldea soilik"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktibo (multimedia-edukia soilik); ezkerreko eta eskuineko aldeak"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardware bidez azeleratutako errendatzea"</string>
     <string name="media_category" msgid="8122076702526144053">"Multimedia-edukia"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Kontrola"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Leihoen kudeaketa"</string>
     <string name="strict_mode" msgid="889864762140862437">"Modu zorrotza gaituta"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Distirarazi hari nagusian eragiketa luzeak egitean"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Erakuslearen kokapena"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView inplementazioa"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Ezarri WebView inplementazioa"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Jada ez dago erabilgarri aukera hori. Saiatu berriro."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView-ren garatzaileentzako tresnak"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Ez da aurkitu WebView-ko paketea."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Ezin izan dira abiarazi garatzaileentzako tresnak."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Irudiaren kolore modua"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Erabili sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Desgaituta"</string>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index c939180..9ba2f35 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"پیرامون به‌روز نشد"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"فعال (فقط رسانه). باتری: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"فعال (فقط رسانه). باتری چپ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، باتری راست: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"‏دستگاه مهمان. سطح باتری: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"‏دستگاه مهمان. سطح باتری چپ: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، سطح باتری راست: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"‏دستگاه مهمان (فقط رسانه). سطح باتری: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"‏دستگاه مهمان (فقط رسانه). سطح باتری چپ: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، سطح باتری راست: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"متصل (از اشتراک صدا پشتیبانی می‌کند)، باتری: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"متصل (از اشتراک صدا پشتیبانی می‌کند)، باتری چپ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، باتری راست: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"متصل (از اشتراک صدا پشتیبانی می‌کند). باتری چپ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"متصل (از اشتراک صدا پشتیبانی می‌کند). باتری راست: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"متصل (از اشتراک صدا پشتیبانی می‌کند)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"‏دستگاه مهمان (از «اشتراک صدا» پشتیبانی می‌کند). سطح باتری: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"‏دستگاه مهمان (از «اشتراک صدا» پشتیبانی می‌کند). سطح باتری چپ: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، سطح باتری راست: ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"دستگاه مهمان (از «اشتراک صدا» پشتیبانی می‌کند)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"فعال (فقط رسانه)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"دستگاه مهمان"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"دستگاه مهمان (فقط رسانه)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"از اشتراک صدا پشتیبانی می‌کند"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"دستگاه مهمان. از «اشتراک صدا» پشتیبانی می‌کند"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"فعال (فقط رسانه)، فقط چپ"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"فعال (فقط رسانه)، فقط راست"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"فعال (فقط رسانه)، چپ و راست"</string>
@@ -157,7 +147,7 @@
     <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"‏صدای HD"</string>
     <string name="bluetooth_profile_hearing_aid" msgid="2607867572569689732">"سمعک"</string>
     <string name="bluetooth_profile_le_audio" msgid="1725521360076451751">"صدای کم‌مصرف"</string>
-    <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="5757754050938807276">"متصل به سمعک"</string>
+    <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="5757754050938807276">"به سمعک وصل‌شده"</string>
     <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"به «صدای کم‌مصرف» وصل است"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"به رسانه صوتی متصل شد"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"به تلفن صوتی متصل شد"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"پردازش سخت‌افزاری سریع"</string>
     <string name="media_category" msgid="8122076702526144053">"رسانه"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"نظارت"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"مدیریت پنجره"</string>
     <string name="strict_mode" msgid="889864762140862437">"حالت شدید فعال شد"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"چشمک زدن صفحه هنگام انجام عملیات طولانی توسط برنامه‌ها در رشته اصلی"</string>
     <string name="pointer_location" msgid="7516929526199520173">"محل اشاره‌گر"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"اجرای وب‌نما"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"تنظیم اجرای وب‌نما"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"این انتخاب دیگر معتبر نیست. دوباره امتحان کنید."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"‏‫DevTools وب‌نما"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"بسته وب‌نما پیدا نشد."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"‏‫DevTools راه‌اندازی نشد."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"حالت رنگ عکس"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"‏استفاده از sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"غیر فعال"</string>
@@ -620,7 +606,7 @@
     <string name="media_transfer_this_device_name_tv" msgid="8508713779441163887">"این تلویزیون"</string>
     <string name="media_transfer_dock_speaker_device_name" msgid="2856219597113881950">"بلندگوی پایه اتصال"</string>
     <string name="media_transfer_external_device_name" msgid="2588672258721846418">"دستگاه خارجی"</string>
-    <string name="media_transfer_default_device_name" msgid="4315604017399871828">"دستگاه متصل"</string>
+    <string name="media_transfer_default_device_name" msgid="4315604017399871828">"دستگاه وصل‌شده"</string>
     <string name="media_transfer_this_phone" msgid="7194341457812151531">"این تلفن"</string>
     <string name="media_transfer_digital_line_name" msgid="312091711951124301">"S/PDIF"</string>
     <string name="media_transfer_analog_line_name" msgid="1841163866716302104">"آنالوگ"</string>
@@ -632,7 +618,7 @@
     <string name="media_output_status_device_in_low_power_mode" msgid="8184631698321758451">"برای پخش در اینجا، دستگاه را بیدار کنید"</string>
     <string name="media_output_status_unauthorized" msgid="5880222828273853838">"دستگاه برای پخش تأیید نشده است"</string>
     <string name="media_output_status_track_unsupported" msgid="5576313219317709664">"نمی‌توان این رسانه را اینجا پخش کرد"</string>
-    <string name="tv_media_transfer_connected" msgid="5145011475885290725">"متصل"</string>
+    <string name="tv_media_transfer_connected" msgid="5145011475885290725">"وصل‌شده"</string>
     <string name="tv_media_transfer_arc_fallback_title" msgid="3674360098755328601">"HDMI ARC"</string>
     <string name="tv_media_transfer_earc_fallback_title" msgid="3098685494578519940">"HDMI eARC"</string>
     <string name="tv_media_transfer_arc_subtitle" msgid="1040017851325069082">"‏متصل ازطریق ARC"</string>
@@ -667,7 +653,7 @@
     <string name="user_grant_admin_message" msgid="1673791931033486709">"سرپرستان امتیازهای ویژه‌ای دارند که کاربران دیگر ندارند. سرپرست می‌تواند همه کاربران را مدیریت کند، این دستگاه را به‌روز یا بازنشانی کند، تنظیمات را تغییر دهد، همه برنامه‌های نصب‌شده را ببیند، و امتیازهای سرپرست را به دیگران اعطا کند یا از آن‌ها بگیرد."</string>
     <string name="user_grant_admin_button" msgid="5441486731331725756">"انتخاب به‌عنوان سرپرست"</string>
     <string name="user_setup_dialog_title" msgid="8037342066381939995">"هم اکنون کاربر تنظیم شود؟"</string>
-    <string name="user_setup_dialog_message" msgid="269931619868102841">"مطمئن شوید شخص در دسترس است تا دستگاه را بگیرد و فضایش را تنظیم کند"</string>
+    <string name="user_setup_dialog_message" msgid="269931619868102841">"مطمئن شوید آن شخص دردسترس است تا دستگاه را بگیرد و فضای خود را تنظیم کند"</string>
     <string name="user_setup_profile_dialog_message" msgid="4788197052296962620">"اکنون نمایه را تنظیم می‌کنید؟"</string>
     <string name="user_setup_button_setup_now" msgid="1708269547187760639">"اکنون تنظیم شود"</string>
     <string name="user_setup_button_setup_later" msgid="8712980133555493516">"حالا نه"</string>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index d222882..d1cc76c 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Ympäristön päivittäminen epäonnistui"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktiivinen (vain media). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> virtaa."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktiivinen (vain media). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, O: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> virtaa."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Vieraslaite. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> virtaa."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Vieraslaite. V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, O: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> virtaa."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Vieraslaite (vain media). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> virtaa."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Vieraslaite (vain media). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, O: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> virtaa."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Yhdistetty (tukee audionjakoa). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> virtaa."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Yhdistetty (tukee audionjakoa). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> virtaa, O: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> virtaa."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Yhdistetty (tukee audionjakoa). Vasen: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> virtaa."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Yhdistetty (tukee audionjakoa). Oikea: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> virtaa."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Yhdistetty (tukee audionjakoa)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Vieraslaite (tukee audionjakoa). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> virtaa."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Vieraslaite (tukee audionjakoa). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, O: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> virtaa."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Vieraslaite (tukee audionjakoa)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktiivinen (vain media)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Vieraslaite"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Vieraslaite (vain media)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Tukee audionjakoa"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Vieraslaite. Tukee audionjakoa"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktiivinen (vain media), vain vasen"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktiivinen (vain media), vain oikea"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktiivinen (vain media), vasen ja oikea"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Laitteistokiihdytetty hahmonnus"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Valvonta"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Ikkunoiden hallinnointi"</string>
     <string name="strict_mode" msgid="889864762140862437">"Tiukka tila käytössä"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Vilkuta näyttöä sovellusten tehdessä pitkiä toimia"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Osoittimen sijainti"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView-käyttöönotto"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Määritä WebView-käyttöönotto"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Tämä valinta ei ole enää saatavilla. Yritä uudestaan."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView\'n DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView-pakettia ei löydy."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevToolsia ei voitu käynnistää."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Kuvien värit"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Ota sRGB käyttöön"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Poistettu käytöstä"</string>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index b03e6cb..d833892 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Impossible de mettre à jour les sons de l\'environnement"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Actif (contenu multimédia uniquement). Pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Actif (contenu multimédia uniquement). G. : pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D. : pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Appareil invité. Pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Appareil invité. G. : pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D. : pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Appareil invité (contenu multimédia seulement). Pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Appareil invité (contenu multimédia seulement). G. : pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D. : pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Connecté (prise en charge du partage audio). Pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Connecté (prise en charge du partage audio). G. : pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D. : pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Connecté (prise en charge du partage audio). Gauche : pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Connecté (prise en charge du partage audio). Droite : pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Connecté (prise en charge du partage audio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Appareil invité (prend en charge le partage audio). Pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Appareil invité (prend en charge le partage audio). G. : pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D. : pile à <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Appareil invité (prend en charge le partage audio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Actif (contenu multimédia uniquement)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Appareil invité"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Appareil invité (contenu multimédia seulement)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Prise en charge du partage audio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Appareil invité. Prend en charge le partage audio"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Actif (contenu multimédia uniquement), côté gauche seulement"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Actif (contenu multimédia uniquement), côté droit seulement"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Actif (contenu multimédia uniquement), côtés gauche et droit"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Accélération matérielle"</string>
     <string name="media_category" msgid="8122076702526144053">"Médias"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Surveillance"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Gestion des fenêtres"</string>
     <string name="strict_mode" msgid="889864762140862437">"Mode Strict activé"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Afficher un cadre rouge si le fil principal reste occupé"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Emplacement du curseur"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Mise en œuvre WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Définir la mise en œuvre WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Ce choix n\'est plus valide. Réessayez."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Outils pour les développeurs WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Impossible de trouver l\'ensemble WebView."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Impossible de lancer les outils pour développeurs."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Mode couleur des images"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Utiliser sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Désactivé"</string>
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index 4440126..2fc946b 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Impossible de mettre à jour le mode Sons environnants"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Actif (multimédia uniquement). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batterie."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Actif (multimédia uniquement). Gauche : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batterie, droit : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batterie."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Appareil invité. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batterie."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Appareil invité. Gauche : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batterie, droit : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batterie."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Appareil invité (multimédia uniquement). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batterie."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Appareil invité (multimédia uniquement). Gauche : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batterie, droit : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batterie."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Connecté (compatible avec le partage audio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batterie."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Connecté (compatible avec le partage audio). Gauche : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batterie, droit : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batterie."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Connecté (compatible avec le partage audio). Gauche : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batterie."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Connecté (compatible avec le partage audio). Droit : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batterie."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Connecté (compatible avec le partage audio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Appareil invité (compatible avec le partage audio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batterie."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Appareil invité (compatible avec le partage audio). Gauche : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batterie, droit : <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batterie."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Appareil invité (compatible avec le partage audio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Activé (multimédia uniquement)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Appareil invité"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Appareil invité (multimédia uniquement)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Compatible avec le partage audio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Appareil invité. Compatible avec le partage audio"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Activé (multimédia uniquement), gauche uniquement"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Activé (multimédia uniquement), droit uniquement"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Activé (multimédia uniquement), gauche et droit"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Rendu accéléré par le matériel"</string>
     <string name="media_category" msgid="8122076702526144053">"Multimédia"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Suivi"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Gestion des fenêtres"</string>
     <string name="strict_mode" msgid="889864762140862437">"Mode Strict activé"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Faire clignoter l\'écran si le thread principal reste occupé"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Emplacement du curseur"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implémentation WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Définir la mise en œuvre WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Ce choix n\'est plus valide. Réessayez."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Outils de développement WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Package WebView introuvable."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Impossible de lancer les outils de développement."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Mode de couleur des images"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Utiliser sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Désactivé"</string>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index 536b918..b6eacfc 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Non se puido actualizar o ambiente"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Activo (só contido multimedia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Activo (só contido multimedia). Esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batería. Dereito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Dispositivo convidado. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Dispositivo convidado. Esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batería. Dereito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Dispositivo convidado (só contido multimedia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Dispositivo convidado (só contido multimedia). Esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batería. Dereito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Conectado (compatible con audio compartido). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Conectado (compatible con audio compartido). Esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batería. Dereito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Conectado (compatible con audio compartido). Esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Conectado (compatible con audio compartido). Dereito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Conectado (compatible con audio compartido)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Dispositivo convidado (compatible con audio compartido). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Dispositivo convidado (compatible con audio compartido). Esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de batería. Dereito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de batería."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Dispositivo convidado (compatible con audio compartido)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Activo (só contido multimedia)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Dispositivo convidado"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Dispositivo convidado (só contido multimedia)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Compatible con audio compartido"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Dispositivo convidado. Compatible con audio compartido"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Activo (só contido multimedia), só esquerdo"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Activo (só contido multimedia), só dereito"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Activo (só contido multimedia), esquerdo e dereito"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Procesamento acelerado mediante hardware"</string>
     <string name="media_category" msgid="8122076702526144053">"Multimedia"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Supervisión"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Xestión de ventás"</string>
     <string name="strict_mode" msgid="889864762140862437">"Modo estrito activado"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"A pantalla ilumínase se as aplicacións tardan moito no proceso principal"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Localización do punteiro"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementación de WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Definir implementación de WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Esta opción xa non é válida. Téntao de novo."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"DevTools de WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Non se atopou o paquete de WebView."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Non se puido activar DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Modo de cor da imaxe"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Utiliza sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Desactivado"</string>
diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml
index 1b4bad3..57f8982 100644
--- a/packages/SettingsLib/res/values-gu/strings.xml
+++ b/packages/SettingsLib/res/values-gu/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"આસપાસના અવાજો અપડેટ કરી શક્યા નથી"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"સક્રિય (માત્ર મીડિયા માટે). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"સક્રિય (માત્ર મીડિયા માટે). ડાબી બાજુ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, જમણી બાજુ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> બૅટરી."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"અતિથિ ડિવાઇસ. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"અતિથિ ડિવાઇસ. ડાબી બાજુ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, જમણી બાજુ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> બૅટરી."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"અતિથિ ડિવાઇસ (માત્ર મીડિયા માટે). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"અતિથિ ડિવાઇસ (માત્ર મીડિયા માટે). ડાબી બાજુ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, જમણી બાજુ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> બૅટરી."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"કનેક્ટેડ (ઑડિયો શેરિંગને સપોર્ટ કરે છે). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"કનેક્ટેડ (ઑડિયો શેરિંગને સપોર્ટ કરે છે). ડાબી બાજુ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, જમણી બાજુ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> બૅટરી."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"કનેક્ટેડ (ઑડિયો શેરિંગને સપોર્ટ કરે છે). ડાબી બાજુ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"કનેક્ટેડ (ઑડિયો શેરિંગને સપોર્ટ કરે છે). જમણી બાજુ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"કનેક્ટેડ (ઑડિયો શેરિંગને સપોર્ટ કરે છે)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"અતિથિ ડિવાઇસ (ઑડિયો શેરિંગને સપોર્ટ કરે છે). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> બૅટરી."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"અતિથિ ડિવાઇસ (ઑડિયો શેરિંગને સપોર્ટ કરે છે). ડાબી બાજુ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, જમણી બાજુ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> બૅટરી."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"અતિથિ ડિવાઇસ (ઑડિયો શેરિંગને સપોર્ટ કરે છે)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"સક્રિય છે (માત્ર મીડિયા માટે)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"અતિથિ ડિવાઇસ"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"અતિથિ ડિવાઇસ (માત્ર મીડિયા માટે)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"ઑડિયો શેરિંગને સપોર્ટ કરે છે"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"અતિથિ ડિવાઇસ. ઑડિયો શેરિંગને સપોર્ટ કરે છે"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"સક્રિય છે (માત્ર મીડિયા માટે), માત્ર ડાબી બાજુ"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"સક્રિય છે (માત્ર મીડિયા માટે), માત્ર જમણી બાજુ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"સક્રિય છે (માત્ર મીડિયા માટે), ડાબી અને જમણી બાજુ"</string>
@@ -177,7 +167,7 @@
     <string name="bluetooth_hid_profile_summary_use_for" msgid="4289460627406490952">"ઇનપુટ માટે ઉપયોગ કરો"</string>
     <string name="bluetooth_hearing_aid_profile_summary_use_for" msgid="3374057355721486932">"સાંભળવામાં મદદ આપતા યંત્રો માટે ઉપયોગ કરો"</string>
     <string name="bluetooth_le_audio_profile_summary_use_for" msgid="2778318636027348572">"LE_AUDIO માટે ઉપયોગ કરો"</string>
-    <string name="bluetooth_pairing_accept" msgid="2054232610815498004">"જોડી કરો"</string>
+    <string name="bluetooth_pairing_accept" msgid="2054232610815498004">"જોડાણ કરો"</string>
     <string name="bluetooth_pairing_accept_all_caps" msgid="2734383073450506220">"જોડી કરો"</string>
     <string name="bluetooth_pairing_decline" msgid="6483118841204885890">"રદ કરો"</string>
     <string name="bluetooth_pairing_will_share_phonebook" msgid="3064334458659165176">"એ કનેક્ટ કરેલ હોય ત્યારે જોડાણ બનાવવાથી તમારા સંપર્કો અને કૉલ ઇતિહાસનો અ‍ૅક્સેસ મળે છે."</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"હાર્ડવેર પ્રવેગક રેન્ડરિંગ"</string>
     <string name="media_category" msgid="8122076702526144053">"મીડિયા"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"નિરિક્ષણ કરી રહ્યું છે"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"વિન્ડો મેનેજમેન્ટ"</string>
     <string name="strict_mode" msgid="889864762140862437">"સ્ટ્રિક્ટ મોડ ચાલુ કરેલો છે"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"જ્યારે મુખ્ય થ્રેડ પર ઍપ લાંબી કામગીરીઓ કરે ત્યારે સ્ક્રીનને ફ્લેશ કરો"</string>
     <string name="pointer_location" msgid="7516929526199520173">"પૉઇન્ટર લોકેશન"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView અમલીકરણ"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView અમલીકરણ સેટ કરો"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"આ વિકલ્પ હવે માન્ય નથી. ફરી પ્રયાસ કરો."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView પૅકેજ મળ્યું નથી."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools લૉન્ચ કરી શક્યા નથી."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"ચિત્ર રંગ મોડ"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB નો ઉપયોગ કરો"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"બંધ"</string>
@@ -666,20 +652,20 @@
     <string name="user_grant_admin_title" msgid="5157031020083343984">"આ વપરાશકર્તાને ઍડમિન બનાવવા છે?"</string>
     <string name="user_grant_admin_message" msgid="1673791931033486709">"ઍડમિન પાસે વિશિષ્ટ વિશેષાધિકારો હોય છે જે અન્ય વપરાશકર્તાઓ પાસે હોતા નથી. ઍડમિન બધા વપરાશકર્તાઓને મેનેજ કરી શકે, આ ડિવાઇસને અપડેટ અથવા રીસેટ કરી શકે, સેટિંગમાં ફેરફાર કરી શકે, ઇન્સ્ટૉલ કરેલી બધી ઍપ જોઈ શકે અને અન્ય લોકોને ઍડમિનના અધિકારો આપી શકે અથવા તેમને રદબાતલ કરી શકે."</string>
     <string name="user_grant_admin_button" msgid="5441486731331725756">"ઍડમિન બનાવો"</string>
-    <string name="user_setup_dialog_title" msgid="8037342066381939995">"અત્યારે જ વપરાશકર્તાને સેટ અપ કરીએ?"</string>
+    <string name="user_setup_dialog_title" msgid="8037342066381939995">"વપરાશકર્તાને હમણાં જ સેટ અપ કરીએ?"</string>
     <string name="user_setup_dialog_message" msgid="269931619868102841">"ખાતરી કરો કે વ્યક્તિ ડિવાઇસ લેવા અને તેમના સ્થાનનું સેટ અપ કરવા માટે ઉપલબ્ધ છે"</string>
     <string name="user_setup_profile_dialog_message" msgid="4788197052296962620">"હવે પ્રોફાઇલ સેટ કરીએ?"</string>
-    <string name="user_setup_button_setup_now" msgid="1708269547187760639">"હવે સેટ કરો"</string>
+    <string name="user_setup_button_setup_now" msgid="1708269547187760639">"હમણાં જ સેટ અપ કરો"</string>
     <string name="user_setup_button_setup_later" msgid="8712980133555493516">"હમણાં નહીં"</string>
     <string name="user_add_user_type_title" msgid="551279664052914497">"ઉમેરો"</string>
     <string name="user_new_user_name" msgid="60979820612818840">"નવો વપરાશકર્તા"</string>
     <string name="user_new_profile_name" msgid="2405500423304678841">"નવી પ્રોફાઇલ"</string>
-    <string name="user_info_settings_title" msgid="6351390762733279907">"વપરાશકર્તા માહિતી"</string>
+    <string name="user_info_settings_title" msgid="6351390762733279907">"વપરાશકર્તાની માહિતી"</string>
     <string name="profile_info_settings_title" msgid="105699672534365099">"પ્રોફાઇલ માહિતી"</string>
     <string name="user_need_lock_message" msgid="4311424336209509301">"તમે પ્રતિબંધિત પ્રોફાઇલ બનાવી શકો તે પહેલાં, તમારે તમારી ઍપ્લિકેશનો અને વ્યક્તિગત ડેટાની સુરક્ષા માટે એક લૉક સ્ક્રીન સેટ કરવાની જરૂર પડશે."</string>
     <string name="user_set_lock_button" msgid="1427128184982594856">"લૉક સેટ કરો"</string>
     <string name="user_switch_to_user" msgid="6975428297154968543">"<xliff:g id="USER_NAME">%s</xliff:g> પર સ્વિચ કરો"</string>
-    <string name="creating_new_user_dialog_message" msgid="7232880257538970375">"નવા વપરાશકર્તા બનાવી રહ્યાં છીએ…"</string>
+    <string name="creating_new_user_dialog_message" msgid="7232880257538970375">"નવો વપરાશકર્તા બનાવી રહ્યાં છીએ…"</string>
     <string name="creating_new_guest_dialog_message" msgid="1114905602181350690">"નવા અતિથિની પ્રોફાઇલ બનાવી રહ્યાં છીએ…"</string>
     <string name="add_user_failed" msgid="4809887794313944872">"નવો વપરાશકર્તા બનાવવામાં નિષ્ફળ"</string>
     <string name="add_guest_failed" msgid="8074548434469843443">"નવી અતિથિ બનાવવામાં નિષ્ફળ રહ્યાં"</string>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 55d425f..02bc92b 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"वॉल्यूम को मैनेज करने की सेटिंग नहीं बदली जा सकी"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"चालू है (सिर्फ़ मीडिया के लिए). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बैटरी."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"चालू है (सिर्फ़ मीडिया के लिए). बायां हेडसेट: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, दायां हेडसेट: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> बैटरी."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"मेहमान मोड में इस्तेमाल किया जा रहा डिवाइस. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बैटरी."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"मेहमान मोड में इस्तेमाल किया जा रहा डिवाइस. बायां हेडसेट: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> बैटरी, दायां हेडसेट:<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> बैटरी."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"मेहमान मोड में इस्तेमाल किए जा रहे डिवाइस के पास सिर्फ़ मीडिया का ऐक्सेस होता है. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बैटरी."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"मेहमान मोड में इस्तेमाल किए जा रहे डिवाइस के पास सिर्फ़ मीडिया का ऐक्सेस होता है. बायां हेडसेट: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> बैटरी, दायां हेडसेट:<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> बैटरी."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"कनेक्ट हो गया (ऑडियो शेयर करने की सुविधा काम करती है). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बैटरी."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"कनेक्ट हो गया (ऑडियो शेयर करने की सुविधा काम करती है). बायां हेडसेट: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, दायां हेडसेट: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> बैटरी."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"कनेक्ट हो गया (ऑडियो शेयर करने की सुविधा काम करती है). बायां हेडसेट: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बैटरी."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"कनेक्ट हो गया (ऑडियो शेयर करने की सुविधा काम करती है). दायां हेडसेट: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बैटरी."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"कनेक्ट है (ऑडियो शेयर करने की सुविधा काम करती है)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"मेहमान मोड में इस्तेमाल किए जा रहे डिवाइस में ऑडियो शेयर करने की सुविधा काम करती है. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बैटरी."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"मेहमान मोड में इस्तेमाल किए जा रहे डिवाइस में ऑडियो शेयर करने की सुविधा काम करती है. बायां हेडसेट: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> बैटरी, दायां हेडसेट:<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> बैटरी."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"मेहमान मोड में इस्तेमाल किए जा रहे डिवाइस में ऑडियो शेयर करने की सुविधा काम करती है"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"चालू है (सिर्फ़ मीडिया के लिए)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"मेहमान मोड में इस्तेमाल किया जा रहा डिवाइस"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"मेहमान मोड में इस्तेमाल किए जा रहे डिवाइस के पास सिर्फ़ मीडिया का ऐक्सेस होता है"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"ऑडियो शेयर करने की सुविधा काम करती है"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"मेहमान मोड में इस्तेमाल किया जा रहा डिवाइस. ऑडियो शेयर करने की सुविधा काम करती है"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"चालू है (सिर्फ़ मीडिया के लिए), सिर्फ़ बाएं कान की मशीन"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"चालू है (सिर्फ़ मीडिया के लिए), सिर्फ़ दाएं कान की मशीन"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"चालू है (सिर्फ़ मीडिया के लिए), बाएं और दाएं कान की मशीन"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"हार्डवेयर ऐक्सेलरेटेड रेंडरिंग"</string>
     <string name="media_category" msgid="8122076702526144053">"मीडिया"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"निगरानी"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Window Management"</string>
     <string name="strict_mode" msgid="889864762140862437">"स्ट्रिक्ट मोड चालू रखें"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"थ्रेड पर लंबा प्रोसेस होने पर स्‍क्रीन फ़्लैश करें"</string>
     <string name="pointer_location" msgid="7516929526199520173">"पॉइंटर की जगह"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"वेबव्यू लागू करें"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"वेबव्यू सेट करें"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"यह चुनाव अब मान्य नहीं है. दोबारा कोशिश करें."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"वेबव्यू DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"वेबव्यू पैकेज नहीं मिला."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools लॉन्च नहीं किया जा सका."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"चित्र रंग मोड"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB का उपयोग करें"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"बंद"</string>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index 97f2df6..15eb471 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Ažuriranje okruženja nije uspjelo"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktivno (samo medijski sadržaji). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktivno (samo medijski sadržaji), L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Gostujući uređaj. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Gostujući uređaj. L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Gostujući uređaj (samo medijski sadržaji). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Gostujući uređaj (samo medijski sadržaji). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Povezano (podržava zajedničko slušanje). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Povezano (podržava zajedničko slušanje), L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Povezano (podržava zajedničko slušanje). Lijeva strana: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Povezano (podržava zajedničko slušanje). Desna strana: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Povezano (podržava zajedničko slušanje)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Gostujući uređaj (podržava zajedničko slušanje). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Gostujući uređaj (podržava zajedničko slušanje). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterije."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Gostujući uređaj (podržava zajedničko slušanje)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktivno (samo medijski sadržaji)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Gostujući uređaj"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Gostujući uređaj (samo medijski sadržaji)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Podržava zajedničko slušanje"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Gostujući uređaj. Podržava zajedničko slušanje"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktivno (samo medijski sadržaji), samo lijeva"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktivno (samo medijski sadržaji), samo desna"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktivno (samo medijski sadržaji), lijeva i desna"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardverski ubrzano renderiranje"</string>
     <string name="media_category" msgid="8122076702526144053">"Mediji"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Nadzor"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Upravljanje prozorima"</string>
     <string name="strict_mode" msgid="889864762140862437">"Omogućen strogi način"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Zaslon bljeska kada operacije aplikacija u glavnoj niti dugo traju"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Mjesto pokazivača"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementacija WebViewa"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Postavi implementaciju WebViewa"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Taj izbor više nije važeći. Pokušajte ponovo."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView razvojni alati"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView paket nije pronađen."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Nije moguće pokrenuti razvojne alate."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Način boje slike"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Upotrijebi sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Onemogućeno"</string>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index 5e97cff..08ae0f8 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Nem sikerült módosítani a környezetet"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktív (csak médiatartalom lejátszása esetén). Akkumulátor töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktív (csak médiatartalom lejátszása esetén). Akkumulátorok töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (bal) és <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (jobb)."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Vendégeszköz. Akkumulátor töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Vendégeszköz. Akkumulátorok töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (bal) és <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (jobb)."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Vendégeszköz (csak médiatartalom lejátszása esetén). Akkumulátor töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Vendégeszköz (csak médiatartalom lejátszása esetén). Akkumulátorok töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (bal) és <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (jobb)."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Csatlakoztatva (támogatja a hang megosztását). Akkumulátor töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Csatlakoztatva (támogatja a hang megosztását). Akkumulátorok töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (bal) és <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (jobb)."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Csatlakoztatva (támogatja a hang megosztását). Akkumulátor töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> (bal)."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Csatlakoztatva (támogatja a hang megosztását). Akkumulátor töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> (jobb)."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Csatlakoztatva (támogatja a hang megosztását)."</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Vendégeszköz (támogatja a hang megosztását). Akkumulátor töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Vendégeszköz (támogatja a hang megosztását). Akkumulátorok töltöttségi szintje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (bal) és <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (jobb)."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Vendégeszköz (támogatja a hang megosztását)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktív (csak médiatartalom lejátszása)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Vendégeszköz"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Vendégeszköz (csak médiatartalom lejátszása esetén)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Támogatja a hang megosztását"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Vendégeszköz. Támogatja a hang megosztását"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktív (csak médiatartalom lejátszása), csak a bal"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktív (csak médiatartalom lejátszása), csak a jobb"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktív (csak médiatartalom lejátszása), bal és jobb"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardveres gyorsítású megjelenítés"</string>
     <string name="media_category" msgid="8122076702526144053">"Média"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Figyelés"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Ablakkezelés"</string>
     <string name="strict_mode" msgid="889864762140862437">"Szigorú mód engedélyezve"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Képernyővillogás a fő szál hosszú műveleteinél"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Mutató helye"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView-megvalósítás"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView-megvalósítás beállítása"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Ez a választás már nem érvényes. Próbálkozzon újra."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"A WebView-csomag nem található."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Nem sikerült elindítani a DevTools eszközt."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Kép színe mód"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB használata"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Letiltva"</string>
diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml
index d342717..3471013 100644
--- a/packages/SettingsLib/res/values-hy/strings.xml
+++ b/packages/SettingsLib/res/values-hy/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Չհաջողվեց թարմացնել շրջակայքի կարգավիճակը"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Ակտիվ է (միայն մեդիա)։ Մարտկոցի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>։"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Ակտիվ է (միայն մեդիա)։ Ձախ ականջակալի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, աջ ականջակալի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>։"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Հյուրի սարք։ Մարտկոցի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>։"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Հյուրի սարք։ Ձախ ականջակալի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, աջ ականջակալի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>։"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Հյուրի սարք (միայն մուլտիմեդիա)։ Մարտկոցի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>։"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Հյուրի սարք (միայն մուլտիմեդիա)։ Ձախ ականջակալի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, աջ ականջակալի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>։"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Միացված է (աջակցում է աուդիոյի փոխանցում)։ Մարտկոցի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>։"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Միացված է (աջակցում է աուդիոյի փոխանցում)։ Ձախ ականջակալի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, աջ ականջակալի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>։"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Միացված է (աջակցում է աուդիոյի փոխանցում)։ Ձախ ականջակալի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>։"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Միացված է (աջակցում է աուդիոյի փոխանցում)։ Աջ ականջակալի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>։"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Միացված է (աջակցում է աուդիոյի փոխանցում)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Հյուրի սարք (աջակցում է աուդիոյի փոխանցում)։ Մարտկոցի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>։"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Հյուրի սարք (աջակցում է աուդիոյի փոխանցում)։ Ձախ ականջակալի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, աջ ականջակալի լիցքը՝ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>։"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Հյուրի սարք (աջակցում է աուդիոյի փոխանցում)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Ակտիվ է (միայն մեդիա)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Հյուրի սարք"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Հյուրի սարք (միայն մուլտիմեդիա)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Աջակցում է աուդիոյի փոխանցում"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Հյուրի սարք։ Աջակցում է աուդիոյի փոխանցում։"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Ակտիվ է (միայն մեդիա), միայն ձախ"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Ակտիվ է (միայն մեդիա), միայն աջ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Ակտիվ է (միայն մեդիա), աջ և ձախ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Սարքաշարի արագացված նյութավորում"</string>
     <string name="media_category" msgid="8122076702526144053">"Մեդիա"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Մշտադիտարկում"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Պատուհանների կառավարում"</string>
     <string name="strict_mode" msgid="889864762140862437">"Խիստ ռեժիմն ակտիվացված է"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Լուսավորել էկրանը` ծրագրի գլխավոր շղթայի վրա երկար աշխատելիս"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Նշորդի տեղադրությունը"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView ծառայություն"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Ընտրեք WebView-ի իրականացումը"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Այս ընտրանքն այլևս վավեր չէ: Փորձեք նորից:"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView-ի ծրագրավորողի գործիքներ"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView փաթեթը չի գտնվել։"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Չհաջողվեց գործարկել ծրագրավորողի գործիքները։"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Նկարի գունային ռեժիմ"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Օգտագործել sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Կասեցված է"</string>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index 649ee0bb..85109fc 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Tidak dapat memperbarui suara sekitar"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktif (hanya media). Baterai <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktif (hanya media). Baterai L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Perangkat tamu. Baterai <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Perangkat tamu. Baterai L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Perangkat tamu (hanya media). Baterai <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Perangkat tamu (hanya media). Baterai L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Terhubung (mendukung berbagi audio). Baterai <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Terhubung (mendukung berbagi audio). Baterai L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Terhubung (mendukung berbagi audio). Kiri: Baterai <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Terhubung (mendukung berbagi audio). Kanan: Baterai <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Terhubung (mendukung berbagi audio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Perangkat tamu (mendukung berbagi audio). Baterai <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Perangkat tamu (mendukung berbagi audio). Baterai L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Perangkat tamu (mendukung berbagi audio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktif (hanya media)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Perangkat tamu"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Perangkat tamu (hanya media)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Mendukung berbagi audio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Perangkat tamu. Mendukung berbagi audio"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktif (hanya media), hanya kiri"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktif (hanya media), hanya kanan"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktif (hanya media), kiri dan kanan"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Render yang dipercepat hardware"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Pemantauan"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Pengelolaan Jendela"</string>
     <string name="strict_mode" msgid="889864762140862437">"Mode ketat diaktifkan"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Buat layar berkedip saat aplikasi berlama-lama menjalankan operasi di thread utama"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Lokasi kursor"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Penerapan WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Setel penerapan WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Pilihan ini tidak valid lagi. Coba lagi."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"DevTools WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Paket WebView tidak ditemukan."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Tidak dapat meluncurkan DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Mode warna gambar"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Gunakan sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Dinonaktifkan"</string>
@@ -679,7 +665,7 @@
     <string name="user_need_lock_message" msgid="4311424336209509301">"Sebelum dapat membuat profil yang dibatasi, Anda perlu menyiapkan kunci layar untuk melindungi aplikasi dan data pribadi Anda."</string>
     <string name="user_set_lock_button" msgid="1427128184982594856">"Setel kunci"</string>
     <string name="user_switch_to_user" msgid="6975428297154968543">"Beralih ke <xliff:g id="USER_NAME">%s</xliff:g>"</string>
-    <string name="creating_new_user_dialog_message" msgid="7232880257538970375">"Membuat pengguna baru …"</string>
+    <string name="creating_new_user_dialog_message" msgid="7232880257538970375">"Membuat pengguna baru…"</string>
     <string name="creating_new_guest_dialog_message" msgid="1114905602181350690">"Membuat tamu baru…"</string>
     <string name="add_user_failed" msgid="4809887794313944872">"Gagal membuat pengguna baru"</string>
     <string name="add_guest_failed" msgid="8074548434469843443">"Gagal membuat tamu baru"</string>
diff --git a/packages/SettingsLib/res/values-is/strings.xml b/packages/SettingsLib/res/values-is/strings.xml
index d361157..3041151 100644
--- a/packages/SettingsLib/res/values-is/strings.xml
+++ b/packages/SettingsLib/res/values-is/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Ekki var hægt að uppfæra umhverfi"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Virkt (eingöngu margmiðlunarefni). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> rafhlöðuhleðsla."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Virkt (eingöngu margmiðlunarefni), V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> rafhlöðuhleðsla."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Gestatæki. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> rafhlöðuhleðsla."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Gestatæki. V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> rafhlöðuhleðsla."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Gestatæki (aðeins margmiðlunarefni). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> rafhlöðuhleðsla."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Gestatæki (aðeins margmiðlunarefni). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> rafhlöðuhleðsla."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Tengt (styður hljóðdeilingu), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> rafhlöðuhleðsla."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Tengt (styður hljóðdeilingu), V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> rafhlöðuhleðsla."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Tengt (styður hljóðdeilingu). Vinstri: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> rafhlöðuhleðsla."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Tengt (styður hljóðdeilingu). Hægri: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> rafhlöðuhleðsla."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Tengt (styður hljóðdeilingu)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Gestatæki (styður hljóðdeilingu). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> rafhlöðuhleðsla."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Gestatæki (styður hljóðdeilingu). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> rafhlöðuhleðsla."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Gestatæki (styður hljóðdeilingu)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Virkt (eingöngu margmiðlunarefni)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Gestatæki"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Gestatæki (aðeins margmiðlunarefni)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Styður hljóðdeilingu"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Gestatæki. Styður hljóðdeilingu"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Virkt (eingöngu margmiðlunarefni), eingöngu vinstri"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Virkt (eingöngu margmiðlunarefni), eingöngu hægri"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Virkt (eingöngu margmiðlunarefni), vinstri og hægri"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Myndþýðing með vélbúnaðarhröðun"</string>
     <string name="media_category" msgid="8122076702526144053">"Margmiðlun"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Eftirlit"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Gluggastjórnun"</string>
     <string name="strict_mode" msgid="889864762140862437">"Kveikt á strangri stillingu"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Blikka skjá ef forrit gera tímafreka hluti á aðalþræði"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Staðsetning bendils"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Innleiðing WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Stilla innleiðingu WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Þetta val er ekki lengur gilt. Reyndu aftur."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView-pakki fannst ekki."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Ekki tókst að ræsa DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Litastilling mynda"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Nota sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Óvirkt"</string>
@@ -667,7 +653,7 @@
     <string name="user_grant_admin_message" msgid="1673791931033486709">"Stjórnendur hafa tiltekin réttindi sem aðrir notendur hafa ekki. Stjórnandi getur stjórnað öllum notendum, uppfært eða endurstillt þetta tæki, breytt stillingum, séð öll uppsett forrit og veitt eða afturkallað stjórnandaheimildir annarra."</string>
     <string name="user_grant_admin_button" msgid="5441486731331725756">"Gera að stjórnanda"</string>
     <string name="user_setup_dialog_title" msgid="8037342066381939995">"Setja notanda upp núna?"</string>
-    <string name="user_setup_dialog_message" msgid="269931619868102841">"Gakktu úr skugga um að notandinn geti tekið tækið og sett upp sitt svæði"</string>
+    <string name="user_setup_dialog_message" msgid="269931619868102841">"Sjáðu til þess að notandinn geti tekið tækið og sett upp sitt svæði"</string>
     <string name="user_setup_profile_dialog_message" msgid="4788197052296962620">"Setja upp snið núna?"</string>
     <string name="user_setup_button_setup_now" msgid="1708269547187760639">"Setja upp núna"</string>
     <string name="user_setup_button_setup_later" msgid="8712980133555493516">"Ekki núna"</string>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index 98e415b..c42cab3 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Impossibile aggiornare audio ambientale"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Attivo (solo contenuti multimediali). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> di batteria."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Attivo (solo contenuti multimediali). S: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> di batteria. D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> di batteria."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Dispositivo ospite. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> di batteria."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Dispositivo ospite. S: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> di batteria. D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> di batteria."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Dispositivo ospite (solo contenuti multimediali). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> di batteria."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Dispositivo ospite (solo contenuti multimediali). S: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> di batteria. D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> di batteria."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Connesso (supporta la condivisione audio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> di batteria."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Connesso (supporta la condivisione audio). S: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> di batteria. D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> di batteria."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Connesso (supporta la condivisione audio). Sinistro: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> di batteria."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Connesso (supporta la condivisione audio). Destro: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> di batteria."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Connesso (supporta la condivisione audio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Dispositivo ospite (supporta la condivisione audio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> di batteria."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Dispositivo ospite (supporta la condivisione audio). S: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> di batteria. D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> di batteria."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Dispositivo ospite (supporta la condivisione audio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Attivo (solo contenuti multimediali)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Dispositivo ospite"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Dispositivo ospite (solo contenuti multimediali)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Supporta la condivisione audio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Dispositivo ospite. Supporta la condivisione audio"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Attivo (solo contenuti multimediali), solo sinistro"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Attivo (solo contenuti multimediali), solo destro"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Attivo (solo contenuti multimediali), sinistro e destro"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Rendering con accelerazione hardware"</string>
     <string name="media_category" msgid="8122076702526144053">"Contenuti multimediali"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitoraggio"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Gestione delle finestre"</string>
     <string name="strict_mode" msgid="889864762140862437">"Attiva StrictMode"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Fai lampeggiare lo schermo per operazioni lunghe sul thread principale"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Posizione puntatore"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementazione di WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Imposta l\'implementazione di WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"La selezione non è più valida. Riprova."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView di DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Pacchetto WebView non trovato."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Impossibile avviare DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Modalità colori immagini"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Usa sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Disattivato"</string>
@@ -521,7 +507,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="3268796172652988877">"Ora stimata esaurimento batteria in base al tuo utilizzo: <xliff:g id="TIME">%1$s</xliff:g> circa"</string>
     <string name="power_discharge_by" msgid="4113180890060388350">"Ora stimata esaurimento batteria: <xliff:g id="TIME">%1$s</xliff:g> circa (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Ora stimata esaurimento batteria: <xliff:g id="TIME">%1$s</xliff:g> circa"</string>
-    <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Fino a: <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Fino alle ore: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_suggestion_battery_run_out" msgid="6332089307827787087">"La batteria potrebbe esaurirsi entro le <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="8956656616031395152">"Carica residua: meno di <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="318215464914990578">"Carica residua: meno di <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index b341c4d..d4c0773 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"לא ניתן לעדכן את עוצמת הרעשים בסביבה"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"פעיל (מדיה בלבד). סוללה: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"פעיל (מדיה בלבד). סוללה בצד שמאל: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, סוללה בצד ימין: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"מכשיר אורח. סוללה: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"מכשיר אורח. סוללה בצד שמאל: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. סוללה בצד ימין: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"מכשיר אורח (מדיה בלבד). סוללה: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"מכשיר אורח (מדיה בלבד). סוללה בצד שמאל: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. סוללה בצד ימין: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"מחובר (תמיכה בשיתוף אודיו). סוללה: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"מחובר (תמיכה בשיתוף אודיו). סוללה בצד שמאל: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, סוללה בצד ימין: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"מחובר (תמיכה בשיתוף אודיו). סוללה בצד שמאל: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"מחובר (תמיכה בשיתוף אודיו). סוללה בצד ימין: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"מחובר (תמיכה בשיתוף אודיו)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"מכשיר אורח (תומך בשיתוף אודיו). סוללה: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"מכשיר אורח (תומך בשיתוף אודיו). סוללה בצד שמאל: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. סוללה בצד ימין: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"מכשיר אורח (תומך בשיתוף אודיו)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"פעיל (מדיה בלבד)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"מכשיר אורח"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"מכשיר אורח (מדיה בלבד)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"תמיכה בשיתוף אודיו"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"מכשיר אורח. תומך בשיתוף אודיו."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"פעיל (מדיה בלבד), שמאל בלבד"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"פעיל (מדיה בלבד), ימין בלבד"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"פעיל (מדיה בלבד), שמאל וימין"</string>
@@ -492,12 +482,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"‏יישום WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"‏הגדרת יישום WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"אפשרות זו כבר אינה תקפה. אפשר לנסות שוב."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"‏כלי פיתוח של WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"‏לא נמצאה חבילת WebView."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"לא ניתן היה להפעיל את כלי הפיתוח."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"מצב צבע התמונה"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"‏שימוש ב-sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"מושבת"</string>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index 2e36d6a..bb997ff 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"周囲の音を更新できませんでした"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"有効（メディアのみ）。バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"有効（メディアのみ）。左: バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>、右: バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"ゲストデバイス。バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"ゲストデバイス。左: バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>、右: バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"ゲストデバイス（メディアのみ）。バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"ゲストデバイス（メディアのみ）。左: バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>、右: バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"接続済み（音声の共有をサポート）。バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"接続済み（音声の共有をサポート）。左: バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>、右: バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"接続済み（音声の共有をサポート）。左: バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"接続済み（音声の共有をサポート）。右: バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"接続済み（音声の共有をサポート）"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"ゲストデバイス（音声の共有をサポート）。バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"ゲストデバイス（音声の共有をサポート）。左: バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>、右: バッテリー残量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"ゲストデバイス（音声の共有をサポート）"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"有効（メディアのみ）"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"ゲストデバイス"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"ゲストデバイス（メディアのみ）"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"音声の共有をサポートしています"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"ゲストデバイス。音声の共有をサポートしています"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"有効（メディアのみ）、左のみ"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"有効（メディアのみ）、右のみ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"有効（メディアのみ）、左右"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"ハードウェアアクセラレーテッドレンダリング"</string>
     <string name="media_category" msgid="8122076702526144053">"メディア"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"モニタリング"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"ウィンドウ管理"</string>
     <string name="strict_mode" msgid="889864762140862437">"厳格モードを有効にする"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"メインスレッドの処理が長引く場合は画面を点滅させる"</string>
     <string name="pointer_location" msgid="7516929526199520173">"ポインタの位置"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView の実装"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView の実装の設定"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"この選択は無効になりました。もう一度お試しください。"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView の DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView パッケージが見つかりません。"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools を起動できませんでした。"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"画像の色モード"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGBを使用"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"無効"</string>
diff --git a/packages/SettingsLib/res/values-ka/arrays.xml b/packages/SettingsLib/res/values-ka/arrays.xml
index 3ecf9d8..1e80d42 100644
--- a/packages/SettingsLib/res/values-ka/arrays.xml
+++ b/packages/SettingsLib/res/values-ka/arrays.xml
@@ -297,13 +297,13 @@
   <string-array name="shade_display_awareness_summaries">
     <item msgid="2964753205732912921">"ჩრდილის ჩვენება მხოლოდ მოწყობილობის ეკრანზე"</item>
     <item msgid="1955398604822147783">"ჩრდილის ჩვენება ერთ გარე ეკრანზე"</item>
-    <item msgid="391477482416751568">"ეკრანზე ჩრდილის ჩვენება, რომლის სტატუსის ზოლთანაც მოხდა ბოლო ინტერაქცია"</item>
+    <item msgid="391477482416751568">"ეკრანის ბოლო ინტერაქციის მქონე სტატუსის ზოლით დაჩრდილვა"</item>
     <item msgid="1746820128097981528">"ჩრდილის ჩვენება ბოლო ფოკუსირებულ ეკრანზე"</item>
   </string-array>
   <string-array name="shade_display_awareness_values">
     <item msgid="3055776101992426514">"default_display"</item>
     <item msgid="774789415968826925">"any_external_display"</item>
     <item msgid="7880769915418638436">"status_bar_latest_touch"</item>
-    <item msgid="4313165186636015195">"ფოკუსირებული_ეკრანი"</item>
+    <item msgid="4313165186636015195">"focused_display"</item>
   </string-array>
 </resources>
diff --git a/packages/SettingsLib/res/values-ka/strings.xml b/packages/SettingsLib/res/values-ka/strings.xml
index e627b79..91e8889 100644
--- a/packages/SettingsLib/res/values-ka/strings.xml
+++ b/packages/SettingsLib/res/values-ka/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"გარემოცვის განახლება ვერ მოხერხდა"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"აქტიური (მხოლოდ მედია). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>%% ბატარეა."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"აქტიური (მხოლოდ მედია), მარცხენა: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, მარჯვენა:<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ბატარეა."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"სტუმარი მოწყობილობა. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ბატარეა."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"სტუმარი მოწყობილობა. მარცხენა: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, მარჯვენა: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ბატარეა."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"სტუმარი მოწყობილობა (მხოლოდ მედია). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ბატარეა."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"სტუმარი მოწყობილობა (მხოლოდ მედია). მარცხენა: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, მარჯვენა: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ბატარეა."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"დაკავშირებული (აუდიოს გაზიარება მხარდაჭერილია). ბატარეა <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"დაკავშირებული (აუდიოს გაზიარება მხარდაჭერილია). მარცხენა: ბატარეა <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, მარჯვენა: ბატარეა <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"დაკავშირებული (აუდიოს გაზიარება მხარდაჭერილია). მარცხენა: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ბატარეა."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"დაკავშირებული (აუდიოს გაზიარება მხარდაჭერილია). მარჯვენა: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ბატარეა."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"დაკავშირებული (აუდიოს გაზიარება მხარდაჭერილია)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"სტუმარი მოწყობილობა (აუდიოს გაზიარება მხარდაჭერილია). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ბატარეა."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"სტუმარი მოწყობილობა (აუდიოს გაზიარება მხარდაჭერილია). მარცხენა: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, მარჯვენა: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ბატარეა."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"სტუმარი მოწყობილობა (აუდიოს გაზიარება მხარდაჭერილია)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"აქტიური (მხოლოდ მედია)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"სტუმარი მოწყობილობა"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"სტუმარი მოწყობილობა (მხოლოდ მედია)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"აუდიოს გაზიარება მხარდაჭერილია"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"სტუმარი მოწყობილობა. აუდიოს გაზიარება მხარდაჭერილია"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"აქტიური (მხოლოდ მედია), მხოლოდ მარცხენა"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"აქტიური (მხოლოდ მედია), მხოლოდ მარჯვენა"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"აქტიური (მხოლოდ მედია), მარცხენა და მარჯვენა"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"აპარატურით დაჩქარებული გამოსახულება"</string>
     <string name="media_category" msgid="8122076702526144053">"მედია"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"მონიტორინგი"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"ფანჯრების მართვა"</string>
     <string name="strict_mode" msgid="889864762140862437">"მკაცრი რეჟიმი ჩართულია"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"ეკრანის აციმციმება, როცა აპები ახორციელებენ ხანგრძლივ ოპერაციებს მთავარ ნაკადზე"</string>
     <string name="pointer_location" msgid="7516929526199520173">"მაჩვენებლის მდებარეობა"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView რეალიზაცია"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView რეალიზაციის დაყენება"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"თქვენი არჩევანი აღარ მოქმედებს. ცადეთ ხელახლა."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView-ის პაკეტი ვერ მოიძებნა"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools-ის გაშვება ვერ მოხერხდა"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"გამოსახულების ფერების რეჟიმი"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB-ს გამოყენება"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"გამორთულია"</string>
diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml
index a85e624..25c92de 100644
--- a/packages/SettingsLib/res/values-kk/strings.xml
+++ b/packages/SettingsLib/res/values-kk/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Айналаны жаңарту мүмкін болмады."</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Істеп тұр (тек мультимедиа). Батарея зарядының деңгейі – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Істеп тұр (тек мультимедиа). Сол жақ: батарея зарядының деңгейі — <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. Оң жақ: батарея зарядының деңгейі — <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Қонақ құрылғы. Батарея зарядының деңгейі – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Қонақ құрылғы. Сол жақ: батарея зарядының деңгейі – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. Оң жақ: батарея зарядының деңгейі — <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Қонақ құрылғы (тек медиафайл). Батарея зарядының деңгейі – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Қонақ құрылғы (тек медиафайл). Сол жақ: батарея зарядының деңгейі – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. Оң жақ: батарея зарядының деңгейі — <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Жалғанып тұр (аудио бөлісу мүмкіндігі бар). Батарея зарядының деңгейі – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Қосылды (аудио бөлісуге мүмкіндік береді). Сол жақ: батарея зарядының деңгейі — <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. Оң жақ: батарея зарядының деңгейі — <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Қосылды (аудио бөлісуге мүмкіндік береді). Сол жақ: батарея зарядының деңгейі – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Қосылды (аудио бөлісуге мүмкіндік береді). Оң жақ: батарея зарядының деңгейі – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Жалғанды (аудио бөлісу мүмкіндігі бар)."</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Қонақ құрылғы (аудио бөлісуге мүмкіндік береді). Батарея зарядының деңгейі – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Қонақ құрылғы (аудио бөлісуге мүмкіндік береді). Сол жақ: батарея зарядының деңгейі – <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. Оң жақ: батарея зарядының деңгейі — <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Қонақ құрылғы (аудио бөлісуге мүмкіндік береді)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Істеп тұр (тек мультимедиа)."</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Қонақ құрылғы"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Қонақ құрылғы (тек медиафайл)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Аудио бөлісуге мүмкіндік береді."</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Қонақ құрылғы. Аудио бөлісуге мүмкіндік береді."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Тек сол жақ істеп тұр (мультимедиа ғана)."</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Тек оң жақ істеп тұр (мультимедиа ғана)."</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Сол және оң жақ істеп тұр (мультимедиа ғана)."</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Бейнелеуді аппаратпен жеделдету"</string>
     <string name="media_category" msgid="8122076702526144053">"Mультимeдиа"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Бақылау"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Терезелерді басқару"</string>
     <string name="strict_mode" msgid="889864762140862437">"Қатаң режим қосылған"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Қолданбалар ұзақ операцияларды орындағанда экранды жыпылықтату"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Меңзер орны"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView қызметі"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView ендіруін орнату"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Бұл таңдау енді жарамды емес. Әрекетті қайталаңыз."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView әзірлеуші құралдары"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView пакеті табылмады."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Әзірлеуші құралдары іске қосылмады."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Сурет түс режимі"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB пайдалану"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Өшірулі"</string>
diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml
index d2d5893..9dadee1 100644
--- a/packages/SettingsLib/res/values-km/strings.xml
+++ b/packages/SettingsLib/res/values-km/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"មិនអាចប្ដូរមជ្ឈដ្ឋានជុំវិញបានទេ"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"សកម្ម (តែមេឌៀប៉ុណ្ណោះ)។ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>។"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"សកម្ម (តែមេឌៀប៉ុណ្ណោះ)។ ឆ្វេង៖ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> ស្ដាំ៖ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>។"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"ឧបករណ៍ភ្ញៀវ។ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>។"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"ឧបករណ៍ភ្ញៀវ។ ឆ្វេង៖ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> ស្ដាំ៖ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>។"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"ឧបករណ៍ភ្ញៀវ (មេឌៀតែប៉ុណ្ណោះ)។ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>។"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"ឧបករណ៍ភ្ញៀវ (មេឌៀតែប៉ុណ្ណោះ)។ ឆ្វេង៖ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> ស្ដាំ៖ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>។"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"បានភ្ជាប់ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)។ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>។"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"បានភ្ជាប់ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)។ ឆ្វេង៖ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> ស្ដាំ៖ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>។"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"បានភ្ជាប់ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)។ ឆ្វេង៖ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>។"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"បានភ្ជាប់ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)។ ស្ដាំ៖ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>។"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"បានភ្ជាប់ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"ឧបករណ៍ភ្ញៀវ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)។ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>។"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"ឧបករណ៍ភ្ញៀវ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)។ ឆ្វេង៖ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> ស្ដាំ៖ ថ្ម <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>។"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"ឧបករណ៍ភ្ញៀវ (អាចប្រើការស្ដាប់សំឡេងរួមគ្នា)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"សកម្ម (តែមេឌៀប៉ុណ្ណោះ)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"ឧបករណ៍ភ្ញៀវ"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"ឧបករណ៍ភ្ញៀវ (មេឌៀតែប៉ុណ្ណោះ)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"អាចប្រើការស្ដាប់សំឡេងរួមគ្នា"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"ឧបករណ៍ភ្ញៀវ។ អាចប្រើការស្ដាប់សំឡេងរួមគ្នា"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"សកម្ម (តែមេឌៀប៉ុណ្ណោះ) តែខាងឆ្វេងប៉ុណ្ណោះ"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"សកម្ម (តែមេឌៀប៉ុណ្ណោះ) តែខាងស្ដាំប៉ុណ្ណោះ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"សកម្ម (តែមេឌៀប៉ុណ្ណោះ) ឆ្វេង និងស្ដាំ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"ការបំប្លែងដែលពន្លឿនដោយប្រើហាតវែរ"</string>
     <string name="media_category" msgid="8122076702526144053">"មេឌៀ"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"តាមដាន"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"ការគ្រប់គ្រងវិនដូ"</string>
     <string name="strict_mode" msgid="889864762140862437">"បាន​បើក​មុខងារតឹងរ៉ឹង"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"បញ្ចេញ​ពន្លឺ​អេក្រង់​ពេល​កម្មវិធី​ធ្វើ​ប្រតិបត្តិការ​យូរ​លើ​សែស្រឡាយ​​មេ"</string>
     <string name="pointer_location" msgid="7516929526199520173">"ទីតាំង​ទ្រនិច"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"ការអនុវត្ត WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"កំណត់ការប្រតិបត្តិ WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"ជម្រើសនេះលែងមានសុពលភាពទៀតហើយ ព្យាយាមម្តងទៀត"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"ឧបករណ៍អ្នកអភិវឌ្ឍន៍ WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"រកមិនឃើញកញ្ចប់ WebView ទេ។"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"មិនអាចបើកឧបករណ៍អ្នកអភិវឌ្ឍន៍បានទេ។"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"របៀបនៃពណ៌រូបភាព"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"ប្រើ sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"បាន​បិទ"</string>
diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml
index 87f2cdf..72056bb 100644
--- a/packages/SettingsLib/res/values-kn/strings.xml
+++ b/packages/SettingsLib/res/values-kn/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"ಆ್ಯಂಬಿಯೆಂಟ್ ಸ್ಥಿತಿಯನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"ಸಕ್ರಿಯವಾಗಿದೆ (ಮೀಡಿಯಾ ಮಾತ್ರ). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ಬ್ಯಾಟರಿ ಮಟ್ಟ."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"ಸಕ್ರಿಯವಾಗಿದೆ (ಮೀಡಿಯಾ ಮಾತ್ರ). ಎಡ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ಬಲ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ಬ್ಯಾಟರಿ ಮಟ್ಟ."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"ಅತಿಥಿ ಸಾಧನ. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ಬ್ಯಾಟರಿ ಮಟ್ಟ."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"ಅತಿಥಿ ಸಾಧನ. ಎಡ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ಬಲ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ಬ್ಯಾಟರಿ ಮಟ್ಟ."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"ಅತಿಥಿ ಸಾಧನ (ಮಾಧ್ಯಮ ಮಾತ್ರ). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ಬ್ಯಾಟರಿ ಮಟ್ಟ."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"ಅತಿಥಿ ಸಾಧನ (ಮಾಧ್ಯಮ ಮಾತ್ರ). ಎಡ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ಬಲ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ಬ್ಯಾಟರಿ ಮಟ್ಟ."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"ಕನೆಕ್ಟ್‌ ಆಗಿದೆ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ಬ್ಯಾಟರಿ ಮಟ್ಟ."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"ಕನೆಕ್ಟ್‌ ಆಗಿದೆ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ). ಎಡ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ಬಲ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ಬ್ಯಾಟರಿ ಮಟ್ಟ."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"ಕನೆಕ್ಟ್‌ ಆಗಿದೆ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ). ಎಡ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ಬ್ಯಾಟರಿ ಮಟ್ಟ."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"ಕನೆಕ್ಟ್‌ ಆಗಿದೆ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ). ಬಲ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ಬ್ಯಾಟರಿ ಮಟ್ಟ."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"ಕನೆಕ್ಟ್‌ ಆಗಿದೆ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"ಅತಿಥಿ ಸಾಧನ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ಬ್ಯಾಟರಿ ಮಟ್ಟ."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"ಅತಿಥಿ ಸಾಧನ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ). ಎಡ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ಬಲ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ಬ್ಯಾಟರಿ ಮಟ್ಟ."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"ಅತಿಥಿ ಸಾಧನ (ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"ಸಕ್ರಿಯವಾಗಿದೆ (ಮೀಡಿಯಾ ಮಾತ್ರ)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"ಅತಿಥಿ ಸಾಧನ"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"ಅತಿಥಿ ಸಾಧನ (ಮಾಧ್ಯಮ ಮಾತ್ರ)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"ಅತಿಥಿ ಸಾಧನ. ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"ಸಕ್ರಿಯವಾಗಿದೆ (ಮೀಡಿಯಾ ಮಾತ್ರ), ಎಡ ಭಾಗದ ಮಾತ್ರ"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"ಸಕ್ರಿಯವಾಗಿದೆ (ಮೀಡಿಯಾ ಮಾತ್ರ), ಬಲ ಭಾಗದ ಮಾತ್ರ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"ಸಕ್ರಿಯವಾಗಿದೆ (ಮೀಡಿಯಾ ಮಾತ್ರ), ಎಡ ಮತ್ತು ಬಲ ಭಾಗದ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"ಹಾರ್ಡ್‌ವೇರ್‌ ವೇಗವರ್ಧಿತ ರೆಂಡರಿಂಗ್"</string>
     <string name="media_category" msgid="8122076702526144053">"ಮಾಧ್ಯಮ"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"ಪರಿವೀಕ್ಷಣೆ ಮಾಡುವಿಕೆ"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"ವಿಂಡೋ ನಿರ್ವಹಣೆ"</string>
     <string name="strict_mode" msgid="889864762140862437">"ಸ್ಟ್ರಿಕ್ಟ್‌‌ ಮೋಡ್ ಸಕ್ರಿಯ"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮುಖ್ಯ ಥ್ರೆಡ್‌ನಲ್ಲಿ ದೀರ್ಘ ಕಾರ್ಯಾಚರಣೆ ನಿರ್ವಹಿಸಿದಾಗ ಪರದೆಯನ್ನು ಫ್ಲ್ಯಾಶ್ ಮಾಡು"</string>
     <string name="pointer_location" msgid="7516929526199520173">"ಪಾಯಿಂಟರ್ ಸ್ಥಳ"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView ಹೊಂದಿಸಿ"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView ಅನುಷ್ಠಾನಗೊಳಿಸುವಿಕೆಯನ್ನು ಸೆಟ್ ಮಾಡಿ"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"ಈ ಆಯ್ಕೆಯು ಇನ್ನು ಮುಂದೆ ಮಾನ್ಯವಾಗಿರುವುದಿಲ್ಲ. ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView ಪ್ಯಾಕೇಜ್ ಕಂಡುಬಂದಿಲ್ಲ."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools ಅನ್ನು ಲಾಂಚ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"ಚಿತ್ರ ಬಣ್ಣದ ಮೋಡ್"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB ಬಳಸಿ"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index 669d8ef..3b965e5 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"주변 소리를 업데이트할 수 없음"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"사용 중입니다(미디어 전용). 배터리는 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>입니다."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"사용 중입니다(미디어 전용). 배터리는 왼쪽 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, 오른쪽 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>입니다."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"게스트 기기입니다. 배터리는 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>입니다."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"게스트 기기입니다. 배터리는 왼쪽 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, 오른쪽 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>입니다."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"게스트 기기(미디어 전용)입니다. 배터리는 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>입니다."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"게스트 기기(미디어 전용)입니다. 배터리는 왼쪽 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, 오른쪽 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>입니다."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"연결되었습니다(오디오 공유 지원). 배터리는 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>입니다."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"연결되었습니다(오디오 공유 지원). 배터리는 왼쪽 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, 오른쪽 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>입니다."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"연결되었습니다(오디오 공유 지원). 왼쪽 배터리는 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>입니다."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"연결되었습니다(오디오 공유 지원). 오른쪽 배터리는 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>입니다."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"연결됨(오디오 공유 지원)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"게스트 기기(오디오 공유 지원)입니다. 배터리는 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>입니다."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"게스트 기기(오디오 공유 지원)입니다. 배터리는 왼쪽 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, 오른쪽 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>입니다."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"게스트 기기(오디오 공유 지원)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"사용 중(미디어 전용)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"게스트 기기"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"게스트 기기(미디어 전용)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"오디오 공유 지원"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"게스트 기기입니다. 오디오 공유를 지원합니다."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"사용 중(미디어 전용), 왼쪽만"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"사용 중(미디어 전용), 오른쪽만"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"사용 중(미디어 전용), 왼쪽 및 오른쪽"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"하드웨어 가속 렌더링"</string>
     <string name="media_category" msgid="8122076702526144053">"미디어"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"모니터링"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"창 관리"</string>
     <string name="strict_mode" msgid="889864762140862437">"엄격 모드 사용"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"앱이 기본 스레드에서 오래 작업하면 화면 깜박이기"</string>
     <string name="pointer_location" msgid="7516929526199520173">"포인터 위치"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView 구현"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView 구현 설정"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"선택이 더 이상 유효하지 않습니다. 다시 시도하세요."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView 패키지를 찾을 수 없습니다."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools를 실행할 수 없습니다."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"사진 색상 모드"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB 사용"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"사용 중지됨"</string>
diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml
index c69325b..3eee360 100644
--- a/packages/SettingsLib/res/values-ky/strings.xml
+++ b/packages/SettingsLib/res/values-ky/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Айланадагы абал жаңыртылган жок"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Жигердүү (медиа үчүн гана). Батарея: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Жигердүү (медиа үчүн гана). Батарея: L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Конок түзмөк. Батарея: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Конок түзмөк. Батарея: L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Конок түзмөк (медиа гана). Батарея: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Конок түзмөк (медиа гана). Батарея: L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Туташып турат (чогуу уксаңыз болот). Батарея: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Туташып турат (чогуу уксаңыз болот). Батарея: L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Туташып турат (чогуу уксаңыз болот). Сол кулак – батареянын деңгээли: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Туташып турат (чогуу уксаңыз болот). Оң кулак – батареянын деңгээли: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Туташып турат (чогуу уксаңыз болот)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Конок түзмөк (чогуу угуу колдоого алынат). Батарея: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Конок түзмөк (чогуу угуу колдоого алынат). Батарея: L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Конок түзмөк (чогуу угуу колдоого алынат)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Активдүү (медиа үчүн гана)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Конок түзмөк"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Конок түзмөк (медиа гана)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Чогуу уксаңыз болот"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Конок түзмөк. Чогуу угуу колдоого алынат"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Активдүү (медиа үчүн гана), сол кулакчын гана"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Активдүү (медиа үчүн гана), оң кулакчын гана"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Активдүү (медиа үчүн гана), сол жана оң кулакчын"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Визуалдаштырууну аппарат менен ылдамдатуу"</string>
     <string name="media_category" msgid="8122076702526144053">"Медиа"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Мониторинг"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Терезени тескөө"</string>
     <string name="strict_mode" msgid="889864762140862437">"Катаал режим иштетилди"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Узак операцияларда экран күйүп-өчүп турат"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Көрсөткүчтүн турган жери"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView кызматы"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView аткарылышын коюу"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Тандалган нерсе жараксыз болуп калган. Кайталап көрүңүз."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView сунуштаган иштеп чыгуучунун куралдары"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView топтому табылган жок."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Иштеп чыгуучунун куралдары иштетилген жок."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Сүрөт түсү режими"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB колдонуңуз"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Өчүк"</string>
diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml
index d1f1344..8044cce 100644
--- a/packages/SettingsLib/res/values-lo/strings.xml
+++ b/packages/SettingsLib/res/values-lo/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"ບໍ່ສາມາດອັບເດດສຽງແວດລ້ອມໄດ້"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"ນຳໃຊ້ຢູ່ (ມີເດຍເທົ່ານັ້ນ). ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"ນຳໃຊ້ຢູ່ (ມີເດຍເທົ່ານັ້ນ). ຊ: ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ຂ: ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"ອຸປະກອນແຂກ. ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"ອຸປະກອນແຂກ. ແບັດເຕີຣີ L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"ອຸປະກອນແຂກ (ສື່ເທົ່ານັ້ນ). ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"ອຸປະກອນແຂກ (ສື່ເທົ່ານັ້ນ). ແບັດເຕີຣີ L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"ເຊື່ອມຕໍ່ແລ້ວ (ຮອງຮັບການແບ່ງປັນສຽງ). ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"ເຊື່ອມຕໍ່ແລ້ວ (ຮອງຮັບການແບ່ງປັນສຽງ). ຊ: ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ຂ: ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"ເຊື່ອມຕໍ່ແລ້ວ (ຮອງຮັບການແບ່ງປັນສຽງ). ຊ້າຍ: ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"ເຊື່ອມຕໍ່ແລ້ວ (ຮອງຮັບການແບ່ງປັນສຽງ). ຂວາ: ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"ເຊື່ອມຕໍ່ແລ້ວ (ຮອງຮັບການແບ່ງປັນສຽງ)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"ອຸປະກອນແຂກ (ຮອງຮັບການແບ່ງປັນສຽງ). ແບັດເຕີຣີ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"ອຸປະກອນແຂກ (ຮອງຮັບການແບ່ງປັນສຽງ). ແບັດເຕີຣີ L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"ອຸປະກອນແຂກ (ຮອງຮັບການແບ່ງປັນສຽງ)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"ນຳໃຊ້ຢູ່ (ມີເດຍເທົ່ານັ້ນ)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"ອຸປະກອນແຂກ"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"ອຸປະກອນແຂກ (ສື່ເທົ່ານັ້ນ)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"ຮອງຮັບການແບ່ງປັນສຽງ"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"ອຸປະກອນແຂກ. ຮອງຮັບການແບ່ງປັນສຽງ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"ນຳໃຊ້ຢູ່ (ມີເດຍເທົ່ານັ້ນ), ຊ້າຍເທົ່ານັ້ນ"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"ນຳໃຊ້ຢູ່ (ມີເດຍເທົ່ານັ້ນ), ຂວາເທົ່ານັ້ນ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"ນຳໃຊ້ຢູ່ (ມີເດຍເທົ່ານັ້ນ), ຊ້າຍ ແລະ ຂວາ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"ການສະແດງຜົນໂດຍໃຊ້ຮາດແວຊ່ວຍ"</string>
     <string name="media_category" msgid="8122076702526144053">"ມີເດຍ"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"ກຳລັງກວດສອບ"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"ການຈັດການໜ້າຈໍ"</string>
     <string name="strict_mode" msgid="889864762140862437">"ເປີດໃຊ້ໂໝດເຄັ່ງຄັດ"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"ກະພິບໜ້າຈໍເມື່ອມີແອັບເຮັດວຽກດົນເກີນໄປໃນເທຣດຫຼັກ"</string>
     <string name="pointer_location" msgid="7516929526199520173">"ຕຳແໜ່ງໂຕຊີ້"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"ການຈັດຕັ້ງປະຕິບັດ WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"ຕັ້ງການຈັດຕັ້ງປະຕິບັດ WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"ບໍ່ສາມາດໃຊ້ການເລືອກນີ້ໄດ້ອີກຕໍ່ໄປແລ້ວ. ກະລຸນາລອງໃໝ່."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"ບໍ່ພົບແພັກເກດ WebView."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"ບໍ່ສາມາດເປີດໃຊ້ DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"ໂໝດ​ສີ​ຮູບ"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"ໃຊ້ sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"ປິດນຳໃຊ້ແລ້ວ"</string>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index 7f94010..aec236a 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Nepavyko atnaujinti aplinkos"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktyvus (tik medija). Akumuliatorius lygis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktyvus (tik medija), akumuliatoriaus lygis kairėje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, dešinėje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Svečio įrenginys. Akumuliatorius lygis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Svečio įrenginys. Akumuliatoriaus lygis kairėje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, dešinėje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Svečio įrenginys (tik medija). Akumuliatorius lygis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Svečio įrenginys (tik medija). Akumuliatoriaus lygis kairėje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, dešinėje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Prijungta (palaikomas garso įrašų bendrinimas). Akumuliatoriaus lygis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Prijungta (palaikomas garso įrašų bendrinimas), akumuliatoriaus lygis kairėje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, dešinėje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Prijungta (palaikomas garso įrašų bendrinimas). Akumuliatoriaus lygis kairėje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Prijungta (palaikomas garso įrašų bendrinimas). Akumuliatoriaus lygis dešinėje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Prijungta (palaikomas garso įrašų bendrinimas)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Svečio įrenginys (palaikomas garso įrašų bendrinimas). Akumuliatorius lygis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Svečio įrenginys (palaikomas garso įrašų bendrinimas). Akumuliatoriaus lygis kairėje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, dešinėje: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Svečio įrenginys (palaikomas garso įrašų bendrinimas)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktyvus (tik medija)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Svečio įrenginys"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Svečio įrenginys (tik medija)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Palaikomas garso įrašų bendrinimas"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Svečio įrenginys. Palaikomas garso įrašų bendrinimas"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktyvus (tik medija), tik kairė"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktyvus (tik medija), tik dešinė"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktyvus (tik medija), kairė ir dešinė"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Aparatinės įrangos paspartintas pateikimas"</string>
     <string name="media_category" msgid="8122076702526144053">"Medija"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Stebėjimas"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Langų tvarkymas"</string>
     <string name="strict_mode" msgid="889864762140862437">"Įgal. griežtas režimas"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Ekr. blyksės, kai pr. atl. ilgus proc. pgr. gijoje"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Žymiklio vieta"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"„WebView“ diegimas"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"„WebView“ diegimo nustatymas"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Šios parinkties nebegalima pasirinkti. Bandykite dar kartą."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"„WebView“ kūrėjo įrankiai"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Žiniatinklio rodinio paketas nerastas."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Nepavyko paleisti kūrėjo įrankių."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Nuotraukos spalvos režimas"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Naudoti sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Išjungtas"</string>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index 50a56d4..5716f8f 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Nevarēja atjaunināt apkārtnes skaņas"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktīvs (tikai multividei). Akumulatora uzlādes līmenis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktīvs (tikai multividei). Akumulatora uzlādes līmenis kreisajā austiņā: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, labajā austiņā: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Viesa ierīce. Akumulatora uzlādes līmenis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Viesa ierīce. Akumulatora uzlādes līmenis kreisajā austiņā: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, labajā austiņā: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Viesa ierīce (tikai multividei). Akumulatora uzlādes līmenis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Viesa ierīce (tikai multividei). Akumulatora uzlādes līmenis kreisajā austiņā: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, labajā austiņā: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Izveidots savienojums (atbalsta audio kopīgošanu). Akumulatora uzlādes līmenis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Izveidots savienojums (atbalsta audio kopīgošanu). Akumulatora uzlādes līmenis kreisajā austiņā: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, labajā austiņā: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Izveidots savienojums (atbalsta audio kopīgošanu). Akumulatora uzlādes līmenis kreisajā austiņā: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Izveidots savienojums (atbalsta audio kopīgošanu). Akumulatora uzlādes līmenis labajā austiņā: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Izveidots savienojums (atbalsta audio kopīgošanu)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Viesa ierīce (atbalsta audio kopīgošanu). Akumulatora uzlādes līmenis: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Viesa ierīce (atbalsta audio kopīgošanu). Akumulatora uzlādes līmenis kreisajā austiņā: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, labajā austiņā: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Viesa ierīce (atbalsta audio kopīgošanu)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktīvs (tikai multividei)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Viesa ierīce"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Viesa ierīce (tikai multividei)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Atbalsta audio kopīgošanu"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Viesa ierīce. Atbalsta audio kopīgošanu"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktīvs (tikai multivide), tikai kreisās puses aparāts"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktīvs (tikai multivide), tikai labās puses aparāts"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktīvs (tikai multivide), kreisās un labās puses aparāts"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Aparatūras paātrinātā atveidošana"</string>
     <string name="media_category" msgid="8122076702526144053">"Multivide"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Pārraudzība"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Logu pārvaldība"</string>
     <string name="strict_mode" msgid="889864762140862437">"Precīzais rež. ir iespēj."</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Zibsnīt ekrānu, ja liet. ilgi darbojas galv. pav."</string>
     <string name="pointer_location" msgid="7516929526199520173">"Rādītāja atrašanās vieta"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView ieviešana"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Iestatīt WebView ieviešanu"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Šī iespēja vairs nav derīga. Mēģiniet vēlreiz."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView izstrādātāja rīki"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView pakotne netika atrasta."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Nevarēja palaist izstrādātāja rīkus."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Attēla krāsu režīms"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Izmantot sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Atspējota"</string>
diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml
index e86a6ce..bc6409d 100644
--- a/packages/SettingsLib/res/values-mk/strings.xml
+++ b/packages/SettingsLib/res/values-mk/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Не можеше да се ажурира опкружувањето"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Активно (само аудиовизуелни содржини). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерија."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Активно (само аудиовизуелни содржини). Л: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> батерија, Д: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батерија."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Гостински уред. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерија."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Гостински уред. Л: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> батерија, Д: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батерија."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Гостински уред (само аудиовизуелни содржини). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерија."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Гостински уред (само аудиовизуелни содржини). Л: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> батерија, Д: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батерија."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Поврзано (поддржува споделување аудио). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерија."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Поврзано (поддржува споделување аудио). Л: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> батерија, Д: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батерија."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Поврзано (поддржува споделување аудио). Лево: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерија."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Поврзано (поддржува споделување аудио). Десно: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерија."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Поврзано (поддржува споделување аудио)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Гостински уред (поддржува споделување аудио). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерија."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Гостински уред (поддржува споделување аудио). Л: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> батерија, Д: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батерија."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Гостински уред (поддржува споделување аудио)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Активно (само аудиовизуелни содржини)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Гостински уред"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Гостински уред (само аудиовизуелни содржини)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Поддржува споделување аудио"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Гостински уред. Поддржува споделување аудио"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Активно (само аудиовизуелни содржини), само лево"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Активно (само аудиовизуелни содржини), само десно"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Активно (само аудиовизуелни содржини), лево и десно"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Хардверско забрзување"</string>
     <string name="media_category" msgid="8122076702526144053">"Аудиовизуелни содржини"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Следење"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Управување со прозорци"</string>
     <string name="strict_mode" msgid="889864762140862437">"Овозможен е строг режим"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Трепкај со екранот при долги операции на главна нишка"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Локација на покажувач"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Примена на WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Поставете воведување WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Овој избор веќе не важи. Обидете се повторно."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Пакетот на WebView не е најден."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Не можеше да се стартува DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Режим на боја на слика"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Користи sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Оневозможено"</string>
@@ -666,7 +652,7 @@
     <string name="user_grant_admin_title" msgid="5157031020083343984">"Да се постави корисников како администратор?"</string>
     <string name="user_grant_admin_message" msgid="1673791931033486709">"Администраторите имаат посебни привилегии што другите корисници ги немаат. Администраторот може да управува со сите корисници, да го ажурира или ресетира уредов, да ги менува поставките, да ги прегледува сите инсталирани апликации и да доделува или одзема администраторски привилегии на другите корисници."</string>
     <string name="user_grant_admin_button" msgid="5441486731331725756">"Постави како администратор"</string>
-    <string name="user_setup_dialog_title" msgid="8037342066381939995">"Ќе поставите корисник сега?"</string>
+    <string name="user_setup_dialog_title" msgid="8037342066381939995">"Да се постави корисник?"</string>
     <string name="user_setup_dialog_message" msgid="269931619868102841">"Проверете дали лицето е достапно да го земе уредот и да го постави својот простор"</string>
     <string name="user_setup_profile_dialog_message" msgid="4788197052296962620">"Постави профил сега?"</string>
     <string name="user_setup_button_setup_now" msgid="1708269547187760639">"Постави сега"</string>
diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml
index f7ab232..bcadd7d 100644
--- a/packages/SettingsLib/res/values-ml/strings.xml
+++ b/packages/SettingsLib/res/values-ml/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"സറൗണ്ടിംഗ്‌സ് അപ്ഡേറ്റ് ചെയ്യാനായില്ല"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"സജീവം (മീഡിയ മാത്രം). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ബാറ്ററി."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"സജീവം (മീഡിയ മാത്രം). ഇടതുവശത്ത്: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> ബാറ്ററി, വലതുവശത്ത്: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ബാറ്ററി."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"അതിഥി ഉപകരണം. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ബാറ്ററി."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"അതിഥി ഉപകരണം. ഇടതുവശത്ത്: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, വലതുവശത്ത്: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ബാറ്ററി."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"അതിഥി ഉപകരണം (മീഡിയ മാത്രം). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ബാറ്ററി."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"അതിഥി ഉപകരണം (മീഡിയ മാത്രം). ഇടതുവശത്ത്: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, വലതുവശത്ത്: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ബാറ്ററി."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"കണക്റ്റ് ചെയ്തു (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ബാറ്ററി."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"കണക്റ്റ് ചെയ്തു (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു). ഇടതുവശത്ത്: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> ബാറ്ററി, വലതുവശത്ത്: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ബാറ്ററി."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"കണക്റ്റ് ചെയ്തു (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു). ഇടത് വശത്ത്: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ബാറ്ററി."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"കണക്റ്റ് ചെയ്തു (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു). വലത് വശത്ത്: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ബാറ്ററി."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"കണക്റ്റ് ചെയ്തു (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു)."</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"അതിഥി ഉപകരണം (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ബാറ്ററി."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"അതിഥി ഉപകരണം (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു). ഇടതുവശത്ത്: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, വലതുവശത്ത്: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ബാറ്ററി."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"അതിഥി ഉപകരണം (ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"സജീവം (മീഡിയ മാത്രം)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"അതിഥി ഉപകരണം"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"അതിഥി ഉപകരണം (മീഡിയ മാത്രം)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"അതിഥി ഉപകരണം. ഓഡിയോ പങ്കിടൽ പിന്തുണയ്ക്കുന്നു"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"സജീവം (മീഡിയ മാത്രം), ഇടതുവശത്ത് മാത്രം"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"സജീവം (മീഡിയ മാത്രം), വലതുവശത്ത് മാത്രം"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"സജീവം (മീഡിയ മാത്രം), ഇടതുവശത്തെയും വലതുവശത്തെയും"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"ഹാർഡ്‌വെയർ ത്വരിതപ്പെടുത്തിയ റെൻഡറിംഗ്"</string>
     <string name="media_category" msgid="8122076702526144053">"മീഡിയ"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"മോണിറ്ററിംഗ്"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"വിൻഡോ മാനേജ്മെന്റ്"</string>
     <string name="strict_mode" msgid="889864762140862437">"ഫോഴ്സ്‌മോഡ് സജീവമാക്കി"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"പ്രധാന ത്രെഡിൽ ആപ്പുകൾ ദൈർഘ്യമേറിയ പ്രവർത്തനങ്ങൾ നടത്തുമ്പോൾ സ്‌ക്രീൻ ഫ്ലാഷ് ചെയ്യുക"</string>
     <string name="pointer_location" msgid="7516929526199520173">"പോയിന്റർ ലൊക്കേഷൻ"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView നടപ്പാക്കൽ"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView നടപ്പാക്കൽ സജ്ജമാക്കുക"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"ഈ തിരഞ്ഞെടുപ്പിന് തുടർന്നങ്ങോട്ട് സാധുതയില്ല. വീണ്ടും ശ്രമിക്കുക."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView പാക്കേജ് കണ്ടെത്തിയില്ല."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools ലോഞ്ച് ചെയ്യാനായില്ല."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"ചിത്ര വർണ്ണ മോഡ്"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB ഉപയോഗിക്കുക"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"പ്രവർത്തനരഹിതമാക്കി"</string>
diff --git a/packages/SettingsLib/res/values-mn/strings.xml b/packages/SettingsLib/res/values-mn/strings.xml
index 4dc754e..2b45e85 100644
--- a/packages/SettingsLib/res/values-mn/strings.xml
+++ b/packages/SettingsLib/res/values-mn/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Орчин тойрныг шинэчилж чадсангүй"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Идэвхтэй (зөвхөн медиа). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батарей."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Идэвхтэй (зөвхөн медиа). З: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Б: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батарей."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Зочин төхөөрөмж. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батарейн цэнэгтэй."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Зочин төхөөрөмж. З: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Б: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батарейн цэнэгтэй."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Зочин төхөөрөмж (зөвхөн медиа). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батарейн цэнэгтэй."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Зочин төхөөрөмж (зөвхөн медиа). З: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Б: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батарейн цэнэгтэй."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Холбогдсон (аудио хуваалцахыг дэмждэг). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батарей."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Холбогдсон (аудио хуваалцахыг дэмждэг). З: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Б: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батарей."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Холбогдсон (аудио хуваалцахыг дэмждэг). Зүүн: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батарей."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Холбогдсон (аудио хуваалцахыг дэмждэг). Баруун: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батарей."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Холбогдсон (аудио хуваалцахыг дэмждэг)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Зочин төхөөрөмж (аудио хуваалцахыг дэмждэг). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батарейн цэнэгтэй."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Зочин төхөөрөмж (аудио хуваалцахыг дэмждэг). З: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Б: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батарейн цэнэгтэй."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Зочин төхөөрөмж (аудио хуваалцахыг дэмждэг)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Идэвхтэй (зөвхөн медиа)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Зочин төхөөрөмж"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Зочин төхөөрөмж (зөвхөн медиа)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Аудио хуваалцахыг дэмждэг"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Зочин төхөөрөмж. Аудио хуваалцахыг дэмждэг"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Идэвхтэй (зөвхөн медиа), зөвхөн зүүн"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Идэвхтэй (зөвхөн медиа), зөвхөн баруун"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Идэвхтэй (зөвхөн медиа), зүүн болон баруун"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Техник хангамжийн хурдасгасан үзүүлэлт"</string>
     <string name="media_category" msgid="8122076702526144053">"Медиа"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Мониторинг"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Цонхны удирдлага"</string>
     <string name="strict_mode" msgid="889864762140862437">"Хатуу горимыг идэвхжүүлсэн"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Аппууд үндсэн хэлхээс дээр удаан хугацаанд үйлдлүүд хийх үед дэлгэцийг анивчуулах"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Чиглүүлэгчийн байршил"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView хэрэгжилт"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView хэрэгжилтийг тохируулах"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Энэ сонголт хүчингүй байна. Дахин оролдоно уу."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView-н DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView-н багц олдсонгүй."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools-г эхлүүлж чадсангүй."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"\"Зургийн өнгө\" горим"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB-г ашиглах"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Идэвхгүй болсон"</string>
diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml
index eef39c4..826d601 100644
--- a/packages/SettingsLib/res/values-mr/strings.xml
+++ b/packages/SettingsLib/res/values-mr/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"जवळपासचे आवाज अपडेट करता आले नाहीत"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"अ‍ॅक्टिव्ह आहे (फक्त मीडिया). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बॅटरी."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"ॲक्टिव्ह आहे (फक्त मीडिया). डावीकडे: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> बॅटरी, उजवीकडे: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> बॅटरी."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"अतिथी डिव्हाइस. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बॅटरी."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"अतिथी डिव्हाइस. डावीकडे: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, उजवीकडे: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> बॅटरी."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"अतिथी डिव्हाइस (फक्त मीडिया). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बॅटरी."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"अतिथी डिव्हाइस (फक्त मीडिया). डावीकडे: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, उजवीकडे: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> बॅटरी."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"कनेक्ट केले आहे (ऑडिओ शेअरिंगला सपोर्ट करते). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बॅटरी."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"कनेक्ट केले आहे (ऑडिओ शेअरिंगला सपोर्ट करते). डावीकडे: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, उजवीकडे: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> बॅटरी."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"कनेक्ट केले आहे (ऑडिओ शेअरिंगला सपोर्ट करते). डावीकडे: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बॅटरी."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"कनेक्ट केले आहे (ऑडिओ शेअरिंगला सपोर्ट करते). उजवीकडे: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बॅटरी."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"कनेक्ट केले आहे (ऑडिओ शेअरिंगला सपोर्ट करते)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"अतिथी डिव्हाइस (ऑडिओ शेअरिंगला सपोर्ट करते). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> बॅटरी."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"अतिथी डिव्हाइस (ऑडिओ शेअरिंगला सपोर्ट करते). डावीकडे: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, उजवीकडे: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> बॅटरी."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"अतिथी डिव्हाइस (ऑडिओ शेअरिंगला सपोर्ट करते)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"अ‍ॅक्टिव्ह आहे (फक्त मीडिया)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"अतिथी डिव्हाइस"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"अतिथी डिव्हाइस (फक्त मीडिया)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"ऑडिओ शेअरिंगला सपोर्ट करते"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"अतिथी डिव्हाइस. ऑडिओ शेअरिंगला सपोर्ट करते"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"अ‍ॅक्टिव्ह आहे (फक्त मीडिया), फक्त डावे"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"अ‍ॅक्टिव्ह आहे (फक्त मीडिया), फक्त उजवे"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"अ‍ॅक्टिव्ह आहे (फक्त मीडिया), डावे आणि उजवे"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"हार्डवेअर अ‍ॅक्सिलरेटेड रेंडरिंग"</string>
     <string name="media_category" msgid="8122076702526144053">"मीडिया"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"परीक्षण"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"विंडो व्यवस्थापन"</string>
     <string name="strict_mode" msgid="889864762140862437">"कठोर मोड सुरू"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"मुख्य थ्रेडवर अ‍ॅप्स मोठी कार्ये करतात तेव्हा स्क्रीन फ्लॅश करा"</string>
     <string name="pointer_location" msgid="7516929526199520173">"पॉइंटर स्थान"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"वेबदृश्य अंमलबजावणी"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"वेबदृश्य अंमलबजावणी सेट करा"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"ही निवड यापुढे वैध असणार नाही. पुन्हा प्रयत्न करा."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView पॅकेज आढळले नाही."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools लाँच करता आले नाही."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"चित्र रंग मोड"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB वापरा"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"बंद केले"</string>
diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml
index ca4649c..a2f9562 100644
--- a/packages/SettingsLib/res/values-ms/strings.xml
+++ b/packages/SettingsLib/res/values-ms/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Tidak dapat mengemaskinikan persekitaran"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktif (media sahaja). Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktif (media sahaja), L: Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Peranti tetamu. Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Peranti tetamu. L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Peranti tetamu (media sahaja). Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Peranti tetamu (media sahaja). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Disambungkan (menyokong perkongsian audio). Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Disambungkan (menyokong perkongsian audio). L: Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Disambungkan (menyokong perkongsian audio). Kiri: Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Disambungkan (menyokong perkongsian audio). Kanan: Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Disambungkan (menyokong perkongsian audio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Peranti tetamu (menyokong perkongsian audio). Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Peranti tetamu (menyokong perkongsian audio). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: Bateri <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Peranti tetamu (menyokong perkongsian audio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktif (media sahaja)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Peranti tetamu"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Peranti tetamu (media sahaja)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Menyokong perkongsian audio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Peranti tetamu. Menyokong perkongsian audio"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktif (media sahaja), kiri sahaja"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktif (media sahaja), kanan sahaja"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktif (media sahaja), kiri dan kanan"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Pemaparan dipercepat perkakasan"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Memantau"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Pengurusan Tetingkap"</string>
     <string name="strict_mode" msgid="889864762140862437">"Mod tegas didayakan"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Kelip skrin apabila apl beroperasi lama pada urutan utama"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Lokasi penuding"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Pelaksanaan WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Tetapkan pelaksanaan WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Pilihan ini tidak lagi sah. Cuba lagi."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Alatan Pembangun Paparan Web"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Pakej Paparan Web tidak ditemukan."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Tidak dapat melancarkan Alatan Pembangun."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Mod warna gambar"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Gunakan sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Dilumpuhkan"</string>
diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml
index 1225e4c..b0d86af 100644
--- a/packages/SettingsLib/res/values-my/strings.xml
+++ b/packages/SettingsLib/res/values-my/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"ဝန်းကျင်အသံ အပ်ဒိတ်လုပ်၍ မရလိုက်ပါ"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"အသုံးပြုနေသည် (မီဒီယာသီးသန့်)။ ဘက်ထရီ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>။"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"အသုံးပြုနေသည် (မီဒီယာသီးသန့်)။ ဘက်ထရီ L- <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>၊ R- <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>။"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"ဧည့်သည်စက်ပစ္စည်း။ ဘက်ထရီ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>။"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"ဧည့်သည်စက်ပစ္စည်း။ ဘက်ထရီ L- <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>၊ R- <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>။"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"ဧည့်သည်စက်ပစ္စည်း (မီဒီယာသီးသန့်)။ ဘက်ထရီ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>။"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"ဧည့်သည်စက်ပစ္စည်း (မီဒီယာသီးသန့်)။ ဘက်ထရီ L- <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>၊ R- <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>။"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"ချိတ်ဆက်ထားသည် (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)။ ဘက်ထရီ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>။"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"ချိတ်ဆက်ထားသည် (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)။ ဘက်ထရီ L- <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>၊ R- <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>။"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"ချိတ်ဆက်ထားသည် (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)။ ဘယ်- ဘက်ထရီ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>။"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"ချိတ်ဆက်ထားသည် (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)။ ညာ- ဘက်ထရီ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>။"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"ချိတ်ဆက်ထားသည် (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"ဧည့်သည်စက်ပစ္စည်း (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)။ ဘက်ထရီ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>။"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"ဧည့်သည်စက်ပစ္စည်း (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)။ ဘက်ထရီ L- <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>၊ R- <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>။"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"ဧည့်သည်စက်ပစ္စည်း (အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"သုံးနေသည် (မီဒီယာသီးသန့်)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"ဧည့်သည်စက်ပစ္စည်း"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"ဧည့်သည်စက်ပစ္စည်း (မီဒီယာသီးသန့်)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"ဧည့်သည်စက်ပစ္စည်း။ အော်ဒီယို မျှဝေခြင်း ပံ့ပိုးသည်"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"သုံးနေသည် (မီဒီယာသီးသန့်)၊ ဘယ်သီးသန့်"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"သုံးနေသည် (မီဒီယာသီးသန့်)၊ ညာသီးသန့်"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"သုံးနေသည် (မီဒီယာသီးသန့်)၊ ဘယ်နှင့် ညာ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"ဟာ့ဒ်ဝဲ အရှိန်မြှင့် ပုံဖော်ခြင်း"</string>
     <string name="media_category" msgid="8122076702526144053">"မီဒီယာ"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"စောင့်ကြည့်စစ်ဆေးခြင်း"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"ဝင်းဒိုး စီမံခန့်ခွဲမှု"</string>
     <string name="strict_mode" msgid="889864762140862437">"တင်းကြပ်သောစနစ် ဖွင့်ရန်"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"အက်ပ်လုပ်ဆောင်မှု ရှည်ကြာလျှင် စကရင်ပြန်စသည်"</string>
     <string name="pointer_location" msgid="7516929526199520173">"မြား၏တည်နေရာ"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView အကောင်အထည်ဖော်မှု"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView အကောင်အထည်ဖော်မှု သတ်မှတ်ပါ"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"ဤရွေးချယ်မှု မှန်ကန်မှု မရှိတော့ပါ။ ထပ်စမ်းကြည့်ပါ။"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"ဝဘ်မြင်ကွင်း ဆောဖ့်ဝဲတူးလ်များ"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"ဝဘ်မြင်ကွင်း ပက်ကေ့ဂျ် မတွေ့ပါ။"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"ဆောဖ့်ဝဲတူးလ်များ စတင်၍ မရလိုက်ပါ။"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"ဓာတ်ပုံအရောင်မုဒ်"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB ကို အသုံးပြုပါ"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"ပိတ်ထားသည်"</string>
@@ -667,7 +653,7 @@
     <string name="user_grant_admin_message" msgid="1673791931033486709">"စီမံခန့်ခွဲသူများ၌ အခြားအသုံးပြုသူများတွင်မရှိသော အထူးဆောင်ရွက်ခွင့်များရှိသည်။ စီမံခန့်ခွဲသူက အသုံးပြုသူအားလုံးကို စီမံခြင်း၊ ဤစက်ပစ္စည်းကို အပ်ဒိတ်လုပ်ခြင်း (သို့) ပြင်ဆင်သတ်မှတ်ခြင်း၊ ဆက်တင်များပြင်ဆင်ခြင်း၊ ထည့်သွင်းထားသောအက်ပ်အားလုံးကို ကြည့်ခြင်းနှင့် အခြားသူများအတွက် စီမံခန့်ခွဲသူ ဆောင်ရွက်ခွင့်များပေးခြင်း (သို့) ရုပ်သိမ်းခြင်းတို့ လုပ်နိုင်သည်။"</string>
     <string name="user_grant_admin_button" msgid="5441486731331725756">"စီမံခန့်ခွဲသူအဖြစ် သတ်မှတ်ရန်"</string>
     <string name="user_setup_dialog_title" msgid="8037342066381939995">"အသုံးပြုသူကို ယခုသတ်မှတ်မလား။"</string>
-    <string name="user_setup_dialog_message" msgid="269931619868102841">"ထိုသူသည် ကိရိယာကိုယူ၍ ၎င်းတို့၏နေရာများကို ယခုသတ်မှတ်နိုင်ရမည်"</string>
+    <string name="user_setup_dialog_message" msgid="269931619868102841">"သူသည် ကိရိယာကိုယူ၍ သူ၏နေရာကို ယခုသတ်မှတ်နိုင်ရမည်"</string>
     <string name="user_setup_profile_dialog_message" msgid="4788197052296962620">"ယခု ကိုယ်ရေးအချက်အလက်ကို အစီအမံလုပ်မည်လား?"</string>
     <string name="user_setup_button_setup_now" msgid="1708269547187760639">"ယခု သတ်မှတ်ပါမည်"</string>
     <string name="user_setup_button_setup_later" msgid="8712980133555493516">"ယခုမလုပ်ပါ"</string>
@@ -679,7 +665,7 @@
     <string name="user_need_lock_message" msgid="4311424336209509301">"ကန့်သတ်ကိုယ်ရေးအချက်အလက်တစ်ခုကို မပြုလုပ်မီ သင်၏ အပလီကေးရှင်းများနှင့် ကိုယ်ပိုင်အချက်အလက်များကို ကာကွယ်ရန် မျက်နှာပြင်သော့ချခြင်းကို စီမံရန် လိုအပ်လိမ့်မည်"</string>
     <string name="user_set_lock_button" msgid="1427128184982594856">"သော့ချရန် သတ်မှတ်ပါ"</string>
     <string name="user_switch_to_user" msgid="6975428297154968543">"<xliff:g id="USER_NAME">%s</xliff:g> သို့ ပြောင်းရန်"</string>
-    <string name="creating_new_user_dialog_message" msgid="7232880257538970375">"အသုံးပြုသူအသစ် ပြုလုပ်နေသည်…"</string>
+    <string name="creating_new_user_dialog_message" msgid="7232880257538970375">"အသုံးပြုသူအသစ်အတွက် ပြင်ဆင်နေသည်…"</string>
     <string name="creating_new_guest_dialog_message" msgid="1114905602181350690">"ဧည့်သည်သစ် ပြုလုပ်နေသည်…"</string>
     <string name="add_user_failed" msgid="4809887794313944872">"အသုံးပြုသူအသစ် ပြုလုပ်၍မရပါ"</string>
     <string name="add_guest_failed" msgid="8074548434469843443">"ဧည့်သည်သစ် ပြုလုပ်၍မရပါ"</string>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index 7c9b10f..755df51 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Kunne ikke oppdatere omgivelsene"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktiv (bare medieinnhold) <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktiv (bare medieinnhold). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> batteri, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Gjesteenhet. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Gjesteenhet. V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Gjesteenhet (bare medieinnhold). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Gjesteenhet (bare medieinnhold). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Tilkoblet (støtter lyddeling). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Tilkoblet (støtter lyddeling). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> batteri, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Tilkoblet (støtter lyddeling). Venstre: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Tilkoblet (støtter lyddeling). Høyre: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Tilkoblet (støtter lyddeling)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Gjesteenhet (støtter lyddeling). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Gjesteenhet (støtter lyddeling). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Gjesteenhet (støtter lyddeling)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktiv (bare medieinnhold)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Gjesteenhet"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Gjesteenhet (bare medieinnhold)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Støtter lyddeling"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Gjesteenhet. Støtter lyddeling"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktiv (bare medieinnhold), bare venstre"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktiv (bare medieinnhold), bare høyre"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktiv (bare medieinnhold), høyre og venstre"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Maskinvareakselerert gjengivelse"</string>
     <string name="media_category" msgid="8122076702526144053">"Medier"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Overvåking"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Vindusadministrering"</string>
     <string name="strict_mode" msgid="889864762140862437">"Slå på streng modus"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Skjermblink ved lange apphandlinger på hovedtråd"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Pekerplassering"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView-implementering"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Angi WebView-implementering"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Dette valget er ikke gyldig lenger. Prøv på nytt."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Utviklerverktøy for WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Fant ikke WebView-pakken."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Kunne ikke starte utviklerverktøyene."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Fargemodus for bilder"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Bruk sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Slått av"</string>
diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml
index e2e7a8f..0a9ac17 100644
--- a/packages/SettingsLib/res/values-ne/strings.xml
+++ b/packages/SettingsLib/res/values-ne/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"वरपरका आवाजसम्बन्धी सेटिङ अपडेट गर्न सकिएन"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"सक्रिय छ (मिडिया मात्र)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ब्याट्री।"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"सक्रिय छ (मिडिया मात्र)। बायाँ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, दायाँ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ब्याट्री।"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"अतिथि डिभाइस। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ब्याट्री।"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"अतिथि डिभाइस। बायाँ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, दायाँ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ब्याट्री।"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"अतिथि डिभाइस (मिडिया मात्र)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ब्याट्री।"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"अतिथि डिभाइस (मिडिया मात्र)। बायाँ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, दायाँ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ब्याट्री।"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"कनेक्ट गरिएको छ (अडियो सेयर गर्न मिल्छ)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ब्याट्री।"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"कनेक्ट गरिएको छ (अडियो सेयर गर्न मिल्छ)। बायाँ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, दायाँ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ब्याट्री।"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"कनेक्ट गरिएको छ (अडियो सेयर गर्न मिल्छ)। बायाँ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ब्याट्री।"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"कनेक्ट गरिएको छ (अडियो सेयर गर्न मिल्छ)। दायाँ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ब्याट्री।"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"कनेक्ट गरिएको छ (अडियो सेयर गर्न मिल्छ)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"अतिथि डिभाइस (अडियो सेयर गर्ने सुविधा प्रयोग गर्न मिल्छ)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ब्याट्री।"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"अतिथि डिभाइस (अडियो सेयर गर्ने सुविधा प्रयोग गर्न मिल्छ)। बायाँ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, दायाँ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ब्याट्री।"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"अतिथि डिभाइस (अडियो सेयर गर्ने सुविधा प्रयोग गर्न मिल्छ)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"सक्रिय छ (मिडिया मात्र)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"अतिथि डिभाइस"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"अतिथि डिभाइस (मिडिया मात्र)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"अडियो सेयर गर्न मिल्छ"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"अतिथि डिभाइस। अडियो सेयर गर्ने सुविधा प्रयोग गर्न मिल्छ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"सक्रिय छ (मिडिया मात्र), बायाँ मात्र"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"सक्रिय छ (मिडिया मात्र), दायाँ मात्र"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"सक्रिय छ (मिडिया मात्र), बायाँ र दायाँ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"हार्डवेयरले बढाएको रेन्डरिङ"</string>
     <string name="media_category" msgid="8122076702526144053">"मिडिया"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"अनुगमन गरिँदै छ"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"विन्डो व्यवस्थापन"</string>
     <string name="strict_mode" msgid="889864762140862437">"स्ट्रिक्ट मोड अन गर्नुहोस्"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"एपले मुख्य थ्रेडमा लामा गतिविधि गर्दा स्क्रिन फ्ल्यास गर्नुहोस्"</string>
     <string name="pointer_location" msgid="7516929526199520173">"पोइन्टरको स्थान"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView कार्यान्वयन"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView कार्यान्वयन सेट गर्नुहोस्"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"यो छनोट अब मान्य छैन। फेरि प्रयास गर्नुहोस्।"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView सम्बन्धी विकासकर्ता टुलहरू"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView प्याकेज भेटिएन।"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"विकासकर्ताका टुलहरू लन्च गर्न सकिएन।"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"चित्र रङ्ग मोड"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB प्रयोग गर्नुहोस्"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"अफ गरिएको छ"</string>
@@ -678,7 +664,7 @@
     <string name="profile_info_settings_title" msgid="105699672534365099">"प्रोफाइलको जानकारी"</string>
     <string name="user_need_lock_message" msgid="4311424336209509301">"निषेधयुक्त प्रोफाइल बनाउनु अघि तपाईँको एप र व्यक्तिगत डेटा सुरक्षा गर्नाका लागि तपाईँले स्क्रिन लक सेटअप गर्नु पर्दछ ।"</string>
     <string name="user_set_lock_button" msgid="1427128184982594856">"लक सेट गर्नुहोस्"</string>
-    <string name="user_switch_to_user" msgid="6975428297154968543">"प्रयोगकर्ता बदलेर <xliff:g id="USER_NAME">%s</xliff:g> बनाउनुहोस्"</string>
+    <string name="user_switch_to_user" msgid="6975428297154968543">"<xliff:g id="USER_NAME">%s</xliff:g> प्रयोग गर्नुहोस्"</string>
     <string name="creating_new_user_dialog_message" msgid="7232880257538970375">"नयाँ प्रयोगकर्ता बनाइँदै छ…"</string>
     <string name="creating_new_guest_dialog_message" msgid="1114905602181350690">"नयाँ अतिथि बनाइँदै छ…"</string>
     <string name="add_user_failed" msgid="4809887794313944872">"नयाँ प्रयोगकर्ता सिर्जना गर्न सकिएन"</string>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index 6dfcc7b..f71f3ab 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Kan omgeving niet updaten"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Actief (alleen media). Batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Actief (alleen media), L: batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Gastapparaat. Batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Gastapparaat. L: batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Gastapparaat (alleen media). Batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Gastapparaat (alleen media). L: batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Verbonden (ondersteunt audio delen), batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Verbonden (ondersteunt audio delen), L: batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Verbonden (ondersteunt audio delen). Links: batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Verbonden (ondersteunt audio delen). Rechts: batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Verbonden (ondersteunt audio delen)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Gastapparaat (ondersteunt audio delen). Batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Gastapparaat (ondersteunt audio delen). L: batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: batterijniveau <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Gastapparaat (ondersteunt audio delen)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Actief (alleen media)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Gastapparaat"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Gastapparaat (alleen media)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Ondersteunt audio delen"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Gastapparaat. Ondersteunt audio delen."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Actief (alleen media), alleen links"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Actief (alleen media), alleen rechts"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Actief (alleen media), links en rechts"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Rendering met hardwareversnelling"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Controle"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Vensterbeheer"</string>
     <string name="strict_mode" msgid="889864762140862437">"Strikte modus staat aan"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Knipperend scherm bij lange bewerkingen door apps"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Cursorlocatie"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView-implementatie"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView-implementatie instellen"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Deze keuze is niet meer geldig. Probeer het opnieuw."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView-pakket niet gevonden."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Kan DevTools niet starten."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Kleurenmodus voor afbeeldingen"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB gebruiken"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Uitgezet"</string>
diff --git a/packages/SettingsLib/res/values-or/strings.xml b/packages/SettingsLib/res/values-or/strings.xml
index 44c819c..f30ae3d 100644
--- a/packages/SettingsLib/res/values-or/strings.xml
+++ b/packages/SettingsLib/res/values-or/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"ପରିପାର୍ଶ୍ୱକୁ ଅପଡେଟ କରାଯାଇପାରିଲା ନାହିଁ"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"ସକ୍ରିୟ (କେବଳ ମିଡିଆ)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ବେଟେରୀ।"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"ସକ୍ରିୟ (କେବଳ ମିଡିଆ)। ବାମ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ଡାହାଣ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ବେଟେରୀ।"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"ଅତିଥି ଡିଭାଇସ। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ବେଟେରୀ।"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"ଅତିଥି ଡିଭାଇସ। ବାମ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ଡାହାଣ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ବେଟେରୀ।"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"ଅତିଥି ଡିଭାଇସ (କେବଳ ମିଡିଆ)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ବେଟେରୀ।"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"ଅତିଥି ଡିଭାଇସ (କେବଳ ମିଡିଆ)। ବାମ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ଡାହାଣ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ବେଟେରୀ।"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"କନେକ୍ଟ କରାଯାଇଛି (ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ବେଟେରୀ।"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"କନେକ୍ଟ କରାଯାଇଛି (ଅଡିଓ ସେୟାରିଂକୁ ସମର୍ଥନ କରେ)। ବାମ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ଡାହାଣ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ବେଟେରୀ।"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"କନେକ୍ଟ କରାଯାଇଛି (ଅଡିଓ ସେୟାରିଂକୁ ସମର୍ଥନ କରେ)। ବାମ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ବେଟେରୀ।"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"କନେକ୍ଟ କରାଯାଇଛି (ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ)। ଡାହାଣ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ବେଟେରୀ।"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"କନେକ୍ଟ କରାଯାଇଛି (ଅଡିଓ ସେୟାରିଂକୁ ସମର୍ଥନ କରେ)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"ଅତିଥି ଡିଭାଇସ (ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ବେଟେରୀ।"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"ଅତିଥି ଡିଭାଇସ (ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ)। ବାମ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ଡାହାଣ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ବେଟେରୀ।"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"ଅତିଥି ଡିଭାଇସ (ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"ସକ୍ରିୟ (କେବଳ ମିଡିଆ)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"ଅତିଥି ଡିଭାଇସ"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"ଅତିଥି ଡିଭାଇସ (କେବଳ ମିଡିଆ)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"ଅତିଥି ଡିଭାଇସ। ଅଡିଓ ସେୟାରିଂକୁ ସପୋର୍ଟ କରେ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"ସକ୍ରିୟ (କେବଳ ମିଡିଆ), କେବଳ ବାମ"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"ସକ୍ରିୟ (କେବଳ ମିଡିଆ), କେବଳ ଡାହାଣ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"ସକ୍ରିୟ (କେବଳ ମିଡିଆ), ବାମ ଏବଂ ଡାହାଣ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"ହାର୍ଡୱେର୍‌ ଆକ୍ସଲରେଟେଡ୍ ରେଣ୍ଡରିଙ୍ଗ"</string>
     <string name="media_category" msgid="8122076702526144053">"ମିଡିଆ"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"ମନିଟରିଙ୍ଗ"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"ୱିଣ୍ଡୋ ପରିଚାଳନା"</string>
     <string name="strict_mode" msgid="889864762140862437">"କଡ଼ା ମୋଡ୍ ସକ୍ଷମ କରାଯାଇଛି"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"ମୁଖ୍ୟ ଥ୍ରେଡ୍‌ରେ ଆପ୍‌ ଦୀର୍ଘ ସମୟ କାର୍ଯ୍ୟ କଲେ ସ୍କ୍ରୀନ୍‌ ଫ୍ଲାଶ୍ କରନ୍ତୁ"</string>
     <string name="pointer_location" msgid="7516929526199520173">"ପଏଣ୍ଟର୍‌ ଲୋକେସନ୍‌"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"ୱେବ୍‌ଭ୍ୟୁ ପ୍ରୟୋଗ"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView କାର୍ଯ୍ୟକାରିତାକୁ ସେଟ୍‍ କରନ୍ତୁ"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"ଏହି ପସନ୍ଦ ଆଉ ମାନ୍ୟ ନାହିଁ। ପୁଣିଥରେ ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView ମିଳିଲା ନାହିଁ।"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools ଲଞ୍ଚ କରାଯାଇପାରିଲା ନାହିଁ।"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"ପିକ୍‌ଚର୍‌ ରଙ୍ଗ ମୋଡ୍"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"ଅକ୍ଷମ ହୋଇଛି"</string>
diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml
index 731c195..2c2eab2 100644
--- a/packages/SettingsLib/res/values-pa/strings.xml
+++ b/packages/SettingsLib/res/values-pa/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"ਆਲੇ-ਦੁਆਲੇ ਨੂੰ ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"ਕਿਰਿਆਸ਼ੀਲ (ਸਿਰਫ਼ ਮੀਡੀਆ)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ਬੈਟਰੀ।"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"ਕਿਰਿਆਸ਼ੀਲ (ਸਿਰਫ਼ ਮੀਡੀਆ)। ਖੱਬੇ ਪਾਸੇ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ਸੱਜੇ ਪਾਸੇ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ਬੈਟਰੀ।"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"ਮਹਿਮਾਨ ਡੀਵਾਈਸ। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ਬੈਟਰੀ।"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"ਮਹਿਮਾਨ ਡੀਵਾਈਸ। ਖੱਬੇ ਪਾਸੇ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ਸੱਜੇ ਪਾਸੇ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ਬੈਟਰੀ।"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"ਮਹਿਮਾਨ ਡੀਵਾਈਸ (ਸਿਰਫ਼ ਮੀਡੀਆ)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ਬੈਟਰੀ।"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"ਮਹਿਮਾਨ ਡੀਵਾਈਸ (ਸਿਰਫ਼ ਮੀਡੀਆ)। ਖੱਬੇ ਪਾਸੇ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ਸੱਜੇ ਪਾਸੇ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ਬੈਟਰੀ।"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"ਕਨੈਕਟ ਕੀਤਾ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ਬੈਟਰੀ।"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"ਕਨੈਕਟ ਕੀਤਾ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)। ਖੱਬੇ ਪਾਸੇ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ਸੱਜੇ ਪਾਸੇ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ਬੈਟਰੀ।"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"ਕਨੈਕਟ ਕੀਤਾ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)। ਖੱਬੇ ਪਾਸੇ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ਬੈਟਰੀ।"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"ਕਨੈਕਟ ਕੀਤਾ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)। ਸੱਜੇ ਪਾਸੇ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ਬੈਟਰੀ।"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"ਕਨੈਕਟ ਕੀਤਾ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"ਮਹਿਮਾਨ ਡੀਵਾਈਸ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)। <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ਬੈਟਰੀ।"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"ਮਹਿਮਾਨ ਡੀਵਾਈਸ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)। ਖੱਬੇ ਪਾਸੇ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ਸੱਜੇ ਪਾਸੇ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ਬੈਟਰੀ।"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"ਮਹਿਮਾਨ ਡੀਵਾਈਸ (ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"ਕਿਰਿਆਸ਼ੀਲ (ਸਿਰਫ਼ ਮੀਡੀਆ)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"ਮਹਿਮਾਨ ਡੀਵਾਈਸ"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"ਮਹਿਮਾਨ ਡੀਵਾਈਸ (ਸਿਰਫ਼ ਮੀਡੀਆ)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"ਮਹਿਮਾਨ ਡੀਵਾਈਸ। ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"ਕਿਰਿਆਸ਼ੀਲ (ਸਿਰਫ਼ ਮੀਡੀਆ), ਸਿਰਫ਼ ਖੱਬਾ"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"ਕਿਰਿਆਸ਼ੀਲ (ਸਿਰਫ਼ ਮੀਡੀਆ), ਸਿਰਫ਼ ਸੱਜਾ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"ਕਿਰਿਆਸ਼ੀਲ (ਸਿਰਫ਼ ਮੀਡੀਆ), ਖੱਬਾ ਅਤੇ ਸੱਜਾ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"ਹਾਰਡਵੇਅਰ ਐਕਸੈੱਲਰੇਟਿਡ ਰੈਂਡਰਿੰਗ"</string>
     <string name="media_category" msgid="8122076702526144053">"ਮੀਡੀਆ"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"ਨਿਰੀਖਣ ਕਰਨਾ"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"ਵਿੰਡੋ ਪ੍ਰਬੰਧਨ"</string>
     <string name="strict_mode" msgid="889864762140862437">"ਸਟ੍ਰਿਕਟ ਮੋਡ ਚਾਲੂ ਹੈ"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"ਐਪਾਂ ਵੱਲੋਂ ਮੁੱਖ ਥ੍ਰੈੱਡ \'ਤੇ ਲੰਬੀਆਂ ਕਾਰਵਾਈਆਂ ਕਰਨ \'ਤੇ ਸਕ੍ਰੀਨ ਫਲੈਸ਼ ਕਰੋ"</string>
     <string name="pointer_location" msgid="7516929526199520173">"ਪੁਆਇੰਟਰ ਟਿਕਾਣਾ"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView ਅਮਲੀਕਰਨ"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView ਅਮਲੀਕਰਨ ਸੈੱਟ ਕਰੋ"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"ਇਹ ਚੋਣ ਹੁਣ ਵੈਧ ਨਹੀਂ ਹੈ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView ਪੈਕੇਜ ਨਹੀਂ ਮਿਲਿਆ।"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools ਨੂੰ ਲਾਂਚ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"ਤਸਵੀਰ ਰੰਗ ਮੋਡ"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB ਵਰਤੋਂ ਕਰੋ"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"ਬੰਦ ਹੈ"</string>
@@ -666,8 +652,8 @@
     <string name="user_grant_admin_title" msgid="5157031020083343984">"ਕੀ ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਪ੍ਰਸ਼ਾਸਕ ਬਣਾਉਣਾ ਹੈ?"</string>
     <string name="user_grant_admin_message" msgid="1673791931033486709">"ਪ੍ਰਸ਼ਾਸਕਾਂ ਕੋਲ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਹੁੰਦੇ ਹਨ ਜੋ ਹੋਰ ਵਰਤੋਂਕਾਰਾਂ ਕੋਲ ਨਹੀਂ ਹੁੰਦੇ। ਇੱਕ ਪ੍ਰਸ਼ਾਸਕ ਸਾਰੇ ਵਰਤੋਂਕਾਰਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰ ਸਕਦਾ ਹੈ, ਇਸ ਡੀਵਾਈਸ ਨੂੰ ਅੱਪਡੇਟ ਜਾਂ ਰੀਸੈੱਟ ਕਰ ਸਕਦਾ ਹੈ, ਸੈਟਿੰਗਾਂ ਨੂੰ ਸੋਧ ਸਕਦਾ ਹੈ, ਸਾਰੀਆਂ ਸਥਾਪਤ ਐਪਾਂ ਨੂੰ ਦੇਖ ਸਕਦਾ ਹੈ, ਅਤੇ ਦੂਜਿਆਂ ਲਈ ਪ੍ਰਸ਼ਾਸਕ ਦੇ ਅਧਿਕਾਰਾਂ ਨੂੰ ਮਨਜ਼ੂਰ ਜਾਂ ਰੱਦ ਕਰ ਸਕਦਾ ਹੈ।"</string>
     <string name="user_grant_admin_button" msgid="5441486731331725756">"ਪ੍ਰਸ਼ਾਸਕ ਬਣਾਓ"</string>
-    <string name="user_setup_dialog_title" msgid="8037342066381939995">"ਕੀ ਹੁਣ ਵਰਤੋਂਕਾਰ ਸੈੱਟ ਅੱਪ ਕਰਨਾ ਹੈ?"</string>
-    <string name="user_setup_dialog_message" msgid="269931619868102841">"ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਵਿਅਕਤੀ ਡੀਵਾਈਸ ਵਰਤਣ ਅਤੇ ਆਪਣੀ ਜਗ੍ਹਾ ਦੇ ਸੈੱਟ ਅੱਪ ਲਈ ਉਪਲਬਧ ਹੈ"</string>
+    <string name="user_setup_dialog_title" msgid="8037342066381939995">"ਕੀ ਹੁਣ ਵਰਤੋਂਕਾਰ ਸੈੱਟਅੱਪ ਕਰਨਾ ਹੈ?"</string>
+    <string name="user_setup_dialog_message" msgid="269931619868102841">"ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਵਿਅਕਤੀ ਡੀਵਾਈਸ ਵਰਤਣ ਅਤੇ ਆਪਣੀ ਜਗ੍ਹਾ ਦੇ ਸੈੱਟਅੱਪ ਲਈ ਉਪਲਬਧ ਹੈ"</string>
     <string name="user_setup_profile_dialog_message" msgid="4788197052296962620">"ਕੀ ਹੁਣ ਪ੍ਰੋਫਾਈਲ ਸੈੱਟ ਅੱਪ ਕਰਨੀ ਹੈ?"</string>
     <string name="user_setup_button_setup_now" msgid="1708269547187760639">"ਹੁਣੇ ਸੈੱਟ ਅੱਪ ਕਰੋ"</string>
     <string name="user_setup_button_setup_later" msgid="8712980133555493516">"ਅਜੇ ਨਹੀਂ"</string>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index b9adae2..79be6b3 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Nie udało się zaktualizować otoczenia"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktywne (tylko multimedia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> naładowania baterii."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktywne (tylko multimedia), lewa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, prawa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> naładowania baterii."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Urządzenie gościa. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> naładowania baterii."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Urządzenie gościa. Lewa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, prawa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> naładowania baterii."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Urządzenie gościa (tylko multimedia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> naładowania baterii."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Urządzenie gościa (tylko multimedia). Lewa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, prawa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> naładowania baterii."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Połączone (obsługa udostępniania dźwięku), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> naładowania baterii."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Połączone (obsługa udostępniania dźwięku), lewa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, prawa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> naładowania baterii."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Połączone (obsługa udostępniania dźwięku). Lewa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> naładowania baterii."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Połączone (obsługa udostępniania dźwięku). Prawa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> naładowania baterii."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Połączone (obsługa udostępniania dźwięku)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Urządzenie gościa (obsługuje udostępnianie dźwięku). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> naładowania baterii."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Urządzenie gościa (obsługuje udostępnianie dźwięku). Lewa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, prawa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> naładowania baterii."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Urządzenie gościa (obsługuje udostępnianie dźwięku)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktywne (tylko multimedia)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Urządzenie gościa"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Urządzenie gościa (tylko multimedia)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Obsługa udostępniania dźwięku"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Urządzenie gościa. Obsługuje udostępnianie dźwięku"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktywne (tylko multimedia), tylko lewa"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktywne (tylko multimedia), tylko prawa"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktywne (tylko multimedia), lewa i prawa"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Sprzętowa akceleracja renderowania"</string>
     <string name="media_category" msgid="8122076702526144053">"Multimedia"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitorowanie"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Zarządzanie oknami"</string>
     <string name="strict_mode" msgid="889864762140862437">"Tryb ścisły włączony"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Miganie ekranu podczas długich operacji w wątku głównym"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Lokalizacja wskaźnika"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementacja WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Ustaw implementację WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Ta opcja nie jest już obsługiwana. Spróbuj ponownie."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Narzędzia deweloperskie WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Nie znaleziono pakietu WebView."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Nie udało się uruchomić Narzędzi deweloperskich."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Tryb kolorów obrazu"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Użyj sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Wyłączone"</string>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 5b3bb06..e16e355 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Não foi possível atualizar o som ambiente"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Ativo (apenas mídia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Ativo (apenas mídia). Lado esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria. Lado direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Dispositivo convidado. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Dispositivo convidado. Lado esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria. Lado direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Dispositivo convidado (somente mídia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Dispositivo convidado (somente mídia). Lado esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria. Lado direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Conectado (aceita compartilhamento de áudio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Conectado (aceita compartilhamento de áudio). Lado esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria. Lado direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Conectado (aceita compartilhamento de áudio). Lado esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Conectado (aceita compartilhamento de áudio). Lado direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Conectado (aceita compartilhamento de áudio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Dispositivo convidado (aceita compartilhamento de áudio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Dispositivo convidado (aceita compartilhamento de áudio). Lado esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria. Lado direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Dispositivo convidado (aceita compartilhamento de áudio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Ativo (apenas mídia)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Dispositivo convidado"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Dispositivo convidado (somente mídia)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Com suporte ao compartilhamento de áudio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Dispositivo convidado. Aceita compartilhamento de áudio"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Ativo (apenas mídia), apenas esquerdo"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Ativo (apenas mídia), somente direito"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Ativo (apenas mídia), esquerdo e direito"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Renderização acelerada por hardware"</string>
     <string name="media_category" msgid="8122076702526144053">"Mídia"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitoramento"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Gerenciamento de janelas"</string>
     <string name="strict_mode" msgid="889864762140862437">"Modo restrito ativado"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Piscar tela se apps demorarem no processo principal"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Localização do cursor"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementação do WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Configurar implementação do WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Esta opção não é mais válida. Tente novamente."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"DevTools do WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"O pacote WebView não foi encontrado."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Não foi possível abrir o DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Modo de cor da imagem"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Usar sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Desativado"</string>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index e6b343a..e4381d6 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Não foi possível atualizar o ambiente"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Ativo (apenas para multimédia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Ativo (apenas para multimédia). E: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria. D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Dispositivo convidado. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Dispositivo convidado. E: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Dispositivo convidado (apenas para multimédia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Dispositivo convidado (apenas para multimédia). E: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Ligado (suporta partilha de áudio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Ligado (suporta partilha de áudio). E: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria. D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Ligado (suporta a partilha de áudio). Esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Ligado (suporta a partilha de áudio). Direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Ligado (suporta a partilha de áudio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Dispositivo convidado (compatível com partilha de áudio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Dispositivo convidado (compatível com partilha de áudio). E: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>. D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Dispositivo convidado (compatível com partilha de áudio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Ativo (apenas para multimédia)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Dispositivo convidado"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Dispositivo convidado (apenas para multimédia)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Suporta partilha de áudio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Dispositivo convidado. Compatível com partilha de áudio"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Ativo (apenas para multimédia), apenas esquerdo"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Ativo (apenas para multimédia), apenas direito"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Ativo (apenas para multimédia), esquerdo e direito"</string>
@@ -149,7 +139,7 @@
     <string name="bluetooth_profile_hid" msgid="2969922922664315866">"Dispositivo de entrada"</string>
     <string name="bluetooth_profile_pan" msgid="1006235139308318188">"Acesso à internet"</string>
     <string name="bluetooth_profile_pbap" msgid="2103406516858653017">"Acesso a contactos e histórico de chamadas"</string>
-    <string name="bluetooth_profile_pbap_summary" msgid="402819589201138227">"As informações são usadas para anúncios por chamadas e outros"</string>
+    <string name="bluetooth_profile_pbap_summary" msgid="402819589201138227">"As informações são usadas para anunciar chamadas e outros"</string>
     <string name="bluetooth_profile_pan_nap" msgid="7871974753822470050">"Partilha da ligação à internet"</string>
     <string name="bluetooth_profile_map" msgid="8907204701162107271">"Mensagens de texto"</string>
     <string name="bluetooth_profile_sap" msgid="8304170950447934386">"Acesso ao SIM"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Conversão acelerada de hardware"</string>
     <string name="media_category" msgid="8122076702526144053">"Multimédia"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitorização"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Gestão de janelas"</string>
     <string name="strict_mode" msgid="889864762140862437">"Modo rigoroso ativado"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Piscar ecrã se app fazem oper. prolong. no tópico princ."</string>
     <string name="pointer_location" msgid="7516929526199520173">"Localização do ponteiro"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementação WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Definir implementação WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Esta opção já não é válida. Tente novamente."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"DevTools do WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Pacote WebView não encontrado."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Não foi possível iniciar as DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Modo de cor da imagem"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Usar sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Desativado"</string>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index 5b3bb06..e16e355 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Não foi possível atualizar o som ambiente"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Ativo (apenas mídia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Ativo (apenas mídia). Lado esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria. Lado direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Dispositivo convidado. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Dispositivo convidado. Lado esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria. Lado direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Dispositivo convidado (somente mídia). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Dispositivo convidado (somente mídia). Lado esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria. Lado direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Conectado (aceita compartilhamento de áudio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Conectado (aceita compartilhamento de áudio). Lado esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria. Lado direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Conectado (aceita compartilhamento de áudio). Lado esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Conectado (aceita compartilhamento de áudio). Lado direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Conectado (aceita compartilhamento de áudio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Dispositivo convidado (aceita compartilhamento de áudio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Dispositivo convidado (aceita compartilhamento de áudio). Lado esquerdo: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> de bateria. Lado direito: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> de bateria."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Dispositivo convidado (aceita compartilhamento de áudio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Ativo (apenas mídia)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Dispositivo convidado"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Dispositivo convidado (somente mídia)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Com suporte ao compartilhamento de áudio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Dispositivo convidado. Aceita compartilhamento de áudio"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Ativo (apenas mídia), apenas esquerdo"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Ativo (apenas mídia), somente direito"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Ativo (apenas mídia), esquerdo e direito"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Renderização acelerada por hardware"</string>
     <string name="media_category" msgid="8122076702526144053">"Mídia"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitoramento"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Gerenciamento de janelas"</string>
     <string name="strict_mode" msgid="889864762140862437">"Modo restrito ativado"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Piscar tela se apps demorarem no processo principal"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Localização do cursor"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementação do WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Configurar implementação do WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Esta opção não é mais válida. Tente novamente."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"DevTools do WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"O pacote WebView não foi encontrado."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Não foi possível abrir o DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Modo de cor da imagem"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Usar sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Desativado"</string>
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index 13c9032..83a6e68 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Nu s-a putut actualiza zona din jur"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Activ (numai pentru conținut media). Nivelul bateriei <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Activ (numai pentru conținut media): nivelul bateriei din stânga: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, nivelul bateriei din dreapta: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Dispozitiv invitat. Nivelul bateriei: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Dispozitiv invitat. Nivelul bateriei din stânga: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, dreapta: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Dispozitiv invitat (numai pentru conținut media). Nivelul bateriei: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Dispozitiv invitat (numai pentru conținut media). Nivelul bateriei din stânga: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, dreapta: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Conectat (acceptă permiterea accesului la audio). Nivelul bateriei: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Conectat (acceptă permiterea accesului la audio), nivelul bateriei din stânga: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, nivelul bateriei din dreapta: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Conectat (acceptă permiterea accesului la audio). Nivelul bateriei din stânga: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Conectat (acceptă permiterea accesului la audio). Nivelul bateriei din dreapta: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Conectat (acceptă permiterea accesului la audio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Dispozitiv invitat (acceptă permiterea accesului la audio). Nivelul bateriei: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Dispozitiv invitat (acceptă permiterea accesului la audio). Nivelul bateriei din stânga: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, dreapta: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Dispozitiv invitat (acceptă permiterea accesului la audio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Activ (numai pentru conținut media)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Dispozitiv invitat"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Dispozitiv invitat (numai pentru conținut media)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Acceptă permiterea accesului la audio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Dispozitiv invitat. Acceptă permiterea accesului la audio"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Activ (numai pentru conținut media), numai stânga"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Activ (numai pentru conținut media), numai dreapta"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Activ (numai pentru conținut media), stânga și dreapta"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Redare accelerată hardware"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitorizare"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Gestionarea ferestrelor"</string>
     <string name="strict_mode" msgid="889864762140862437">"Modul Strict activat"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Iluminare intermitentă la operații lungi pe firul principal"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Locația indicatorului"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementare WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Setează implementarea WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Această opțiune nu mai este validă. Încearcă din nou."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"DevTools WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Pachetul WebView nu a fost găsit."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Nu s-a putut lansa DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Modul de culori pentru imagini"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Folosește sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Dezactivat"</string>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index 831623d..1ed7c36 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Не удалось отрегулировать окружающие звуки."</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Используется (только для медиа), заряд: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Используется (только для медиа), заряд: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (Л), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (П)."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Гостевое устройство. Заряд батареи: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Гостевое устройство. Заряд батареи: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (Л), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (П)."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Гостевое устройство (только медиафайлы). Заряд батареи: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Гостевое устройство (только медиафайлы). Заряд батареи: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (Л), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (П)."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Подключено (поддерживается отправка аудио), заряд: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Подключено (поддерживается отправка аудио), заряд: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (Л), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (П)."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Подключено (поддерживается отправка аудио), заряд: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> (Л)."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Подключено (поддерживается отправка аудио), заряд: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> (П)."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Подключено (поддерживается отправка аудио)."</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Гостевое устройство (поддерживает передачу аудио). Заряд батареи: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Гостевое устройство (поддерживает передачу аудио). Заряд батареи: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (Л), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (П)."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Гостевое устройство (поддерживает передачу аудио)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Используется (только для медиа)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Гостевое устройство"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Гостевое устройство (только медиафайлы)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Поддерживается отправка аудио"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Гостевое устройство. Поддерживает передачу аудио."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Используется (только для медиа), только левый"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Используется (только для медиа), правый наушник"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Используется (только для медиа), левый и правый наушники"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Аппаратное ускорение отрисовки"</string>
     <string name="media_category" msgid="8122076702526144053">"Мультимедиа"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Мониторинг"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Управление окнами"</string>
     <string name="strict_mode" msgid="889864762140862437">"Строгий режим"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Подсвечивать экран во время длительных операций"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Место касания"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Сервис WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Настройки сервиса WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Вариант недействителен. Повторите попытку."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Инструменты разработчика от поставщика WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Пакет WebView не найден."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Не удалось запустить инструменты разработчика."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Цветовой режим"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Использовать sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Отключено"</string>
@@ -508,7 +494,7 @@
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Коррекция цвета"</string>
     <string name="accessibility_display_daltonizer_preference_subtitle" msgid="1522101114585266455">"Используйте коррекцию цвета, чтобы:&lt;br/&gt; &lt;ol&gt; &lt;li&gt; Добиться нужной цветопередачи.&lt;/li&gt; &lt;li&gt; Убрать цвета, которые мешают сосредоточиться.&lt;/li&gt; &lt;/ol&gt;"</string>
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Новая настройка: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
-    <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"Уровень заряда – <xliff:g id="PERCENTAGE">%1$s</xliff:g>. <xliff:g id="TIME_STRING">%2$s</xliff:g>."</string>
+    <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_charging_on_hold_settings_home_page" msgid="7690464049464805856">"<xliff:g id="LEVEL">%1$s</xliff:g>, зарядка приостановлена для защиты батареи"</string>
     <string name="power_incompatible_charging_settings_home_page" msgid="1322050766135126880">"<xliff:g id="LEVEL">%1$s</xliff:g>, проверьте зарядное устройство"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Заряда хватит примерно на <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml
index dcfb914..dffa392 100644
--- a/packages/SettingsLib/res/values-si/strings.xml
+++ b/packages/SettingsLib/res/values-si/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"වටපිටාව යාවත්කාලීන කළ නොහැකි විය"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"ක්‍රියාත්මකයි (මාධ්‍ය පමණයි). බැටරිය <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"ක්‍රියාත්මකයි (මාධ්‍ය පමණයි), බැටරිය ව: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ද: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"ආගන්තුක උපාංගය. බැටරිය <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"ආගන්තුක උපාංගය. බැටරිය ව: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ද: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"ආගන්තුක උපාංගය (මාධ්‍ය පමණි). බැටරිය <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"ආගන්තුක උපාංගය (මාධ්‍ය පමණි). බැටරිය ව: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ද: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"සම්බන්‍ධයි (ශ්‍රව්‍ය බෙදා ගැනීමට සහය දක්වයි). බැටරිය <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"සම්බන්‍ධයි (ශ්‍රව්‍ය බෙදා ගැනීමට සහය දක්වයි). බැටරිය ව: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ද: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"සම්බන්‍ධයි (ශ්‍රව්‍ය බෙදා ගැනීමට සහය දක්වයි). වම: බැටරිය <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"සම්බන්‍ධයි (ශ්‍රව්‍ය බෙදා ගැනීමට සහය දක්වයි). දකුණ: බැටරිය <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"සම්බන්‍ධයි (ශ්‍රව්‍ය බෙදා ගැනීමට සහය දක්වයි)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"ආගන්තුක උපාංගය (ශ්‍රව්‍ය බෙදා ගැනීම සඳහා සහය දක්වයි). බැටරිය <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"ආගන්තුක උපාංගය (ශ්‍රව්‍ය බෙදා ගැනීම සඳහා සහය දක්වයි). බැටරිය ව: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ද: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"ආගන්තුක උපාංගය (ශ්‍රව්‍ය බෙදා ගැනීම සඳහා සහය දක්වයි)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"සක්‍රිය (මාධ්‍ය පමණි)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"ආගන්තුක උපාංගය"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"ආගන්තුක උපාංගය (මාධ්‍ය පමණි)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"ශ්‍රව්‍ය බෙදා ගැනීම සහය දක්වයි"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"ආගන්තුක උපාංගය. ශ්‍රව්‍ය බෙදා ගැනීම සහය දක්වයි"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"සක්‍රිය (මාධ්‍ය පමණි), වම පමණි"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"සක්‍රිය (මාධ්‍ය පමණි), දකුණ පමණි"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"සක්‍රිය (මාධ්‍ය පමණි), වම සහ දකුණ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"දෘඩාංග වේගය වැඩි කළ පිරිනැමීම"</string>
     <string name="media_category" msgid="8122076702526144053">"මාධ්‍ය"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"නිරීක්ෂණය"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"කවුළු කළමනාකරණය"</string>
     <string name="strict_mode" msgid="889864762140862437">"තදබල ආකාරය සබල කිරීම"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"මූලික පොටේ යෙදුම්, දිගු මෙහෙයුම් කරන විට තිරය ෆ්ලෑෂ් කරන්න"</string>
     <string name="pointer_location" msgid="7516929526199520173">"සූචක පිහිටීම"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView ක්‍රියාත්මක කිරීම"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView ක්‍රියාත්මක කිරීම සකසන්න"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"මෙම තෝරා ගැනීම තව දුරටත් වලංගු නැත. නැවත උත්සාහ කරන්න."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView පැකේජය හමු නොවුණි."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools දියත් කිරීමට නොහැකි විය."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"පින්තූර වර්ණ ප්‍රකාරය"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB භාවිතා කරන්න"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"අබලයි"</string>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 86e8274..0f4297a 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Okolie sa nepodarilo aktualizovať"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktívne (iba médiá). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batérie."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktívne (iba médiá). Ľ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> batérie, P: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batérie."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Zariadenie hosťa. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batérie."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Zariadenie hosťa. Ľ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batérie."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Zariadenie hosťa (iba médiá). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batérie."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Zariadenie hosťa (iba médiá). Ľ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batérie."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Pripojené (podporuje zdieľanie zvuku). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batérie."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Pripojené (podporuje zdieľanie zvuku). Ľ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batérie."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Pripojené (podporuje zdieľanie zvuku). Ľavá strana: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batérie."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Pripojené (podporuje zdieľanie zvuku). Pravá strana: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batérie."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Pripojené (podporuje zdieľanie zvuku)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Zariadenie hosťa (podporuje zdieľanie zvuku). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batérie."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Zariadenie hosťa (podporuje zdieľanie zvuku). Ľ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, P: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batérie."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Zariadenie hosťa (podporuje zdieľanie zvuku)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktívne (iba médiá)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Zariadenie hosťa"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Zariadenie hosťa (iba médiá)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Podporuje zdieľanie zvuku"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Zariadenie hosťa. Podporuje zdieľanie zvuku."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktívne (iba médiá), iba ľavá strana"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktívne (iba médiá), iba pravá strana"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktívne (iba médiá), ľavá aj pravá strana"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hardvérom zrýchlené vykresľovanie"</string>
     <string name="media_category" msgid="8122076702526144053">"Médiá"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitorovanie"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Správa okien"</string>
     <string name="strict_mode" msgid="889864762140862437">"Povoliť prísny režim"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Blikať pri dlhých operáciách hlavného vlákna"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Umiestnenie kurzora"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Implementácia WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Nastaviť implementáciu WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Táto voľba už nie je platná. Skúste to znova."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Nástroje pre vývojárov prvku WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Balík WebView sa nenašiel."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Nástroje pre vývojárov sa nepodarilo spustiť."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Farebný režim obrázka"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Použije sa sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Vypnuté"</string>
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index 28ae8e1..744b4da 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Okolice ni bilo mogoče posodobiti"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktivno (samo predstavnost). Baterija: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktivno (samo predstavnost), baterija – L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Naprava gosta. Baterija: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Naprava gosta. Baterija – L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Naprava gosta (samo predstavnost). Baterija: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Naprava gosta (samo predstavnost). Baterija – L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Povezano (podpira deljenje zvoka), baterija: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Povezano (podpira deljenje zvoka), baterija – L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Povezano (podpira deljenje zvoka). Levo – baterija: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Povezano (podpira deljenje zvoka). Desno – baterija: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Povezano (podpira deljenje zvoka)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Naprava gosta (podpira deljenje zvoka). Baterija: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Naprava gosta (podpira deljenje zvoka). Baterija – L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, D: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Naprava gosta (podpira deljenje zvoka)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktivno (samo predstavnost)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Naprava gosta"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Naprava gosta (samo predstavnost)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Podpira deljenje zvoka"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Naprava gosta. Podpira deljenje zvoka."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktivno (samo predstavnost), samo levo"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktivno (samo predstavnost), samo desno"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktivno (samo predstavnost), levo in desno"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Upodabljanje s strojnim pospeševanjem"</string>
     <string name="media_category" msgid="8122076702526144053">"Predstavnost"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Spremljanje"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Upravljanje oken"</string>
     <string name="strict_mode" msgid="889864762140862437">"Strog način je omogočen"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Osveži zaslon pri dolgih postopkih v glavni niti."</string>
     <string name="pointer_location" msgid="7516929526199520173">"Mesto kazalca"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Izvedba spletnega pogleda"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Nastavitev izvedbe spletnega pogleda"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Ta izbira ni več veljavna. Poskusite znova."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Orodja za razvijalce za WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Paketa WebView ni bilo mogoče najti."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Orodij za razvijalce ni bilo mogoče zagnati."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Način barv slike"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Uporaba sRGB-ja"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Onemogočeno"</string>
diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml
index 4e6ec9f..3d9622e 100644
--- a/packages/SettingsLib/res/values-sq/strings.xml
+++ b/packages/SettingsLib/res/values-sq/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Ambienti rrethues nuk mund të përditësohej"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktiv (vetëm për media). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> bateri."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktiv (vetëm për media). Majtas: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> bateri, djathtas: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> bateri."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Pajisja vizitore. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> bateri."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Pajisja vizitore. Majtas: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> bateri, djathtas: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> bateri."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Pajisja vizitore (vetëm media). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> bateri."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Pajisja vizitore (vetëm media). Majtas: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> bateri, djathtas: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> bateri."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Lidhur (mbështet ndarjen e audios). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> bateri."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Lidhur (mbështet ndarjen e audios). Majtas: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> bateri, djathtas: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> bateri."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Lidhur (mbështet ndarjen e audios). Majtas: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> bateri."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Lidhur (mbështet ndarjen e audios). Djathtas: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> bateri."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Lidhur (mbështet ndarjen e audios)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Pajisja vizitore (mbështet ndarjen e audios). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> bateri."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Pajisja vizitore (mbështet ndarjen e audios). Majtas: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> bateri, djathtas: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> bateri."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Pajisja vizitore (mbështet ndarjen e audios)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktiv (vetëm për media)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Pajisja vizitore"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Pajisja vizitore (vetëm media)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Mbështet ndarjen e audios"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Pajisja vizitore. Mbështet ndarjen e audios"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktiv (vetëm për media), vetëm majtas"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktiv (vetëm për media), vetëm djathtas"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktiv (vetëm për media), majtas dhe djathtas"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Interpretimi i përshpejtuar i harduerit"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitorimi"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Menaxhimi i dritareve"</string>
     <string name="strict_mode" msgid="889864762140862437">"Aktivizo modalitetin e rreptë"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Ndriço ekranin kur aplikacionet kryejnë operacione të gjata teksa bashkëveprojnë"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Vendndodhja e treguesit"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Zbatimi i WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Cakto zbatimin e WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Kjo zgjedhje nuk është më e vlefshme. Provo përsëri."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"DevTools e WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Paketa e WebView nuk u gjet."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools nuk mund të nisej."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Modalitti i ngjyrave të figurës"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Përdor sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Çaktivizuar"</string>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index 96924b9..32ec500 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Ажурирање окружења није успело"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Активно (само за медије). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерије."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Активно (само за медије). Лево: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, десно: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батерије."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Уређај госта. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерије."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Уређај госта. Лево: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, десно: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батерије."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Уређај госта (само за медије). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерије."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Уређај госта (само за медије). Лево: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, десно: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батерије."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Повезано (подржава дељење звука), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерије."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Повезано (подржава дељење звука), лево: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, десно: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батерије."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Повезано (подржава дељење звука). Лево: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерије"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Повезано (подржава дељење звука). Десно: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерије."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Повезано (подржава дељење звука)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Уређај госта (подржава дељење звука). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> батерије."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Уређај госта (подржава дељење звука). Лево: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, десно: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> батерије."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Уређај госта (подржава дељење звука)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Активан (само за медије)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Уређај госта"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Уређај госта (само за медије)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Подржава дељење звука"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Уређај госта. Подржава дељење звука"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Активан (само за медије), само лево"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Активан (само за медије), само десно"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Активан (само за медије), лево и десно"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Хардверски убрзано приказивање"</string>
     <string name="media_category" msgid="8122076702526144053">"Медији"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Надгледање"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Управљање прозорима"</string>
     <string name="strict_mode" msgid="889864762140862437">"Омогућен је строги режим"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Екран трепери када апликације обављају дуге операције на главној нити"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Локација показивача"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Примена WebView-а"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Подесите примену WebView-а"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Овај избор више није важећи. Пробајте поново."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView алатке за програмере"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Пакет за WebView није пронађен."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Покретање алатки за програмере није успело."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Режим боја слика"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Користи sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Онемогућено је"</string>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index 3c7aff6..cf223f5b 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Det gick inte att uppdatera omgivningsläget"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktiv (endast media). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktiv (endast media). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Gästenhet. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Gästenhet. V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Gästenhet (endast media). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Gästenhet (endast media). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Ansluten (ljuddelning stöds). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Ansluten (ljuddelning stöds). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Ansluten (ljuddelning stöds). Vänster: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Ansluten (ljuddelning stöds). Höger: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Ansluten (ljuddelning stöds)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Gästenhet (ljuddelning stöds). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Gästenhet (ljuddelning stöds). V: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, H: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> batteri."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Gästenhet (ljuddelning stöds)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktiv (endast media)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Gästenhet"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Gästenhet (endast media)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Ljuddelning stöds"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Gästenhet. Ljuddelning stöds"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktiv (endast media), endast vänster"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktiv (endast media), endast höger"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktiv (endast media), vänster och höger"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Hårdvaruaccelererad rendering"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Övervakning"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Fönsterhantering"</string>
     <string name="strict_mode" msgid="889864762140862437">"Strikt läge aktiverat"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Tänd skärm när app gör omfattande åtgärd på huvudtråd"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Pekarens plats"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView-implementering"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Ange WebView-implementering"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Det här alternativet är inte längre giltigt. Försök igen."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Verktyg för programmerare för WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView-paketet hittades inte."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Verktyg för programmerare kunde inte startas."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Färgläge för bilder"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Använd sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Inaktiverad"</string>
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index 4f520b4..26e0412 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Imeshindwa kusasisha mazingira"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Inatumika (maudhui pekee). Chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Inatumika (maudhui pekee), Kushoto: chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Kulia: chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Kifaa kingeni. Chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Kifaa kingeni. Kushoto: chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Kulia: chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Kifaa kingeni (sauti/video/picha pekee). Chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Kifaa kingeni (sauti/video/picha pekee). Kushoto: chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Kulia: chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Imeunganishwa (inaweza kutumia kipengele cha kusikiliza pamoja). Chaji imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Imeunganishwa (inaweza kutumia kipengele cha kusikiliza pamoja). Kushoto: chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Kulia: chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Imeunganishwa (inaweza kutumia kipengele cha kusikiliza pamoja). Kushoto: chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Imeunganishwa (inaweza kutumia kipengele cha kusikiliza pamoja). Kulia: chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Imeunganishwa (inaweza kusikiliza pamoja)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Kifaa kingeni (kinatumia kipengele cha kusikiliza pamoja). Chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Kifaa kingeni (kinatumia kipengele cha kusikiliza pamoja). Kushoto: chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Kulia: chaji ya betri imefika <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Kifaa kingeni (kinatumia kipengele cha kusikiliza pamoja)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Inatumika (maudhui pekee)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Kifaa kingeni"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Kifaa kingeni (sauti/video/picha pekee)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Inaweza kutumia kipengele cha kusikiliza pamoja"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Kifaa kingeni. Kinatumia kipengele cha kusikiliza pamoja"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Inatumika (maudhui pekee), kushoto pekee"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Inatumika (maudhui pekee), kulia pekee"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Inatumika (maudhui pekee), kushoto na kulia"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Utekelezaji wa maunzi ulioharakishwa"</string>
     <string name="media_category" msgid="8122076702526144053">"Maudhui"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Ufuatiliaji"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Udhibiti wa Dirisha"</string>
     <string name="strict_mode" msgid="889864762140862437">"Hali makinifu imewashwa"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Fanya skrini imemeteke programu zinapoendeleza shughuli ndefu kwenye skrini kuu"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Mahali pa kiashiria"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Utekelezaji wa WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Weka utekelezaji wa WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Chaguo hili halipo tena. Jaribu tena."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Zana za Wasanidi Programu za Mwonekano wa Wavuti"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Haijapata kifurushi cha Mwonekano wa Wavuti."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Imeshindwa kuwasha Zana za Wasanidi Programu."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Hali ya rangi ya picha"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Tumia sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Imezimwa"</string>
diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml
index aa34584..c2e762f 100644
--- a/packages/SettingsLib/res/values-ta/strings.xml
+++ b/packages/SettingsLib/res/values-ta/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"சுற்றுப்புறங்களைப் புதுப்பிக்க முடியவில்லை"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"செயலிலுள்ளது (மீடியா மட்டும்). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> பேட்டரி."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"செயலிலுள்ளது (மீடியா மட்டும்). இடது பேட்டரி: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, வலது பேட்டரி: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"விருந்தினர் சாதனம். <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> பேட்டரி."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"விருந்தினர் சாதனம். இடது பேட்டரி: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, வலது பேட்டரி: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"விருந்தினர் சாதனம் (மீடியா மட்டும்). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> பேட்டரி."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"விருந்தினர் சாதனம் (மீடியா மட்டும்). இடது பேட்டரி: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, வலது பேட்டரி: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"இணைக்கப்பட்டுள்ளது (ஆடியோ பகிர்வை ஆதரிக்கிறது). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> பேட்டரி."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"இணைக்கப்பட்டுள்ளது (ஆடியோ பகிர்வை ஆதரிக்கிறது). இடது பேட்டரி: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, வலது பேட்டரி: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"இணைக்கப்பட்டுள்ளது (ஆடியோ பகிர்வை ஆதரிக்கிறது). இடது: - <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> பேட்டரி."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"இணைக்கப்பட்டுள்ளது (ஆடியோ பகிர்வை ஆதரிக்கிறது). வலது: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> பேட்டரி."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"இணைக்கப்பட்டுள்ளது (ஆடியோ பகிர்வை ஆதரிக்கிறது)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"விருந்தினர் சாதனம் (ஆடியோ பகிர்வை ஆதரிக்கிறது). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> பேட்டரி."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"விருந்தினர் சாதனம் (ஆடியோ பகிர்வை ஆதரிக்கிறது). இடது பேட்டரி: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, வலது பேட்டரி: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"விருந்தினர் சாதனம் (ஆடியோ பகிர்வை ஆதரிக்கிறது)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"செயலிலுள்ளது (மீடியா மட்டும்)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"விருந்தினர் சாதனம்"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"விருந்தினர் சாதனம் (மீடியா மட்டும்)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"ஆடியோ பகிர்வை ஆதரிக்கிறது"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"விருந்தினர் சாதனம். ஆடியோ பகிர்வை ஆதரிக்கிறது."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"செயலிலுள்ளது (மீடியா மட்டும்), இடதுபுறம் மட்டும்"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"செயலிலுள்ளது (மீடியா மட்டும்), வலதுபுறம் மட்டும்"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"செயலிலுள்ளது (மீடியா மட்டும்), இடதுபுறம் மற்றும் வலதுபுறம்"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"வன்பொருள் முடுக்கத்துடன் கூடிய காட்சியாக்கம்"</string>
     <string name="media_category" msgid="8122076702526144053">"மீடியா"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"கண்காணித்தல்"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"சாளர நிர்வாகம்"</string>
     <string name="strict_mode" msgid="889864762140862437">"நிலையான பயன்முறை இயக்கப்பட்டது"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"முக்கியத் தொடரிழையில் நீண்ட நேரம் செயல்படும்போது திரையைக் காட்சிப்படுத்தும்"</string>
     <string name="pointer_location" msgid="7516929526199520173">"குறிப்பான் இடம்"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView செயல்படுத்தல்"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView செயல்படுத்தலை அமை"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"இனி இந்தத் தேர்வைப் பயன்படுத்த முடியாது. மீண்டும் முயலவும்."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView டெவெலப்பர் கருவிகள்"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView தொகுப்பு இல்லை."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"டெவெலப்பர் கருவிகளை இயக்க முடியவில்லை."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"படத்தின் வண்ணப் பயன்முறை"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGBஐப் பயன்படுத்தும்"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"முடக்கப்பட்டது"</string>
@@ -667,7 +653,7 @@
     <string name="user_grant_admin_message" msgid="1673791931033486709">"மற்ற பயனர்களுக்கு இல்லாத சிறப்புரிமைகள் நிர்வாகிகளுக்கு உண்டு. நிர்வாகி அனைத்துப் பயனர்களையும் நிர்வகிக்கலாம், இந்தச் சாதனத்தைப் புதுப்பிக்கலாம் அல்லது ரீசெட் செய்யலாம், அமைப்புகளை மாற்றலாம், நிறுவப்பட்ட அனைத்து ஆப்ஸையும் பார்க்கலாம், பிறருக்கு நிர்வாகி சிறப்புரிமைகளை வழங்கலாம் அல்லது அகற்றலாம்."</string>
     <string name="user_grant_admin_button" msgid="5441486731331725756">"நிர்வாகியாக்கு"</string>
     <string name="user_setup_dialog_title" msgid="8037342066381939995">"இப்போது பயனரை அமைக்கவா?"</string>
-    <string name="user_setup_dialog_message" msgid="269931619868102841">"இந்தச் சாதனத்தை இவர் பயன்படுத்தும் நிலையிலும், அவருக்கான அமைப்புகளை அவரே செய்து கொள்பவராகவும் இருக்க வேண்டும்."</string>
+    <string name="user_setup_dialog_message" msgid="269931619868102841">"பயனர் இந்தச் சாதனத்தில் அவருக்கான அமைப்புகளை அமைக்கும் நிலையில் இப்போது  இருக்க வேண்டும்"</string>
     <string name="user_setup_profile_dialog_message" msgid="4788197052296962620">"இப்போது சுயவிவரத்தை அமைக்கவா?"</string>
     <string name="user_setup_button_setup_now" msgid="1708269547187760639">"இப்போது அமை"</string>
     <string name="user_setup_button_setup_later" msgid="8712980133555493516">"இப்போது இல்லை"</string>
diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml
index cded034..f4678f3 100644
--- a/packages/SettingsLib/res/values-te/strings.xml
+++ b/packages/SettingsLib/res/values-te/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"పరిసరాలను అప్‌డేట్ చేయడం సాధ్యం కాలేదు"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"యాక్టివ్ (మీడియా మాత్రమే). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> బ్యాటరీ."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"యాక్టివ్ (మీడియా మాత్రమే). ఎడమ వైపు: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> బ్యాటరీ, కుడివైపు: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> బ్యాటరీ."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"గెస్ట్ పరికరం. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> బ్యాటరీ."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"గెస్ట్ పరికరం. ఎడమ వైపు: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, కుడివైపు: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> బ్యాటరీ."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"గెస్ట్ పరికరం (మీడియాకు మాత్రమే). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> బ్యాటరీ."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"గెస్ట్ పరికరం (మీడియాకు మాత్రమే). ఎడమ వైపు: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, కుడివైపు: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> బ్యాటరీ."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"కనెక్ట్ చేయబడింది (ఆడియో షేరింగ్‌కు సపోర్ట్ చేస్తుంది). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> బ్యాటరీ."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"కనెక్ట్ చేయబడింది (ఆడియో షేరింగ్‌కు సపోర్ట్ చేస్తుంది). ఎడమ వైపు: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> బ్యాటరీ, కుడివైపు: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> బ్యాటరీ."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"కనెక్ట్ చేయబడింది (ఆడియో షేరింగ్‌కు సపోర్ట్ చేస్తుంది). ఎడమ వైపు: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> బ్యాటరీ."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"కనెక్ట్ అయింది (ఆడియో షేరింగ్‌కు సపోర్ట్ చేస్తుంది). కుడివైపు: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> బ్యాటరీ."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"కనెక్ట్ చేయబడింది (ఆడియో షేరింగ్‌కు సపోర్ట్ చేస్తుంది)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"గెస్ట్ పరికరం (ఆడియో షేరింగ్‌కు సపోర్ట్ చేస్తుంది). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> బ్యాటరీ."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"గెస్ట్ పరికరం (ఆడియో షేరింగ్‌కు సపోర్ట్ చేస్తుంది). ఎడమ వైపు: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, కుడివైపు: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> బ్యాటరీ."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"గెస్ట్ పరికరం (ఆడియో షేరింగ్‌కు సపోర్ట్ చేస్తుంది)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"యాక్టివ్ (మీడియా మాత్రమే)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"గెస్ట్ పరికరం"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"గెస్ట్ పరికరం (మీడియాకు మాత్రమే)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"ఆడియో షేరింగ్‌కు సపోర్ట్ చేస్తుంది"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"గెస్ట్ పరికరం. ఆడియో షేరింగ్‌కు సపోర్ట్ చేస్తుంది"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"యాక్టివ్ (మీడియా మాత్రమే), ఎడమ వైపు మాత్రమే"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"యాక్టివ్ (మీడియా మాత్రమే), కుడివైపు మాత్రమే"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"యాక్టివ్ (మీడియా మాత్రమే), ఎడమ, కుడివైపు మాత్రమే"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"హార్డ్‌వేర్ యాగ్జిలరేషన్ ఆధారిత రెండరింగ్"</string>
     <string name="media_category" msgid="8122076702526144053">"మీడియా"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"పర్యవేక్షణ"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"విండో మేనేజ్‌మెంట్"</string>
     <string name="strict_mode" msgid="889864762140862437">"స్ట్రిక్ట్ మోడ్ ఎనేబుల్డ్"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"యాప్‌లు ప్రధాన థ్రెడ్‌లో సుదీర్ఘ చర్యలు చేసేటప్పుడు స్క్రీన్‌ను ఫ్లాష్ చేయండి"</string>
     <string name="pointer_location" msgid="7516929526199520173">"పాయింటర్ లొకేషన్"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"వెబ్ వీక్షణ అమలు"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"వెబ్ వీక్షణ అమలుని సెట్ చేయండి"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"ఈ ఎంపిక ఇప్పుడు లేదు. మళ్లీ ట్రై చేయండి."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"వెబ్ వీక్షణ DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"వెబ్ వీక్షణ ప్యాకేజీ కనుగొనబడలేదు."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevToolsను లాంచ్ చేయడం సాధ్యపడలేదు."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"చిత్రం రంగు మోడ్"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB ఉపయోగిస్తుంది"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"డిజేబుల్ చేయబడింది"</string>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index eaf256d..e360ae6 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"อัปเดตเสียงแวดล้อมไม่ได้"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"ใช้งานอยู่ (สื่อเท่านั้น) แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"ใช้งานอยู่ (สื่อเท่านั้น) แบตเตอรี่ข้างซ้าย: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ข้างขวา: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"อุปกรณ์ของผู้มาเยือน แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"อุปกรณ์ของผู้มาเยือน L: แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"อุปกรณ์ของผู้มาเยือน (สื่อเท่านั้น) แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"อุปกรณ์ของผู้มาเยือน (สื่อเท่านั้น) L: แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"เชื่อมต่อแล้ว (รองรับการแชร์เสียง) แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"เชื่อมต่อแล้ว (รองรับการแชร์เสียง) แบตเตอรี่ข้างซ้าย: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, ข้างขวา: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"เชื่อมต่อแล้ว (รองรับการแชร์เสียง) ซ้าย: แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"เชื่อมต่อแล้ว (รองรับการแชร์เสียง) ขวา: แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"เชื่อมต่อแล้ว (รองรับการแชร์เสียง)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"อุปกรณ์ของผู้มาเยือน (รองรับการแชร์เสียง) แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"อุปกรณ์ของผู้มาเยือน (รองรับการแชร์เสียง) L: แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: แบตเตอรี่ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"อุปกรณ์ของผู้มาเยือน (รองรับการแชร์เสียง)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"ใช้งานอยู่ (สื่อเท่านั้น)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"อุปกรณ์ของผู้มาเยือน"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"อุปกรณ์ของผู้มาเยือน (สื่อเท่านั้น)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"รองรับการแชร์เสียง"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"อุปกรณ์ของผู้มาเยือน รองรับการแชร์เสียง"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"ใช้งานอยู่ (สื่อเท่านั้น), ซ้ายเท่านั้น"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"ใช้งานอยู่ (สื่อเท่านั้น), ขวาเท่านั้น"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"ใช้งานอยู่ (สื่อเท่านั้น), ซ้ายและขวา"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"การแสดงผลที่มีการเร่งด้วยฮาร์ดแวร์"</string>
     <string name="media_category" msgid="8122076702526144053">"สื่อ"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"การตรวจสอบ"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"การจัดการหน้าต่าง"</string>
     <string name="strict_mode" msgid="889864762140862437">"เปิดใช้งานโหมดเข้มงวด"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"กะพริบหน้าจอเมื่อแอปทำงานในเทรดหลักนาน"</string>
     <string name="pointer_location" msgid="7516929526199520173">"ตำแหน่งของตัวชี้"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"การใช้งาน WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"ตั้งค่าการใช้งาน WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"ตัวเลือกนี้ใช้ไม่ได้อีกต่อไป โปรดลองอีกครั้ง"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"เครื่องมือสำหรับนักพัฒนาเว็บของ WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"ไม่พบแพ็กเกจ WebView"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"เปิดเครื่องมือสำหรับนักพัฒนาเว็บไม่ได้"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"โหมดสีของรูปภาพ"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"ใช้ sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"ปิดใช้"</string>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index b6d8d19..09f40c7 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Hindi ma-update ang paligid"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Aktibo (media lang). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterya."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Aktibo (media lang). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterya."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Device ng bisita. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterya."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Device ng bisita. L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterya."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Device ng bisita (media lang). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterya."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Device ng bisita (media lang). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterya."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Nakakonekta (sinusuportahan ang pag-share ng audio), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterya."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Nakakonekta (sinusuportahan ang pag-share ng audio). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterya."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Nakakonekta (sinusuportahan ang pag-share ng audio). Kaliwa: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterya."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Nakakonekta (sinusuportahan ang pag-share ng audio). Kanan: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterya."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Nakakonekta (sinusuportahan ang pag-share ng audio)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Device ng bisita (sinusuportahan ang pag-share ng audio). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> baterya."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Device ng bisita (sinusuportahan ang pag-share ng audio). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> baterya."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Device ng bisita (sinusuportahan ang pag-share ng audio)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Aktibo (media lang)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Device ng bisita"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Device ng bisita (media lang)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Sinusuportahan ang pag-share ng audio"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Device ng bisita. Sinusuportahan ang pag-share ng audio"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Aktibo (media lang), kaliwa lang"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Aktibo (media lang), kanan lang"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Aktibo (media lang), kaliwa at kanan"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Pag-render na pinapabilis ng hardware"</string>
     <string name="media_category" msgid="8122076702526144053">"Media"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Pagsubaybay"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Pamamahala sa Window"</string>
     <string name="strict_mode" msgid="889864762140862437">"Enabled ang strict mode"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"I-flash ang screen pag may long ops ang app sa main thread"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Lokasyon ng pointer"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Pagpapatupad sa WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Itakda ang pagpapatupad sa WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Wala nang bisa ang napiling ito. Subukang muli."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"DevTools ng WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Hindi nakita ang WebView package."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Hindi mailunsad ang DevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Mode ng kulay ng larawan"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Gamitin ang sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Naka-disable"</string>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index c4cbaf6..19b3baf 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Çevredeki sesler güncellenemedi"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Etkin (yalnızca medya). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pil seviyesi."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Etkin (yalnızca medya). Sol: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Sağ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> pil seviyesi."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Misafir cihaz. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pil seviyesi."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Misafir cihaz. Sol: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Sağ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> pil seviyesi."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Misafir cihaz (yalnızca medya). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pil seviyesi."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Misafir cihaz (yalnızca medya). Sol: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Sağ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> pil seviyesi."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Bağlı (ses paylaşımını destekler). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pil seviyesi."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Bağlı (ses paylaşımını destekler). Sol: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Sağ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> pil seviyesi."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Bağlı (ses paylaşımını destekler). Sol: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pil seviyesi."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Bağlı (ses paylaşımını destekler). Sağ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pil seviyesi."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Bağlı (ses paylaşımını destekler)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Misafir cihaz (ses paylaşımını destekler). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pil seviyesi."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Misafir cihaz (ses paylaşımını destekler). Sol: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, Sağ: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> pil seviyesi."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Misafir cihaz (ses paylaşımını destekler)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Etkin (yalnızca medya)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Misafir cihaz"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Misafir cihaz (yalnızca medya)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Ses paylaşımını destekler"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Misafir cihaz. Ses paylaşımını destekler"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Etkin (yalnızca medya), yalnızca sol"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Etkin (yalnızca medya), yalnızca sağ"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Etkin (yalnızca medya), sol ve sağ"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Donanım hızlandırmalı oluşturma"</string>
     <string name="media_category" msgid="8122076702526144053">"Medya"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"İzleme"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Pencere Yönetimi"</string>
     <string name="strict_mode" msgid="889864762140862437">"Yüksek düzey modu etkin"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Uygulamalar ana iş parçacığında uzun işlem yaparken ekranı yanıp söndür"</string>
     <string name="pointer_location" msgid="7516929526199520173">"İşaretçi konumu"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Web Görünümü kullanımı"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Web Görünümü kullanımını ayarla"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Bu seçenek artık geçerli değil. Tekrar deneyin."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView Geliştirici Araçları"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView paketi bulunamadı."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Geliştirici Araçları başlatılamadı."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Resim renk modu"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB\'yi kullan"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Devre dışı"</string>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index ecff572..ff18f5c 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Не вдалось оновити стан оточення"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Активне з’єднання (лише для мультимедіа). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> заряду акумулятора."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Активне з’єднання (лише для мультимедіа). Рівень заряду: лівий <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, правий: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Гостьовий пристрій. <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> заряду акумулятора."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Гостьовий пристрій. Лівий: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, правий: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> заряду акумулятора."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Гостьовий пристрій (лише для мультимедіа). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> заряду акумулятора."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Гостьовий пристрій (лише для мультимедіа). Лівий: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, правий: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> заряду акумулятора."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Підключено (підтримує надсилання аудіо). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> заряду акумулятора."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Підключено (підтримує надсилання аудіо). Лівий: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, правий: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> заряду акумулятора."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Підключено (підтримує надсилання аудіо). Лівий: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> заряду акумулятора."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Підключено (підтримує надсилання аудіо). Правий: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> заряду акумулятора."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Підключено (підтримує надсилання аудіо)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Гостьовий пристрій (підтримує надсилання аудіо). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> заряду акумулятора."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Гостьовий пристрій (підтримує надсилання аудіо). Лівий: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, правий: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> заряду акумулятора."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Гостьовий пристрій (підтримує надсилання аудіо)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Активно (лише для мультимедіа)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Гостьовий пристрій"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Гостьовий пристрій (лише для мультимедіа)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Підтримує надсилання аудіо"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Гостьовий пристрій. Підтримує надсилання аудіо."</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Активно (лише для мультимедіа); лише лівий"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Активно (лише для мультимедіа); лише правий"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Активно (лише для мультимедіа); лівий і правий"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Апаратне прискорення"</string>
     <string name="media_category" msgid="8122076702526144053">"Медіа"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Моніторинг"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Керування вікнами"</string>
     <string name="strict_mode" msgid="889864762140862437">"Строгий режим увімкнено"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Підсвічувати екран під час довгострокових операцій"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Розташування курсора"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Застосування WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Налаштувати застосування WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Ця опція більше не дійсна. Повторіть спробу."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Інструменти розробника WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Пакет WebView не знайдено."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Не вдалося запустити Інструменти розробника."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Режим кольору"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Використовувати sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Вимкнено"</string>
diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml
index 3407114..a07a341 100644
--- a/packages/SettingsLib/res/values-ur/strings.xml
+++ b/packages/SettingsLib/res/values-ur/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"اطراف کو اپ ڈیٹ نہیں کیا جا سکا"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"فعال (صرف میڈیا)۔ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> بیٹری۔"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"‏فعال (صرف میڈیا)۔ L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، ‏R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> بیٹری۔"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"مہمان آلہ۔ ‫<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> بیٹری۔"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"مہمان آلہ۔ بایاں: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، دایاں: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> بیٹری۔"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"مہمان آلہ (صرف میڈیا)۔ ‫<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> بیٹری۔"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"مہمان آلہ (صرف میڈیا)۔ بایاں: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، دایاں: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> بیٹری۔"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"‏منسلک ہے (آڈیو کے اشتراک کو سپورٹ کرتا ہے)۔ ‎<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> بیٹری۔"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"‏منسلک ہے (آڈیو کے اشتراک کو سپورٹ کرتا ہے)۔ L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، ‏R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> بیٹری۔"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"منسلک ہے (آڈیو کے اشتراک کو سپورٹ کرتا ہے)۔ بائيں: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> بیٹری۔"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"منسلک ہے (آڈیو کے اشتراک کو سپورٹ کرتا ہے)۔ دائيں: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> بیٹری۔"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"منسلک ہے (آڈیو کے اشتراک کو سپورٹ کرتا ہے)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"مہمان آلہ (آڈیو کے اشتراک کو سپورٹ کرتا ہے)۔ ‫<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> بیٹری۔"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"مہمان آلہ (آڈیو کے اشتراک کو سپورٹ کرتا ہے)۔ بایاں: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>، دایاں: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> بیٹری۔"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"مہمان آلہ (آڈیو کے اشتراک کو سپورٹ کرتا ہے)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"فعال (صرف میڈیا)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"مہمان آلہ"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"مہمان آلہ (صرف میڈیا)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"آڈیو کے اشتراک کو سپورٹ کرتا ہے"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"مہمان آلہ۔ آڈیو کے اشتراک کو سپورٹ کرتا ہے"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"فعال (صرف میڈیا)، صرف بائیں"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"فعال (صرف میڈیا)، صرف دائیں"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"فعال (صرف میڈیا)، بائیں اور دائیں"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"ہارڈ ویئر کے ذریعے تیز کردہ رینڈرنگ"</string>
     <string name="media_category" msgid="8122076702526144053">"میڈیا"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"مانیٹر کرنا"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"ونڈو کا نظم و نسق"</string>
     <string name="strict_mode" msgid="889864762140862437">"سخت وضع فعال ہے"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"ایپس کے اصل تھریڈ پر طویل اعمال انجام دیتے وقت اسکرین کو فلیش کریں"</string>
     <string name="pointer_location" msgid="7516929526199520173">"پوائنٹر مقام"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"‏WebView کا نفاذ"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"‏WebView کا نفاذ سیٹ کریں"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"یہ انتخاب اب درست نہیں رہا۔ دوبارہ کوشش کریں۔"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"‏‫WebView پیکیج نہیں ملا۔"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"‏‫DevTools کو شروع نہیں کیا جا سکا۔"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"تصویری رنگ موڈ"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"‏sRGB استعمال کریں"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"غیر فعال"</string>
diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml
index bff7993..3a10aa8 100644
--- a/packages/SettingsLib/res/values-uz/strings.xml
+++ b/packages/SettingsLib/res/values-uz/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Atrof-muhit yangilanmadi"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Faol (faqat media uchun) Quvvat: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Faol (faqat media uchun), quvvat: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (L), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (R)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Mehmon qurilma. Quvvat: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Mehmon qurilma. Quvvat: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (L), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (R)."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Mehmon qurilma (faqat multimedia). Quvvat: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Mehmon qurilma (faqat multimedia). Quvvat: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (L), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (R)."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Ulangan (audio yuborish mumkin), quvvat: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Ulangan (audio yuborish mumkin), quvvat: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (L), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (R)"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Ulangan (audio yuborish mumkin). Quvvat: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> (chap)."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Ulangan (audio yuborish mumkin). Quvvat: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> (oʻng)."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Ulangan (audio yuborish mumkin)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Mehmon qurilma (audio ulashuvni dastaklaydi). Quvvat: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Mehmon qurilma (audio ulashuvni dastaklaydi). Quvvat: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> (L), <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> (R)."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Mehmon qurilma (audio ulashuvni dastaklaydi)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Faol (faqat media uchun)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Mehmon qurilma"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Mehmon qurilma (faqat multimedia)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Audio yuborishi mumkin"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Mehmon qurilma. Audio ulashishi mumkin"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Faol (faqat media uchun), faqat chap"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Faol (faqat media uchun), faqat oʻng"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Faol (faqat media uchun), chap va oʻng"</string>
@@ -148,7 +138,7 @@
     <string name="bluetooth_profile_opp" msgid="6692618568149493430">"Fayl uzatish"</string>
     <string name="bluetooth_profile_hid" msgid="2969922922664315866">"Kiritish qurilmasi"</string>
     <string name="bluetooth_profile_pan" msgid="1006235139308318188">"Internetga ulanish"</string>
-    <string name="bluetooth_profile_pbap" msgid="2103406516858653017">"Chaqiruv va kontaktlarga ruxsat berilsinmi?"</string>
+    <string name="bluetooth_profile_pbap" msgid="2103406516858653017">"Kontaktlar va chaqiruv tarixiga ruxsat berish"</string>
     <string name="bluetooth_profile_pbap_summary" msgid="402819589201138227">"Maʼlumotlar chaqiruvlar haqida xabar berish uchun ishlatiladi"</string>
     <string name="bluetooth_profile_pan_nap" msgid="7871974753822470050">"Internet aloqasi ulashmasi"</string>
     <string name="bluetooth_profile_map" msgid="8907204701162107271">"SMS xabarlari"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Vizualizatsiyani apparatli tezlatish"</string>
     <string name="media_category" msgid="8122076702526144053">"Multimedia"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Monitoring"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Oyna boshqaruvi"</string>
     <string name="strict_mode" msgid="889864762140862437">"Qat’iy rejim yoqilgan"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Uzun amallar vaqtida ekranni miltillatish"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Kursor joylashuvi"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView ta’minotchisi"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"WebView ta’minotchisini sozlash"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Bu variant endi yaroqsiz. Qaytadan urining."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"WebView paketi topilmadi."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"DevTools ishga tushirilmadi."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Rang rejimi"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"sRGB ranglaridan foydalanish"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Oʻchiq"</string>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index cb0a875a..6095e8c 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Không cập nhật được âm lượng xung quanh"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Đang hoạt động (chỉ phát nội dung đa phương tiện). Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pin."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Đang hoạt động (chỉ phát nội dung đa phương tiện). Bên trái: Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> pin. Bên phải: Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> pin."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Thiết bị khách. Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pin."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Thiết bị khách. Bên trái: Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> pin. Bên phải: Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> pin."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Thiết bị khách (chỉ dành cho nội dung nghe nhìn). Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pin."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Thiết bị khách (chỉ dành cho nội dung nghe nhìn). Bên trái: Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> pin. Bên phải: Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> pin."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Đã kết nối (có hỗ trợ tính năng chia sẻ âm thanh). Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pin."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Đã kết nối (có hỗ trợ tính năng chia sẻ âm thanh). Bên trái: Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> pin. Bên phải: Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> pin."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Đã kết nối (có hỗ trợ tính năng chia sẻ âm thanh). Bên trái: Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pin."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Đã kết nối (có hỗ trợ tính năng chia sẻ âm thanh). Bên phải: Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pin."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Đã kết nối (có hỗ trợ tính năng chia sẻ âm thanh)."</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Thiết bị khách (hỗ trợ tính năng chia sẻ âm thanh). Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> pin."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Thiết bị khách (hỗ trợ tính năng chia sẻ âm thanh). Bên trái: Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> pin. Bên phải: Còn <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> pin."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Thiết bị khách (hỗ trợ tính năng chia sẻ âm thanh)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Đang hoạt động (chỉ phát nội dung đa phương tiện)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Thiết bị khách"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Thiết bị khách (chỉ dành cho nội dung nghe nhìn)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Hỗ trợ tính năng chia sẻ âm thanh"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Thiết bị khách. Hỗ trợ tính năng chia sẻ âm thanh"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Đang hoạt động (chỉ phát nội dung đa phương tiện), chỉ dùng tai nghe bên trái"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Đang hoạt động (chỉ phát nội dung đa phương tiện), chỉ dùng tai nghe bên phải"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Đang hoạt động (chỉ phát nội dung đa phương tiện), đang dùng cả tai nghe bên trái và phải"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Kết xuất có tăng tốc phần cứng"</string>
     <string name="media_category" msgid="8122076702526144053">"Phương tiện"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Giám sát"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Quản lý cửa sổ"</string>
     <string name="strict_mode" msgid="889864762140862437">"Luôn bật chế độ nghiêm ngặt"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Màn hình nháy khi ứng dụng thực hiện các hoạt động dài trên luồng chính"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Vị trí con trỏ"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Triển khai WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Đặt triển khai WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Lựa chọn này không còn hợp lệ nữa. Hãy thử lại."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"Công cụ cho nhà phát triển WebView"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Không tìm thấy gói WebView."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Không khởi chạy được Công cụ cho nhà phát triển."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Chế độ màu của ảnh"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Sử dụng sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Đã tắt"</string>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index f13f7d9..06379e1 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -107,39 +107,29 @@
     <string name="tv_bluetooth_battery_level_untethered_right" msgid="8610019317279155595">"右耳机电池电量 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="bluetooth_active_no_battery_level" msgid="4155462233006205630">"使用中"</string>
     <string name="bluetooth_saved_device" msgid="4895871321722311428">"已保存的设备"</string>
-    <string name="bluetooth_hearing_aid_left_active" msgid="8330226430756799572">"使用中（仅左耳助听器）"</string>
+    <string name="bluetooth_hearing_aid_left_active" msgid="8330226430756799572">"使用中（仅左耳）"</string>
     <string name="bluetooth_hearing_aid_right_active" msgid="2244728507170385397">"使用中（仅右耳助听器）"</string>
     <string name="bluetooth_hearing_aid_left_and_right_active" msgid="4294571497939983181">"使用中（左右耳助听器）"</string>
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"无法更新周围声音"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"使用中（仅限媒体）。电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"使用中（仅限媒体）。左侧电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右侧电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"访客设备。电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"访客设备。左侧电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右侧电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"访客设备（仅限媒体）。电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"访客设备（仅限媒体）。左侧电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右侧电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"已连接（支持音频分享）。电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"已连接（支持音频分享）。左侧电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右侧电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"已连接（支持音频分享）。左侧电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"已连接（支持音频分享）。右侧电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"已连接（支持音频分享）"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"访客设备（支持音频分享）。电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"访客设备（支持音频分享）。左侧电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右侧电池电量为 <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"访客设备（支持音频分享）"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"使用中（仅限媒体）"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"访客设备"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"访客设备（仅限媒体）"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"支持音频分享"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"访客设备。支持音频分享"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"使用中（仅限媒体），仅左侧"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"使用中（仅限媒体），仅右侧"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"使用中（仅限媒体），左侧和右侧"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"硬件加速渲染"</string>
     <string name="media_category" msgid="8122076702526144053">"媒体"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"监控"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"窗口管理"</string>
     <string name="strict_mode" msgid="889864762140862437">"启用严格模式"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"应用在主线程上执行长时间操作时闪烁屏幕"</string>
     <string name="pointer_location" msgid="7516929526199520173">"指针位置"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView 实现"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"设置 WebView 实现"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"此选项已失效，请重试。"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView 开发者工具"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"未找到 WebView 软件包。"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"无法启动开发者工具。"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"图片颜色模式"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"使用 sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"已停用"</string>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index 14976e0..a3ae971 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"無法更新環境聲音"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"啟用 (只限媒體)。<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> 電量。"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"啟用 (只限媒體)，左側：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> 電量，右側：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> 電量。"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"訪客裝置。<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> 電量。"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"訪客裝置。左側：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右側：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> 電量。"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"訪客裝置 (僅限媒體)。<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> 電量。"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"訪客裝置 (僅限媒體)。左側：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右側：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> 電量。"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"已連線 (支援音訊分享功能)，<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> 電量。"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"已連線 (支援音訊分享功能)，左側：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g> 電量，右側：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> 電量。"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"已連線 (支援音訊分享功能)。左側：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> 電量。"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"已連線 (支援音訊分享功能)。右側：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> 電量。"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"已連線 (支援音訊分享功能)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"訪客裝置 (支援音訊分享功能)。<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> 電量。"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"訪客裝置 (支援音訊分享功能)。左側：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右側：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> 電量。"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"訪客裝置 (支援音訊分享功能)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"啟用 (只限媒體)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"訪客裝置"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"訪客裝置 (僅限媒體)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"支援音訊分享功能"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"訪客裝置。支援音訊分享功能"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"左側啟用 (只限媒體)"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"右側啟用 (只限媒體)"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"右側同時啟用 (只限媒體)"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"硬件加速轉譯"</string>
     <string name="media_category" msgid="8122076702526144053">"媒體"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"監控"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"視窗管理"</string>
     <string name="strict_mode" msgid="889864762140862437">"嚴格模式已啟用"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"當應用程式在主執行緒中進行長時間作業時，讓螢幕閃爍"</string>
     <string name="pointer_location" msgid="7516929526199520173">"指標位置"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView 設置"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"設定 WebView 設置"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"此選擇已失效，請再試一次。"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView 開發人員工具"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"找不到 WebView 套件。"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"無法啟動開發人員工具。"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"相片顏色模式"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"使用 sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"已停用"</string>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index b65cb4f..f670088 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"無法更新環境狀態"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"已啟用 (僅限媒體)。電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"已啟用 (僅限媒體)。左側電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右側電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"訪客裝置。電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"訪客裝置。左側電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右側電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"訪客裝置 (僅限媒體)。電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"訪客裝置 (僅限媒體)。左側電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右側電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"已連線 (支援音訊分享)。電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"已連線 (支援音訊分享)。左側電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右側電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"已連線 (支援音訊分享)。左側電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"已連線 (支援音訊分享)。右側電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"已連線 (支援音訊分享)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"訪客裝置 (支援音訊分享)。電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"訪客裝置 (支援音訊分享)。左側電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>，右側電量：<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g>。"</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"訪客裝置 (支援音訊分享)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"啟用 (僅限媒體)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"訪客裝置"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"訪客裝置 (僅限媒體)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"支援音訊分享"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"訪客裝置。支援音訊分享"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"左側啟用 (僅限媒體)"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"右側啟用 (僅限媒體)"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"左右側同時啟用 (僅限媒體)"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"硬體加速轉譯"</string>
     <string name="media_category" msgid="8122076702526144053">"媒體"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"監控"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"視窗管理"</string>
     <string name="strict_mode" msgid="889864762140862437">"嚴格模式已啟用"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"當應用程式在主執行緒中進行長時間作業時，讓螢幕閃爍"</string>
     <string name="pointer_location" msgid="7516929526199520173">"指標位置"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"WebView 實作"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"設定 WebView 實作"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"這個選項已失效，請再試一次。"</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"WebView 開發人員工具"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"找不到 WebView 套件。"</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"無法啟動開發人員工具。"</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"螢幕色彩模式"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"使用 sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"已停用"</string>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index 859c153..1d792a0 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -113,33 +113,23 @@
     <string name="bluetooth_hearing_device_ambient_error" msgid="6035857289108813878">"Ayikwazanga ukubuyekeza izindawo ezizungezile"</string>
     <string name="bluetooth_active_media_only_battery_level" msgid="7772517511061834073">"Iyasebenza (imidiya kuphela). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ibhethri."</string>
     <string name="bluetooth_active_media_only_battery_level_untethered" msgid="7444753133664620926">"Iyasebenza (imidiya kuphela). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ibhethri."</string>
-    <!-- no translation found for bluetooth_guest_battery_level (2820003593899467676) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered (5404013822067644960) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level (7928347900623812299) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_battery_level_untethered (4458143141394300892) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level" msgid="2820003593899467676">"Idivayisi yesivakashi. Ibhethri engu-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered" msgid="5404013822067644960">"Idivayisi yesivakashi. L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ibhethri."</string>
+    <string name="bluetooth_guest_media_only_battery_level" msgid="7928347900623812299">"Idivayisi yomsindo (imidiya kuphela). Ibhethri engu-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_media_only_battery_level_untethered" msgid="4458143141394300892">"Idivayisi yomsindo (imidiya kuphela). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ibhethri."</string>
     <string name="bluetooth_battery_level_lea_support" msgid="5968584103507988820">"Ixhunyiwe (isekela ukwabelana ngokuqoshiwe). <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ibhethri."</string>
     <string name="bluetooth_battery_level_untethered_lea_support" msgid="803110681688633362">"Ixhunyiwe (isekela ukwabelana ngokuqoshiwe). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ibhethri."</string>
     <string name="bluetooth_battery_level_untethered_left_lea_support" msgid="7707464334346454950">"Ixhunyiwe (isekela ukwabelana ngokuqoshiwe). Kwesokudla: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ibhethri."</string>
     <string name="bluetooth_battery_level_untethered_right_lea_support" msgid="8941549024377771038">"Ixhunyiwe (isekela ukwabelana ngokuqoshiwe). Kwesokudla: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g> ibhethri."</string>
     <string name="bluetooth_no_battery_level_lea_support" msgid="5721725041048434075">"Ixhunyiwe (isekela ukwabelana ngokuqoshiwe)"</string>
-    <!-- no translation found for bluetooth_guest_battery_level_lea_support (8098327939585013928) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_battery_level_untethered_lea_support (3701035025565668360) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_no_battery_level_lea_support (2977038548753103470) -->
-    <skip />
+    <string name="bluetooth_guest_battery_level_lea_support" msgid="8098327939585013928">"Idivayisi yesivakashi (isekela ukwabelana ngomsindo). Ibhethri engu-<xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>."</string>
+    <string name="bluetooth_guest_battery_level_untethered_lea_support" msgid="3701035025565668360">"Idivayisi yesivakashi (isekela ukwabelana ngomsindo). L: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_0">%1$s</xliff:g>, R: <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE_1">%2$s</xliff:g> ibhethri."</string>
+    <string name="bluetooth_guest_no_battery_level_lea_support" msgid="2977038548753103470">"Idivayisi yesivakashi (isekela ukwabelana ngomsindo)"</string>
     <string name="bluetooth_active_media_only_no_battery_level" msgid="71106861912593126">"Kuyasebenza (imidiya kuphela)"</string>
-    <!-- no translation found for bluetooth_guest_no_battery_level (9122974160381136920) -->
-    <skip />
-    <!-- no translation found for bluetooth_guest_media_only_no_battery_level (7666347601796705721) -->
-    <skip />
+    <string name="bluetooth_guest_no_battery_level" msgid="9122974160381136920">"Idivayisi yesivakashi"</string>
+    <string name="bluetooth_guest_media_only_no_battery_level" msgid="7666347601796705721">"Idivayisi yesivakashi (imidiya kuphela)"</string>
     <string name="bluetooth_saved_device_lea_support" msgid="7231323139968285768">"Isekela ukwabelana ngokuqoshiwe"</string>
-    <!-- no translation found for bluetooth_guest_saved_device_lea_support (5621291599518569876) -->
-    <skip />
+    <string name="bluetooth_guest_saved_device_lea_support" msgid="5621291599518569876">"Idivayisi yesivakashi. Isekela ukwabelana ngomsindo"</string>
     <string name="bluetooth_hearing_aid_media_only_left_active" msgid="1632152540901488645">"Iyasebenza (imidiya kuphela), ngakwesokunxele kuphela"</string>
     <string name="bluetooth_hearing_aid_media_only_right_active" msgid="3854140683042617230">"Kuyasebenza (imidiya kuphela), ngakwesokudla kuphela"</string>
     <string name="bluetooth_hearing_aid_media_only_left_and_right_active" msgid="1299913413062528417">"Kuyasebenza (imidiya kuphela), ngakwesokunxele nakwesokudla"</string>
@@ -396,8 +386,7 @@
     <string name="debug_hw_drawing_category" msgid="5830815169336975162">"Ukunikezelwa okusheshisiwe kwezingxenyekazi zekhompyutha"</string>
     <string name="media_category" msgid="8122076702526144053">"Imidiya"</string>
     <string name="debug_monitoring_category" msgid="1597387133765424994">"Ukwengamela"</string>
-    <!-- no translation found for window_management_category (2015535427098365170) -->
-    <skip />
+    <string name="window_management_category" msgid="2015535427098365170">"Ukuphathwa Kwewindi"</string>
     <string name="strict_mode" msgid="889864762140862437">"Imodi eqinile ivumelwe"</string>
     <string name="strict_mode_summary" msgid="1838248687233554654">"Ukuphazimisa isikrini uma izinhlelo zokusebenza ziyenza umsebenzi ngesikhathi eside kuchungechunge olukhulu"</string>
     <string name="pointer_location" msgid="7516929526199520173">"Isikhombi sendawo"</string>
@@ -492,12 +481,9 @@
     <string name="select_webview_provider_title" msgid="3917815648099445503">"Ukufakwa ke-WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Sesba ukufakwa kwe-WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="8512254949169359848">"Lokhu kukhetha akusavumelekile. Zama futhi."</string>
-    <!-- no translation found for webview_launch_devtools_title (8009687433555367112) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_package (3182544553665113721) -->
-    <skip />
-    <!-- no translation found for webview_launch_devtools_no_activity (4066006313619617140) -->
-    <skip />
+    <string name="webview_launch_devtools_title" msgid="8009687433555367112">"IWebView DevTools"</string>
+    <string name="webview_launch_devtools_no_package" msgid="3182544553665113721">"Iphakheji yeWebView ayitholwanga."</string>
+    <string name="webview_launch_devtools_no_activity" msgid="4066006313619617140">"Ayikwazanga ukuqalisa iDevTools."</string>
     <string name="picture_color_mode" msgid="1013807330552931903">"Imodi yombala wesithombe"</string>
     <string name="picture_color_mode_desc" msgid="151780973768136200">"Sebenzisa i-sRGB"</string>
     <string name="daltonizer_mode_disabled" msgid="403424372812399228">"Kukhutshaziwe"</string>
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java
index ebd5a1d..3625c00 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java
@@ -29,6 +29,7 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.os.UserHandle;
+import android.os.UserManager;
 import android.telephony.TelephonyManager;
 import android.util.Log;
 
@@ -37,6 +38,8 @@
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settingslib.R;
+import com.android.settingslib.flags.Flags;
+import com.android.settingslib.utils.ThreadUtils;
 
 import java.util.Collection;
 import java.util.HashMap;
@@ -65,6 +68,7 @@
     private final android.os.Handler mReceiverHandler;
     private final UserHandle mUserHandle;
     private final Context mContext;
+    private boolean mIsWorkProfile = false;
 
     interface Handler {
         void onReceive(Context context, Intent intent, BluetoothDevice device);
@@ -140,6 +144,9 @@
         addHandler(BluetoothAdapter.ACTION_AUTO_ON_STATE_CHANGED, new AutoOnStateChangedHandler());
 
         registerAdapterIntentReceiver();
+
+        UserManager userManager = context.getSystemService(UserManager.class);
+        mIsWorkProfile = userManager != null && userManager.isManagedProfile();
     }
 
     /** Register to start receiving callbacks for Bluetooth events. */
@@ -220,20 +227,32 @@
             callback.onProfileConnectionStateChanged(device, state, bluetoothProfile);
         }
 
+        if (mIsWorkProfile) {
+            Log.d(TAG, "Skip profileConnectionStateChanged for audio sharing, work profile");
+            return;
+        }
+
+        LocalBluetoothLeBroadcast broadcast = mBtManager == null ? null
+                : mBtManager.getProfileManager().getLeAudioBroadcastProfile();
+        LocalBluetoothLeBroadcastAssistant assistant = mBtManager == null ? null
+                : mBtManager.getProfileManager().getLeAudioBroadcastAssistantProfile();
         // Trigger updateFallbackActiveDeviceIfNeeded when ASSISTANT profile disconnected when
         // audio sharing is enabled.
         if (bluetoothProfile == BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT
                 && state == BluetoothAdapter.STATE_DISCONNECTED
-                && BluetoothUtils.isAudioSharingUIAvailable(mContext)) {
-            LocalBluetoothProfileManager profileManager = mBtManager.getProfileManager();
-            if (profileManager != null
-                    && profileManager.getLeAudioBroadcastProfile() != null
-                    && profileManager.getLeAudioBroadcastProfile().isProfileReady()
-                    && profileManager.getLeAudioBroadcastAssistantProfile() != null
-                    && profileManager.getLeAudioBroadcastAssistantProfile().isProfileReady()) {
-                Log.d(TAG, "updateFallbackActiveDeviceIfNeeded, ASSISTANT profile disconnected");
-                profileManager.getLeAudioBroadcastProfile().updateFallbackActiveDeviceIfNeeded();
-            }
+                && BluetoothUtils.isAudioSharingUIAvailable(mContext)
+                && broadcast != null && assistant != null && broadcast.isProfileReady()
+                && assistant.isProfileReady()) {
+            Log.d(TAG, "updateFallbackActiveDeviceIfNeeded, ASSISTANT profile disconnected");
+            broadcast.updateFallbackActiveDeviceIfNeeded();
+        }
+        // Dispatch handleOnProfileStateChanged to local broadcast profile
+        if (Flags.promoteAudioSharingForSecondAutoConnectedLeaDevice()
+                && broadcast != null
+                && state == BluetoothAdapter.STATE_CONNECTED) {
+            Log.d(TAG, "dispatchProfileConnectionStateChanged to local broadcast profile");
+            var unused = ThreadUtils.postOnBackgroundThread(
+                    () -> broadcast.handleProfileConnected(device, bluetoothProfile, mBtManager));
         }
     }
 
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java
index 522a436..e78a692 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java
@@ -23,6 +23,7 @@
 import android.graphics.Canvas;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
+import android.hardware.input.InputManager;
 import android.media.AudioDeviceAttributes;
 import android.media.AudioDeviceInfo;
 import android.media.AudioManager;
@@ -34,6 +35,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 import android.util.Pair;
+import android.view.InputDevice;
 
 import androidx.annotation.DrawableRes;
 import androidx.annotation.NonNull;
@@ -717,6 +719,30 @@
         }
     }
 
+    /** Check if the {@link CachedBluetoothDevice} is a media device */
+    @WorkerThread
+    public static boolean isMediaDevice(@Nullable CachedBluetoothDevice cachedDevice) {
+        if (cachedDevice == null) return false;
+        return cachedDevice.getProfiles().stream()
+                .anyMatch(
+                        profile ->
+                                profile instanceof A2dpProfile
+                                        || profile instanceof HearingAidProfile
+                                        || profile instanceof LeAudioProfile
+                                        || profile instanceof HeadsetProfile);
+    }
+
+    /** Check if the {@link CachedBluetoothDevice} supports LE Audio profile */
+    @WorkerThread
+    public static boolean isLeAudioSupported(@Nullable CachedBluetoothDevice cachedDevice) {
+        if (cachedDevice == null) return false;
+        return cachedDevice.getProfiles().stream()
+                .anyMatch(
+                        profile ->
+                                profile instanceof LeAudioProfile
+                                        && profile.isEnabled(cachedDevice.getDevice()));
+    }
+
     /** Returns if the broadcast is on-going. */
     @WorkerThread
     public static boolean isBroadcasting(@Nullable LocalBluetoothManager manager) {
@@ -1054,7 +1080,7 @@
 
     /** Get develop option value for audio sharing preview. */
     @WorkerThread
-    private static boolean getAudioSharingPreviewValue(@Nullable ContentResolver contentResolver) {
+    public static boolean getAudioSharingPreviewValue(@Nullable ContentResolver contentResolver) {
         if (contentResolver == null) return false;
         return Settings.Global.getInt(
                 contentResolver,
@@ -1193,4 +1219,53 @@
         }
         device.setMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS, fastPairCustomizedMeta.getBytes());
     }
+
+    /**
+     * Returns the {@link InputDevice} of the given bluetooth address if the device is a input
+     * device.
+     *
+     * @param address The address of the bluetooth device
+     * @return The {@link InputDevice} of the given address if applicable
+     */
+    @Nullable
+    public static InputDevice getInputDevice(Context context, String address) {
+        InputManager im = context.getSystemService(InputManager.class);
+
+        if (im != null) {
+            for (int deviceId : im.getInputDeviceIds()) {
+                String btAddress = im.getInputDeviceBluetoothAddress(deviceId);
+
+                if (btAddress != null && btAddress.equals(address)) {
+                    return im.getInputDevice(deviceId);
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Identifies whether a device is a stylus using the associated {@link InputDevice} or
+     * {@link CachedBluetoothDevice}.
+     * InputDevices are only available when the device is USI or Bluetooth-connected, whereas
+     * CachedBluetoothDevices are available for Bluetooth devices when connected or paired,
+     * so to handle all cases, both are needed.
+     *
+     * @param inputDevice           The associated input device of the stylus
+     * @param cachedBluetoothDevice The associated bluetooth device of the stylus
+     */
+    public static boolean isDeviceStylus(@Nullable InputDevice inputDevice,
+            @Nullable CachedBluetoothDevice cachedBluetoothDevice) {
+        if (inputDevice != null && inputDevice.supportsSource(InputDevice.SOURCE_STYLUS)) {
+            return true;
+        }
+
+        if (cachedBluetoothDevice != null) {
+            BluetoothDevice bluetoothDevice = cachedBluetoothDevice.getDevice();
+            String deviceType = BluetoothUtils.getStringMetaData(bluetoothDevice,
+                    BluetoothDevice.METADATA_DEVICE_TYPE);
+            return TextUtils.equals(deviceType, BluetoothDevice.DEVICE_TYPE_STYLUS);
+        }
+
+        return false;
+    }
 }
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcast.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcast.java
index 3017d798..08f7806 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcast.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcast.java
@@ -54,6 +54,7 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
+import androidx.annotation.WorkerThread;
 
 import com.android.settingslib.R;
 import com.android.settingslib.flags.Flags;
@@ -63,6 +64,8 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.nio.charset.StandardCharsets;
+import java.security.SecureRandom;
+import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -70,7 +73,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
@@ -107,7 +109,12 @@
     private static final String SETTINGS_PKG = "com.android.settings";
     private static final String SYSUI_PKG = "com.android.systemui";
     private static final String TAG = "LocalBluetoothLeBroadcast";
+    private static final String AUTO_REJOIN_BROADCAST_TAG = "REJOIN_LE_BROADCAST_ID";
     private static final boolean DEBUG = BluetoothUtils.D;
+    private static final String VALID_PASSWORD_CHARACTERS =
+            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_=+[]{}|;:,"
+                    + ".<>?/";
+    private static final int PASSWORD_LENGTH = 16;
 
     static final String NAME = "LE_AUDIO_BROADCAST";
     private static final String UNDERLINE = "_";
@@ -116,6 +123,7 @@
     // Order of this profile in device profiles list
     private static final int ORDINAL = 1;
     static final int UNKNOWN_VALUE_PLACEHOLDER = -1;
+    private static final int JUST_BOND_MILLIS_THRESHOLD = 30000; // 30s
     private static final Uri[] SETTINGS_URIS =
             new Uri[] {
                 Settings.Secure.getUriFor(Settings.Secure.BLUETOOTH_LE_BROADCAST_NAME),
@@ -145,8 +153,8 @@
     private ContentResolver mContentResolver;
     private ContentObserver mSettingsObserver;
     // Cached broadcast callbacks being register before service is connected.
-    private Map<BluetoothLeBroadcast.Callback, Executor> mCachedBroadcastCallbackExecutorMap =
-            new ConcurrentHashMap<>();
+    private ConcurrentHashMap<BluetoothLeBroadcast.Callback, Executor>
+            mCachedBroadcastCallbackExecutorMap = new ConcurrentHashMap<>();
 
     private final ServiceListener mServiceListener =
             new ServiceListener() {
@@ -876,7 +884,7 @@
             @NonNull @CallbackExecutor Executor executor,
             @NonNull BluetoothLeBroadcast.Callback callback) {
         if (mServiceBroadcast == null) {
-            Log.d(TAG, "registerServiceCallBack failed, the BluetoothLeBroadcast is null.");
+            Log.d(TAG, "registerServiceCallBack failed, proxy not attached.");
             mCachedBroadcastCallbackExecutorMap.putIfAbsent(callback, executor);
             return;
         }
@@ -898,10 +906,7 @@
             @NonNull @CallbackExecutor Executor executor,
             @NonNull BluetoothLeBroadcastAssistant.Callback callback) {
         if (mServiceBroadcastAssistant == null) {
-            Log.d(
-                    TAG,
-                    "registerBroadcastAssistantCallback failed, "
-                            + "the BluetoothLeBroadcastAssistant is null.");
+            Log.d(TAG, "registerBroadcastAssistantCallback failed, proxy not attached.");
             return;
         }
 
@@ -916,7 +921,7 @@
     public void unregisterServiceCallBack(@NonNull BluetoothLeBroadcast.Callback callback) {
         mCachedBroadcastCallbackExecutorMap.remove(callback);
         if (mServiceBroadcast == null) {
-            Log.d(TAG, "unregisterServiceCallBack failed, the BluetoothLeBroadcast is null.");
+            Log.d(TAG, "unregisterServiceCallBack failed, proxy not attached.");
             return;
         }
 
@@ -935,10 +940,7 @@
     private void unregisterBroadcastAssistantCallback(
             @NonNull BluetoothLeBroadcastAssistant.Callback callback) {
         if (mServiceBroadcastAssistant == null) {
-            Log.d(
-                    TAG,
-                    "unregisterBroadcastAssistantCallback, "
-                            + "the BluetoothLeBroadcastAssistant is null.");
+            Log.d(TAG, "unregisterBroadcastAssistantCallback, proxy not attched.");
             return;
         }
 
@@ -1088,11 +1090,16 @@
         mBroadcastId = UNKNOWN_VALUE_PLACEHOLDER;
     }
 
-    private String generateRandomPassword() {
-        String randomUUID = UUID.randomUUID().toString();
-        // first 16 chars from xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
-        return randomUUID.substring(0, 8) + randomUUID.substring(9, 13) + randomUUID.substring(14,
-                18);
+    private static String generateRandomPassword() {
+        SecureRandom random = new SecureRandom();
+        StringBuilder stringBuilder = new StringBuilder(PASSWORD_LENGTH);
+
+        for (int i = 0; i < PASSWORD_LENGTH; i++) {
+            int randomIndex = random.nextInt(VALID_PASSWORD_CHARACTERS.length());
+            stringBuilder.append(VALID_PASSWORD_CHARACTERS.charAt(randomIndex));
+        }
+
+        return stringBuilder.toString();
     }
 
     private void registerContentObserver() {
@@ -1131,7 +1138,9 @@
 
     /** Update fallback active device if needed. */
     public void updateFallbackActiveDeviceIfNeeded() {
-        if (Flags.disableAudioSharingAutoPickFallbackInUi()) {
+        if (Flags.disableAudioSharingAutoPickFallbackInUi() || (mContext != null
+                && Flags.audioSharingDeveloperOption()
+                && BluetoothUtils.getAudioSharingPreviewValue(mContext.getContentResolver()))) {
             Log.d(TAG, "Skip updateFallbackActiveDeviceIfNeeded, disable flag is on");
             return;
         }
@@ -1278,4 +1287,87 @@
         UserManager userManager = context.getSystemService(UserManager.class);
         return userManager != null && userManager.isManagedProfile();
     }
+
+    /** Handle profile connected for {@link CachedBluetoothDevice}. */
+    @WorkerThread
+    public void handleProfileConnected(@NonNull CachedBluetoothDevice cachedDevice,
+            int bluetoothProfile, @Nullable LocalBluetoothManager btManager) {
+        if (!Flags.promoteAudioSharingForSecondAutoConnectedLeaDevice()) {
+            Log.d(TAG, "Skip handleProfileConnected, flag off");
+            return;
+        }
+        if (!SYSUI_PKG.equals(mContext.getPackageName())) {
+            Log.d(TAG, "Skip handleProfileConnected, not a valid caller");
+            return;
+        }
+        if (!BluetoothUtils.isMediaDevice(cachedDevice)) {
+            Log.d(TAG, "Skip handleProfileConnected, not a media device");
+            return;
+        }
+        Timestamp bondTimestamp = cachedDevice.getBondTimestamp();
+        if (bondTimestamp != null) {
+            long diff = System.currentTimeMillis() - bondTimestamp.getTime();
+            if (diff <= JUST_BOND_MILLIS_THRESHOLD) {
+                Log.d(TAG, "Skip handleProfileConnected, just bond within " + diff);
+                return;
+            }
+        }
+        if (!isEnabled(null)) {
+            Log.d(TAG, "Skip handleProfileConnected, not broadcasting");
+            return;
+        }
+        BluetoothDevice device = cachedDevice.getDevice();
+        if (device == null) {
+            Log.d(TAG, "Skip handleProfileConnected, null device");
+            return;
+        }
+        // TODO: sync source in a reasonable place
+        if (BluetoothUtils.hasConnectedBroadcastSourceForBtDevice(device, btManager)) {
+            Log.d(TAG, "Skip handleProfileConnected, already has source");
+            return;
+        }
+        if (isAutoRejoinDevice(device)) {
+            Log.d(TAG, "Skip handleProfileConnected, auto rejoin device");
+            return;
+        }
+        boolean isLeAudioSupported = BluetoothUtils.isLeAudioSupported(cachedDevice);
+        // For eligible (LE audio) remote device, we only check assistant profile connected.
+        if (isLeAudioSupported
+                && bluetoothProfile != BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT) {
+            Log.d(TAG, "Skip handleProfileConnected, lea sink, not the assistant profile");
+            return;
+        }
+        boolean isFirstConnectedProfile = isFirstConnectedProfile(cachedDevice, bluetoothProfile);
+        // For ineligible (classic) remote device, we only check its first connected profile.
+        if (!isLeAudioSupported && !isFirstConnectedProfile) {
+            Log.d(TAG, "Skip handleProfileConnected, classic sink, not the first profile");
+            return;
+        }
+
+        Intent intent = new Intent(
+                LocalBluetoothLeBroadcast.ACTION_LE_AUDIO_SHARING_DEVICE_CONNECTED);
+        intent.putExtra(LocalBluetoothLeBroadcast.EXTRA_BLUETOOTH_DEVICE, device);
+        intent.setPackage(SETTINGS_PKG);
+        Log.d(TAG, "notify device connected, device = " + device.getAnonymizedAddress());
+
+        mContext.sendBroadcast(intent);
+    }
+
+    private boolean isAutoRejoinDevice(@Nullable BluetoothDevice bluetoothDevice) {
+        String metadataValue = BluetoothUtils.getFastPairCustomizedField(bluetoothDevice,
+                AUTO_REJOIN_BROADCAST_TAG);
+        return getLatestBroadcastId() != UNKNOWN_VALUE_PLACEHOLDER && Objects.equals(metadataValue,
+                String.valueOf(getLatestBroadcastId()));
+    }
+
+    private boolean isFirstConnectedProfile(@Nullable CachedBluetoothDevice cachedDevice,
+            int bluetoothProfile) {
+        if (cachedDevice == null) return false;
+        return cachedDevice.getProfiles().stream()
+                .noneMatch(
+                        profile ->
+                                profile.getProfileId() != bluetoothProfile
+                                        && profile.getConnectionStatus(cachedDevice.getDevice())
+                                        == BluetoothProfile.STATE_CONNECTED);
+    }
 }
diff --git a/packages/SettingsLib/src/com/android/settingslib/connectivity/OWNERS b/packages/SettingsLib/src/com/android/settingslib/connectivity/OWNERS
index 9f15c1b..b676d8d 100644
--- a/packages/SettingsLib/src/com/android/settingslib/connectivity/OWNERS
+++ b/packages/SettingsLib/src/com/android/settingslib/connectivity/OWNERS
@@ -1,6 +1,5 @@
 # Default reviewers for this and subdirectories.
 andychou@google.com
-arcwang@google.com
 changbetty@google.com
 qal@google.com
 wengsu@google.com
diff --git a/packages/SettingsLib/src/com/android/settingslib/qrcode/OWNERS b/packages/SettingsLib/src/com/android/settingslib/qrcode/OWNERS
index 372eb81..921ffed 100644
--- a/packages/SettingsLib/src/com/android/settingslib/qrcode/OWNERS
+++ b/packages/SettingsLib/src/com/android/settingslib/qrcode/OWNERS
@@ -1,5 +1,4 @@
 # Default reviewers for this and subdirectories.
-bonianchen@google.com
 changbetty@google.com
 wengsu@google.com
 zoeychen@google.com
diff --git a/packages/SettingsLib/src/com/android/settingslib/qrcode/QrCamera.java b/packages/SettingsLib/src/com/android/settingslib/qrcode/QrCamera.java
index ae17acb..8bb41cc 100644
--- a/packages/SettingsLib/src/com/android/settingslib/qrcode/QrCamera.java
+++ b/packages/SettingsLib/src/com/android/settingslib/qrcode/QrCamera.java
@@ -16,8 +16,8 @@
 
 package com.android.settingslib.qrcode;
 
+import android.annotation.NonNull;
 import android.content.Context;
-import android.content.res.Configuration;
 import android.graphics.Matrix;
 import android.graphics.Rect;
 import android.graphics.SurfaceTexture;
@@ -75,12 +75,29 @@
 
     @VisibleForTesting
     Camera mCamera;
+    Camera.CameraInfo mCameraInfo;
+
+    /**
+     * The size of the preview image as requested to camera, e.g. 1920x1080.
+     */
     private Size mPreviewSize;
+
+    /**
+     * Whether the preview image would be displayed in "portrait" (width less
+     * than height) orientation in current display orientation.
+     *
+     * Note that we don't distinguish between a rotation of 90 degrees or 270
+     * degrees here, since we center crop all the preview.
+     *
+     * TODO: Handle external camera / multiple display, this likely requires
+     * migrating to newer Camera2 API.
+     */
+    private boolean mPreviewInPortrait;
+
     private WeakReference<Context> mContext;
     private ScannerCallback mScannerCallback;
     private MultiFormatReader mReader;
     private DecodingTask mDecodeTask;
-    private int mCameraOrientation;
     @VisibleForTesting
     Camera.Parameters mParameters;
 
@@ -152,8 +169,14 @@
          * @param previewSize       Is the preview size set by camera
          * @param cameraOrientation Is the orientation of current Camera
          * @return The rectangle would like to crop from the camera preview shot.
+         * @deprecated This is no longer used, and the frame position is
+         *     automatically calculated from the preview size and the
+         *     background View size.
          */
-        Rect getFramePosition(Size previewSize, int cameraOrientation);
+        @Deprecated
+        default @NonNull Rect getFramePosition(@NonNull Size previewSize, int cameraOrientation) {
+            throw new AssertionError("getFramePosition shouldn't be used");
+        }
 
         /**
          * Sets the transform to associate with preview area.
@@ -172,6 +195,41 @@
         boolean isValid(String qrCode);
     }
 
+    private boolean setPreviewDisplayOrientation() {
+        if (mContext.get() == null) {
+            return false;
+        }
+
+        final WindowManager winManager =
+                (WindowManager) mContext.get().getSystemService(Context.WINDOW_SERVICE);
+        final int rotation = winManager.getDefaultDisplay().getRotation();
+        int degrees = 0;
+        switch (rotation) {
+            case Surface.ROTATION_0:
+                degrees = 0;
+                break;
+            case Surface.ROTATION_90:
+                degrees = 90;
+                break;
+            case Surface.ROTATION_180:
+                degrees = 180;
+                break;
+            case Surface.ROTATION_270:
+                degrees = 270;
+                break;
+        }
+        int rotateDegrees = 0;
+        if (mCameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
+            rotateDegrees = (mCameraInfo.orientation + degrees) % 360;
+            rotateDegrees = (360 - rotateDegrees) % 360;  // compensate the mirror
+        } else {
+            rotateDegrees = (mCameraInfo.orientation - degrees + 360) % 360;
+        }
+        mCamera.setDisplayOrientation(rotateDegrees);
+        mPreviewInPortrait = (rotateDegrees == 90 || rotateDegrees == 270);
+        return true;
+    }
+
     @VisibleForTesting
     void setCameraParameter() {
         mParameters = mCamera.getParameters();
@@ -195,37 +253,39 @@
         mCamera.setParameters(mParameters);
     }
 
-    private boolean startPreview() {
-        if (mContext.get() == null) {
-            return false;
-        }
+    /**
+     * Set transform matrix to crop and center the preview picture.
+     */
+    private void setTransformationMatrix() {
+        final Size previewDisplaySize = rotateIfPortrait(mPreviewSize);
+        final Size viewSize = mScannerCallback.getViewSize();
+        final Rect cropRegion = calculateCenteredCrop(previewDisplaySize, viewSize);
 
-        final WindowManager winManager =
-                (WindowManager) mContext.get().getSystemService(Context.WINDOW_SERVICE);
-        final int rotation = winManager.getDefaultDisplay().getRotation();
-        int degrees = 0;
-        switch (rotation) {
-            case Surface.ROTATION_0:
-                degrees = 0;
-                break;
-            case Surface.ROTATION_90:
-                degrees = 90;
-                break;
-            case Surface.ROTATION_180:
-                degrees = 180;
-                break;
-            case Surface.ROTATION_270:
-                degrees = 270;
-                break;
-        }
-        final int rotateDegrees = (mCameraOrientation - degrees + 360) % 360;
-        mCamera.setDisplayOrientation(rotateDegrees);
+        // Note that strictly speaking, since the preview is mirrored in front
+        // camera case, we should also mirror the crop region here. But since
+        // we're cropping at the center, mirroring would result in the same
+        // crop region other than small off-by-one error from floating point
+        // calculation and wouldn't be noticeable.
+
+        // Calculate transformation matrix.
+        float scaleX = previewDisplaySize.getWidth() / (float) cropRegion.width();
+        float scaleY = previewDisplaySize.getHeight() / (float) cropRegion.height();
+        float translateX = -cropRegion.left / (float) cropRegion.width() * viewSize.getWidth();
+        float translateY = -cropRegion.top / (float) cropRegion.height() * viewSize.getHeight();
+
+        // Set the transform matrix.
+        final Matrix matrix = new Matrix();
+        matrix.setScale(scaleX, scaleY);
+        matrix.postTranslate(translateX, translateY);
+        mScannerCallback.setTransform(matrix);
+    }
+
+    private void startPreview() {
         mCamera.startPreview();
         if (Camera.Parameters.FOCUS_MODE_AUTO.equals(mParameters.getFocusMode())) {
             mCamera.autoFocus(/* Camera.AutoFocusCallback */ null);
             sendMessageDelayed(obtainMessage(MSG_AUTO_FOCUS), AUTOFOCUS_INTERVAL_MS);
         }
-        return true;
     }
 
     private class DecodingTask extends AsyncTask<Void, Void, String> {
@@ -300,7 +360,7 @@
                     if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {
                         releaseCamera();
                         mCamera = Camera.open(i);
-                        mCameraOrientation = cameraInfo.orientation;
+                        mCameraInfo = cameraInfo;
                         break;
                     }
                 }
@@ -309,7 +369,7 @@
                     Camera.getCameraInfo(0, cameraInfo);
                     releaseCamera();
                     mCamera = Camera.open(0);
-                    mCameraOrientation = cameraInfo.orientation;
+                    mCameraInfo = cameraInfo;
                 }
             } catch (RuntimeException e) {
                 Log.e(TAG, "Fail to open camera: " + e);
@@ -323,11 +383,12 @@
                     throw new IOException("Cannot find available camera");
                 }
                 mCamera.setPreviewTexture(surface);
+                if (!setPreviewDisplayOrientation()) {
+                    throw new IOException("Lost context");
+                }
                 setCameraParameter();
                 setTransformationMatrix();
-                if (!startPreview()) {
-                    throw new IOException("Lost contex");
-                }
+                startPreview();
             } catch (IOException ioe) {
                 Log.e(TAG, "Fail to startPreview camera: " + ioe);
                 mCamera = null;
@@ -345,32 +406,30 @@
         }
     }
 
-    /** Set transform matrix to crop and center the preview picture */
-    private void setTransformationMatrix() {
-        final boolean isPortrait = mContext.get().getResources().getConfiguration().orientation
-                == Configuration.ORIENTATION_PORTRAIT;
-
-        final int previewWidth = isPortrait ? mPreviewSize.getWidth() : mPreviewSize.getHeight();
-        final int previewHeight = isPortrait ? mPreviewSize.getHeight() : mPreviewSize.getWidth();
-        final float ratioPreview = (float) getRatio(previewWidth, previewHeight);
-
-        // Calculate transformation matrix.
-        float scaleX = 1.0f;
-        float scaleY = 1.0f;
-        if (previewWidth > previewHeight) {
-            scaleY = scaleX / ratioPreview;
+    /**
+     * Calculates the crop region in `previewSize` to have the same aspect
+     * ratio as `viewSize` and center aligned.
+     */
+    private Rect calculateCenteredCrop(Size previewSize, Size viewSize) {
+        final double previewRatio = getRatio(previewSize);
+        final double viewRatio = getRatio(viewSize);
+        int width;
+        int height;
+        if (previewRatio > viewRatio) {
+            width = previewSize.getWidth();
+            height = (int) Math.round(width * viewRatio);
         } else {
-            scaleX = scaleY / ratioPreview;
+            height = previewSize.getHeight();
+            width = (int) Math.round(height / viewRatio);
         }
-
-        // Set the transform matrix.
-        final Matrix matrix = new Matrix();
-        matrix.setScale(scaleX, scaleY);
-        mScannerCallback.setTransform(matrix);
+        final int left = (previewSize.getWidth() - width) / 2;
+        final int top = (previewSize.getHeight() - height) / 2;
+        return new Rect(left, top, left + width, top + height);
     }
 
     private QrYuvLuminanceSource getFrameImage(byte[] imageData) {
-        final Rect frame = mScannerCallback.getFramePosition(mPreviewSize, mCameraOrientation);
+        final Size viewSize = mScannerCallback.getViewSize();
+        final Rect frame = calculateCenteredCrop(mPreviewSize, rotateIfPortrait(viewSize));
         final QrYuvLuminanceSource image = new QrYuvLuminanceSource(imageData,
                 mPreviewSize.getWidth(), mPreviewSize.getHeight());
         return (QrYuvLuminanceSource)
@@ -398,17 +457,18 @@
      */
     private Size getBestPreviewSize(Camera.Parameters parameters) {
         final double minRatioDiffPercent = 0.1;
-        final Size windowSize = mScannerCallback.getViewSize();
-        final double winRatio = getRatio(windowSize.getWidth(), windowSize.getHeight());
+        final Size viewSize = rotateIfPortrait(mScannerCallback.getViewSize());
+        final double viewRatio = getRatio(viewSize);
         double bestChoiceRatio = 0;
         Size bestChoice = new Size(0, 0);
         for (Camera.Size size : parameters.getSupportedPreviewSizes()) {
-            double ratio = getRatio(size.width, size.height);
+            final Size newSize = toAndroidSize(size);
+            final double ratio = getRatio(newSize);
             if (size.height * size.width > bestChoice.getWidth() * bestChoice.getHeight()
-                    && (Math.abs(bestChoiceRatio - winRatio) / winRatio > minRatioDiffPercent
-                    || Math.abs(ratio - winRatio) / winRatio <= minRatioDiffPercent)) {
-                bestChoice = new Size(size.width, size.height);
-                bestChoiceRatio = getRatio(size.width, size.height);
+                    && (Math.abs(bestChoiceRatio - viewRatio) / viewRatio > minRatioDiffPercent
+                    || Math.abs(ratio - viewRatio) / viewRatio <= minRatioDiffPercent)) {
+                bestChoice = newSize;
+                bestChoiceRatio = ratio;
             }
         }
         return bestChoice;
@@ -419,25 +479,26 @@
      * picture size and aspect ratio to choose the best one.
      */
     private Size getBestPictureSize(Camera.Parameters parameters) {
-        final Camera.Size previewSize = parameters.getPreviewSize();
-        final double previewRatio = getRatio(previewSize.width, previewSize.height);
+        final Size previewSize = mPreviewSize;
+        final double previewRatio = getRatio(previewSize);
         List<Size> bestChoices = new ArrayList<>();
         final List<Size> similarChoices = new ArrayList<>();
 
         // Filter by ratio
-        for (Camera.Size size : parameters.getSupportedPictureSizes()) {
-            double ratio = getRatio(size.width, size.height);
+        for (Camera.Size picSize : parameters.getSupportedPictureSizes()) {
+            final Size size = toAndroidSize(picSize);
+            final double ratio = getRatio(size);
             if (ratio == previewRatio) {
-                bestChoices.add(new Size(size.width, size.height));
+                bestChoices.add(size);
             } else if (Math.abs(ratio - previewRatio) < MAX_RATIO_DIFF) {
-                similarChoices.add(new Size(size.width, size.height));
+                similarChoices.add(size);
             }
         }
 
         if (bestChoices.size() == 0 && similarChoices.size() == 0) {
             Log.d(TAG, "No proper picture size, return default picture size");
             Camera.Size defaultPictureSize = parameters.getPictureSize();
-            return new Size(defaultPictureSize.width, defaultPictureSize.height);
+            return toAndroidSize(defaultPictureSize);
         }
 
         if (bestChoices.size() == 0) {
@@ -447,7 +508,7 @@
         // Get the best by area
         int bestAreaDifference = Integer.MAX_VALUE;
         Size bestChoice = null;
-        final int previewArea = previewSize.width * previewSize.height;
+        final int previewArea = previewSize.getWidth() * previewSize.getHeight();
         for (Size size : bestChoices) {
             int areaDifference = Math.abs(size.getWidth() * size.getHeight() - previewArea);
             if (areaDifference < bestAreaDifference) {
@@ -458,8 +519,20 @@
         return bestChoice;
     }
 
-    private double getRatio(double x, double y) {
-        return (x < y) ? x / y : y / x;
+    private Size rotateIfPortrait(Size size) {
+        if (mPreviewInPortrait) {
+            return new Size(size.getHeight(), size.getWidth());
+        } else {
+            return size;
+        }
+    }
+
+    private double getRatio(Size size) {
+        return size.getHeight() / (double) size.getWidth();
+    }
+
+    private Size toAndroidSize(Camera.Size size) {
+        return new Size(size.width, size.height);
     }
 
     @VisibleForTesting
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/AmbientVolumeControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/AmbientVolumeControllerTest.java
index abc1d226..e4381ae 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/AmbientVolumeControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/AmbientVolumeControllerTest.java
@@ -26,6 +26,7 @@
 
 import android.bluetooth.AudioInputControl;
 import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 
 import androidx.test.core.app.ApplicationProvider;
@@ -67,6 +68,9 @@
     @Before
     public void setUp() {
         when(mProfileManager.getVolumeControlProfile()).thenReturn(mVolumeControlProfile);
+        when(mVolumeControlProfile.isProfileReady()).thenReturn(true);
+        when(mVolumeControlProfile.getConnectionStatus(mDevice)).thenReturn(
+                BluetoothProfile.STATE_CONNECTED);
         when(mDevice.getAddress()).thenReturn(TEST_ADDRESS);
         when(mDevice.isConnected()).thenReturn(true);
         mVolumeController = new AmbientVolumeController(mProfileManager, mCallback);
@@ -74,8 +78,6 @@
 
     @Test
     public void onServiceConnected_notifyCallback() {
-        when(mVolumeControlProfile.isProfileReady()).thenReturn(true);
-
         mVolumeController.onServiceConnected();
 
         verify(mCallback).onVolumeControlServiceConnected();
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothEventManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothEventManagerTest.java
index b86f4b3..eac69234 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothEventManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothEventManagerTest.java
@@ -23,7 +23,6 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -38,12 +37,14 @@
 import android.content.IntentFilter;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.telephony.TelephonyManager;
 
 import com.android.settingslib.R;
 import com.android.settingslib.flags.Flags;
 import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settingslib.utils.ThreadUtils;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -54,6 +55,8 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
 
 import java.util.ArrayList;
@@ -61,7 +64,7 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowBluetoothAdapter.class})
+@Config(shadows = {ShadowBluetoothAdapter.class, BluetoothEventManagerTest.ShadowThreadUtils.class})
 public class BluetoothEventManagerTest {
     @Rule
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@@ -100,6 +103,8 @@
     private BluetoothUtils.ErrorListener mErrorListener;
     @Mock
     private LocalBluetoothLeBroadcast mBroadcast;
+    @Mock
+    private UserManager mUserManager;
 
     private Context mContext;
     private Intent mIntent;
@@ -130,6 +135,7 @@
         mCachedDevice1 = new CachedBluetoothDevice(mContext, mLocalProfileManager, mDevice1);
         mCachedDevice2 = new CachedBluetoothDevice(mContext, mLocalProfileManager, mDevice2);
         mCachedDevice3 = new CachedBluetoothDevice(mContext, mLocalProfileManager, mDevice3);
+        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
         BluetoothUtils.setErrorListener(mErrorListener);
     }
 
@@ -196,6 +202,7 @@
      * callback.
      */
     @Test
+    @EnableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
     public void dispatchProfileConnectionStateChanged_registerCallback_shouldDispatchCallback() {
         mBluetoothEventManager.registerCallback(mBluetoothCallback);
 
@@ -208,10 +215,12 @@
 
     /**
      * dispatchProfileConnectionStateChanged should not call {@link
-     * LocalBluetoothLeBroadcast}#updateFallbackActiveDeviceIfNeeded when audio sharing flag is off.
+     * LocalBluetoothLeBroadcast}#updateFallbackActiveDeviceIfNeeded and
+     * {@link LocalBluetoothLeBroadcast}#handleProfileConnected when audio sharing flag is off.
      */
     @Test
-    public void dispatchProfileConnectionStateChanged_flagOff_noUpdateFallbackDevice() {
+    @EnableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
+    public void dispatchProfileConnectionStateChanged_flagOff_noCallToBroadcastProfile() {
         setUpAudioSharing(/* enableFlag= */ false, /* enableFeature= */ true, /* enableProfile= */
                 true, /* workProfile= */ false);
         mBluetoothEventManager.dispatchProfileConnectionStateChanged(
@@ -219,16 +228,19 @@
                 BluetoothProfile.STATE_DISCONNECTED,
                 BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
 
-        verify(mBroadcast, times(0)).updateFallbackActiveDeviceIfNeeded();
+        verify(mBroadcast, never()).updateFallbackActiveDeviceIfNeeded();
+        verify(mBroadcast, never()).handleProfileConnected(any(), anyInt(), any());
     }
 
     /**
      * dispatchProfileConnectionStateChanged should not call {@link
-     * LocalBluetoothLeBroadcast}#updateFallbackActiveDeviceIfNeeded when the device does not
-     * support audio sharing.
+     * LocalBluetoothLeBroadcast}#updateFallbackActiveDeviceIfNeeded and
+     * {@link LocalBluetoothLeBroadcast}#handleProfileConnected when the device does not support
+     * audio sharing.
      */
     @Test
-    public void dispatchProfileConnectionStateChanged_notSupport_noUpdateFallbackDevice() {
+    @EnableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
+    public void dispatchProfileConnectionStateChanged_notSupport_noCallToBroadcastProfile() {
         setUpAudioSharing(/* enableFlag= */ true, /* enableFeature= */ false, /* enableProfile= */
                 true, /* workProfile= */ false);
         mBluetoothEventManager.dispatchProfileConnectionStateChanged(
@@ -236,7 +248,8 @@
                 BluetoothProfile.STATE_DISCONNECTED,
                 BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
 
-        verify(mBroadcast, times(0)).updateFallbackActiveDeviceIfNeeded();
+        verify(mBroadcast, never()).updateFallbackActiveDeviceIfNeeded();
+        verify(mBroadcast, never()).handleProfileConnected(any(), anyInt(), any());
     }
 
     /**
@@ -245,6 +258,7 @@
      * not ready.
      */
     @Test
+    @EnableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
     public void dispatchProfileConnectionStateChanged_profileNotReady_noUpdateFallbackDevice() {
         setUpAudioSharing(/* enableFlag= */ true, /* enableFeature= */ true, /* enableProfile= */
                 false, /* workProfile= */ false);
@@ -253,7 +267,7 @@
                 BluetoothProfile.STATE_DISCONNECTED,
                 BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
 
-        verify(mBroadcast, times(0)).updateFallbackActiveDeviceIfNeeded();
+        verify(mBroadcast, never()).updateFallbackActiveDeviceIfNeeded();
     }
 
     /**
@@ -262,6 +276,7 @@
      * other than LE_AUDIO_BROADCAST_ASSISTANT or state other than STATE_DISCONNECTED.
      */
     @Test
+    @EnableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
     public void dispatchProfileConnectionStateChanged_notAssistantProfile_noUpdateFallbackDevice() {
         setUpAudioSharing(/* enableFlag= */ true, /* enableFeature= */ true, /* enableProfile= */
                 true, /* workProfile= */ false);
@@ -270,16 +285,17 @@
                 BluetoothProfile.STATE_DISCONNECTED,
                 BluetoothProfile.LE_AUDIO);
 
-        verify(mBroadcast, times(0)).updateFallbackActiveDeviceIfNeeded();
+        verify(mBroadcast, never()).updateFallbackActiveDeviceIfNeeded();
     }
 
     /**
      * dispatchProfileConnectionStateChanged should not call {@link
-     * LocalBluetoothLeBroadcast}#updateFallbackActiveDeviceIfNeeded when triggered for
-     * work profile.
+     * LocalBluetoothLeBroadcast}#updateFallbackActiveDeviceIfNeeded and
+     * {@link LocalBluetoothLeBroadcast}#handleProfileConnected when triggered for work profile.
      */
     @Test
-    public void dispatchProfileConnectionStateChanged_workProfile_noUpdateFallbackDevice() {
+    @EnableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
+    public void dispatchProfileConnectionStateChanged_workProfile_noCallToBroadcastProfile() {
         setUpAudioSharing(/* enableFlag= */ true, /* enableFeature= */ true, /* enableProfile= */
                 true, /* workProfile= */ true);
         mBluetoothEventManager.dispatchProfileConnectionStateChanged(
@@ -287,7 +303,8 @@
                 BluetoothProfile.STATE_DISCONNECTED,
                 BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
 
-        verify(mBroadcast).updateFallbackActiveDeviceIfNeeded();
+        verify(mBroadcast, never()).updateFallbackActiveDeviceIfNeeded();
+        verify(mBroadcast, never()).handleProfileConnected(any(), anyInt(), any());
     }
 
     /**
@@ -296,7 +313,8 @@
      * disconnected and audio sharing is enabled.
      */
     @Test
-    public void dispatchProfileConnectionStateChanged_audioSharing_updateFallbackDevice() {
+    @EnableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
+    public void dispatchProfileConnectionStateChanged_assistDisconnected_updateFallbackDevice() {
         setUpAudioSharing(/* enableFlag= */ true, /* enableFeature= */ true, /* enableProfile= */
                 true, /* workProfile= */ false);
         mBluetoothEventManager.dispatchProfileConnectionStateChanged(
@@ -305,6 +323,27 @@
                 BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
 
         verify(mBroadcast).updateFallbackActiveDeviceIfNeeded();
+        verify(mBroadcast, never()).handleProfileConnected(any(), anyInt(), any());
+    }
+
+    /**
+     * dispatchProfileConnectionStateChanged should call {@link
+     * LocalBluetoothLeBroadcast}#handleProfileConnected when assistant profile is connected and
+     * audio sharing is enabled.
+     */
+    @Test
+    @EnableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
+    public void dispatchProfileConnectionStateChanged_assistConnected_handleStateChanged() {
+        setUpAudioSharing(/* enableFlag= */ true, /* enableFeature= */ true, /* enableProfile= */
+                true, /* workProfile= */ false);
+        mBluetoothEventManager.dispatchProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothProfile.STATE_CONNECTED,
+                BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
+
+        verify(mBroadcast, never()).updateFallbackActiveDeviceIfNeeded();
+        verify(mBroadcast).handleProfileConnected(mCachedBluetoothDevice,
+                BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT, mBtManager);
     }
 
     private void setUpAudioSharing(boolean enableFlag, boolean enableFeature,
@@ -325,13 +364,19 @@
         LocalBluetoothLeBroadcastAssistant assistant =
                 mock(LocalBluetoothLeBroadcastAssistant.class);
         when(assistant.isProfileReady()).thenReturn(enableProfile);
-        LocalBluetoothProfileManager profileManager = mock(LocalBluetoothProfileManager.class);
-        when(profileManager.getLeAudioBroadcastProfile()).thenReturn(mBroadcast);
-        when(profileManager.getLeAudioBroadcastAssistantProfile()).thenReturn(assistant);
-        when(mBtManager.getProfileManager()).thenReturn(profileManager);
-        UserManager userManager = mock(UserManager.class);
-        when(mContext.getSystemService(UserManager.class)).thenReturn(userManager);
-        when(userManager.isManagedProfile()).thenReturn(workProfile);
+        when(mLocalProfileManager.getLeAudioBroadcastProfile()).thenReturn(mBroadcast);
+        when(mLocalProfileManager.getLeAudioBroadcastAssistantProfile()).thenReturn(assistant);
+        when(mUserManager.isManagedProfile()).thenReturn(workProfile);
+        if (workProfile) {
+            mBluetoothEventManager =
+                    new BluetoothEventManager(
+                            mLocalAdapter,
+                            mBtManager,
+                            mCachedDeviceManager,
+                            mContext,
+                            /* handler= */ null,
+                            /* userHandle= */ null);
+        }
     }
 
     @Test
@@ -665,4 +710,12 @@
 
         verify(mBluetoothCallback).onAutoOnStateChanged(anyInt());
     }
+
+    @Implements(value = ThreadUtils.class)
+    public static class ShadowThreadUtils {
+        @Implementation
+        protected static void postOnBackgroundThread(Runnable runnable) {
+            runnable.run();
+        }
+    }
 }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java
index ebe6128..b781412 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java
@@ -15,7 +15,9 @@
  */
 package com.android.settingslib.bluetooth;
 
+import static com.android.settingslib.bluetooth.BluetoothUtils.getInputDevice;
 import static com.android.settingslib.bluetooth.BluetoothUtils.isAvailableAudioSharingMediaBluetoothDevice;
+import static com.android.settingslib.bluetooth.BluetoothUtils.isDeviceStylus;
 import static com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast.UNKNOWN_VALUE_PLACEHOLDER;
 import static com.android.settingslib.flags.Flags.FLAG_ENABLE_DETERMINING_ADVANCED_DETAILS_HEADER_WITH_METADATA;
 
@@ -42,6 +44,7 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
+import android.hardware.input.InputManager;
 import android.media.AudioDeviceAttributes;
 import android.media.AudioDeviceInfo;
 import android.media.AudioManager;
@@ -51,6 +54,7 @@
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.Settings;
 import android.util.Pair;
+import android.view.InputDevice;
 
 import com.android.internal.R;
 import com.android.settingslib.flags.Flags;
@@ -97,14 +101,18 @@
     @Mock private LocalBluetoothLeBroadcastAssistant mAssistant;
     @Mock private CachedBluetoothDeviceManager mDeviceManager;
     @Mock private BluetoothLeBroadcastReceiveState mLeBroadcastReceiveState;
+    @Mock
+    private InputManager mInputManager;
 
     private Context mContext;
     private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+    private final InputDevice mInputDevice = mock(InputDevice.class);
     private static final String STRING_METADATA = "string_metadata";
     private static final String LE_AUDIO_SHARING_METADATA = "le_audio_sharing";
     private static final String BOOL_METADATA = "true";
     private static final String INT_METADATA = "25";
     private static final int METADATA_FAST_PAIR_CUSTOMIZED_FIELDS = 25;
+    private static final int TEST_DEVICE_ID = 123;
     private static final String KEY_HEARABLE_CONTROL_SLICE = "HEARABLE_CONTROL_SLICE_WITH_WIDTH";
     private static final String CONTROL_METADATA =
             "<HEARABLE_CONTROL_SLICE_WITH_WIDTH>"
@@ -115,6 +123,7 @@
     private static final String FAKE_TEMP_BOND_METADATA = "<TEMP_BOND_TYPE>fake</TEMP_BOND_TYPE>";
     private static final String TEST_EXCLUSIVE_MANAGER_PACKAGE = "com.test.manager";
     private static final String TEST_EXCLUSIVE_MANAGER_COMPONENT = "com.test.manager/.component";
+    private static final String TEST_ADDRESS = "11:22:33:44:55:66";
     private static final int TEST_BROADCAST_ID = 25;
 
     @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@@ -134,6 +143,10 @@
         when(mA2dpProfile.getProfileId()).thenReturn(BluetoothProfile.A2DP);
         when(mLeAudioProfile.getProfileId()).thenReturn(BluetoothProfile.LE_AUDIO);
         when(mHearingAid.getProfileId()).thenReturn(BluetoothProfile.HEARING_AID);
+        when(mContext.getSystemService(InputManager.class)).thenReturn(mInputManager);
+        when(mInputManager.getInputDeviceIds()).thenReturn(new int[]{TEST_DEVICE_ID});
+        when(mInputManager.getInputDeviceBluetoothAddress(TEST_DEVICE_ID)).thenReturn(TEST_ADDRESS);
+        when(mInputManager.getInputDevice(TEST_DEVICE_ID)).thenReturn(mInputDevice);
     }
 
     @Test
@@ -1097,9 +1110,8 @@
 
     @Test
     public void getAudioDeviceAttributesForSpatialAudio_bleHeadset() {
-        String address = "11:22:33:44:55:66";
         when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
-        when(mCachedBluetoothDevice.getAddress()).thenReturn(address);
+        when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_ADDRESS);
         when(mCachedBluetoothDevice.getProfiles()).thenReturn(List.of(mLeAudioProfile));
         when(mLeAudioProfile.isEnabled(mBluetoothDevice)).thenReturn(true);
 
@@ -1112,14 +1124,13 @@
                         new AudioDeviceAttributes(
                                 AudioDeviceAttributes.ROLE_OUTPUT,
                                 AudioDeviceInfo.TYPE_BLE_HEADSET,
-                                address));
+                                TEST_ADDRESS));
     }
 
     @Test
     public void getAudioDeviceAttributesForSpatialAudio_bleSpeaker() {
-        String address = "11:22:33:44:55:66";
         when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
-        when(mCachedBluetoothDevice.getAddress()).thenReturn(address);
+        when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_ADDRESS);
         when(mCachedBluetoothDevice.getProfiles()).thenReturn(List.of(mLeAudioProfile));
         when(mLeAudioProfile.isEnabled(mBluetoothDevice)).thenReturn(true);
 
@@ -1132,14 +1143,14 @@
                         new AudioDeviceAttributes(
                                 AudioDeviceAttributes.ROLE_OUTPUT,
                                 AudioDeviceInfo.TYPE_BLE_SPEAKER,
-                                address));
+                                TEST_ADDRESS));
     }
 
     @Test
     public void getAudioDeviceAttributesForSpatialAudio_a2dp() {
-        String address = "11:22:33:44:55:66";
+
         when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
-        when(mCachedBluetoothDevice.getAddress()).thenReturn(address);
+        when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_ADDRESS);
         when(mCachedBluetoothDevice.getProfiles()).thenReturn(List.of(mA2dpProfile));
         when(mA2dpProfile.isEnabled(mBluetoothDevice)).thenReturn(true);
 
@@ -1152,14 +1163,13 @@
                         new AudioDeviceAttributes(
                                 AudioDeviceAttributes.ROLE_OUTPUT,
                                 AudioDeviceInfo.TYPE_BLUETOOTH_A2DP,
-                                address));
+                                TEST_ADDRESS));
     }
 
     @Test
     public void getAudioDeviceAttributesForSpatialAudio_hearingAid() {
-        String address = "11:22:33:44:55:66";
         when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
-        when(mCachedBluetoothDevice.getAddress()).thenReturn(address);
+        when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_ADDRESS);
         when(mCachedBluetoothDevice.getProfiles()).thenReturn(List.of(mHearingAid));
         when(mHearingAid.isEnabled(mBluetoothDevice)).thenReturn(true);
 
@@ -1172,7 +1182,7 @@
                         new AudioDeviceAttributes(
                                 AudioDeviceAttributes.ROLE_OUTPUT,
                                 AudioDeviceInfo.TYPE_HEARING_AID,
-                                address));
+                                TEST_ADDRESS));
     }
 
     @Test
@@ -1339,6 +1349,36 @@
     }
 
     @Test
+    public void isMediaDevice_returnsFalse() {
+        when(mCachedBluetoothDevice.getProfiles()).thenReturn(ImmutableList.of(mAssistant));
+        assertThat(BluetoothUtils.isMediaDevice(mCachedBluetoothDevice)).isFalse();
+    }
+
+    @Test
+    public void isMediaDevice_returnsTrue() {
+        when(mCachedBluetoothDevice.getProfiles()).thenReturn(ImmutableList.of(mLeAudioProfile));
+        assertThat(BluetoothUtils.isMediaDevice(mCachedBluetoothDevice)).isTrue();
+    }
+
+    @Test
+    public void isLeAudioSupported_returnsFalse() {
+        when(mCachedBluetoothDevice.getProfiles()).thenReturn(ImmutableList.of(mLeAudioProfile));
+        when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
+        when(mLeAudioProfile.isEnabled(mBluetoothDevice)).thenReturn(false);
+
+        assertThat(BluetoothUtils.isLeAudioSupported(mCachedBluetoothDevice)).isFalse();
+    }
+
+    @Test
+    public void isLeAudioSupported_returnsTrue() {
+        when(mCachedBluetoothDevice.getProfiles()).thenReturn(ImmutableList.of(mLeAudioProfile));
+        when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
+        when(mLeAudioProfile.isEnabled(mBluetoothDevice)).thenReturn(true);
+
+        assertThat(BluetoothUtils.isLeAudioSupported(mCachedBluetoothDevice)).isTrue();
+    }
+
+    @Test
     public void isTemporaryBondDevice_hasMetadata_returnsTrue() {
         when(mBluetoothDevice.getMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS))
                 .thenReturn(TEMP_BOND_METADATA.getBytes());
@@ -1375,4 +1415,54 @@
         verify(mBluetoothDevice).setMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS,
                 TEMP_BOND_METADATA.getBytes());
     }
+
+    @Test
+    public void getInputDevice_addressNotMatched_returnsNull() {
+        assertThat(getInputDevice(mContext, "123")).isNull();
+    }
+
+    @Test
+    public void getInputDevice_isInputDevice_returnsInputDevice() {
+        assertThat(getInputDevice(mContext, TEST_ADDRESS)).isEqualTo(mInputDevice);
+    }
+
+    @Test
+    public void isDeviceStylus_noDevices_false() {
+        assertThat(isDeviceStylus(null, null)).isFalse();
+    }
+
+    @Test
+    public void isDeviceStylus_nonStylusInputDevice_false() {
+        InputDevice inputDevice = new InputDevice.Builder()
+                .setSources(InputDevice.SOURCE_DPAD)
+                .build();
+
+        assertThat(isDeviceStylus(inputDevice, null)).isFalse();
+    }
+
+    @Test
+    public void isDeviceStylus_stylusInputDevice_true() {
+        InputDevice inputDevice = new InputDevice.Builder()
+                .setSources(InputDevice.SOURCE_STYLUS)
+                .build();
+
+        assertThat(isDeviceStylus(inputDevice, null)).isTrue();
+    }
+
+    @Test
+    public void isDeviceStylus_nonStylusBluetoothDevice_false() {
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_DEVICE_TYPE)).thenReturn(
+                BluetoothDevice.DEVICE_TYPE_WATCH.getBytes());
+
+        assertThat(isDeviceStylus(null, mCachedBluetoothDevice)).isFalse();
+    }
+
+    @Test
+    public void isDeviceStylus_stylusBluetoothDevice_true() {
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_DEVICE_TYPE)).thenReturn(
+                BluetoothDevice.DEVICE_TYPE_STYLUS.getBytes());
+        when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
+
+        assertThat(isDeviceStylus(null, mCachedBluetoothDevice)).isTrue();
+    }
 }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java
index 69e99c6..94199df 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java
@@ -662,10 +662,10 @@
     @Test
     @RequiresFlagsEnabled(
             com.android.settingslib.flags.Flags.FLAG_HEARING_DEVICE_SET_CONNECTION_STATUS_REPORT)
-    public void onDeviceUnpaired_hearingDevice_callReportConnectionStatus() {
+    public void onDeviceUnpaired_containsHearingAidInfo_callReportConnectionStatus() {
         when(mDevice1.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
-        when(mCachedDevice1.getProfiles()).thenReturn(
-                ImmutableList.of(mHapClientProfile, mHearingAidProfile));
+        mCachedDevice1.setHearingAidInfo(
+                new HearingAidInfo.Builder().setHiSyncId(HISYNCID1).build());
 
         mCachedDeviceManager.onDeviceUnpaired(mCachedDevice1);
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/satellite/SatelliteDialogUtilsTest.kt b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/satellite/SatelliteDialogUtilsTest.kt
index 1deb625..71e72fe 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/satellite/SatelliteDialogUtilsTest.kt
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/satellite/SatelliteDialogUtilsTest.kt
@@ -17,7 +17,6 @@
 package com.android.settingslib.satellite
 
 import android.content.Context
-import android.platform.test.annotations.RequiresFlagsEnabled
 import android.telephony.satellite.SatelliteManager
 import android.telephony.satellite.SatelliteManager.SATELLITE_MODEM_STATE_ENABLING_SATELLITE
 import android.telephony.satellite.SatelliteManager.SATELLITE_MODEM_STATE_OFF
@@ -25,7 +24,6 @@
 import android.telephony.satellite.SatelliteModemStateCallback
 import android.util.AndroidRuntimeException
 import androidx.test.core.app.ApplicationProvider
-import com.android.internal.telephony.flags.Flags
 import com.android.settingslib.satellite.SatelliteDialogUtils.TYPE_IS_WIFI
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
@@ -38,12 +36,12 @@
 import org.junit.runner.RunWith
 import org.mockito.Mock
 import org.mockito.Mockito.any
+import org.mockito.Mockito.verify
 import org.mockito.Mockito.`when`
 import org.mockito.Spy
+import org.mockito.internal.verification.Times
 import org.mockito.junit.MockitoJUnit
 import org.mockito.junit.MockitoRule
-import org.mockito.Mockito.verify
-import org.mockito.internal.verification.Times
 import org.robolectric.RobolectricTestRunner
 
 @RunWith(RobolectricTestRunner::class)
@@ -66,7 +64,6 @@
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun mayStartSatelliteWarningDialog_satelliteIsOn_showWarningDialog(): Unit = runBlocking {
         `when`(satelliteManager.registerForModemStateChanged(any(), any()))
                 .thenAnswer { invocation ->
@@ -87,7 +84,6 @@
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun mayStartSatelliteWarningDialog_satelliteIsOff_notShowWarningDialog() = runBlocking {
         `when`(satelliteManager.registerForModemStateChanged(any(), any()))
                 .thenAnswer { invocation ->
@@ -107,7 +103,6 @@
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun mayStartSatelliteWarningDialog_noSatelliteManager_notShowWarningDialog() = runBlocking {
         `when`(context.getSystemService(SatelliteManager::class.java)).thenReturn(null)
 
@@ -120,7 +115,6 @@
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun mayStartSatelliteWarningDialog_satelliteErrorResult_notShowWarningDialog() = runBlocking {
         `when`(satelliteManager.registerForModemStateChanged(any(), any()))
                 .thenReturn(SATELLITE_RESULT_MODEM_ERROR)
@@ -134,7 +128,6 @@
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun mayStartSatelliteWarningDialog_phoneCrash_notShowWarningDialog() = runBlocking {
         `when`(satelliteManager.registerForModemStateChanged(any(), any()))
                 .thenThrow(IllegalStateException("Telephony is null!!!"))
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java
index c939c77..5076dea 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java
@@ -78,14 +78,14 @@
     @Test
     public void shouldHaveRadioButtonWidgetLayoutByDefault() {
         assertThat(mPreference.getWidgetLayoutResource())
-                .isEqualTo(R.layout.preference_widget_radiobutton);
+                .isEqualTo(R.layout.settingslib_preference_widget_radiobutton);
     }
 
     @Test
     public void shouldHaveCheckBoxWidgetLayoutIfSet() {
         mPreference = new SelectorWithWidgetPreference(mContext, true);
         assertThat(mPreference.getWidgetLayoutResource())
-                .isEqualTo(R.layout.preference_widget_checkbox);
+                .isEqualTo(R.layout.settingslib_preference_widget_checkbox);
     }
 
     @Test
diff --git a/packages/SettingsLib/tests/robotests/testutils/com/android/settingslib/testutils/shadow/ShadowColorDisplayManager.java b/packages/SettingsLib/tests/robotests/testutils/com/android/settingslib/testutils/shadow/ShadowColorDisplayManager.java
index a9fd380..76b6aa8 100644
--- a/packages/SettingsLib/tests/robotests/testutils/com/android/settingslib/testutils/shadow/ShadowColorDisplayManager.java
+++ b/packages/SettingsLib/tests/robotests/testutils/com/android/settingslib/testutils/shadow/ShadowColorDisplayManager.java
@@ -28,6 +28,7 @@
 public class ShadowColorDisplayManager extends org.robolectric.shadows.ShadowColorDisplayManager {
 
     private boolean mIsReduceBrightColorsActivated;
+    private int mColorMode;
 
     @Implementation
     @SystemApi
@@ -43,4 +44,13 @@
         return mIsReduceBrightColorsActivated;
     }
 
+    @Implementation
+    public int getColorMode() {
+        return mColorMode;
+    }
+
+    @Implementation
+    public void setColorMode(int colorMode) {
+        mColorMode = colorMode;
+    }
 }
diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java
index 60fe156..f692601e 100644
--- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java
+++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java
@@ -95,6 +95,7 @@
         Settings.Secure.ACCESSIBILITY_AUTOCLICK_IGNORE_MINOR_CURSOR_MOVEMENT,
         Settings.Secure.ACCESSIBILITY_AUTOCLICK_ENABLED,
         Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY,
+        Settings.Secure.ACCESSIBILITY_AUTOCLICK_PANEL_POSITION,
         Settings.Secure.ACCESSIBILITY_LARGE_POINTER_ICON,
         Settings.Secure.PREFERRED_TTY_MODE,
         Settings.Secure.ENHANCED_VOICE_PRIVACY_ENABLED,
diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java
index 3d941e8..e42d3fb 100644
--- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java
+++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java
@@ -146,6 +146,7 @@
                 Secure.ACCESSIBILITY_AUTOCLICK_IGNORE_MINOR_CURSOR_MOVEMENT, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.ACCESSIBILITY_AUTOCLICK_ENABLED, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.ACCESSIBILITY_AUTOCLICK_DELAY, NON_NEGATIVE_INTEGER_VALIDATOR);
+        VALIDATORS.put(Secure.ACCESSIBILITY_AUTOCLICK_PANEL_POSITION, ANY_STRING_VALIDATOR);
         VALIDATORS.put(Secure.ACCESSIBILITY_LARGE_POINTER_ICON, BOOLEAN_VALIDATOR);
         VALIDATORS.put(
                 Secure.PREFERRED_TTY_MODE,
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
index f03a5fb..c29a5a2 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
@@ -1727,6 +1727,8 @@
         dumpSetting(s, p,
                 Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY,
                 SecureSettingsProto.Accessibility.AUTOCLICK_DELAY);
+        dumpSetting(s, p, Settings.Secure.ACCESSIBILITY_AUTOCLICK_PANEL_POSITION,
+                SecureSettingsProto.Accessibility.AUTOCLICK_PANEL_POSITION);
         dumpSetting(s, p,
                 Settings.Secure.ACCESSIBILITY_BUTTON_TARGET_COMPONENT,
                 SecureSettingsProto.Accessibility.BUTTON_TARGET_COMPONENT);
diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
index 85617ba..70c042c 100644
--- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
+++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
@@ -811,7 +811,7 @@
                  Settings.Secure.V_TO_U_RESTORE_ALLOWLIST,
                  Settings.Secure.V_TO_U_RESTORE_DENYLIST,
                  Settings.Secure.REDACT_OTP_NOTIFICATION_WHILE_CONNECTED_TO_WIFI,
-                 Settings.Secure.REDACT_OTP_NOTIFICATION_IMMEDIATELY);
+                 Settings.Secure.OTP_NOTIFICATION_REDACTION_LOCK_TIME);
 
     @Test
     public void systemSettingsBackedUpOrDenied() {
diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp
index 49cdec1..b53cb27 100644
--- a/packages/SystemUI/Android.bp
+++ b/packages/SystemUI/Android.bp
@@ -461,9 +461,9 @@
     resource_dirs: [],
     static_libs: [
         "//frameworks/libs/systemui:compilelib",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/dagger:api",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/util/settings:api",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail:impl",
+        "com.android.systemui.dagger-api",
+        "com.android.systemui.util.settings-api",
+        "com.android.systemui.retail-impl",
         "SystemUI-res",
         "WifiTrackerLib",
         "WindowManager-Shell",
@@ -751,9 +751,9 @@
     ],
     static_libs: [
         "//frameworks/libs/systemui:compilelib",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/dagger:api",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/util/settings:api",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail:impl",
+        "com.android.systemui.dagger-api",
+        "com.android.systemui.util.settings-api",
+        "com.android.systemui.retail-impl",
         "SystemUI-tests-base",
         "androidx.test.uiautomator_uiautomator",
         "androidx.core_core-animation-testing",
diff --git a/packages/SystemUI/TEST_MAPPING b/packages/SystemUI/TEST_MAPPING
index cc01071..1362ffe 100644
--- a/packages/SystemUI/TEST_MAPPING
+++ b/packages/SystemUI/TEST_MAPPING
@@ -24,6 +24,17 @@
       "name": "SystemUIGoogleTests"
     },
     {
+      "name": "SystemUIClocksTests",
+      "options": [
+        {
+          "exclude-annotation": "org.junit.Ignore"
+        },
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        }
+      ]
+    },
+    {
       // Permission indicators
       "name": "CtsPermissionUiTestCases",
       "options": [
diff --git a/packages/SystemUI/aconfig/systemui.aconfig b/packages/SystemUI/aconfig/systemui.aconfig
index eb5b22f..f2c76ba 100644
--- a/packages/SystemUI/aconfig/systemui.aconfig
+++ b/packages/SystemUI/aconfig/systemui.aconfig
@@ -1939,6 +1939,16 @@
 }
 
 flag {
+   name: "notification_appear_nonlinear"
+   namespace: "systemui"
+   description: "Fix linear usage of notification appear"
+   bug: "397658189"
+   metadata {
+     purpose: PURPOSE_BUGFIX
+   }
+}
+
+flag {
   name: "disable_shade_trackpad_two_finger_swipe"
   namespace: "systemui"
   description: "Disables expansion of the shade via two finger swipe on a trackpad"
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/FontInterpolator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/FontInterpolator.kt
index f8bcb81..bc75b1d 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/FontInterpolator.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/FontInterpolator.kt
@@ -22,19 +22,8 @@
 import android.util.LruCache
 import android.util.MathUtils
 import androidx.annotation.VisibleForTesting
-import java.lang.Float.max
-import java.lang.Float.min
 import kotlin.math.roundToInt
 
-private const val TAG_WGHT = "wght"
-private const val TAG_ITAL = "ital"
-
-private const val FONT_WEIGHT_DEFAULT_VALUE = 400f
-private const val FONT_ITALIC_MAX = 1f
-private const val FONT_ITALIC_MIN = 0f
-private const val FONT_ITALIC_ANIMATION_STEP = 0.1f
-private const val FONT_ITALIC_DEFAULT_VALUE = 0f
-
 /** Caches for font interpolation */
 interface FontCache {
     val animationFrameCount: Int
@@ -91,11 +80,8 @@
 class FontInterpolator(val fontCache: FontCache = FontCacheImpl()) {
     /** Linear interpolate the font variation settings. */
     fun lerp(start: Font, end: Font, progress: Float, linearProgress: Float): Font {
-        if (progress == 0f) {
-            return start
-        } else if (progress == 1f) {
-            return end
-        }
+        if (progress <= 0f) return start
+        if (progress >= 1f) return end
 
         val startAxes = start.axes ?: EMPTY_AXES
         val endAxes = end.axes ?: EMPTY_AXES
@@ -110,7 +96,7 @@
             InterpKey(start, end, (linearProgress * fontCache.animationFrameCount).roundToInt())
         fontCache.get(iKey)?.let {
             if (DEBUG) {
-                Log.d(LOG_TAG, "[$progress] Interp. cache hit for $iKey")
+                Log.d(LOG_TAG, "[$progress, $linearProgress] Interp. cache hit for $iKey")
             }
             return it
         }
@@ -121,37 +107,16 @@
         // and also pre-fill the missing axes value with default value from 'fvar' table.
         val newAxes =
             lerp(startAxes, endAxes) { tag, startValue, endValue ->
-                when (tag) {
-                    TAG_WGHT ->
-                        MathUtils.lerp(
-                            startValue ?: FONT_WEIGHT_DEFAULT_VALUE,
-                            endValue ?: FONT_WEIGHT_DEFAULT_VALUE,
-                            progress,
-                        )
-                    TAG_ITAL ->
-                        adjustItalic(
-                            MathUtils.lerp(
-                                startValue ?: FONT_ITALIC_DEFAULT_VALUE,
-                                endValue ?: FONT_ITALIC_DEFAULT_VALUE,
-                                progress,
-                            )
-                        )
-                    else -> {
-                        require(startValue != null && endValue != null) {
-                            "Unable to interpolate due to unknown default axes value : $tag"
-                        }
-                        MathUtils.lerp(startValue, endValue, progress)
-                    }
-                }
+                MathUtils.lerp(startValue, endValue, progress)
             }
 
         // Check if we already make font for this axes. This is typically happens if the animation
-        // happens backward.
+        // happens backward and is being linearly interpolated.
         val vKey = VarFontKey(start, newAxes)
         fontCache.get(vKey)?.let {
             fontCache.put(iKey, it)
             if (DEBUG) {
-                Log.d(LOG_TAG, "[$progress] Axis cache hit for $vKey")
+                Log.d(LOG_TAG, "[$progress, $linearProgress] Axis cache hit for $vKey")
             }
             return it
         }
@@ -164,14 +129,14 @@
         fontCache.put(vKey, newFont)
 
         // Cache misses are likely to create memory leaks, so this is logged at error level.
-        Log.e(LOG_TAG, "[$progress] Cache MISS for $iKey / $vKey")
+        Log.e(LOG_TAG, "[$progress, $linearProgress] Cache MISS for $iKey / $vKey")
         return newFont
     }
 
     private fun lerp(
         start: Array<FontVariationAxis>,
         end: Array<FontVariationAxis>,
-        filter: (tag: String, left: Float?, right: Float?) -> Float,
+        filter: (tag: String, left: Float, right: Float) -> Float,
     ): List<FontVariationAxis> {
         // Safe to modify result of Font#getAxes since it returns cloned object.
         start.sortBy { axis -> axis.tag }
@@ -191,39 +156,37 @@
                     else -> tagA.compareTo(tagB)
                 }
 
-            val axis =
+            val tag =
                 when {
-                    comp == 0 -> {
-                        val v = filter(tagA!!, start[i++].styleValue, end[j++].styleValue)
-                        FontVariationAxis(tagA, v)
-                    }
-                    comp < 0 -> {
-                        val v = filter(tagA!!, start[i++].styleValue, null)
-                        FontVariationAxis(tagA, v)
-                    }
-                    else -> { // comp > 0
-                        val v = filter(tagB!!, null, end[j++].styleValue)
-                        FontVariationAxis(tagB, v)
-                    }
+                    comp == 0 -> tagA!!
+                    comp < 0 -> tagA!!
+                    else -> tagB!!
                 }
 
-            result.add(axis)
+            val axisDefinition = GSFAxes.getAxis(tag)
+            require(comp == 0 || axisDefinition != null) {
+                "Unable to interpolate due to unknown default axes value: $tag"
+            }
+
+            val axisValue =
+                when {
+                    comp == 0 -> filter(tag, start[i++].styleValue, end[j++].styleValue)
+                    comp < 0 -> filter(tag, start[i++].styleValue, axisDefinition!!.defaultValue)
+                    else -> filter(tag, axisDefinition!!.defaultValue, end[j++].styleValue)
+                }
+
+            // Round axis value to valid intermediate steps. This improves the cache hit rate.
+            val step = axisDefinition?.animationStep ?: DEFAULT_ANIMATION_STEP
+            result.add(FontVariationAxis(tag, (axisValue / step).roundToInt() * step))
         }
         return result
     }
 
-    // For the performance reasons, we animate italic with FONT_ITALIC_ANIMATION_STEP. This helps
-    // Cache hit ratio in the Skia glyph cache.
-    private fun adjustItalic(value: Float) =
-        coerceInWithStep(value, FONT_ITALIC_MIN, FONT_ITALIC_MAX, FONT_ITALIC_ANIMATION_STEP)
-
-    private fun coerceInWithStep(v: Float, min: Float, max: Float, step: Float) =
-        (v.coerceIn(min, max) / step).toInt() * step
-
     companion object {
         private const val LOG_TAG = "FontInterpolator"
         private val DEBUG = Log.isLoggable(LOG_TAG, Log.DEBUG)
         private val EMPTY_AXES = arrayOf<FontVariationAxis>()
+        private const val DEFAULT_ANIMATION_STEP = 1f
 
         // Returns true if given two font instance can be interpolated.
         fun canInterpolate(start: Font, end: Font) =
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/FontVariationUtils.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/FontVariationUtils.kt
index 9545bda..9a74687 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/FontVariationUtils.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/FontVariationUtils.kt
@@ -1,12 +1,20 @@
-package com.android.systemui.animation
+/*
+ * Copyright (C) 2024 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.
+ */
 
-object GSFAxes {
-    const val WEIGHT = "wght"
-    const val WIDTH = "wdth"
-    const val SLANT = "slnt"
-    const val ROUND = "ROND"
-    const val OPTICAL_SIZE = "opsz"
-}
+package com.android.systemui.animation
 
 class FontVariationUtils {
     private var mWeight = -1
@@ -46,20 +54,20 @@
         }
         var resultString = ""
         if (mWeight >= 0) {
-            resultString += "'${GSFAxes.WEIGHT}' $mWeight"
+            resultString += "'${GSFAxes.WEIGHT.tag}' $mWeight"
         }
         if (mWidth >= 0) {
             resultString +=
-                (if (resultString.isBlank()) "" else ", ") + "'${GSFAxes.WIDTH}' $mWidth"
+                (if (resultString.isBlank()) "" else ", ") + "'${GSFAxes.WIDTH.tag}' $mWidth"
         }
         if (mOpticalSize >= 0) {
             resultString +=
                 (if (resultString.isBlank()) "" else ", ") +
-                    "'${GSFAxes.OPTICAL_SIZE}' $mOpticalSize"
+                    "'${GSFAxes.OPTICAL_SIZE.tag}' $mOpticalSize"
         }
         if (mRoundness >= 0) {
             resultString +=
-                (if (resultString.isBlank()) "" else ", ") + "'${GSFAxes.ROUND}' $mRoundness"
+                (if (resultString.isBlank()) "" else ", ") + "'${GSFAxes.ROUND.tag}' $mRoundness"
         }
         return if (isUpdated) resultString else ""
     }
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/GSFAxes.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/GSFAxes.kt
new file mode 100644
index 0000000..f4e0361
--- /dev/null
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/GSFAxes.kt
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2025 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.animation
+
+data class AxisDefinition(
+    val tag: String,
+    val minValue: Float,
+    val defaultValue: Float,
+    val maxValue: Float,
+    val animationStep: Float,
+)
+
+object GSFAxes {
+    val WEIGHT =
+        AxisDefinition(
+            tag = "wght",
+            minValue = 1f,
+            defaultValue = 400f,
+            maxValue = 1000f,
+            animationStep = 10f,
+        )
+
+    val WIDTH =
+        AxisDefinition(
+            tag = "wdth",
+            minValue = 25f,
+            defaultValue = 100f,
+            maxValue = 151f,
+            animationStep = 1f,
+        )
+
+    val SLANT =
+        AxisDefinition(
+            tag = "slnt",
+            minValue = 0f,
+            defaultValue = 0f,
+            maxValue = -10f,
+            animationStep = 0.1f,
+        )
+
+    val ROUND =
+        AxisDefinition(
+            tag = "ROND",
+            minValue = 0f,
+            defaultValue = 0f,
+            maxValue = 100f,
+            animationStep = 1f,
+        )
+
+    val GRADE =
+        AxisDefinition(
+            tag = "GRAD",
+            minValue = 0f,
+            defaultValue = 0f,
+            maxValue = 100f,
+            animationStep = 1f,
+        )
+
+    val OPTICAL_SIZE =
+        AxisDefinition(
+            tag = "opsz",
+            minValue = 6f,
+            defaultValue = 18f,
+            maxValue = 144f,
+            animationStep = 1f,
+        )
+
+    // Not a GSF Axis, but present for FontInterpolator compatibility
+    val ITALIC =
+        AxisDefinition(
+            tag = "ITAL",
+            minValue = 0f,
+            defaultValue = 0f,
+            maxValue = 1f,
+            animationStep = 0.1f,
+        )
+
+    private val AXIS_MAP =
+        listOf(WEIGHT, WIDTH, SLANT, ROUND, GRADE, OPTICAL_SIZE, ITALIC)
+            .map { def -> def.tag.toLowerCase() to def }
+            .toMap()
+
+    fun getAxis(axis: String): AxisDefinition? = AXIS_MAP[axis.toLowerCase()]
+}
diff --git a/packages/SystemUI/compose/core/src/com/android/compose/animation/Expandable.kt b/packages/SystemUI/compose/core/src/com/android/compose/animation/Expandable.kt
index 8739919..1e3c4c9 100644
--- a/packages/SystemUI/compose/core/src/com/android/compose/animation/Expandable.kt
+++ b/packages/SystemUI/compose/core/src/com/android/compose/animation/Expandable.kt
@@ -314,7 +314,7 @@
         if (isAnimating) {
             val graphicsLayer = rememberGraphicsLayer()
 
-            FullScreenComposeViewInOverlay { view ->
+            FullScreenComposeViewInOverlay(controller.overlay) { view ->
                 Modifier.then(DrawExpandableInOverlayElement(view, controller, graphicsLayer))
             }
 
@@ -397,7 +397,7 @@
     }
 
     override fun ContentDrawScope.draw() {
-        val state = controller.animatorState ?: return
+        val state = controller.animatorState?.takeIf { it.visible } ?: return
         val topOffset = state.top.toFloat() - composeViewLocationOnScreen[1]
         val leftOffset = state.left.toFloat() - composeViewLocationOnScreen[0]
 
diff --git a/packages/SystemUI/compose/core/src/com/android/compose/theme/AndroidColorScheme.kt b/packages/SystemUI/compose/core/src/com/android/compose/theme/AndroidColorScheme.kt
index 1256641..ed144bd 100644
--- a/packages/SystemUI/compose/core/src/com/android/compose/theme/AndroidColorScheme.kt
+++ b/packages/SystemUI/compose/core/src/com/android/compose/theme/AndroidColorScheme.kt
@@ -41,6 +41,7 @@
  */
 @Immutable
 class AndroidColorScheme(
+    // fixed tokens
     val primaryFixed: Color,
     val primaryFixedDim: Color,
     val onPrimaryFixed: Color,
@@ -53,6 +54,30 @@
     val tertiaryFixedDim: Color,
     val onTertiaryFixed: Color,
     val onTertiaryFixedVariant: Color,
+
+    // custom tokens
+    val brandA: Color,
+    val brandB: Color,
+    val brandC: Color,
+    val brandD: Color,
+    val clockHour: Color,
+    val clockMinute: Color,
+    val clockSecond: Color,
+    val onShadeActive: Color,
+    val onShadeActiveVariant: Color,
+    val onShadeInactive: Color,
+    val onShadeInactiveVariant: Color,
+    val onThemeApp: Color,
+    val overviewBackground: Color,
+    val shadeActive: Color,
+    val shadeDisabled: Color,
+    val shadeInactive: Color,
+    val themeApp: Color,
+    val themeAppRing: Color,
+    val themeNotif: Color,
+    val underSurface: Color,
+    val weatherTemp: Color,
+    val widgetBackground: Color,
 ) {
     companion object {
         internal fun color(context: Context, @ColorRes id: Int): Color {
@@ -61,6 +86,7 @@
 
         operator fun invoke(context: Context): AndroidColorScheme {
             return AndroidColorScheme(
+                // Fixed tokens.
                 primaryFixed = color(context, R.color.system_primary_fixed),
                 primaryFixedDim = color(context, R.color.system_primary_fixed_dim),
                 onPrimaryFixed = color(context, R.color.system_on_primary_fixed),
@@ -73,6 +99,30 @@
                 tertiaryFixedDim = color(context, R.color.system_tertiary_fixed_dim),
                 onTertiaryFixed = color(context, R.color.system_on_tertiary_fixed),
                 onTertiaryFixedVariant = color(context, R.color.system_on_tertiary_fixed_variant),
+
+                // Custom tokens.
+                brandA = color(context, R.color.customColorBrandA),
+                brandB = color(context, R.color.customColorBrandB),
+                brandC = color(context, R.color.customColorBrandC),
+                brandD = color(context, R.color.customColorBrandD),
+                clockHour = color(context, R.color.customColorClockHour),
+                clockMinute = color(context, R.color.customColorClockMinute),
+                clockSecond = color(context, R.color.customColorClockSecond),
+                onShadeActive = color(context, R.color.customColorOnShadeActive),
+                onShadeActiveVariant = color(context, R.color.customColorOnShadeActiveVariant),
+                onShadeInactive = color(context, R.color.customColorOnShadeInactive),
+                onShadeInactiveVariant = color(context, R.color.customColorOnShadeInactiveVariant),
+                onThemeApp = color(context, R.color.customColorOnThemeApp),
+                overviewBackground = color(context, R.color.customColorOverviewBackground),
+                shadeActive = color(context, R.color.customColorShadeActive),
+                shadeDisabled = color(context, R.color.customColorShadeDisabled),
+                shadeInactive = color(context, R.color.customColorShadeInactive),
+                themeApp = color(context, R.color.customColorThemeApp),
+                themeAppRing = color(context, R.color.customColorThemeAppRing),
+                themeNotif = color(context, R.color.customColorThemeNotif),
+                underSurface = color(context, R.color.customColorUnderSurface),
+                weatherTemp = color(context, R.color.customColorWeatherTemp),
+                widgetBackground = color(context, R.color.customColorWidgetBackground),
             )
         }
     }
diff --git a/packages/SystemUI/compose/core/src/com/android/compose/theme/PlatformTheme.kt b/packages/SystemUI/compose/core/src/com/android/compose/theme/PlatformTheme.kt
index 71ec63c..84370ed 100644
--- a/packages/SystemUI/compose/core/src/com/android/compose/theme/PlatformTheme.kt
+++ b/packages/SystemUI/compose/core/src/com/android/compose/theme/PlatformTheme.kt
@@ -31,6 +31,7 @@
 import com.android.compose.theme.typography.TypefaceNames
 import com.android.compose.theme.typography.TypefaceTokens
 import com.android.compose.theme.typography.TypographyTokens
+import com.android.compose.theme.typography.VariableFontTypeScaleEmphasizedTokens
 import com.android.compose.theme.typography.platformTypography
 import com.android.compose.windowsizeclass.LocalWindowSizeClass
 import com.android.compose.windowsizeclass.calculateWindowSizeClass
@@ -44,9 +45,15 @@
     val colorScheme = remember(context, isDarkTheme) { platformColorScheme(isDarkTheme, context) }
     val androidColorScheme = remember(context) { AndroidColorScheme(context) }
     val typefaceNames = remember(context) { TypefaceNames.get(context) }
+    val typefaceTokens = remember(typefaceNames) { TypefaceTokens(typefaceNames) }
     val typography =
-        remember(typefaceNames) {
-            platformTypography(TypographyTokens(TypeScaleTokens(TypefaceTokens(typefaceNames))))
+        remember(typefaceTokens) {
+            platformTypography(
+                TypographyTokens(
+                    TypeScaleTokens(typefaceTokens),
+                    VariableFontTypeScaleEmphasizedTokens(typefaceTokens),
+                )
+            )
         }
     val windowSizeClass = calculateWindowSizeClass()
 
diff --git a/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/PlatformTypography.kt b/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/PlatformTypography.kt
index 1ce1ae3..652f946 100644
--- a/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/PlatformTypography.kt
+++ b/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/PlatformTypography.kt
@@ -16,6 +16,7 @@
 
 package com.android.compose.theme.typography
 
+import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.Typography
 
@@ -25,6 +26,7 @@
  * Do not use directly and call [MaterialTheme.typography] instead to access the different text
  * styles.
  */
+@OptIn(ExperimentalMaterial3ExpressiveApi::class)
 internal fun platformTypography(typographyTokens: TypographyTokens): Typography {
     return Typography(
         displayLarge = typographyTokens.displayLarge,
@@ -42,5 +44,21 @@
         labelLarge = typographyTokens.labelLarge,
         labelMedium = typographyTokens.labelMedium,
         labelSmall = typographyTokens.labelSmall,
+        // GSF emphasized tokens
+        displayLargeEmphasized = typographyTokens.displayLargeEmphasized,
+        displayMediumEmphasized = typographyTokens.displayMediumEmphasized,
+        displaySmallEmphasized = typographyTokens.displaySmallEmphasized,
+        headlineLargeEmphasized = typographyTokens.headlineLargeEmphasized,
+        headlineMediumEmphasized = typographyTokens.headlineMediumEmphasized,
+        headlineSmallEmphasized = typographyTokens.headlineSmallEmphasized,
+        titleLargeEmphasized = typographyTokens.titleLargeEmphasized,
+        titleMediumEmphasized = typographyTokens.titleMediumEmphasized,
+        titleSmallEmphasized = typographyTokens.titleSmallEmphasized,
+        bodyLargeEmphasized = typographyTokens.bodyLargeEmphasized,
+        bodyMediumEmphasized = typographyTokens.bodyMediumEmphasized,
+        bodySmallEmphasized = typographyTokens.bodySmallEmphasized,
+        labelLargeEmphasized = typographyTokens.labelLargeEmphasized,
+        labelMediumEmphasized = typographyTokens.labelMediumEmphasized,
+        labelSmallEmphasized = typographyTokens.labelSmallEmphasized,
     )
 }
diff --git a/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/TypefaceTokens.kt b/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/TypefaceTokens.kt
index 13acfd6..280b8d9 100644
--- a/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/TypefaceTokens.kt
+++ b/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/TypefaceTokens.kt
@@ -34,6 +34,29 @@
     private val brandFont = DeviceFontFamilyName(typefaceNames.brand)
     private val plainFont = DeviceFontFamilyName(typefaceNames.plain)
 
+    // Google Sans Flex emphasized styles
+    private val displayLargeEmphasizedFont =
+        DeviceFontFamilyName("variable-display-large-emphasized")
+    private val displayMediumEmphasizedFont =
+        DeviceFontFamilyName("variable-display-medium-emphasized")
+    private val displaySmallEmphasizedFont =
+        DeviceFontFamilyName("variable-display-small-emphasized")
+    private val headlineLargeEmphasizedFont =
+        DeviceFontFamilyName("variable-headline-large-emphasized")
+    private val headlineMediumEmphasizedFont =
+        DeviceFontFamilyName("variable-headline-medium-emphasized")
+    private val headlineSmallEmphasizedFont =
+        DeviceFontFamilyName("variable-headline-small-emphasized")
+    private val titleLargeEmphasizedFont = DeviceFontFamilyName("variable-title-large-emphasized")
+    private val titleMediumEmphasizedFont = DeviceFontFamilyName("variable-title-medium-emphasized")
+    private val titleSmallEmphasizedFont = DeviceFontFamilyName("variable-title-small-emphasized")
+    private val bodyLargeEmphasizedFont = DeviceFontFamilyName("variable-body-large-emphasized")
+    private val bodyMediumEmphasizedFont = DeviceFontFamilyName("variable-body-medium-emphasized")
+    private val bodySmallEmphasizedFont = DeviceFontFamilyName("variable-body-small-emphasized")
+    private val labelLargeEmphasizedFont = DeviceFontFamilyName("variable-label-large-emphasized")
+    private val labelMediumEmphasizedFont = DeviceFontFamilyName("variable-label-medium-emphasized")
+    private val labelSmallEmphasizedFont = DeviceFontFamilyName("variable-label-small-emphasized")
+
     val brand =
         FontFamily(
             Font(brandFont, weight = WeightMedium),
@@ -44,6 +67,22 @@
             Font(plainFont, weight = WeightMedium),
             Font(plainFont, weight = WeightRegular),
         )
+
+    val displayLargeEmphasized = FontFamily(Font(displayLargeEmphasizedFont))
+    val displayMediumEmphasized = FontFamily(Font(displayMediumEmphasizedFont))
+    val displaySmallEmphasized = FontFamily(Font(displaySmallEmphasizedFont))
+    val headlineLargeEmphasized = FontFamily(Font(headlineLargeEmphasizedFont))
+    val headlineMediumEmphasized = FontFamily(Font(headlineMediumEmphasizedFont))
+    val headlineSmallEmphasized = FontFamily(Font(headlineSmallEmphasizedFont))
+    val titleLargeEmphasized = FontFamily(Font(titleLargeEmphasizedFont))
+    val titleMediumEmphasized = FontFamily(Font(titleMediumEmphasizedFont))
+    val titleSmallEmphasized = FontFamily(Font(titleSmallEmphasizedFont))
+    val bodyLargeEmphasized = FontFamily(Font(bodyLargeEmphasizedFont))
+    val bodyMediumEmphasized = FontFamily(Font(bodyMediumEmphasizedFont))
+    val bodySmallEmphasized = FontFamily(Font(bodySmallEmphasizedFont))
+    val labelLargeEmphasized = FontFamily(Font(labelLargeEmphasizedFont))
+    val labelMediumEmphasized = FontFamily(Font(labelMediumEmphasizedFont))
+    val labelSmallEmphasized = FontFamily(Font(labelSmallEmphasizedFont))
 }
 
 internal data class TypefaceNames
diff --git a/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/TypographyTokens.kt b/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/TypographyTokens.kt
index 38aadb8..4115647 100644
--- a/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/TypographyTokens.kt
+++ b/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/TypographyTokens.kt
@@ -18,7 +18,10 @@
 
 import androidx.compose.ui.text.TextStyle
 
-internal class TypographyTokens(typeScaleTokens: TypeScaleTokens) {
+internal class TypographyTokens(
+    typeScaleTokens: TypeScaleTokens,
+    variableTypeScaleTokens: VariableFontTypeScaleEmphasizedTokens,
+) {
     val bodyLarge =
         TextStyle(
             fontFamily = typeScaleTokens.bodyLargeFont,
@@ -139,4 +142,112 @@
             lineHeight = typeScaleTokens.titleSmallLineHeight,
             letterSpacing = typeScaleTokens.titleSmallTracking,
         )
+    // GSF emphasized styles
+    // note: we don't need to define fontWeight or axes values because they are pre-defined
+    // as part of the font family in fonts_customization.xml (for performance optimization)
+    val displayLargeEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.displayLargeFont,
+            fontSize = variableTypeScaleTokens.displayLargeSize,
+            lineHeight = variableTypeScaleTokens.displayLargeLineHeight,
+            letterSpacing = variableTypeScaleTokens.displayLargeTracking,
+        )
+    val displayMediumEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.displayMediumFont,
+            fontSize = variableTypeScaleTokens.displayMediumSize,
+            lineHeight = variableTypeScaleTokens.displayMediumLineHeight,
+            letterSpacing = variableTypeScaleTokens.displayMediumTracking,
+        )
+    val displaySmallEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.displaySmallFont,
+            fontSize = variableTypeScaleTokens.displaySmallSize,
+            lineHeight = variableTypeScaleTokens.displaySmallLineHeight,
+            letterSpacing = variableTypeScaleTokens.displaySmallTracking,
+        )
+    val headlineLargeEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.headlineLargeFont,
+            fontSize = variableTypeScaleTokens.headlineLargeSize,
+            lineHeight = variableTypeScaleTokens.headlineLargeLineHeight,
+            letterSpacing = variableTypeScaleTokens.headlineLargeTracking,
+        )
+    val headlineMediumEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.headlineMediumFont,
+            fontSize = variableTypeScaleTokens.headlineMediumSize,
+            lineHeight = variableTypeScaleTokens.headlineMediumLineHeight,
+            letterSpacing = variableTypeScaleTokens.headlineMediumTracking,
+        )
+    val headlineSmallEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.headlineSmallFont,
+            fontSize = variableTypeScaleTokens.headlineSmallSize,
+            lineHeight = variableTypeScaleTokens.headlineSmallLineHeight,
+            letterSpacing = variableTypeScaleTokens.headlineSmallTracking,
+        )
+    val titleLargeEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.titleLargeFont,
+            fontSize = variableTypeScaleTokens.titleLargeSize,
+            lineHeight = variableTypeScaleTokens.titleLargeLineHeight,
+            letterSpacing = variableTypeScaleTokens.titleLargeTracking,
+        )
+    val titleMediumEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.titleMediumFont,
+            fontSize = variableTypeScaleTokens.titleMediumSize,
+            lineHeight = variableTypeScaleTokens.titleMediumLineHeight,
+            letterSpacing = variableTypeScaleTokens.titleMediumTracking,
+        )
+    val titleSmallEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.titleSmallFont,
+            fontSize = variableTypeScaleTokens.titleSmallSize,
+            lineHeight = variableTypeScaleTokens.titleSmallLineHeight,
+            letterSpacing = variableTypeScaleTokens.titleSmallTracking,
+        )
+    val bodyLargeEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.bodyLargeFont,
+            fontSize = variableTypeScaleTokens.bodyLargeSize,
+            lineHeight = variableTypeScaleTokens.bodyLargeLineHeight,
+            letterSpacing = variableTypeScaleTokens.bodyLargeTracking,
+        )
+    val bodyMediumEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.bodyMediumFont,
+            fontSize = variableTypeScaleTokens.bodyMediumSize,
+            lineHeight = variableTypeScaleTokens.bodyMediumLineHeight,
+            letterSpacing = variableTypeScaleTokens.bodyMediumTracking,
+        )
+    val bodySmallEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.bodySmallFont,
+            fontSize = variableTypeScaleTokens.bodySmallSize,
+            lineHeight = variableTypeScaleTokens.bodySmallLineHeight,
+            letterSpacing = variableTypeScaleTokens.bodySmallTracking,
+        )
+    val labelLargeEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.labelLargeFont,
+            fontSize = variableTypeScaleTokens.labelLargeSize,
+            lineHeight = variableTypeScaleTokens.labelLargeLineHeight,
+            letterSpacing = variableTypeScaleTokens.labelLargeTracking,
+        )
+    val labelMediumEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.labelMediumFont,
+            fontSize = variableTypeScaleTokens.labelMediumSize,
+            lineHeight = variableTypeScaleTokens.labelMediumLineHeight,
+            letterSpacing = variableTypeScaleTokens.labelMediumTracking,
+        )
+    val labelSmallEmphasized =
+        TextStyle(
+            fontFamily = variableTypeScaleTokens.labelSmallFont,
+            fontSize = variableTypeScaleTokens.labelSmallSize,
+            lineHeight = variableTypeScaleTokens.labelSmallLineHeight,
+            letterSpacing = variableTypeScaleTokens.labelSmallTracking,
+        )
 }
diff --git a/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/VariableFontTypeScaleEmphasizedTokens.kt b/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/VariableFontTypeScaleEmphasizedTokens.kt
new file mode 100644
index 0000000..52b9390
--- /dev/null
+++ b/packages/SystemUI/compose/core/src/com/android/compose/theme/typography/VariableFontTypeScaleEmphasizedTokens.kt
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2025 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.compose.theme.typography
+
+import androidx.compose.ui.unit.sp
+
+internal class VariableFontTypeScaleEmphasizedTokens(typefaceTokens: TypefaceTokens) {
+    val bodyLargeFont = typefaceTokens.bodyLargeEmphasized
+    val bodyLargeLineHeight = 24.0.sp
+    val bodyLargeSize = 16.sp
+    val bodyLargeTracking = 0.0.sp
+    val bodyMediumFont = typefaceTokens.bodyMediumEmphasized
+    val bodyMediumLineHeight = 20.0.sp
+    val bodyMediumSize = 14.sp
+    val bodyMediumTracking = 0.0.sp
+    val bodySmallFont = typefaceTokens.bodySmallEmphasized
+    val bodySmallLineHeight = 16.0.sp
+    val bodySmallSize = 12.sp
+    val bodySmallTracking = 0.0.sp
+    val displayLargeFont = typefaceTokens.displayLargeEmphasized
+    val displayLargeLineHeight = 64.0.sp
+    val displayLargeSize = 57.sp
+    val displayLargeTracking = 0.0.sp
+    val displayMediumFont = typefaceTokens.displayMediumEmphasized
+    val displayMediumLineHeight = 52.0.sp
+    val displayMediumSize = 45.sp
+    val displayMediumTracking = 0.0.sp
+    val displaySmallFont = typefaceTokens.displaySmallEmphasized
+    val displaySmallLineHeight = 44.0.sp
+    val displaySmallSize = 36.sp
+    val displaySmallTracking = 0.0.sp
+    val headlineLargeFont = typefaceTokens.headlineLargeEmphasized
+    val headlineLargeLineHeight = 40.0.sp
+    val headlineLargeSize = 32.sp
+    val headlineLargeTracking = 0.0.sp
+    val headlineMediumFont = typefaceTokens.headlineMediumEmphasized
+    val headlineMediumLineHeight = 36.0.sp
+    val headlineMediumSize = 28.sp
+    val headlineMediumTracking = 0.0.sp
+    val headlineSmallFont = typefaceTokens.headlineSmallEmphasized
+    val headlineSmallLineHeight = 32.0.sp
+    val headlineSmallSize = 24.sp
+    val headlineSmallTracking = 0.0.sp
+    val labelLargeFont = typefaceTokens.labelLargeEmphasized
+    val labelLargeLineHeight = 20.0.sp
+    val labelLargeSize = 14.sp
+    val labelLargeTracking = 0.0.sp
+    val labelMediumFont = typefaceTokens.labelMediumEmphasized
+    val labelMediumLineHeight = 16.0.sp
+    val labelMediumSize = 12.sp
+    val labelMediumTracking = 0.0.sp
+    val labelSmallFont = typefaceTokens.labelSmallEmphasized
+    val labelSmallLineHeight = 16.0.sp
+    val labelSmallSize = 11.sp
+    val labelSmallTracking = 0.0.sp
+    val titleLargeFont = typefaceTokens.titleLargeEmphasized
+    val titleLargeLineHeight = 28.0.sp
+    val titleLargeSize = 22.sp
+    val titleLargeTracking = 0.0.sp
+    val titleMediumFont = typefaceTokens.titleMediumEmphasized
+    val titleMediumLineHeight = 24.0.sp
+    val titleMediumSize = 16.sp
+    val titleMediumTracking = 0.0.sp
+    val titleSmallFont = typefaceTokens.titleSmallEmphasized
+    val titleSmallLineHeight = 20.0.sp
+    val titleSmallSize = 14.sp
+    val titleSmallTracking = 0.0.sp
+}
diff --git a/packages/SystemUI/compose/core/src/com/android/compose/ui/graphics/DrawInOverlay.kt b/packages/SystemUI/compose/core/src/com/android/compose/ui/graphics/DrawInOverlay.kt
index 089da4b..d5436d3 100644
--- a/packages/SystemUI/compose/core/src/com/android/compose/ui/graphics/DrawInOverlay.kt
+++ b/packages/SystemUI/compose/core/src/com/android/compose/ui/graphics/DrawInOverlay.kt
@@ -47,15 +47,18 @@
 }
 
 @Composable
-internal fun FullScreenComposeViewInOverlay(modifier: (ComposeView) -> Modifier = { Modifier }) {
+internal fun FullScreenComposeViewInOverlay(
+    overlay: ViewGroupOverlay? = null,
+    modifier: (ComposeView) -> Modifier = { Modifier },
+) {
     val context = LocalContext.current
     val localView = LocalView.current
     val compositionContext = rememberCompositionContext()
     val displayMetrics = context.resources.displayMetrics
     val displaySize = IntSize(displayMetrics.widthPixels, displayMetrics.heightPixels)
+    val overlay = overlay ?: localView.rootView.overlay as ViewGroupOverlay
 
-    DisposableEffect(context, localView, compositionContext, displaySize) {
-        val overlay = localView.rootView.overlay as ViewGroupOverlay
+    DisposableEffect(context, localView, overlay, compositionContext, displaySize) {
         val view =
             ComposeView(context).apply {
                 setParentCompositionContext(compositionContext)
diff --git a/packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/BouncerSceneModule.kt b/packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/BouncerOverlayModule.kt
similarity index 71%
rename from packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/BouncerSceneModule.kt
rename to packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/BouncerOverlayModule.kt
index 5b368df..42694243 100644
--- a/packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/BouncerSceneModule.kt
+++ b/packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/BouncerOverlayModule.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 The Android Open Source Project
+ * Copyright (C) 2025 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.
@@ -16,14 +16,13 @@
 
 package com.android.systemui.scene
 
-import com.android.systemui.bouncer.ui.composable.BouncerScene
-import com.android.systemui.scene.ui.composable.Scene
+import com.android.systemui.bouncer.ui.composable.BouncerOverlay
+import com.android.systemui.scene.ui.composable.Overlay
 import dagger.Binds
 import dagger.Module
 import dagger.multibindings.IntoSet
 
 @Module
-interface BouncerSceneModule {
-
-    @Binds @IntoSet fun bouncerScene(scene: BouncerScene): Scene
+interface BouncerOverlayModule {
+    @Binds @IntoSet fun bouncer(overlay: BouncerOverlay): Overlay
 }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt
index 456edaf..48e52d6 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt
@@ -98,7 +98,7 @@
 import com.android.systemui.bouncer.ui.BouncerDialogFactory
 import com.android.systemui.bouncer.ui.viewmodel.AuthMethodBouncerViewModel
 import com.android.systemui.bouncer.ui.viewmodel.BouncerMessageViewModel
-import com.android.systemui.bouncer.ui.viewmodel.BouncerSceneContentViewModel
+import com.android.systemui.bouncer.ui.viewmodel.BouncerOverlayContentViewModel
 import com.android.systemui.bouncer.ui.viewmodel.MessageViewModel
 import com.android.systemui.bouncer.ui.viewmodel.PasswordBouncerViewModel
 import com.android.systemui.bouncer.ui.viewmodel.PatternBouncerViewModel
@@ -118,7 +118,7 @@
 
 @Composable
 fun BouncerContent(
-    viewModel: BouncerSceneContentViewModel,
+    viewModel: BouncerOverlayContentViewModel,
     dialogFactory: BouncerDialogFactory,
     modifier: Modifier = Modifier,
 ) {
@@ -131,8 +131,8 @@
 @Composable
 @VisibleForTesting
 fun BouncerContent(
-    layout: BouncerSceneLayout,
-    viewModel: BouncerSceneContentViewModel,
+    layout: BouncerOverlayLayout,
+    viewModel: BouncerOverlayContentViewModel,
     dialogFactory: BouncerDialogFactory,
     modifier: Modifier,
 ) {
@@ -147,11 +147,12 @@
         modifier = modifier.imePadding().onKeyEvent(viewModel::onKeyEvent).scale(scale)
     ) {
         when (layout) {
-            BouncerSceneLayout.STANDARD_BOUNCER -> StandardLayout(viewModel = viewModel)
-            BouncerSceneLayout.BESIDE_USER_SWITCHER ->
+            BouncerOverlayLayout.STANDARD_BOUNCER -> StandardLayout(viewModel = viewModel)
+            BouncerOverlayLayout.BESIDE_USER_SWITCHER ->
                 BesideUserSwitcherLayout(viewModel = viewModel)
-            BouncerSceneLayout.BELOW_USER_SWITCHER -> BelowUserSwitcherLayout(viewModel = viewModel)
-            BouncerSceneLayout.SPLIT_BOUNCER -> SplitLayout(viewModel = viewModel)
+            BouncerOverlayLayout.BELOW_USER_SWITCHER ->
+                BelowUserSwitcherLayout(viewModel = viewModel)
+            BouncerOverlayLayout.SPLIT_BOUNCER -> SplitLayout(viewModel = viewModel)
         }
 
         Dialog(bouncerViewModel = viewModel, dialogFactory = dialogFactory)
@@ -163,7 +164,10 @@
  * authentication attempt, including all messaging UI (directives, reasoning, errors, etc.).
  */
 @Composable
-private fun StandardLayout(viewModel: BouncerSceneContentViewModel, modifier: Modifier = Modifier) {
+private fun StandardLayout(
+    viewModel: BouncerOverlayContentViewModel,
+    modifier: Modifier = Modifier,
+) {
     val isHeightExpanded =
         LocalWindowSizeClass.current.heightSizeClass == WindowHeightSizeClass.Expanded
 
@@ -208,7 +212,7 @@
  * by double-tapping on the side.
  */
 @Composable
-private fun SplitLayout(viewModel: BouncerSceneContentViewModel, modifier: Modifier = Modifier) {
+private fun SplitLayout(viewModel: BouncerOverlayContentViewModel, modifier: Modifier = Modifier) {
     val authMethod by viewModel.authMethodViewModel.collectAsStateWithLifecycle()
 
     Row(
@@ -297,7 +301,7 @@
  */
 @Composable
 private fun BesideUserSwitcherLayout(
-    viewModel: BouncerSceneContentViewModel,
+    viewModel: BouncerOverlayContentViewModel,
     modifier: Modifier = Modifier,
 ) {
     val isLeftToRight = LocalLayoutDirection.current == LayoutDirection.Ltr
@@ -452,7 +456,7 @@
 /** Arranges the bouncer contents and user switcher contents one on top of the other, vertically. */
 @Composable
 private fun BelowUserSwitcherLayout(
-    viewModel: BouncerSceneContentViewModel,
+    viewModel: BouncerOverlayContentViewModel,
     modifier: Modifier = Modifier,
 ) {
     Column(modifier = modifier.padding(vertical = 128.dp)) {
@@ -483,7 +487,7 @@
 
 @Composable
 private fun FoldAware(
-    viewModel: BouncerSceneContentViewModel,
+    viewModel: BouncerOverlayContentViewModel,
     aboveFold: @Composable BoxScope.() -> Unit,
     belowFold: @Composable BoxScope.() -> Unit,
     modifier: Modifier = Modifier,
@@ -606,7 +610,7 @@
  * For example, this can be the PIN shapes or password text field.
  */
 @Composable
-private fun OutputArea(viewModel: BouncerSceneContentViewModel, modifier: Modifier = Modifier) {
+private fun OutputArea(viewModel: BouncerOverlayContentViewModel, modifier: Modifier = Modifier) {
     val authMethodViewModel: AuthMethodBouncerViewModel? by
         viewModel.authMethodViewModel.collectAsStateWithLifecycle()
     when (val nonNullViewModel = authMethodViewModel) {
@@ -631,7 +635,7 @@
  */
 @Composable
 private fun InputArea(
-    viewModel: BouncerSceneContentViewModel,
+    viewModel: BouncerOverlayContentViewModel,
     pinButtonRowVerticalSpacing: Dp,
     centerPatternDotsVertically: Boolean,
     modifier: Modifier = Modifier,
@@ -659,7 +663,7 @@
 }
 
 @Composable
-private fun ActionArea(viewModel: BouncerSceneContentViewModel, modifier: Modifier = Modifier) {
+private fun ActionArea(viewModel: BouncerOverlayContentViewModel, modifier: Modifier = Modifier) {
     val actionButton: BouncerActionButtonModel? by
         viewModel.actionButton.collectAsStateWithLifecycle()
     val appearFadeInAnimatable = remember { Animatable(0f) }
@@ -723,7 +727,7 @@
 
 @Composable
 private fun Dialog(
-    bouncerViewModel: BouncerSceneContentViewModel,
+    bouncerViewModel: BouncerOverlayContentViewModel,
     dialogFactory: BouncerDialogFactory,
 ) {
     val dialogViewModel by bouncerViewModel.dialogViewModel.collectAsStateWithLifecycle()
@@ -751,7 +755,7 @@
 
 /** Renders the UI of the user switcher that's displayed on large screens next to the bouncer UI. */
 @Composable
-private fun UserSwitcher(viewModel: BouncerSceneContentViewModel, modifier: Modifier = Modifier) {
+private fun UserSwitcher(viewModel: BouncerOverlayContentViewModel, modifier: Modifier = Modifier) {
     val isUserSwitcherVisible by viewModel.isUserSwitcherVisible.collectAsStateWithLifecycle()
     if (!isUserSwitcherVisible) {
         // Take up the same space as the user switcher normally would, but with nothing inside it.
@@ -829,7 +833,7 @@
 @Composable
 private fun UserSwitcherDropdownMenu(
     isExpanded: Boolean,
-    items: List<BouncerSceneContentViewModel.UserSwitcherDropdownItemViewModel>,
+    items: List<BouncerOverlayContentViewModel.UserSwitcherDropdownItemViewModel>,
     onDismissed: () -> Unit,
 ) {
     val context = LocalContext.current
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerOverlay.kt
similarity index 74%
rename from packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt
rename to packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerOverlay.kt
index fad8ae7..f1b273a 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerOverlay.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2023 The Android Open Source Project
+ * Copyright (C) 2025 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.
@@ -24,24 +24,25 @@
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.DisposableEffect
 import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
 import com.android.compose.animation.scene.ContentScope
 import com.android.compose.animation.scene.ElementKey
 import com.android.compose.animation.scene.UserAction
 import com.android.compose.animation.scene.UserActionResult
 import com.android.systemui.bouncer.ui.BouncerDialogFactory
-import com.android.systemui.bouncer.ui.viewmodel.BouncerSceneContentViewModel
+import com.android.systemui.bouncer.ui.viewmodel.BouncerOverlayContentViewModel
 import com.android.systemui.bouncer.ui.viewmodel.BouncerUserActionsViewModel
 import com.android.systemui.compose.modifiers.sysuiResTag
 import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.lifecycle.ExclusiveActivatable
 import com.android.systemui.lifecycle.rememberViewModel
-import com.android.systemui.scene.shared.model.Scenes
-import com.android.systemui.scene.ui.composable.Scene
+import com.android.systemui.scene.shared.model.Overlays
+import com.android.systemui.scene.ui.composable.Overlay
 import javax.inject.Inject
 import kotlinx.coroutines.flow.Flow
 
 object Bouncer {
     object Elements {
+        val Root = ElementKey("BouncerRoot")
         val Background = ElementKey("BouncerBackground")
         val Content = ElementKey("BouncerContent")
     }
@@ -51,16 +52,16 @@
     }
 }
 
-/** The bouncer scene displays authentication challenges like PIN, password, or pattern. */
+/** The bouncer overlay displays authentication challenges like PIN, password, or pattern. */
 @SysUISingleton
-class BouncerScene
+class BouncerOverlay
 @Inject
 constructor(
     private val actionsViewModelFactory: BouncerUserActionsViewModel.Factory,
-    private val contentViewModelFactory: BouncerSceneContentViewModel.Factory,
+    private val contentViewModelFactory: BouncerOverlayContentViewModel.Factory,
     private val dialogFactory: BouncerDialogFactory,
-) : ExclusiveActivatable(), Scene {
-    override val key = Scenes.Bouncer
+) : Overlay {
+    override val key = Overlays.Bouncer
 
     private val actionsViewModel: BouncerUserActionsViewModel by lazy {
         actionsViewModelFactory.create()
@@ -68,22 +69,22 @@
 
     override val userActions: Flow<Map<UserAction, UserActionResult>> = actionsViewModel.actions
 
-    override suspend fun onActivated(): Nothing {
+    override suspend fun activate(): Nothing {
         actionsViewModel.activate()
     }
 
     @Composable
     override fun ContentScope.Content(modifier: Modifier) =
-        BouncerScene(
-            viewModel = rememberViewModel("BouncerScene") { contentViewModelFactory.create() },
+        BouncerOverlay(
+            viewModel = rememberViewModel("BouncerOverlay") { contentViewModelFactory.create() },
             dialogFactory = dialogFactory,
-            modifier = modifier,
+            modifier = modifier.element(Bouncer.Elements.Root),
         )
 }
 
 @Composable
-private fun ContentScope.BouncerScene(
-    viewModel: BouncerSceneContentViewModel,
+private fun ContentScope.BouncerOverlay(
+    viewModel: BouncerOverlayContentViewModel,
     dialogFactory: BouncerDialogFactory,
     modifier: Modifier = Modifier,
 ) {
@@ -102,6 +103,8 @@
             viewModel,
             dialogFactory,
             Modifier.element(Bouncer.Elements.Content)
+                // TODO(b/393516240): Use the same sysuiResTag() as views instead.
+                .testTag(Bouncer.Elements.Content.testTag)
                 .overscroll(verticalOverscrollEffect)
                 .sysuiResTag(Bouncer.TestTags.Root)
                 .fillMaxSize(),
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerSceneLayout.kt b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerOverlayLayout.kt
similarity index 74%
rename from packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerSceneLayout.kt
rename to packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerOverlayLayout.kt
index 328fec5..8651859 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerSceneLayout.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerOverlayLayout.kt
@@ -23,12 +23,12 @@
 import com.android.compose.windowsizeclass.LocalWindowSizeClass
 
 /**
- * Returns the [BouncerSceneLayout] that should be used by the bouncer scene. If
- * [isOneHandedModeSupported] is `false`, then [BouncerSceneLayout.BESIDE_USER_SWITCHER] is replaced
- * by [BouncerSceneLayout.STANDARD_BOUNCER].
+ * Returns the [BouncerOverlayLayout] that should be used by the bouncer scene. If
+ * [isOneHandedModeSupported] is `false`, then [BouncerOverlayLayout.BESIDE_USER_SWITCHER] is
+ * replaced by [BouncerOverlayLayout.STANDARD_BOUNCER].
  */
 @Composable
-fun calculateLayout(isOneHandedModeSupported: Boolean): BouncerSceneLayout {
+fun calculateLayout(isOneHandedModeSupported: Boolean): BouncerOverlayLayout {
     val windowSizeClass = LocalWindowSizeClass.current
 
     return calculateLayoutInternal(
@@ -57,7 +57,7 @@
 }
 
 /** Enumerates all known adaptive layout configurations. */
-enum class BouncerSceneLayout {
+enum class BouncerOverlayLayout {
     /** The default UI with the bouncer laid out normally. */
     STANDARD_BOUNCER,
     /** The bouncer is displayed vertically stacked with the user switcher. */
@@ -84,21 +84,21 @@
     width: SizeClass,
     height: SizeClass,
     isOneHandedModeSupported: Boolean,
-): BouncerSceneLayout {
+): BouncerOverlayLayout {
     return when (height) {
-        SizeClass.COMPACT -> BouncerSceneLayout.SPLIT_BOUNCER
+        SizeClass.COMPACT -> BouncerOverlayLayout.SPLIT_BOUNCER
         SizeClass.MEDIUM ->
             when (width) {
-                SizeClass.COMPACT -> BouncerSceneLayout.STANDARD_BOUNCER
-                SizeClass.MEDIUM -> BouncerSceneLayout.STANDARD_BOUNCER
-                SizeClass.EXPANDED -> BouncerSceneLayout.BESIDE_USER_SWITCHER
+                SizeClass.COMPACT -> BouncerOverlayLayout.STANDARD_BOUNCER
+                SizeClass.MEDIUM -> BouncerOverlayLayout.STANDARD_BOUNCER
+                SizeClass.EXPANDED -> BouncerOverlayLayout.BESIDE_USER_SWITCHER
             }
         SizeClass.EXPANDED ->
             when (width) {
-                SizeClass.COMPACT -> BouncerSceneLayout.STANDARD_BOUNCER
-                SizeClass.MEDIUM -> BouncerSceneLayout.BELOW_USER_SWITCHER
-                SizeClass.EXPANDED -> BouncerSceneLayout.BESIDE_USER_SWITCHER
+                SizeClass.COMPACT -> BouncerOverlayLayout.STANDARD_BOUNCER
+                SizeClass.MEDIUM -> BouncerOverlayLayout.BELOW_USER_SWITCHER
+                SizeClass.EXPANDED -> BouncerOverlayLayout.BESIDE_USER_SWITCHER
             }
-    }.takeIf { it != BouncerSceneLayout.BESIDE_USER_SWITCHER || isOneHandedModeSupported }
-        ?: BouncerSceneLayout.STANDARD_BOUNCER
+    }.takeIf { it != BouncerOverlayLayout.BESIDE_USER_SWITCHER || isOneHandedModeSupported }
+        ?: BouncerOverlayLayout.STANDARD_BOUNCER
 }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContainer.kt b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContainer.kt
index 9b76f15..4e1aab5 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContainer.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContainer.kt
@@ -282,6 +282,7 @@
             CommunalBackgroundType.ANIMATED -> AnimatedLinearGradient()
             CommunalBackgroundType.NONE -> BackgroundTopScrim()
             CommunalBackgroundType.BLUR -> Background()
+            CommunalBackgroundType.SCRIM -> Scrimmed()
         }
 
         with(content) {
@@ -304,6 +305,11 @@
     Box(modifier = Modifier.matchParentSize().background(Color(backgroundColor.toArgb())))
 }
 
+@Composable
+private fun BoxScope.Scrimmed() {
+    Box(modifier = Modifier.matchParentSize().alpha(0.34f).background(Color.Black))
+}
+
 /** Experimental hub background, static linear gradient */
 @Composable
 private fun BoxScope.StaticLinearGradient() {
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenScene.kt
index 5e61af6..aa07370 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenScene.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenScene.kt
@@ -19,6 +19,7 @@
 import androidx.compose.foundation.layout.fillMaxSize
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
 import com.android.compose.animation.scene.ContentScope
 import com.android.compose.animation.scene.UserAction
 import com.android.compose.animation.scene.UserActionResult
@@ -55,7 +56,11 @@
 
     @Composable
     override fun ContentScope.Content(modifier: Modifier) {
-        LockscreenScene(lockscreenContent = lockscreenContent, modifier = modifier)
+        LockscreenScene(
+            lockscreenContent = lockscreenContent,
+            // TODO(b/393516240): Use the same sysuiResTag() as views instead.
+            modifier = modifier.testTag(key.rootElementKey.testTag),
+        )
     }
 }
 
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/BottomAreaSection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/BottomAreaSection.kt
index 52ccab3..ec7e495 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/BottomAreaSection.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/BottomAreaSection.kt
@@ -70,33 +70,29 @@
             key = if (isStart) StartButtonElementKey else EndButtonElementKey,
             modifier = modifier,
         ) {
-            content {
-                Shortcut(
-                    viewId = if (isStart) R.id.start_button else R.id.end_button,
-                    viewModel = if (isStart) viewModel.startButton else viewModel.endButton,
-                    transitionAlpha = viewModel.transitionAlpha,
-                    indicationController = indicationController,
-                    binder = keyguardQuickAffordanceViewBinder,
-                    modifier =
-                        if (applyPadding) {
-                            Modifier.shortcutPadding()
-                        } else {
-                            Modifier
-                        },
-                )
-            }
+            Shortcut(
+                viewId = if (isStart) R.id.start_button else R.id.end_button,
+                viewModel = if (isStart) viewModel.startButton else viewModel.endButton,
+                transitionAlpha = viewModel.transitionAlpha,
+                indicationController = indicationController,
+                binder = keyguardQuickAffordanceViewBinder,
+                modifier =
+                    if (applyPadding) {
+                        Modifier.shortcutPadding()
+                    } else {
+                        Modifier
+                    },
+            )
         }
     }
 
     @Composable
     fun ContentScope.IndicationArea(modifier: Modifier = Modifier) {
         Element(key = IndicationAreaElementKey, modifier = modifier.indicationAreaPadding()) {
-            content {
-                IndicationArea(
-                    indicationAreaViewModel = indicationAreaViewModel,
-                    indicationController = indicationController,
-                )
-            }
+            IndicationArea(
+                indicationAreaViewModel = indicationAreaViewModel,
+                indicationController = indicationController,
+            )
         }
     }
 
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/DefaultClockSection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/DefaultClockSection.kt
index ae541dd..0583e8a 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/DefaultClockSection.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/DefaultClockSection.kt
@@ -26,11 +26,9 @@
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.getValue
-import androidx.compose.runtime.key
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.res.dimensionResource
 import androidx.compose.ui.viewinterop.AndroidView
-import androidx.core.view.contains
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.compose.animation.scene.ContentScope
 import com.android.compose.modifiers.padding
@@ -132,18 +130,16 @@
         }
 
         Element(key = largeClockElementKey, modifier = modifier) {
-            content {
-                ClockView(
-                    checkNotNull(currentClock).largeClock.view,
-                    modifier =
-                        Modifier.fillMaxSize()
-                            .burnInAware(
-                                viewModel = aodBurnInViewModel,
-                                params = burnInParams,
-                                isClock = true,
-                            ),
-                )
-            }
+            ClockView(
+                checkNotNull(currentClock).largeClock.view,
+                modifier =
+                    Modifier.fillMaxSize()
+                        .burnInAware(
+                            viewModel = aodBurnInViewModel,
+                            params = burnInParams,
+                            isClock = true,
+                        ),
+            )
         }
     }
 
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/SmartSpaceSection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/SmartSpaceSection.kt
index c3ba7ab..c7b797d 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/SmartSpaceSection.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/SmartSpaceSection.kt
@@ -66,64 +66,61 @@
         val resources = LocalContext.current.resources
 
         Element(key = ClockElementKeys.smartspaceElementKey, modifier = modifier) {
-            content {
-                Column(
-                    modifier =
-                        modifier
-                            .onTopPlacementChanged(onTopChanged)
-                            .padding(
-                                top = { smartSpacePaddingTop(resources) },
-                                bottom = {
-                                    resources.getDimensionPixelSize(
-                                        R.dimen.keyguard_status_view_bottom_margin
-                                    )
-                                },
-                            )
-                ) {
-                    if (!keyguardSmartspaceViewModel.isSmartspaceEnabled) {
-                        return@Column
-                    }
+            Column(
+                modifier =
+                    modifier
+                        .onTopPlacementChanged(onTopChanged)
+                        .padding(
+                            top = { smartSpacePaddingTop(resources) },
+                            bottom = {
+                                resources.getDimensionPixelSize(
+                                    R.dimen.keyguard_status_view_bottom_margin
+                                )
+                            },
+                        )
+            ) {
+                if (!keyguardSmartspaceViewModel.isSmartspaceEnabled) {
+                    return@Column
+                }
 
-                    val paddingBelowClockStart =
-                        dimensionResource(R.dimen.below_clock_padding_start)
-                    val paddingBelowClockEnd = dimensionResource(R.dimen.below_clock_padding_end)
-                    val paddingCardHorizontal = paddingBelowClockEnd
+                val paddingBelowClockStart = dimensionResource(R.dimen.below_clock_padding_start)
+                val paddingBelowClockEnd = dimensionResource(R.dimen.below_clock_padding_end)
+                val paddingCardHorizontal = paddingBelowClockEnd
 
-                    if (keyguardSmartspaceViewModel.isDateWeatherDecoupled) {
-                        Row(
-                            verticalAlignment = Alignment.CenterVertically,
-                            modifier =
-                                Modifier.fillMaxWidth()
-                                    // All items will be constrained to be as tall as the shortest
-                                    // item.
-                                    .height(IntrinsicSize.Min)
-                                    .padding(start = paddingBelowClockStart),
-                        ) {
-                            Date(
-                                modifier =
-                                    Modifier.burnInAware(
-                                        viewModel = aodBurnInViewModel,
-                                        params = burnInParams,
-                                    )
-                            )
-                            Spacer(modifier = Modifier.width(4.dp))
-                            Weather(
-                                modifier =
-                                    Modifier.burnInAware(
-                                        viewModel = aodBurnInViewModel,
-                                        params = burnInParams,
-                                    )
-                            )
-                        }
-                    }
-
-                    Card(
+                if (keyguardSmartspaceViewModel.isDateWeatherDecoupled) {
+                    Row(
+                        verticalAlignment = Alignment.CenterVertically,
                         modifier =
                             Modifier.fillMaxWidth()
-                                .padding(start = paddingCardHorizontal, end = paddingCardHorizontal)
-                                .burnInAware(viewModel = aodBurnInViewModel, params = burnInParams)
-                    )
+                                // All items will be constrained to be as tall as the shortest
+                                // item.
+                                .height(IntrinsicSize.Min)
+                                .padding(start = paddingBelowClockStart),
+                    ) {
+                        Date(
+                            modifier =
+                                Modifier.burnInAware(
+                                    viewModel = aodBurnInViewModel,
+                                    params = burnInParams,
+                                )
+                        )
+                        Spacer(modifier = Modifier.width(4.dp))
+                        Weather(
+                            modifier =
+                                Modifier.burnInAware(
+                                    viewModel = aodBurnInViewModel,
+                                    params = burnInParams,
+                                )
+                        )
+                    }
                 }
+
+                Card(
+                    modifier =
+                        Modifier.fillMaxWidth()
+                            .padding(start = paddingCardHorizontal, end = paddingCardHorizontal)
+                            .burnInAware(viewModel = aodBurnInViewModel, params = burnInParams)
+                )
             }
         }
     }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/WeatherClockSection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/WeatherClockSection.kt
index 4fcb5ca..a8b2b13 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/WeatherClockSection.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/WeatherClockSection.kt
@@ -24,7 +24,6 @@
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.wrapContentSize
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.key
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.res.dimensionResource
@@ -109,14 +108,10 @@
         modifier: Modifier = Modifier,
     ) {
         Element(key = elementKey, modifier) {
-            content {
-                ClockView(
-                    clock.largeClock.layout.views.firstOrNull {
-                        it.id == weatherClockElementViewId
-                    },
-                    modifier,
-                )
-            }
+            ClockView(
+                clock.largeClock.layout.views.firstOrNull { it.id == weatherClockElementViewId },
+                modifier,
+            )
         }
     }
 
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationLockscreenScrim.kt b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationLockscreenScrim.kt
index ef8911d..624c560 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationLockscreenScrim.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationLockscreenScrim.kt
@@ -31,6 +31,7 @@
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.compose.animation.scene.ContentScope
 import com.android.compose.animation.scene.content.state.TransitionState
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.shade.shared.model.ShadeMode
 import com.android.systemui.statusbar.notification.stack.ui.viewmodel.NotificationLockscreenScrimViewModel
@@ -100,7 +101,7 @@
 
     val isBouncerToLockscreen =
         layoutState.currentTransition?.isTransitioning(
-            from = Scenes.Bouncer,
+            from = Overlays.Bouncer,
             to = Scenes.Lockscreen,
         ) ?: false
 
@@ -120,5 +121,5 @@
     return shadeMode != ShadeMode.Dual &&
         currentTransition.isInitiatedByUserInput &&
         (currentTransition.isTransitioning(from = Scenes.Shade, to = Scenes.Lockscreen) ||
-            currentTransition.isTransitioning(from = Scenes.Bouncer, to = Scenes.Lockscreen))
+            currentTransition.isTransitioning(from = Overlays.Bouncer, to = Scenes.Lockscreen))
 }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationsShadeOverlay.kt b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationsShadeOverlay.kt
index 297995b..7cd6c6b 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationsShadeOverlay.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationsShadeOverlay.kt
@@ -124,7 +124,6 @@
                             SmallClock(
                                 burnInParams = burnIn.parameters,
                                 onTopChanged = burnIn.onSmallClockTopChanged,
-                                modifier = Modifier.fillMaxWidth(),
                             )
                         }
                     }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/qs/footer/ui/compose/FooterActions.kt b/packages/SystemUI/compose/features/src/com/android/systemui/qs/footer/ui/compose/FooterActions.kt
index 9c85c96..60c01722 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/qs/footer/ui/compose/FooterActions.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/qs/footer/ui/compose/FooterActions.kt
@@ -116,11 +116,9 @@
         QuickSettingsTheme {
             // This view has its own horizontal padding
             // TODO(b/321716470) This should use a lifecycle tied to the scene.
-            FooterActions(
-                viewModel = viewModel,
-                qsVisibilityLifecycleOwner = lifecycleOwner,
-                modifier = Modifier.element(QuickSettings.Elements.FooterActions),
-            )
+            Element(QuickSettings.Elements.FooterActions, Modifier) {
+                FooterActions(viewModel = viewModel, qsVisibilityLifecycleOwner = lifecycleOwner)
+            }
         }
     }
 }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt
index b826187..fe5c72f 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt
@@ -135,7 +135,8 @@
                 }
             }
         is TransitionState.Transition.OverlayTransition ->
-            error("Bad transition for QuickSettings scene: overlays not supported")
+            // Currently, no overlays use this QS impl, so we should make sure it's closed.
+            QSSceneAdapter.State.CLOSED
     }
 }
 
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainerInterruptionHandler.kt b/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainerInterruptionHandler.kt
index 7e99847..4ff7f48 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainerInterruptionHandler.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainerInterruptionHandler.kt
@@ -20,9 +20,11 @@
 import com.android.compose.animation.scene.InterruptionResult
 import com.android.compose.animation.scene.SceneKey
 import com.android.compose.animation.scene.content.state.TransitionState
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.ui.composable.transitions.TO_BOUNCER_FADE_FRACTION
 
+// TODO(b/394632609) update this class to handle Bouncer as an Overlay
 object SceneContainerInterruptionHandler : InterruptionHandler {
     override fun onInterruption(
         interrupted: TransitionState.Transition.ChangeScene,
@@ -39,7 +41,7 @@
         transition: TransitionState.Transition.ChangeScene,
         targetScene: SceneKey,
     ): InterruptionResult? {
-        if (targetScene != Scenes.Gone || !transition.isTransitioningFromOrTo(Scenes.Bouncer)) {
+        if (targetScene != Scenes.Gone || !transition.isTransitioningFromOrTo(Overlays.Bouncer)) {
             return null
         }
 
@@ -48,7 +50,7 @@
         // usually the Lockscreen scene).
         val otherScene: SceneKey
         val animatesFromBouncer =
-            if (transition.isTransitioning(to = Scenes.Bouncer)) {
+            if (transition.isTransitioning(to = Overlays.Bouncer)) {
                 otherScene = transition.fromScene
                 transition.progress >= TO_BOUNCER_FADE_FRACTION
             } else {
@@ -58,7 +60,7 @@
 
         return if (animatesFromBouncer) {
             InterruptionResult(
-                animateFrom = Scenes.Bouncer,
+                animateFrom = Scenes.Lockscreen,
 
                 // We don't want the content of the lockscreen to be shown during the Bouncer =>
                 // Launcher transition. We disable chaining of the transitions so that only the
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainerTransitions.kt b/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainerTransitions.kt
index 2ad9b7a..7fe19fe 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainerTransitions.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainerTransitions.kt
@@ -1,5 +1,6 @@
 package com.android.systemui.scene.ui.composable
 
+import com.android.compose.animation.scene.DefaultInterruptionHandler
 import com.android.compose.animation.scene.SceneTransitions
 import com.android.compose.animation.scene.TransitionKey
 import com.android.compose.animation.scene.reveal.ContainerRevealHaptics
@@ -29,6 +30,7 @@
 import com.android.systemui.scene.ui.composable.transitions.lockscreenToShadeTransition
 import com.android.systemui.scene.ui.composable.transitions.lockscreenToSplitShadeTransition
 import com.android.systemui.scene.ui.composable.transitions.shadeToQuickSettingsTransition
+import com.android.systemui.scene.ui.composable.transitions.toBouncerTransition
 import com.android.systemui.scene.ui.composable.transitions.toNotificationsShadeTransition
 import com.android.systemui.scene.ui.composable.transitions.toQuickSettingsShadeTransition
 import com.android.systemui.shade.ui.composable.Shade
@@ -48,12 +50,10 @@
 class SceneContainerTransitions : SceneContainerTransitionsBuilder {
     override fun build(revealHaptics: ContainerRevealHaptics): SceneTransitions {
         return transitions {
-            interruptionHandler = SceneContainerInterruptionHandler
+            interruptionHandler = DefaultInterruptionHandler
 
             // Scene transitions
 
-            from(Scenes.Bouncer, to = Scenes.Gone) { bouncerToGoneTransition() }
-            from(Scenes.Dream, to = Scenes.Bouncer) { dreamToBouncerTransition() }
             from(Scenes.Dream, to = Scenes.Communal) { dreamToCommunalTransition() }
             from(Scenes.Dream, to = Scenes.Gone) { dreamToGoneTransition() }
             from(
@@ -102,15 +102,6 @@
                 goneToQuickSettingsTransition(durationScale = 0.9)
             }
 
-            from(Scenes.Lockscreen, to = Scenes.Bouncer) { lockscreenToBouncerTransition() }
-            from(
-                Scenes.Lockscreen,
-                to = Scenes.Bouncer,
-                key = TransitionKey.PredictiveBack,
-                reversePreview = { bouncerToLockscreenPreview() },
-            ) {
-                lockscreenToBouncerTransition()
-            }
             from(Scenes.Lockscreen, to = Scenes.Communal) { lockscreenToCommunalTransition() }
             from(Scenes.Lockscreen, to = Scenes.Dream) { lockscreenToDreamTransition() }
             from(
@@ -190,10 +181,22 @@
             ) {
                 communalToShadeTransition()
             }
-            from(Scenes.Communal, to = Scenes.Bouncer) { communalToBouncerTransition() }
 
             // Overlay transitions
 
+            to(Overlays.Bouncer) { toBouncerTransition() }
+            from(Overlays.Bouncer, to = Scenes.Gone) { bouncerToGoneTransition() }
+            from(Scenes.Dream, to = Overlays.Bouncer) { dreamToBouncerTransition() }
+            from(Scenes.Lockscreen, to = Overlays.Bouncer) { lockscreenToBouncerTransition() }
+            from(
+                Scenes.Lockscreen,
+                to = Overlays.Bouncer,
+                key = TransitionKey.PredictiveBack,
+                reversePreview = { bouncerToLockscreenPreview() },
+            ) {
+                lockscreenToBouncerTransition()
+            }
+            from(Scenes.Communal, to = Overlays.Bouncer) { communalToBouncerTransition() }
             to(
                 Overlays.NotificationsShade,
                 cuj = Cuj.CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE, // NOTYPO
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/transitions/FromBouncerToGoneTransition.kt b/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/transitions/FromBouncerToGoneTransition.kt
index 5eefe49..27cdf21 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/transitions/FromBouncerToGoneTransition.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/transitions/FromBouncerToGoneTransition.kt
@@ -2,10 +2,10 @@
 
 import androidx.compose.animation.core.tween
 import com.android.compose.animation.scene.TransitionBuilder
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.bouncer.ui.composable.Bouncer
 
 fun TransitionBuilder.bouncerToGoneTransition() {
     spec = tween(durationMillis = 500)
 
-    fade(Scenes.Bouncer.rootElementKey)
+    fade(Bouncer.Elements.Root)
 }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt
index cdb1e2e..7e7b629 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/OverlayShade.kt
@@ -54,6 +54,7 @@
 import com.android.compose.animation.scene.LowestZIndexContentPicker
 import com.android.compose.windowsizeclass.LocalWindowSizeClass
 import com.android.systemui.res.R
+import androidx.compose.ui.unit.Dp
 
 /** Renders a lightweight shade UI container, as an overlay. */
 @Composable
@@ -202,10 +203,15 @@
     }
 
     object Dimensions {
-        val PanelCornerRadius = 46.dp
+        val PanelCornerRadius: Dp
+            @Composable
+            @ReadOnlyComposable get() =
+                dimensionResource(R.dimen.overlay_shade_panel_shape_radius)
     }
 
     object Shapes {
-        val RoundedCornerPanel = RoundedCornerShape(Dimensions.PanelCornerRadius)
+        val RoundedCornerPanel: RoundedCornerShape
+            @Composable
+            @ReadOnlyComposable get() = RoundedCornerShape(Dimensions.PanelCornerRadius)
     }
 }
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt
index db9035b..23baeac 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt
@@ -440,33 +440,36 @@
 private fun ContentScope.Clock(scale: Float, onClick: () -> Unit, modifier: Modifier = Modifier) {
     val layoutDirection = LocalLayoutDirection.current
 
-    Element(key = ShadeHeader.Elements.Clock, modifier = modifier) {
+    ElementWithValues(key = ShadeHeader.Elements.Clock, modifier = modifier) {
         val animatedScale by animateElementFloatAsState(scale, ClockScale, canOverflow = false)
-        AndroidView(
-            factory = { context ->
-                Clock(
-                    ContextThemeWrapper(context, R.style.Theme_SystemUI_QuickSettings_Header),
-                    null,
-                )
-            },
-            modifier =
-                modifier
-                    // use graphicsLayer instead of Modifier.scale to anchor transform
-                    // to the (start, top) corner
-                    .graphicsLayer {
-                        scaleX = animatedScale
-                        scaleY = animatedScale
-                        transformOrigin =
-                            TransformOrigin(
-                                when (layoutDirection) {
-                                    LayoutDirection.Ltr -> 0f
-                                    LayoutDirection.Rtl -> 1f
-                                },
-                                0.5f,
-                            )
-                    }
-                    .clickable { onClick() },
-        )
+
+        content {
+            AndroidView(
+                factory = { context ->
+                    Clock(
+                        ContextThemeWrapper(context, R.style.Theme_SystemUI_QuickSettings_Header),
+                        null,
+                    )
+                },
+                modifier =
+                    modifier
+                        // use graphicsLayer instead of Modifier.scale to anchor transform to the
+                        // (start, top) corner
+                        .graphicsLayer {
+                            scaleX = animatedScale
+                            scaleY = animatedScale
+                            transformOrigin =
+                                TransformOrigin(
+                                    when (layoutDirection) {
+                                        LayoutDirection.Ltr -> 0f
+                                        LayoutDirection.Rtl -> 1f
+                                    },
+                                    0.5f,
+                                )
+                        }
+                        .clickable { onClick() },
+            )
+        }
     }
 }
 
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlider.kt b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlider.kt
index b11c83c..4b3ebc2 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlider.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/volume/panel/component/volume/ui/composable/VolumeSlider.kt
@@ -35,9 +35,9 @@
 import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
+import androidx.compose.material3.ExperimentalMaterial3Api
 import androidx.compose.material3.Icon as MaterialIcon
 import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.Slider
 import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
@@ -73,11 +73,15 @@
 import com.android.systemui.res.R
 import com.android.systemui.volume.haptics.ui.VolumeHapticsConfigsProvider
 import com.android.systemui.volume.panel.component.volume.slider.ui.viewmodel.SliderState
+import com.android.systemui.volume.ui.slider.AccessibilityParams
+import com.android.systemui.volume.ui.slider.Haptics
+import com.android.systemui.volume.ui.slider.Slider
 import kotlin.math.round
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.filter
 import kotlinx.coroutines.flow.map
 
+@OptIn(ExperimentalMaterial3Api::class)
 @Composable
 fun VolumeSlider(
     state: SliderState,
@@ -102,17 +106,6 @@
         return
     }
 
-    val value by valueState(state)
-    val interactionSource = remember { MutableInteractionSource() }
-    val hapticsViewModel: SliderHapticsViewModel? =
-        setUpHapticsViewModel(
-            value,
-            state.valueRange,
-            state.hapticFilter,
-            interactionSource,
-            hapticsViewModelFactory,
-        )
-
     Column(modifier = modifier.animateContentSize(), verticalArrangement = Arrangement.Top) {
         Row(
             horizontalArrangement = Arrangement.spacedBy(12.dp),
@@ -134,60 +127,30 @@
             )
             button?.invoke()
         }
+
         Slider(
-            value = value,
+            value = state.value,
             valueRange = state.valueRange,
-            onValueChange = { newValue ->
-                hapticsViewModel?.addVelocityDataPoint(newValue)
-                onValueChange(newValue)
-            },
-            onValueChangeFinished = {
-                hapticsViewModel?.onValueChangeEnded()
-                onValueChangeFinished?.invoke()
-            },
-            enabled = state.isEnabled,
+            onValueChanged = onValueChange,
+            onValueChangeFinished = { onValueChangeFinished?.invoke() },
+            isEnabled = state.isEnabled,
+            stepDistance = state.a11yStep,
+            accessibilityParams =
+                AccessibilityParams(
+                    label = state.label,
+                    disabledMessage = state.disabledMessage,
+                    currentStateDescription = state.a11yStateDescription,
+                ),
+            haptics =
+                hapticsViewModelFactory?.let {
+                    Haptics.Enabled(
+                        hapticsViewModelFactory = it,
+                        hapticFilter = state.hapticFilter,
+                        orientation = Orientation.Horizontal,
+                    )
+                } ?: Haptics.Disabled,
             modifier =
-                Modifier.height(40.dp)
-                    .padding(top = 4.dp, bottom = 12.dp)
-                    .sysuiResTag(state.label)
-                    .clearAndSetSemantics {
-                        if (state.isEnabled) {
-                            contentDescription = state.label
-                            state.a11yClickDescription?.let {
-                                customActions =
-                                    listOf(
-                                        CustomAccessibilityAction(it) {
-                                            onIconTapped()
-                                            true
-                                        }
-                                    )
-                            }
-
-                            state.a11yStateDescription?.let { stateDescription = it }
-                            progressBarRangeInfo =
-                                ProgressBarRangeInfo(state.value, state.valueRange)
-                        } else {
-                            disabled()
-                            contentDescription =
-                                state.disabledMessage?.let { "${state.label}, $it" } ?: state.label
-                        }
-                        setProgress { targetValue ->
-                            val targetDirection =
-                                when {
-                                    targetValue > value -> 1
-                                    targetValue < value -> -1
-                                    else -> 0
-                                }
-
-                            val newValue =
-                                (value + targetDirection * state.a11yStep).coerceIn(
-                                    state.valueRange.start,
-                                    state.valueRange.endInclusive,
-                                )
-                            onValueChange(newValue)
-                            true
-                        }
-                    },
+                Modifier.height(40.dp).padding(top = 4.dp, bottom = 12.dp).sysuiResTag(state.label),
         )
         state.disabledMessage?.let { disabledMessage ->
             AnimatedVisibility(visible = !state.isEnabled) {
@@ -348,7 +311,7 @@
 }
 
 @Composable
-fun setUpHapticsViewModel(
+private fun setUpHapticsViewModel(
     value: Float,
     valueRange: ClosedFloatingPointRange<Float>,
     hapticFilter: SliderHapticFeedbackFilter,
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt
index 907b5bc..05958a2 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt
@@ -169,7 +169,7 @@
             Modifier.maybeElevateInContent(layoutImpl, content, key, currentTransitionStates)
         }
         .then(ElementModifier(layoutImpl, currentTransitionStates, content, key))
-        .testTag(key.testTag)
+        .thenIf(layoutImpl.implicitTestTags) { Modifier.testTag(key.testTag) }
 }
 
 /**
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MovableElement.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MovableElement.kt
index f4af5f0..eab5206 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MovableElement.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MovableElement.kt
@@ -35,6 +35,21 @@
     sceneOrOverlay: Content,
     key: ElementKey,
     modifier: Modifier,
+    content: @Composable BoxScope.() -> Unit,
+) {
+    Box(
+        modifier.element(layoutImpl, sceneOrOverlay, key),
+        propagateMinConstraints = true,
+        content = content,
+    )
+}
+
+@Composable
+internal fun ElementWithValues(
+    layoutImpl: SceneTransitionLayoutImpl,
+    sceneOrOverlay: Content,
+    key: ElementKey,
+    modifier: Modifier,
     content: @Composable ElementScope<ElementContentScope>.() -> Unit,
 ) {
     Box(modifier.element(layoutImpl, sceneOrOverlay, key), propagateMinConstraints = true) {
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/ObservableTransitionState.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/ObservableTransitionState.kt
index 5bf77ae..f7f0bf19 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/ObservableTransitionState.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/ObservableTransitionState.kt
@@ -220,13 +220,70 @@
                     isInPreviewStage,
                 )
             }
+
+            fun showOverlay(
+                overlay: OverlayKey,
+                fromScene: SceneKey,
+                currentOverlays: Flow<Set<OverlayKey>>,
+                progress: Flow<Float>,
+                isInitiatedByUserInput: Boolean,
+                isUserInputOngoing: Flow<Boolean>,
+                previewProgress: Flow<Float> = flowOf(0f),
+                isInPreviewStage: Flow<Boolean> = flowOf(false),
+            ): ShowOrHideOverlay {
+                return ShowOrHideOverlay(
+                    overlay = overlay,
+                    fromContent = fromScene,
+                    toContent = overlay,
+                    currentScene = fromScene,
+                    currentOverlays = currentOverlays,
+                    progress = progress,
+                    isInitiatedByUserInput = isInitiatedByUserInput,
+                    isUserInputOngoing = isUserInputOngoing,
+                    previewProgress = previewProgress,
+                    isInPreviewStage = isInPreviewStage,
+                )
+            }
+
+            fun hideOverlay(
+                overlay: OverlayKey,
+                toScene: SceneKey,
+                currentOverlays: Flow<Set<OverlayKey>>,
+                progress: Flow<Float>,
+                isInitiatedByUserInput: Boolean,
+                isUserInputOngoing: Flow<Boolean>,
+                previewProgress: Flow<Float> = flowOf(0f),
+                isInPreviewStage: Flow<Boolean> = flowOf(false),
+            ): ShowOrHideOverlay {
+                return ShowOrHideOverlay(
+                    overlay = overlay,
+                    fromContent = overlay,
+                    toContent = toScene,
+                    currentScene = toScene,
+                    currentOverlays = currentOverlays,
+                    progress = progress,
+                    isInitiatedByUserInput = isInitiatedByUserInput,
+                    isUserInputOngoing = isUserInputOngoing,
+                    previewProgress = previewProgress,
+                    isInPreviewStage = isInPreviewStage,
+                )
+            }
         }
     }
 
-    fun isIdle(scene: SceneKey? = null): Boolean {
-        return this is Idle && (scene == null || this.currentScene == scene)
+    fun isIdle(scene: SceneKey? = null, overlay: OverlayKey? = null): Boolean {
+        return this is Idle &&
+            (scene == null || this.currentScene == scene) &&
+            (overlay == null || overlay in this.currentOverlays)
     }
 
+    fun isIdle(content: ContentKey?): Boolean =
+        when (content) {
+            is SceneKey -> isIdle(scene = content)
+            is OverlayKey -> isIdle(overlay = content)
+            null -> this is Idle
+        }
+
     fun isTransitioning(from: ContentKey? = null, to: ContentKey? = null): Boolean {
         return this is Transition &&
             (from == null || this.fromContent == from) &&
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt
index 72bb82b..404f1b2 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt
@@ -22,6 +22,7 @@
 import androidx.compose.foundation.OverscrollEffect
 import androidx.compose.foundation.OverscrollFactory
 import androidx.compose.foundation.gestures.Orientation
+import androidx.compose.foundation.layout.BoxScope
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.SideEffect
 import androidx.compose.runtime.Stable
@@ -65,6 +66,8 @@
     swipeSourceDetector: SwipeSourceDetector = DefaultEdgeDetector,
     swipeDetector: SwipeDetector = DefaultSwipeDetector,
     @FloatRange(from = 0.0, to = 0.5) transitionInterceptionThreshold: Float = 0.05f,
+    // TODO(b/240432457) Remove this once test utils can access the internal STLForTesting().
+    implicitTestTags: Boolean = false,
     builder: SceneTransitionLayoutScope<ContentScope>.() -> Unit,
 ) {
     SceneTransitionLayoutForTesting(
@@ -73,6 +76,7 @@
         swipeSourceDetector,
         swipeDetector,
         transitionInterceptionThreshold,
+        implicitTestTags = implicitTestTags,
         onLayoutImpl = null,
         builder = builder,
     )
@@ -188,7 +192,7 @@
      * Additionally, this [key] will be used to detect elements that are shared between contents to
      * automatically interpolate their size and offset. If you need to animate shared element values
      * (i.e. values associated to this element that change depending on which content it is composed
-     * in), use [Element] instead.
+     * in), use [ElementWithValues] instead.
      *
      * Note that shared elements tagged using this function will be duplicated in each content they
      * are part of, so any **internal** state (e.g. state created using `remember {
@@ -196,9 +200,12 @@
      * [MovableElement] instead.
      *
      * @see Element
+     * @see ElementWithValues
      * @see MovableElement
      */
-    fun Modifier.element(key: ElementKey): Modifier
+    // TODO(b/389985793): Does replacing this by Element have a noticeable impact on performance and
+    // should we deprecate it?
+    @Stable fun Modifier.element(key: ElementKey): Modifier
 
     /**
      * Create an element identified by [key].
@@ -207,17 +214,29 @@
      * in multiple contents and that can be transformed during transitions, the same way that
      * [element] does.
      *
-     * The only difference with [element] is that the provided [ElementScope] allows you to
-     * [animate element values][ElementScope.animateElementValueAsState] or specify its
-     * [movable content][Element.movableContent] that will be "moved" and composed only once during
-     * transitions (as opposed to [element] that duplicates shared elements) so that any internal
-     * state is preserved during and after the transition.
+     * The only difference with [element] is that [Element] introduces its own recomposition scope
+     * and layout node, which can be helpful to avoid expensive recompositions when a transition is
+     * started or finished (see b/389985793#comment103 for details).
      *
      * @see element
+     * @see ElementWithValues
      * @see MovableElement
      */
     @Composable
-    fun Element(
+    fun Element(key: ElementKey, modifier: Modifier, content: @Composable BoxScope.() -> Unit)
+
+    /**
+     * Create an element identified by [key].
+     *
+     * The only difference with [Element] is that the provided [ElementScope] allows you to
+     * [animate element values][ElementScope.animateElementValueAsState].
+     *
+     * @see element
+     * @see Element
+     * @see MovableElement
+     */
+    @Composable
+    fun ElementWithValues(
         key: ElementKey,
         modifier: Modifier,
 
@@ -230,17 +249,19 @@
     /**
      * Create a *movable* element identified by [key].
      *
-     * Similar to [Element], this creates an element that will be automatically shared when present
-     * in multiple contents and that can be transformed during transitions, and you can also use the
-     * provided [ElementScope] to [animate element values][ElementScope.animateElementValueAsState].
+     * Similar to [ElementWithValues], this creates an element that will be automatically shared
+     * when present in multiple contents and that can be transformed during transitions, and you can
+     * also use the provided [ElementScope] to
+     * [animate element values][ElementScope.animateElementValueAsState].
      *
-     * The important difference with [element] and [Element] is that this element
-     * [content][ElementScope.content] will be "moved" and composed only once during transitions, as
-     * opposed to [element] and [Element] that duplicates shared elements, so that any internal
-     * state is preserved during and after the transition.
+     * The important difference with [element], [Element] and [ElementWithValues] is that this
+     * element [content][ElementScope.content] will be "moved" and composed only once during
+     * transitions, as opposed to [element], [Element] and [ElementWithValues] that duplicates
+     * shared elements, so that any internal state is preserved during and after the transition.
      *
      * @see element
      * @see Element
+     * @see ElementWithValues
      */
     @Composable
     fun MovableElement(
@@ -415,7 +436,7 @@
  *
  * We can't reuse BoxScope directly because of the @LayoutScopeMarker annotation on it, which would
  * prevent us from calling Modifier.element() and other methods of [ContentScope] inside any Box {}
- * in the [content][ElementScope.content] of a [ContentScope.Element] or a
+ * in the [content][ElementScope.content] of a [ContentScope.ElementWithValues] or a
  * [ContentScope.MovableElement].
  */
 @Stable
@@ -447,7 +468,7 @@
     }
 
     infix fun to(overlay: OverlayKey): Pair<UserAction, UserActionResult> {
-        return this to UserActionResult(toOverlay = overlay)
+        return this to UserActionResult.ShowOverlay(overlay)
     }
 
     /** Resolve this into a [Resolved] user action given [layoutDirection]. */
@@ -677,22 +698,6 @@
              */
             requiresFullDistanceSwipe: Boolean = false,
         ): UserActionResult = ChangeScene(toScene, transitionKey, requiresFullDistanceSwipe)
-
-        /** A [UserActionResult] that shows [toOverlay]. */
-        operator fun invoke(
-            /** The overlay we should be transitioning to during the [UserAction]. */
-            toOverlay: OverlayKey,
-
-            /** The key of the transition that should be used. */
-            transitionKey: TransitionKey? = null,
-
-            /**
-             * If `true`, the swipe will be committed if only if the user swiped at least the swipe
-             * distance, i.e. the transition progress was already equal to or bigger than 100% when
-             * the user released their finger.
-             */
-            requiresFullDistanceSwipe: Boolean = false,
-        ): UserActionResult = ShowOverlay(toOverlay, transitionKey, requiresFullDistanceSwipe)
     }
 }
 
@@ -725,10 +730,8 @@
 }
 
 /**
- * An internal version of [SceneTransitionLayout] to be used for tests.
- *
- * Important: You should use this only in tests and if you need to access the underlying
- * [SceneTransitionLayoutImpl]. In other cases, you should use [SceneTransitionLayout].
+ * An internal version of [SceneTransitionLayout] to be used for tests, that provides access to the
+ * internal [SceneTransitionLayoutImpl] and implicitly tags all scenes and elements.
  */
 @Composable
 internal fun SceneTransitionLayoutForTesting(
@@ -741,6 +744,7 @@
     sharedElementMap: MutableMap<ElementKey, Element> = remember { mutableMapOf() },
     ancestors: List<Ancestor> = remember { emptyList() },
     lookaheadScope: LookaheadScope? = null,
+    implicitTestTags: Boolean = true,
     builder: SceneTransitionLayoutScope<InternalContentScope>.() -> Unit,
 ) {
     val density = LocalDensity.current
@@ -765,6 +769,7 @@
                 directionChangeSlop = directionChangeSlop,
                 defaultEffectFactory = defaultEffectFactory,
                 decayAnimationSpec = decayAnimationSpec,
+                implicitTestTags = implicitTestTags,
             )
             .also { onLayoutImpl?.invoke(it) }
     }
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt
index 53996d2..e3c4eb0 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt
@@ -122,6 +122,9 @@
      * This is used to enable transformations and shared elements across NestedSTLs.
      */
     internal val ancestors: List<Ancestor> = emptyList(),
+
+    /** Whether elements and scene should be tagged using `Modifier.testTag`. */
+    internal val implicitTestTags: Boolean = false,
     lookaheadScope: LookaheadScope? = null,
     defaultEffectFactory: OverscrollFactory,
 ) {
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/content/Content.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/content/Content.kt
index 95d6440..149a9e7 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/content/Content.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/content/Content.kt
@@ -21,6 +21,7 @@
 import androidx.compose.foundation.OverscrollEffect
 import androidx.compose.foundation.OverscrollFactory
 import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.BoxScope
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.CompositionLocalProvider
 import androidx.compose.runtime.Stable
@@ -45,6 +46,7 @@
 import com.android.compose.animation.scene.ElementKey
 import com.android.compose.animation.scene.ElementScope
 import com.android.compose.animation.scene.ElementStateScope
+import com.android.compose.animation.scene.ElementWithValues
 import com.android.compose.animation.scene.InternalContentScope
 import com.android.compose.animation.scene.MovableElement
 import com.android.compose.animation.scene.MovableElementContentScope
@@ -171,7 +173,7 @@
                 .thenIf(layoutImpl.state.isElevationPossible(content = key, element = null)) {
                     Modifier.container(containerState)
                 }
-                .testTag(key.testTag)
+                .thenIf(layoutImpl.implicitTestTags) { Modifier.testTag(key.testTag) }
         ) {
             CompositionLocalProvider(LocalOverscrollFactory provides lastFactory) {
                 scope.content()
@@ -222,12 +224,21 @@
     override fun Element(
         key: ElementKey,
         modifier: Modifier,
-        content: @Composable (ElementScope<ElementContentScope>.() -> Unit),
+        content: @Composable BoxScope.() -> Unit,
     ) {
         Element(layoutImpl, this@ContentScopeImpl.content, key, modifier, content)
     }
 
     @Composable
+    override fun ElementWithValues(
+        key: ElementKey,
+        modifier: Modifier,
+        content: @Composable (ElementScope<ElementContentScope>.() -> Unit),
+    ) {
+        ElementWithValues(layoutImpl, this@ContentScopeImpl.content, key, modifier, content)
+    }
+
+    @Composable
     override fun MovableElement(
         key: MovableElementKey,
         modifier: Modifier,
@@ -290,6 +301,7 @@
             sharedElementMap = layoutImpl.elements,
             ancestors = ancestors,
             lookaheadScope = layoutImpl.lookaheadScope,
+            implicitTestTags = layoutImpl.implicitTestTags,
         )
     }
 }
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/AnimatedSharedAsStateTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/AnimatedSharedAsStateTest.kt
index d11e6da1..d06e040 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/AnimatedSharedAsStateTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/AnimatedSharedAsStateTest.kt
@@ -67,7 +67,7 @@
     @Composable
     private fun ContentScope.Foo(targetValues: Values, onCurrentValueChanged: (Values) -> Unit) {
         val key = TestElements.Foo
-        Element(key, Modifier) {
+        ElementWithValues(key, Modifier) {
             val int by animateElementIntAsState(targetValues.int, key = TestValues.Value1)
             val float by animateElementFloatAsState(targetValues.float, key = TestValues.Value2)
             val dp by animateElementDpAsState(targetValues.dp, key = TestValues.Value3)
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt
index 698a808..86cbfe4 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt
@@ -227,7 +227,7 @@
             to = SceneB,
             transitionLayout = { state ->
                 coroutineScope = rememberCoroutineScope()
-                SceneTransitionLayout(state) {
+                SceneTransitionLayoutForTesting(state) {
                     scene(SceneA) {
                         Box(Modifier.size(layoutSize)) {
                             // Transformed element
@@ -633,7 +633,7 @@
 
         val scope =
             rule.setContentAndCreateMainScope {
-                SceneTransitionLayout(state) {
+                SceneTransitionLayoutForTesting(state) {
                     scene(SceneA) { Box(Modifier.element(TestElements.Foo).size(20.dp)) }
                     scene(SceneB) {}
                 }
@@ -674,7 +674,7 @@
             CompositionLocalProvider(
                 LocalOverscrollFactory provides rememberOffsetOverscrollEffectFactory()
             ) {
-                SceneTransitionLayout(state, Modifier.size(layoutWidth, layoutHeight)) {
+                SceneTransitionLayoutForTesting(state, Modifier.size(layoutWidth, layoutHeight)) {
                     scene(key = SceneA, userActions = mapOf(Swipe.Down to SceneB)) {
                         Spacer(Modifier.fillMaxSize())
                     }
@@ -734,7 +734,7 @@
             CompositionLocalProvider(
                 LocalOverscrollFactory provides rememberOffsetOverscrollEffectFactory()
             ) {
-                SceneTransitionLayout(state, Modifier.size(layoutWidth, layoutHeight)) {
+                SceneTransitionLayoutForTesting(state, Modifier.size(layoutWidth, layoutHeight)) {
                     scene(key = SceneA, userActions = mapOf(Swipe.Down to SceneB)) {
                         Spacer(
                             Modifier.overscroll(verticalOverscrollEffect)
@@ -834,7 +834,7 @@
             CompositionLocalProvider(
                 LocalOverscrollFactory provides rememberOffsetOverscrollEffectFactory()
             ) {
-                SceneTransitionLayout(state, Modifier.size(layoutWidth, layoutHeight)) {
+                SceneTransitionLayoutForTesting(state, Modifier.size(layoutWidth, layoutHeight)) {
                     scene(key = SceneA, userActions = mapOf(Swipe.Down to SceneB)) {
                         Spacer(Modifier.fillMaxSize())
                     }
@@ -893,7 +893,7 @@
             CompositionLocalProvider(
                 LocalOverscrollFactory provides rememberOffsetOverscrollEffectFactory()
             ) {
-                SceneTransitionLayout(
+                SceneTransitionLayoutForTesting(
                     state = state,
                     modifier = Modifier.size(layoutWidth, layoutHeight),
                 ) {
@@ -970,7 +970,7 @@
 
         rule.setContent {
             touchSlop = LocalViewConfiguration.current.touchSlop
-            SceneTransitionLayout(
+            SceneTransitionLayoutForTesting(
                 state = state,
                 modifier = Modifier.size(layoutWidth, layoutHeight),
             ) {
@@ -1057,7 +1057,7 @@
         rule.setContent {
             coroutineScope = rememberCoroutineScope()
 
-            SceneTransitionLayout(state) {
+            SceneTransitionLayoutForTesting(state) {
                 scene(SceneA) {
                     Box(Modifier.size(layoutSize)) {
                         Box(
@@ -1163,7 +1163,7 @@
         @Composable
         fun ContentScope.Foo(size: Dp, value: Float, modifier: Modifier = Modifier) {
             val contentKey = this.contentKey
-            Element(TestElements.Foo, modifier.size(size)) {
+            ElementWithValues(TestElements.Foo, modifier.size(size)) {
                 val animatedValue = animateElementFloatAsState(value, TestValues.Value1)
                 LaunchedEffect(animatedValue) {
                     snapshotFlow { animatedValue.value }.collect { lastValues[contentKey] = it }
@@ -1374,7 +1374,7 @@
 
         val scope =
             rule.setContentAndCreateMainScope {
-                SceneTransitionLayout(state, Modifier.size(layoutSize)) {
+                SceneTransitionLayoutForTesting(state, Modifier.size(layoutSize)) {
                     scene(SceneA) {
                         Box(Modifier.fillMaxSize()) { Foo(Modifier.align(Alignment.TopStart)) }
                     }
@@ -1742,7 +1742,7 @@
 
         val scope =
             rule.setContentAndCreateMainScope {
-                SceneTransitionLayout(state, Modifier.size(200.dp)) {
+                SceneTransitionLayoutForTesting(state, Modifier.size(200.dp)) {
                     scene(SceneA) { Foo(offset = 0.dp) }
                     scene(SceneB) { Foo(offset = 20.dp) }
                     scene(SceneC) { Foo(offset = 40.dp) }
@@ -1828,7 +1828,7 @@
 
         val scope =
             rule.setContentAndCreateMainScope {
-                SceneTransitionLayout(state) {
+                SceneTransitionLayoutForTesting(state) {
                     scene(SceneB) { Foo(Modifier.offset(40.dp, 60.dp)) }
 
                     // Define A after B so that Foo is placed in A during A <=> B.
@@ -1887,7 +1887,7 @@
 
         val scope =
             rule.setContentAndCreateMainScope {
-                SceneTransitionLayout(state) {
+                SceneTransitionLayoutForTesting(state) {
                     scene(SceneA) { Foo() }
                     scene(SceneB) { Foo(Modifier.offset(40.dp, 60.dp)) }
                 }
@@ -2090,11 +2090,9 @@
             TestContentScope(currentScene = SceneA) {
                 Column {
                     Element(TestElements.Foo, Modifier.size(40.dp)) {
-                        content {
-                            // Modifier.size() sets a preferred size and this should be ignored
-                            // because of the previously set 40dp size.
-                            Box(Modifier.testTag(contentTestTag).size(20.dp))
-                        }
+                        // Modifier.size() sets a preferred size and this should be ignored because
+                        // of the previously set 40dp size.
+                        Box(Modifier.testTag(contentTestTag).size(20.dp))
                     }
 
                     MovableElement(movable, Modifier.size(40.dp)) {
@@ -2283,4 +2281,35 @@
             .assertSizeIsEqualTo(50.dp)
             .assertPositionInRootIsEqualTo(100.dp, 100.dp)
     }
+
+    @Test
+    fun elementContentIsNotRecomposedWhenATransitionStarts() {
+        var compositions = 0
+        val state = rule.runOnUiThread { MutableSceneTransitionLayoutStateForTests(SceneA) }
+        val scope =
+            rule.setContentAndCreateMainScope {
+                SceneTransitionLayoutForTesting(state) {
+                    scene(SceneA) {
+                        Box(Modifier.fillMaxSize()) {
+                            Element(TestElements.Foo, Modifier) { SideEffect { compositions++ } }
+                        }
+                    }
+                    scene(SceneB) { Box(Modifier.fillMaxSize()) }
+                    scene(SceneC) { Box(Modifier.fillMaxSize()) }
+                }
+            }
+
+        assertThat(compositions).isEqualTo(1)
+
+        scope.launch { state.startTransition(transition(SceneA, SceneB)) }
+        rule.waitForIdle()
+
+        scope.launch { state.startTransition(transition(SceneA, SceneC)) }
+        rule.waitForIdle()
+
+        scope.launch { state.startTransition(transition(SceneA, SceneB)) }
+        rule.waitForIdle()
+
+        assertThat(compositions).isEqualTo(1)
+    }
 }
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MovableElementTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MovableElementTest.kt
index e023936..ebbde70 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MovableElementTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MovableElementTest.kt
@@ -313,7 +313,7 @@
     fun elementScopeExtendsBoxScope() {
         rule.setContent {
             TestContentScope {
-                Element(TestElements.Foo, Modifier.size(200.dp)) {
+                ElementWithValues(TestElements.Foo, Modifier.size(200.dp)) {
                     content {
                         Box {
                             Box(Modifier.testTag("bottomEnd").align(Alignment.BottomEnd))
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/OverlayTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/OverlayTest.kt
index 04c762f..98ecb64 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/OverlayTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/OverlayTest.kt
@@ -90,7 +90,7 @@
         lateinit var coroutineScope: CoroutineScope
         rule.setContent {
             coroutineScope = rememberCoroutineScope()
-            SceneTransitionLayout(state, Modifier.size(200.dp)) {
+            SceneTransitionLayoutForTesting(state, Modifier.size(200.dp)) {
                 scene(SceneA) { Box(Modifier.fillMaxSize()) { Foo() } }
                 overlay(OverlayA) { Foo() }
             }
@@ -132,7 +132,7 @@
         lateinit var coroutineScope: CoroutineScope
         rule.setContent {
             coroutineScope = rememberCoroutineScope()
-            SceneTransitionLayout(state, Modifier.size(200.dp)) {
+            SceneTransitionLayoutForTesting(state, Modifier.size(200.dp)) {
                 scene(SceneA) { Box(Modifier.fillMaxSize()) { Foo() } }
                 overlay(OverlayA) { Foo() }
                 overlay(OverlayB) { Foo() }
@@ -230,7 +230,7 @@
         lateinit var coroutineScope: CoroutineScope
         rule.setContent {
             coroutineScope = rememberCoroutineScope()
-            SceneTransitionLayout(state, Modifier.size(200.dp)) {
+            SceneTransitionLayoutForTesting(state, Modifier.size(200.dp)) {
                 scene(SceneA) { Box(Modifier.fillMaxSize()) { MovableBar() } }
                 overlay(OverlayA) { MovableBar() }
                 overlay(OverlayB) { MovableBar() }
@@ -302,7 +302,7 @@
             }
         var alignment by mutableStateOf(Alignment.Center)
         rule.setContent {
-            SceneTransitionLayout(state, Modifier.size(200.dp)) {
+            SceneTransitionLayoutForTesting(state, Modifier.size(200.dp)) {
                 scene(SceneA) { Box(Modifier.fillMaxSize()) { Foo() } }
                 overlay(OverlayA, alignment = alignment) { Foo() }
             }
@@ -761,7 +761,7 @@
         val movableElementChildTag = "movableElementChildTag"
         val scope =
             rule.setContentAndCreateMainScope {
-                SceneTransitionLayout(state) {
+                SceneTransitionLayoutForTesting(state) {
                     scene(SceneA) {
                         MovableElement(key, Modifier) {
                             content { Box(Modifier.testTag(movableElementChildTag).size(100.dp)) }
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt
index 2bf2358..366b11d 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt
@@ -250,7 +250,7 @@
             }
 
         rule.setContent {
-            SceneTransitionLayout(state, Modifier.size(200.dp)) {
+            SceneTransitionLayoutForTesting(state, Modifier.size(200.dp)) {
                 scene(SceneA) { Box(Modifier.fillMaxSize()) }
                 overlay(OverlayA) { Box(Modifier.fillMaxSize()) }
                 overlay(OverlayB) { Box(Modifier.fillMaxSize()) }
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneTransitionLayoutTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneTransitionLayoutTest.kt
index 3578be4..fa7661b6 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneTransitionLayoutTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneTransitionLayoutTest.kt
@@ -97,7 +97,7 @@
             MutableSceneTransitionLayoutStateForTests(SceneA, EmptyTestTransitions)
         }
 
-        SceneTransitionLayout(state = layoutState, modifier = Modifier.size(LayoutSize)) {
+        SceneTransitionLayoutForTesting(state = layoutState, modifier = Modifier.size(LayoutSize)) {
             scene(SceneA, userActions = mapOf(Back to SceneB)) {
                 Box(Modifier.fillMaxSize()) {
                     SharedFoo(size = 50.dp, childOffset = 0.dp, Modifier.align(Alignment.TopEnd))
@@ -129,7 +129,7 @@
 
     @Composable
     private fun ContentScope.SharedFoo(size: Dp, childOffset: Dp, modifier: Modifier = Modifier) {
-        Element(TestElements.Foo, modifier.size(size).background(Color.Red)) {
+        ElementWithValues(TestElements.Foo, modifier.size(size).background(Color.Red)) {
             // Offset the single child of Foo by some animated shared offset.
             val offset by animateElementDpAsState(childOffset, TestValues.Value1)
 
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt
index 751b314..11abbbe 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt
@@ -763,7 +763,7 @@
         var touchSlop = 0f
         rule.setContent {
             touchSlop = LocalViewConfiguration.current.touchSlop
-            SceneTransitionLayout(state, Modifier.size(layoutSize)) {
+            SceneTransitionLayoutForTesting(state, Modifier.size(layoutSize)) {
                 scene(SceneA, userActions = mapOf(Swipe.Start to SceneB, Swipe.End to SceneC)) {
                     Box(Modifier.fillMaxSize())
                 }
@@ -837,7 +837,7 @@
         rule.setContent {
             touchSlop = LocalViewConfiguration.current.touchSlop
             CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Rtl) {
-                SceneTransitionLayout(state, Modifier.size(layoutSize)) {
+                SceneTransitionLayoutForTesting(state, Modifier.size(layoutSize)) {
                     scene(SceneA, userActions = mapOf(Swipe.Start to SceneB, Swipe.End to SceneC)) {
                         Box(Modifier.fillMaxSize())
                     }
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/transformation/NestedElementTransformationTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/transformation/NestedElementTransformationTest.kt
index bb511bc..8b56892 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/transformation/NestedElementTransformationTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/transformation/NestedElementTransformationTest.kt
@@ -40,7 +40,7 @@
 import com.android.compose.animation.scene.MutableSceneTransitionLayoutStateForTests
 import com.android.compose.animation.scene.Scale
 import com.android.compose.animation.scene.SceneKey
-import com.android.compose.animation.scene.SceneTransitionLayout
+import com.android.compose.animation.scene.SceneTransitionLayoutForTesting
 import com.android.compose.animation.scene.SceneTransitions
 import com.android.compose.animation.scene.TestScenes
 import com.android.compose.animation.scene.testNestedTransition
@@ -114,7 +114,7 @@
         @Composable
         (states: List<MutableSceneTransitionLayoutState>) -> Unit =
         { states ->
-            SceneTransitionLayout(states[0]) {
+            SceneTransitionLayoutForTesting(states[0]) {
                 scene(TestScenes.SceneA, content = { TestElement(elementVariant0A) })
                 scene(
                     TestScenes.SceneB,
diff --git a/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestContentScope.kt b/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestContentScope.kt
index 6d47bab..e56d1be 100644
--- a/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestContentScope.kt
+++ b/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestContentScope.kt
@@ -30,5 +30,7 @@
     content: @Composable ContentScope.() -> Unit,
 ) {
     val state = rememberMutableSceneTransitionLayoutState(currentScene)
-    SceneTransitionLayout(state, modifier) { scene(currentScene, content = content) }
+    SceneTransitionLayout(state, modifier, implicitTestTags = true) {
+        scene(currentScene, content = content)
+    }
 }
diff --git a/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestTransition.kt b/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestTransition.kt
index f94a7ed..a362a37 100644
--- a/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestTransition.kt
+++ b/packages/SystemUI/compose/scene/tests/utils/src/com/android/compose/animation/scene/TestTransition.kt
@@ -137,7 +137,7 @@
         },
         changeState = changeState,
         transitionLayout = { state ->
-            SceneTransitionLayout(state, layoutModifier) {
+            SceneTransitionLayout(state, layoutModifier, implicitTestTags = true) {
                 scene(fromScene, content = fromSceneContent)
                 scene(toScene, content = toSceneContent)
             }
@@ -163,7 +163,7 @@
             )
         },
         transitionLayout = { state ->
-            SceneTransitionLayout(state) {
+            SceneTransitionLayout(state, implicitTestTags = true) {
                 scene(fromScene) { fromSceneContent() }
                 overlay(overlay) { overlayContent() }
             }
@@ -191,7 +191,7 @@
             )
         },
         transitionLayout = { state ->
-            SceneTransitionLayout(state) {
+            SceneTransitionLayout(state, implicitTestTags = true) {
                 scene(toScene) { toSceneContent() }
                 overlay(overlay) { overlayContent() }
             }
@@ -223,7 +223,7 @@
             )
         },
         transitionLayout = { state ->
-            SceneTransitionLayout(state) {
+            SceneTransitionLayout(state, implicitTestTags = true) {
                 scene(currentScene) { currentSceneContent() }
                 overlay(from, alignment = fromAlignment) { fromContent() }
                 overlay(to, alignment = toAlignment) { toContent() }
@@ -273,7 +273,7 @@
                 }
             }
 
-            SceneTransitionLayout(state, layoutModifier) {
+            SceneTransitionLayout(state, layoutModifier, implicitTestTags = true) {
                 scene(fromScene, content = fromSceneContent)
                 scene(toScene, content = toSceneContent)
             }
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockProvider.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockProvider.kt
index aad1276..654478a 100644
--- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockProvider.kt
+++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockProvider.kt
@@ -28,6 +28,7 @@
 import com.android.systemui.plugins.clocks.ClockPickerConfig
 import com.android.systemui.plugins.clocks.ClockProvider
 import com.android.systemui.plugins.clocks.ClockSettings
+import com.android.systemui.shared.clocks.FlexClockController.Companion.AXIS_PRESETS
 import com.android.systemui.shared.clocks.FlexClockController.Companion.getDefaultAxes
 
 private val TAG = DefaultClockProvider::class.simpleName
@@ -98,16 +99,16 @@
             throw IllegalArgumentException("${settings.clockId} is unsupported by $TAG")
         }
 
-        val fontAxes =
-            if (!isClockReactiveVariantsEnabled) listOf()
-            else getDefaultAxes(settings).merge(settings.axes)
         return ClockPickerConfig(
             settings.clockId ?: DEFAULT_CLOCK_ID,
             resources.getString(R.string.clock_default_name),
             resources.getString(R.string.clock_default_description),
             resources.getDrawable(R.drawable.clock_default_thumbnail, null),
             isReactiveToTone = true,
-            axes = fontAxes,
+            axes =
+                if (!isClockReactiveVariantsEnabled) emptyList()
+                else getDefaultAxes(settings).merge(settings.axes),
+            axisPresets = if (!isClockReactiveVariantsEnabled) emptyList() else AXIS_PRESETS,
         )
     }
 
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockController.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockController.kt
index 004d1aa..1a1033b 100644
--- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockController.kt
+++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockController.kt
@@ -130,39 +130,25 @@
 
         private val FONT_AXES =
             listOf(
-                ClockFontAxis(
-                    key = GSFAxes.WEIGHT,
+                GSFAxes.WEIGHT.toClockAxis(
                     type = AxisType.Float,
-                    minValue = 25f,
-                    currentValue = 400f,
-                    maxValue = 1000f,
+                    currentValue = 475f,
                     name = "Weight",
                     description = "Glyph Weight",
                 ),
-                ClockFontAxis(
-                    key = GSFAxes.WIDTH,
+                GSFAxes.WIDTH.toClockAxis(
                     type = AxisType.Float,
-                    minValue = 25f,
                     currentValue = 85f,
-                    maxValue = 151f,
                     name = "Width",
                     description = "Glyph Width",
                 ),
-                ClockFontAxis(
-                    key = GSFAxes.ROUND,
+                GSFAxes.ROUND.toClockAxis(
                     type = AxisType.Boolean,
-                    minValue = 0f,
-                    currentValue = 0f,
-                    maxValue = 100f,
                     name = "Round",
                     description = "Glyph Roundness",
                 ),
-                ClockFontAxis(
-                    key = GSFAxes.SLANT,
+                GSFAxes.SLANT.toClockAxis(
                     type = AxisType.Boolean,
-                    minValue = 0f,
-                    currentValue = 0f,
-                    maxValue = -10f,
                     name = "Slant",
                     description = "Glyph Slant",
                 ),
@@ -170,10 +156,64 @@
 
         private val LEGACY_FLEX_SETTINGS =
             listOf(
-                ClockFontAxisSetting(GSFAxes.WEIGHT, 600f),
-                ClockFontAxisSetting(GSFAxes.WIDTH, 100f),
-                ClockFontAxisSetting(GSFAxes.ROUND, 100f),
-                ClockFontAxisSetting(GSFAxes.SLANT, 0f),
+                GSFAxes.WEIGHT.toClockAxisSetting(600f),
+                GSFAxes.WIDTH.toClockAxisSetting(100f),
+                GSFAxes.ROUND.toClockAxisSetting(100f),
+                GSFAxes.SLANT.toClockAxisSetting(0f),
+            )
+
+        val AXIS_PRESETS =
+            listOf(
+                FONT_AXES.map { it.toSetting() },
+                LEGACY_FLEX_SETTINGS,
+                listOf( // Porcelain
+                    GSFAxes.WEIGHT.toClockAxisSetting(500f),
+                    GSFAxes.WIDTH.toClockAxisSetting(100f),
+                    GSFAxes.ROUND.toClockAxisSetting(0f),
+                    GSFAxes.SLANT.toClockAxisSetting(0f),
+                ),
+                listOf( // Midnight
+                    GSFAxes.WEIGHT.toClockAxisSetting(300f),
+                    GSFAxes.WIDTH.toClockAxisSetting(100f),
+                    GSFAxes.ROUND.toClockAxisSetting(100f),
+                    GSFAxes.SLANT.toClockAxisSetting(-10f),
+                ),
+                listOf( // Sterling
+                    GSFAxes.WEIGHT.toClockAxisSetting(1000f),
+                    GSFAxes.WIDTH.toClockAxisSetting(100f),
+                    GSFAxes.ROUND.toClockAxisSetting(0f),
+                    GSFAxes.SLANT.toClockAxisSetting(0f),
+                ),
+                listOf( // Smoky Green
+                    GSFAxes.WEIGHT.toClockAxisSetting(150f),
+                    GSFAxes.WIDTH.toClockAxisSetting(50f),
+                    GSFAxes.ROUND.toClockAxisSetting(0f),
+                    GSFAxes.SLANT.toClockAxisSetting(0f),
+                ),
+                listOf( // Iris
+                    GSFAxes.WEIGHT.toClockAxisSetting(500f),
+                    GSFAxes.WIDTH.toClockAxisSetting(100f),
+                    GSFAxes.ROUND.toClockAxisSetting(100f),
+                    GSFAxes.SLANT.toClockAxisSetting(0f),
+                ),
+                listOf( // Margarita
+                    GSFAxes.WEIGHT.toClockAxisSetting(300f),
+                    GSFAxes.WIDTH.toClockAxisSetting(30f),
+                    GSFAxes.ROUND.toClockAxisSetting(100f),
+                    GSFAxes.SLANT.toClockAxisSetting(-10f),
+                ),
+                listOf( // Raspberry
+                    GSFAxes.WEIGHT.toClockAxisSetting(700f),
+                    GSFAxes.WIDTH.toClockAxisSetting(140f),
+                    GSFAxes.ROUND.toClockAxisSetting(100f),
+                    GSFAxes.SLANT.toClockAxisSetting(-7f),
+                ),
+                listOf( // Ultra Blue
+                    GSFAxes.WEIGHT.toClockAxisSetting(850f),
+                    GSFAxes.WIDTH.toClockAxisSetting(130f),
+                    GSFAxes.ROUND.toClockAxisSetting(0f),
+                    GSFAxes.SLANT.toClockAxisSetting(0f),
+                ),
             )
     }
 }
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockFaceController.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockFaceController.kt
index b2dbd65..b4c2f5d 100644
--- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockFaceController.kt
+++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockFaceController.kt
@@ -132,7 +132,7 @@
             if (!isLargeClock) {
                 axes =
                     axes.map { axis ->
-                        if (axis.key == GSFAxes.WIDTH && axis.value > SMALL_CLOCK_MAX_WDTH) {
+                        if (axis.key == GSFAxes.WIDTH.tag && axis.value > SMALL_CLOCK_MAX_WDTH) {
                             axis.copy(value = SMALL_CLOCK_MAX_WDTH)
                         } else {
                             axis
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FontUtils.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FontUtils.kt
new file mode 100644
index 0000000..212b1e2
--- /dev/null
+++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FontUtils.kt
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2025 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.shared.clocks
+
+import com.android.systemui.animation.AxisDefinition
+import com.android.systemui.plugins.clocks.AxisType
+import com.android.systemui.plugins.clocks.ClockFontAxis
+import com.android.systemui.plugins.clocks.ClockFontAxisSetting
+
+fun AxisDefinition.toClockAxis(
+    type: AxisType,
+    currentValue: Float? = null,
+    name: String,
+    description: String,
+): ClockFontAxis {
+    return ClockFontAxis(
+        key = this.tag,
+        type = type,
+        maxValue = this.maxValue,
+        minValue = this.minValue,
+        currentValue = currentValue ?: this.defaultValue,
+        name = name,
+        description = description,
+    )
+}
+
+fun AxisDefinition.toClockAxisSetting(value: Float? = null): ClockFontAxisSetting {
+    return ClockFontAxisSetting(this.tag, value ?: this.defaultValue)
+}
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextView.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextView.kt
index 54be4d8..b7ce20e 100644
--- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextView.kt
+++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextView.kt
@@ -49,6 +49,7 @@
 import com.android.systemui.shared.clocks.DimensionParser
 import com.android.systemui.shared.clocks.FLEX_CLOCK_ID
 import com.android.systemui.shared.clocks.FontTextStyle
+import com.android.systemui.shared.clocks.toClockAxisSetting
 import java.lang.Thread
 import kotlin.math.max
 import kotlin.math.min
@@ -585,25 +586,25 @@
         val FIDGET_INTERPOLATOR = PathInterpolator(0.26873f, 0f, 0.45042f, 1f)
         val FIDGET_DISTS =
             mapOf(
-                GSFAxes.WEIGHT to Pair(200f, 500f),
-                GSFAxes.WIDTH to Pair(30f, 75f),
-                GSFAxes.ROUND to Pair(0f, 50f),
-                GSFAxes.SLANT to Pair(0f, -5f),
+                GSFAxes.WEIGHT.tag to Pair(200f, 500f),
+                GSFAxes.WIDTH.tag to Pair(30f, 75f),
+                GSFAxes.ROUND.tag to Pair(0f, 50f),
+                GSFAxes.SLANT.tag to Pair(0f, -5f),
             )
 
         val AOD_COLOR = Color.WHITE
-        val LS_WEIGHT_AXIS = ClockFontAxisSetting(GSFAxes.WEIGHT, 400f)
-        val AOD_WEIGHT_AXIS = ClockFontAxisSetting(GSFAxes.WEIGHT, 200f)
-        val WIDTH_AXIS = ClockFontAxisSetting(GSFAxes.WIDTH, 85f)
-        val ROUND_AXIS = ClockFontAxisSetting(GSFAxes.ROUND, 0f)
-        val SLANT_AXIS = ClockFontAxisSetting(GSFAxes.SLANT, 0f)
+        val LS_WEIGHT_AXIS = GSFAxes.WEIGHT.toClockAxisSetting(400f)
+        val AOD_WEIGHT_AXIS = GSFAxes.WEIGHT.toClockAxisSetting(200f)
+        val WIDTH_AXIS = GSFAxes.WIDTH.toClockAxisSetting(85f)
+        val ROUND_AXIS = GSFAxes.ROUND.toClockAxisSetting(0f)
+        val SLANT_AXIS = GSFAxes.SLANT.toClockAxisSetting(0f)
 
         // Axes for Legacy version of the Flex Clock
-        val FLEX_LS_WEIGHT_AXIS = ClockFontAxisSetting(GSFAxes.WEIGHT, 600f)
-        val FLEX_AOD_LARGE_WEIGHT_AXIS = ClockFontAxisSetting(GSFAxes.WEIGHT, 74f)
-        val FLEX_AOD_SMALL_WEIGHT_AXIS = ClockFontAxisSetting(GSFAxes.WEIGHT, 133f)
-        val FLEX_LS_WIDTH_AXIS = ClockFontAxisSetting(GSFAxes.WIDTH, 100f)
-        val FLEX_AOD_WIDTH_AXIS = ClockFontAxisSetting(GSFAxes.WIDTH, 43f)
-        val FLEX_ROUND_AXIS = ClockFontAxisSetting(GSFAxes.ROUND, 100f)
+        val FLEX_LS_WEIGHT_AXIS = GSFAxes.WEIGHT.toClockAxisSetting(600f)
+        val FLEX_AOD_LARGE_WEIGHT_AXIS = GSFAxes.WEIGHT.toClockAxisSetting(74f)
+        val FLEX_AOD_SMALL_WEIGHT_AXIS = GSFAxes.WEIGHT.toClockAxisSetting(133f)
+        val FLEX_LS_WIDTH_AXIS = GSFAxes.WIDTH.toClockAxisSetting(100f)
+        val FLEX_AOD_WIDTH_AXIS = GSFAxes.WIDTH.toClockAxisSetting(43f)
+        val FLEX_ROUND_AXIS = GSFAxes.ROUND.toClockAxisSetting(100f)
     }
 }
diff --git a/packages/SystemUI/lint.xml b/packages/SystemUI/lint.xml
index 59a7109..bef2edd 100644
--- a/packages/SystemUI/lint.xml
+++ b/packages/SystemUI/lint.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<lint>
+<!-- TODO(397519800): Remove hard coded once ASfP is capable of configuring this automatically -->
+<lint lintJars="../../../../out/soong/.intermediates/frameworks/base/packages/SystemUI/checks/SystemUILintChecker/linux_glibc_common/combined/SystemUILintChecker.jar">
     <issue id="PrivateResource" severity="ignore" />
-</lint>
\ No newline at end of file
+</lint>
diff --git a/packages/SystemUI/multivalentTests/src/com/android/keyguard/EmergencyButtonControllerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/keyguard/EmergencyButtonControllerTest.kt
index c42e25b..d046ad1 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/keyguard/EmergencyButtonControllerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/keyguard/EmergencyButtonControllerTest.kt
@@ -103,7 +103,7 @@
     fun testUpdateEmergencyButton() {
         Mockito.`when`(telecomManager.isInCall).thenReturn(true)
         Mockito.`when`(lockPatternUtils.isSecure(anyInt())).thenReturn(true)
-        Mockito.`when`(packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY))
+        Mockito.`when`(packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_CALLING))
             .thenReturn(true)
         underTest.updateEmergencyCallButton()
         backgroundExecutor.runAllReady()
@@ -112,7 +112,7 @@
                 /* isInCall= */ any(),
                 /* hasTelephonyRadio= */ any(),
                 /* simLocked= */ any(),
-                /* isSecure= */ any()
+                /* isSecure= */ any(),
             )
         mainExecutor.runAllReady()
         verify(emergencyButton)
@@ -120,7 +120,7 @@
                 /* isInCall= */ eq(true),
                 /* hasTelephonyRadio= */ eq(true),
                 /* simLocked= */ any(),
-                /* isSecure= */ eq(true)
+                /* isSecure= */ eq(true),
             )
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt
index 24b9e84..189d554 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt
@@ -43,6 +43,7 @@
 import com.android.systemui.bouncer.shared.constants.KeyguardBouncerConstants
 import com.android.systemui.classifier.FalsingA11yDelegate
 import com.android.systemui.classifier.FalsingCollector
+import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.deviceentry.domain.interactor.DeviceEntryFaceAuthInteractor
 import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor
 import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor
@@ -65,6 +66,7 @@
 import com.android.systemui.scene.domain.interactor.sceneInteractor
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.scene.shared.model.FakeSceneDataSource
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.shared.model.fakeSceneDataSource
 import com.android.systemui.statusbar.policy.ConfigurationController
@@ -797,6 +799,9 @@
     @EnableSceneContainer
     fun dismissesKeyguard_whenSceneChangesToGone() =
         kosmos.testScope.runTest {
+            // Collect sceneInteractor.currentOverlays so that show/hideOverlay receive updated
+            // overlay state during validation
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             // Upon init, we have never dismisses the keyguard.
             underTest.onInit()
             runCurrent()
@@ -807,19 +812,24 @@
             // is not enough to trigger a dismissal of the keyguard.
             underTest.onViewAttached()
             fakeSceneDataSource.pause()
-            sceneInteractor.changeScene(Scenes.Bouncer, "reason")
+            sceneInteractor.changeScene(Scenes.Lockscreen, "reason")
+            sceneInteractor.showOverlay(Overlays.Bouncer, "reason")
             sceneTransitionStateFlow.value =
-                ObservableTransitionState.Transition(
-                    Scenes.Lockscreen,
-                    Scenes.Bouncer,
-                    flowOf(Scenes.Bouncer),
-                    flowOf(.5f),
-                    false,
+                ObservableTransitionState.Transition.showOverlay(
+                    overlay = Overlays.Bouncer,
+                    fromScene = Scenes.Lockscreen,
+                    currentOverlays = flowOf(setOf(Overlays.Bouncer)),
+                    progress = flowOf(.5f),
+                    isInitiatedByUserInput = false,
                     isUserInputOngoing = flowOf(false),
                 )
             runCurrent()
-            fakeSceneDataSource.unpause(expectedScene = Scenes.Bouncer)
-            sceneTransitionStateFlow.value = ObservableTransitionState.Idle(Scenes.Bouncer)
+            fakeSceneDataSource.unpause(expectedOverlays = setOf(Overlays.Bouncer))
+            sceneTransitionStateFlow.value =
+                ObservableTransitionState.Idle(
+                    currentScene = Scenes.Lockscreen,
+                    currentOverlays = setOf(Overlays.Bouncer),
+                )
             runCurrent()
             verify(primaryBouncerInteractor, never())
                 .notifyKeyguardAuthenticatedPrimaryAuth(anyInt())
@@ -832,17 +842,18 @@
             runCurrent()
             fakeSceneDataSource.pause()
             sceneInteractor.changeScene(Scenes.Gone, "reason")
+            sceneInteractor.hideOverlay(Overlays.Bouncer, "reason")
             sceneTransitionStateFlow.value =
-                ObservableTransitionState.Transition(
-                    Scenes.Bouncer,
-                    Scenes.Gone,
-                    flowOf(Scenes.Gone),
-                    flowOf(.5f),
-                    false,
+                ObservableTransitionState.Transition.hideOverlay(
+                    overlay = Overlays.Bouncer,
+                    toScene = Scenes.Gone,
+                    currentOverlays = flowOf(emptySet()),
+                    progress = flowOf(.5f),
+                    isInitiatedByUserInput = false,
                     isUserInputOngoing = flowOf(false),
                 )
             runCurrent()
-            fakeSceneDataSource.unpause(expectedScene = Scenes.Gone)
+            fakeSceneDataSource.unpause(expectedScene = Scenes.Gone, expectedOverlays = emptySet())
             sceneTransitionStateFlow.value = ObservableTransitionState.Idle(Scenes.Gone)
             runCurrent()
             verify(primaryBouncerInteractor).notifyKeyguardAuthenticatedPrimaryAuth(anyInt())
@@ -850,20 +861,30 @@
             // While listening, moving back to the bouncer scene does not dismiss the keyguard
             // again.
             clearInvocations(primaryBouncerInteractor)
+
+            // switch to a different non-keyguard scene since showing overlay over Gone is
+            // prohibited
+            sceneInteractor.snapToScene(Scenes.Shade, "reason")
+            runCurrent()
+
             fakeSceneDataSource.pause()
-            sceneInteractor.changeScene(Scenes.Bouncer, "reason")
+            sceneInteractor.showOverlay(Overlays.Bouncer, "reason")
             sceneTransitionStateFlow.value =
-                ObservableTransitionState.Transition(
-                    Scenes.Gone,
-                    Scenes.Bouncer,
-                    flowOf(Scenes.Bouncer),
-                    flowOf(.5f),
-                    false,
+                ObservableTransitionState.Transition.showOverlay(
+                    overlay = Overlays.Bouncer,
+                    fromScene = Scenes.Shade,
+                    currentOverlays = flowOf(setOf(Overlays.Bouncer)),
+                    progress = flowOf(.5f),
+                    isInitiatedByUserInput = false,
                     isUserInputOngoing = flowOf(false),
                 )
             runCurrent()
-            fakeSceneDataSource.unpause(expectedScene = Scenes.Bouncer)
-            sceneTransitionStateFlow.value = ObservableTransitionState.Idle(Scenes.Bouncer)
+            fakeSceneDataSource.unpause(expectedOverlays = setOf(Overlays.Bouncer))
+            sceneTransitionStateFlow.value =
+                ObservableTransitionState.Idle(
+                    currentScene = Scenes.Lockscreen,
+                    currentOverlays = setOf(Overlays.Bouncer),
+                )
             runCurrent()
             verify(primaryBouncerInteractor, never())
                 .notifyKeyguardAuthenticatedPrimaryAuth(anyInt())
@@ -874,17 +895,18 @@
             underTest.onViewDetached()
             fakeSceneDataSource.pause()
             sceneInteractor.changeScene(Scenes.Gone, "reason")
+            sceneInteractor.hideOverlay(Overlays.Bouncer, "reason")
             sceneTransitionStateFlow.value =
-                ObservableTransitionState.Transition(
-                    Scenes.Bouncer,
-                    Scenes.Gone,
-                    flowOf(Scenes.Gone),
-                    flowOf(.5f),
-                    false,
+                ObservableTransitionState.Transition.hideOverlay(
+                    overlay = Overlays.Bouncer,
+                    toScene = Scenes.Gone,
+                    currentOverlays = flowOf(emptySet()),
+                    progress = flowOf(.5f),
+                    isInitiatedByUserInput = false,
                     isUserInputOngoing = flowOf(false),
                 )
             runCurrent()
-            fakeSceneDataSource.unpause(expectedScene = Scenes.Gone)
+            fakeSceneDataSource.unpause(expectedScene = Scenes.Gone, expectedOverlays = emptySet())
             sceneTransitionStateFlow.value = ObservableTransitionState.Idle(Scenes.Gone)
             runCurrent()
             verify(primaryBouncerInteractor, never())
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/animation/FontVariationUtilsTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/animation/FontVariationUtilsTest.kt
index f44769d..8d3640d 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/animation/FontVariationUtilsTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/animation/FontVariationUtilsTest.kt
@@ -21,7 +21,7 @@
                 roundness = 100,
             )
         Assert.assertEquals(
-            "'${GSFAxes.WEIGHT}' 100, '${GSFAxes.WIDTH}' 100, '${GSFAxes.ROUND}' 100",
+            "'${GSFAxes.WEIGHT.tag}' 100, '${GSFAxes.WIDTH.tag}' 100, '${GSFAxes.ROUND.tag}' 100",
             initFvar,
         )
         val updatedFvar =
@@ -32,7 +32,8 @@
                 roundness = 100,
             )
         Assert.assertEquals(
-            "'${GSFAxes.WEIGHT}' 200, '${GSFAxes.WIDTH}' 100, '${GSFAxes.OPTICAL_SIZE}' 0, '${GSFAxes.ROUND}' 100",
+            "'${GSFAxes.WEIGHT.tag}' 200, '${GSFAxes.WIDTH.tag}' 100," +
+                " '${GSFAxes.OPTICAL_SIZE.tag}' 0, '${GSFAxes.ROUND.tag}' 100",
             updatedFvar,
         )
     }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/domain/interactor/BouncerActionButtonInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/domain/interactor/BouncerActionButtonInteractorTest.kt
index f376e93..40295a2 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/domain/interactor/BouncerActionButtonInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/domain/interactor/BouncerActionButtonInteractorTest.kt
@@ -33,6 +33,7 @@
 import com.android.systemui.flags.EnableSceneContainer
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.scene.domain.interactor.sceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.statusbar.pipeline.mobile.data.repository.FakeMobileConnectionsRepository
 import com.android.systemui.statusbar.pipeline.mobile.data.repository.fake
@@ -94,7 +95,8 @@
 
         kosmos.telecomManager = telecomManager
 
-        kosmos.sceneInteractor.changeScene(Scenes.Bouncer, "")
+        kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "")
+        kosmos.sceneInteractor.showOverlay(Overlays.Bouncer, "")
     }
 
     @Test
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerSceneLayoutTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerOverlayLayoutTest.kt
similarity index 92%
rename from packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerSceneLayoutTest.kt
rename to packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerOverlayLayoutTest.kt
index b4b4178..2d0dd49 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerSceneLayoutTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerOverlayLayoutTest.kt
@@ -18,10 +18,10 @@
 
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
-import com.android.systemui.bouncer.ui.composable.BouncerSceneLayout.BELOW_USER_SWITCHER
-import com.android.systemui.bouncer.ui.composable.BouncerSceneLayout.BESIDE_USER_SWITCHER
-import com.android.systemui.bouncer.ui.composable.BouncerSceneLayout.SPLIT_BOUNCER
-import com.android.systemui.bouncer.ui.composable.BouncerSceneLayout.STANDARD_BOUNCER
+import com.android.systemui.bouncer.ui.composable.BouncerOverlayLayout.BELOW_USER_SWITCHER
+import com.android.systemui.bouncer.ui.composable.BouncerOverlayLayout.BESIDE_USER_SWITCHER
+import com.android.systemui.bouncer.ui.composable.BouncerOverlayLayout.SPLIT_BOUNCER
+import com.android.systemui.bouncer.ui.composable.BouncerOverlayLayout.STANDARD_BOUNCER
 import com.google.common.truth.Truth.assertThat
 import java.util.Locale
 import org.junit.Test
@@ -32,7 +32,7 @@
 
 @SmallTest
 @RunWith(ParameterizedAndroidJunit4::class)
-class BouncerSceneLayoutTest : SysuiTestCase() {
+class BouncerOverlayLayoutTest : SysuiTestCase() {
 
     data object Phone :
         Device(
@@ -186,7 +186,7 @@
     data class TestCase(
         val device: Device,
         val held: Held,
-        val expected: BouncerSceneLayout,
+        val expected: BouncerOverlayLayout,
         val isOneHandedModeSupported: Boolean = true,
     ) {
         override fun toString(): String {
@@ -203,10 +203,10 @@
     }
 
     data class Expected(
-        val whenNaturallyHeld: BouncerSceneLayout,
-        val whenUnnaturallyHeld: BouncerSceneLayout,
+        val whenNaturallyHeld: BouncerOverlayLayout,
+        val whenUnnaturallyHeld: BouncerOverlayLayout,
     ) {
-        fun layout(heldNaturally: Boolean): BouncerSceneLayout {
+        fun layout(heldNaturally: Boolean): BouncerOverlayLayout {
             return if (heldNaturally) {
                 whenNaturallyHeld
             } else {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerPredictiveBackTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerPredictiveBackTest.kt
index dda460a..0fe649c 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerPredictiveBackTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/composable/BouncerPredictiveBackTest.kt
@@ -43,11 +43,10 @@
 import com.android.compose.animation.scene.isElement
 import com.android.compose.theme.PlatformTheme
 import com.android.systemui.SysuiTestCase
-import com.android.systemui.bouncer.domain.interactor.bouncerInteractor
 import com.android.systemui.bouncer.ui.BouncerDialogFactory
-import com.android.systemui.bouncer.ui.viewmodel.BouncerSceneContentViewModel
+import com.android.systemui.bouncer.ui.viewmodel.BouncerOverlayContentViewModel
 import com.android.systemui.bouncer.ui.viewmodel.BouncerUserActionsViewModel
-import com.android.systemui.bouncer.ui.viewmodel.bouncerSceneContentViewModel
+import com.android.systemui.bouncer.ui.viewmodel.bouncerOverlayContentViewModel
 import com.android.systemui.flags.EnableSceneContainer
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.Kosmos.Fixture
@@ -59,6 +58,7 @@
 import com.android.systemui.scene.domain.startable.sceneContainerStartable
 import com.android.systemui.scene.sceneContainerViewModelFactory
 import com.android.systemui.scene.sceneTransitionsBuilder
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.SceneContainerConfig
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.shared.model.sceneDataSourceDelegator
@@ -103,10 +103,10 @@
         motionTestRule.toolkit.composeContentTestRule as AndroidComposeTestRule<*, *>
 
     private val sceneInteractor by lazy { kosmos.sceneInteractor }
-    private val Kosmos.sceneKeys by Fixture { listOf(Scenes.Lockscreen, Scenes.Bouncer) }
-    private val Kosmos.initialSceneKey by Fixture { Scenes.Bouncer }
+    private val Kosmos.sceneKeys by Fixture { listOf(Scenes.Lockscreen) }
+    private val Kosmos.initialSceneKey by Fixture { Scenes.Lockscreen }
     private val Kosmos.sceneContainerConfig by Fixture {
-        val navigationDistances = mapOf(Scenes.Lockscreen to 1, Scenes.Bouncer to 0)
+        val navigationDistances = mapOf(Scenes.Lockscreen to 1)
         SceneContainerConfig(
             sceneKeys,
             initialSceneKey,
@@ -137,17 +137,17 @@
         }
     private val bouncerSceneActionsViewModelFactory =
         object : BouncerUserActionsViewModel.Factory {
-            override fun create() = BouncerUserActionsViewModel(kosmos.bouncerInteractor)
+            override fun create() = BouncerUserActionsViewModel()
         }
-    private lateinit var bouncerSceneContentViewModel: BouncerSceneContentViewModel
-    private val bouncerSceneContentViewModelFactory =
-        object : BouncerSceneContentViewModel.Factory {
-            override fun create() = bouncerSceneContentViewModel
+    private lateinit var mBouncerOverlayContentViewModel: BouncerOverlayContentViewModel
+    private val mBouncerOverlayContentViewModelFactory =
+        object : BouncerOverlayContentViewModel.Factory {
+            override fun create() = mBouncerOverlayContentViewModel
         }
     private val bouncerScene =
-        BouncerScene(
+        BouncerOverlay(
             bouncerSceneActionsViewModelFactory,
-            bouncerSceneContentViewModelFactory,
+            mBouncerOverlayContentViewModelFactory,
             bouncerDialogFactory,
         )
 
@@ -155,7 +155,7 @@
     fun setUp() {
         MockitoAnnotations.initMocks(this)
 
-        bouncerSceneContentViewModel = kosmos.bouncerSceneContentViewModel
+        mBouncerOverlayContentViewModel = kosmos.bouncerOverlayContentViewModel
 
         val startable = kosmos.sceneContainerStartable
         startable.start()
@@ -175,14 +175,10 @@
                                     rememberViewModel("BouncerPredictiveBackTest") {
                                         sceneContainerViewModel
                                     },
-                                sceneByKey =
-                                    mapOf(
-                                        Scenes.Lockscreen to FakeLockscreen(),
-                                        Scenes.Bouncer to bouncerScene,
-                                    ),
-                                initialSceneKey = Scenes.Bouncer,
+                                sceneByKey = mapOf(Scenes.Lockscreen to FakeLockscreen()),
+                                initialSceneKey = Scenes.Lockscreen,
                                 transitionsBuilder = kosmos.sceneTransitionsBuilder,
-                                overlayByKey = emptyMap(),
+                                overlayByKey = mapOf(Overlays.Bouncer to bouncerScene),
                                 dataSourceDelegator = kosmos.sceneDataSourceDelegator,
                                 qsSceneAdapter = { kosmos.fakeQsSceneAdapter },
                                 sceneJankMonitorFactory = kosmos.sceneJankMonitorFactory,
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerSceneContentViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerOverlayContentViewModelTest.kt
similarity index 98%
rename from packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerSceneContentViewModelTest.kt
rename to packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerOverlayContentViewModelTest.kt
index eef8d9f..9cc09bd 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerSceneContentViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerOverlayContentViewModelTest.kt
@@ -61,17 +61,17 @@
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 @EnableSceneContainer
-class BouncerSceneContentViewModelTest : SysuiTestCase() {
+class BouncerOverlayContentViewModelTest : SysuiTestCase() {
 
     private val kosmos = testKosmos()
     private val testScope = kosmos.testScope
 
-    private lateinit var underTest: BouncerSceneContentViewModel
+    private lateinit var underTest: BouncerOverlayContentViewModel
 
     @Before
     fun setUp() {
         kosmos.sceneContainerStartable.start()
-        underTest = kosmos.bouncerSceneContentViewModel
+        underTest = kosmos.bouncerOverlayContentViewModel
         underTest.activateIn(testScope)
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerUserActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerUserActionsViewModelTest.kt
index e12fabf..fe2f51f 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerUserActionsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerUserActionsViewModelTest.kt
@@ -27,6 +27,7 @@
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.lifecycle.activateIn
 import com.android.systemui.scene.domain.startable.sceneContainerStartable
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.shared.model.fakeSceneDataSource
 import com.android.systemui.testKosmos
@@ -62,13 +63,13 @@
             kosmos.fakeSceneDataSource.changeScene(Scenes.QuickSettings)
             runCurrent()
 
-            kosmos.fakeSceneDataSource.changeScene(Scenes.Bouncer)
+            kosmos.fakeSceneDataSource.showOverlay(Overlays.Bouncer)
             runCurrent()
 
             assertThat(actions)
                 .containsEntriesExactly(
-                    Back to UserActionResult(Scenes.QuickSettings),
-                    Swipe.Down to UserActionResult(Scenes.QuickSettings),
+                    Back to UserActionResult.HideOverlay(Overlays.Bouncer),
+                    Swipe.Down to UserActionResult.HideOverlay(Overlays.Bouncer),
                 )
         }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/PasswordBouncerViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/PasswordBouncerViewModelTest.kt
index b2d2458..7cfbf5e 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/PasswordBouncerViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/PasswordBouncerViewModelTest.kt
@@ -22,7 +22,6 @@
 import androidx.compose.ui.input.key.KeyEventType
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import com.android.compose.animation.scene.SceneKey
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.authentication.data.repository.fakeAuthenticationRepository
 import com.android.systemui.authentication.domain.interactor.authenticationInteractor
@@ -38,7 +37,7 @@
 import com.android.systemui.lifecycle.activateIn
 import com.android.systemui.res.R
 import com.android.systemui.scene.domain.interactor.sceneInteractor
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.testKosmos
 import com.android.systemui.user.data.model.SelectedUserModel
 import com.android.systemui.user.data.model.SelectionStatus
@@ -86,12 +85,12 @@
     @Test
     fun onShown() =
         testScope.runTest {
-            val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val password by collectLastValue(underTest.password)
             lockDeviceAndOpenPasswordBouncer()
 
             assertThat(password).isEmpty()
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             assertThat(underTest.authenticationMethod).isEqualTo(AuthenticationMethodModel.Password)
         }
 
@@ -111,14 +110,14 @@
     @Test
     fun onPasswordInputChanged() =
         testScope.runTest {
-            val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val password by collectLastValue(underTest.password)
             lockDeviceAndOpenPasswordBouncer()
 
             underTest.onPasswordInputChanged("password")
 
             assertThat(password).isEqualTo("password")
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
         }
 
     @Test
@@ -152,7 +151,7 @@
             kosmos.fakeAuthenticationRepository.setAuthenticationMethod(
                 AuthenticationMethodModel.Password
             )
-            switchToScene(Scenes.Bouncer)
+            showBouncer()
 
             // No input entered.
 
@@ -185,7 +184,7 @@
     @Test
     fun onShown_againAfterSceneChange_resetsPassword() =
         testScope.runTest {
-            val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val password by collectLastValue(underTest.password)
             lockDeviceAndOpenPasswordBouncer()
 
@@ -194,14 +193,14 @@
             assertThat(password).isEqualTo("password")
 
             // The user doesn't confirm the password, but navigates back to the lockscreen instead.
-            switchToScene(Scenes.Lockscreen)
+            hideBouncer()
 
             // The user navigates to the bouncer again.
-            switchToScene(Scenes.Bouncer)
+            showBouncer()
 
             // Ensure the previously-entered password is not shown.
             assertThat(password).isEmpty()
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
         }
 
     @Test
@@ -379,21 +378,28 @@
         assertThat(underTest.onKeyEvent(KeyEventType.KeyDown, KeyEvent.KEYCODE_SPACE)).isFalse()
     }
 
-    private fun TestScope.switchToScene(toScene: SceneKey) {
-        val currentScene by collectLastValue(sceneInteractor.currentScene)
-        val bouncerHidden = currentScene == Scenes.Bouncer && toScene != Scenes.Bouncer
-        sceneInteractor.changeScene(toScene, "reason")
-        if (bouncerHidden) underTest.onHidden()
+    private fun TestScope.showBouncer() {
+        val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
+        sceneInteractor.showOverlay(Overlays.Bouncer, "reason")
         runCurrent()
 
-        assertThat(currentScene).isEqualTo(toScene)
+        assertThat(currentOverlays).contains(Overlays.Bouncer)
+    }
+
+    private fun TestScope.hideBouncer() {
+        val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
+        sceneInteractor.hideOverlay(Overlays.Bouncer, "reason")
+        underTest.onHidden()
+        runCurrent()
+
+        assertThat(currentOverlays).doesNotContain(Overlays.Bouncer)
     }
 
     private fun TestScope.lockDeviceAndOpenPasswordBouncer() {
         kosmos.fakeAuthenticationRepository.setAuthenticationMethod(
             AuthenticationMethodModel.Password
         )
-        switchToScene(Scenes.Bouncer)
+        showBouncer()
     }
 
     private suspend fun TestScope.setLockout(isLockedOut: Boolean, failedAttemptCount: Int = 5) {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/PatternBouncerViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/PatternBouncerViewModelTest.kt
index ec7d1c3..4075d11 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/PatternBouncerViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/PatternBouncerViewModelTest.kt
@@ -19,7 +19,6 @@
 import android.platform.test.annotations.EnableFlags
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import com.android.compose.animation.scene.SceneKey
 import com.android.systemui.Flags
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.authentication.data.repository.FakeAuthenticationRepository
@@ -36,7 +35,7 @@
 import com.android.systemui.lifecycle.activateIn
 import com.android.systemui.res.R
 import com.android.systemui.scene.domain.interactor.sceneInteractor
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.testKosmos
 import com.google.android.msdl.data.model.MSDLToken
 import com.google.common.truth.Truth.assertThat
@@ -58,7 +57,7 @@
     private val testScope = kosmos.testScope
     private val authenticationInteractor by lazy { kosmos.authenticationInteractor }
     private val sceneInteractor by lazy { kosmos.sceneInteractor }
-    private val bouncerViewModel by lazy { kosmos.bouncerSceneContentViewModel }
+    private val bouncerViewModel by lazy { kosmos.bouncerOverlayContentViewModel }
     private val msdlPlayer: FakeMSDLPlayer = kosmos.fakeMSDLPlayer
     private val bouncerHapticHelper = kosmos.bouncerHapticPlayer
     private val underTest =
@@ -81,21 +80,21 @@
     @Test
     fun onShown() =
         testScope.runTest {
-            val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val selectedDots by collectLastValue(underTest.selectedDots)
             val currentDot by collectLastValue(underTest.currentDot)
             lockDeviceAndOpenPatternBouncer()
 
             assertThat(selectedDots).isEmpty()
             assertThat(currentDot).isNull()
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             assertThat(underTest.authenticationMethod).isEqualTo(AuthenticationMethodModel.Pattern)
         }
 
     @Test
     fun onDragStart() =
         testScope.runTest {
-            val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val selectedDots by collectLastValue(underTest.selectedDots)
             val currentDot by collectLastValue(underTest.currentDot)
             lockDeviceAndOpenPatternBouncer()
@@ -104,7 +103,7 @@
 
             assertThat(selectedDots).isEmpty()
             assertThat(currentDot).isNull()
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
         }
 
     @Test
@@ -143,7 +142,7 @@
     @Test
     fun onDragEnd_whenWrong() =
         testScope.runTest {
-            val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val selectedDots by collectLastValue(underTest.selectedDots)
             val currentDot by collectLastValue(underTest.currentDot)
             lockDeviceAndOpenPatternBouncer()
@@ -154,7 +153,7 @@
 
             assertThat(selectedDots).isEmpty()
             assertThat(currentDot).isNull()
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
         }
 
     @Test
@@ -365,21 +364,16 @@
         )
     }
 
-    private fun TestScope.switchToScene(toScene: SceneKey) {
-        val currentScene by collectLastValue(sceneInteractor.currentScene)
-        val bouncerHidden = currentScene == Scenes.Bouncer && toScene != Scenes.Bouncer
-        sceneInteractor.changeScene(toScene, "reason")
-        if (bouncerHidden) underTest.onHidden()
-        runCurrent()
-
-        assertThat(currentScene).isEqualTo(toScene)
-    }
-
     private fun TestScope.lockDeviceAndOpenPatternBouncer() {
+        val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
         kosmos.fakeAuthenticationRepository.setAuthenticationMethod(
             AuthenticationMethodModel.Pattern
         )
-        switchToScene(Scenes.Bouncer)
+
+        sceneInteractor.showOverlay(Overlays.Bouncer, "reason")
+        runCurrent()
+
+        assertThat(currentOverlays).contains(Overlays.Bouncer)
     }
 
     companion object {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/PinBouncerViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/PinBouncerViewModelTest.kt
index 705e834..2518d2f 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/PinBouncerViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/ui/viewmodel/PinBouncerViewModelTest.kt
@@ -26,7 +26,6 @@
 import androidx.compose.ui.input.key.KeyEventType
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import com.android.compose.animation.scene.SceneKey
 import com.android.systemui.Flags
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.authentication.data.repository.FakeAuthenticationRepository
@@ -42,7 +41,7 @@
 import com.android.systemui.lifecycle.activateIn
 import com.android.systemui.res.R
 import com.android.systemui.scene.domain.interactor.sceneInteractor
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.testKosmos
 import com.google.android.msdl.data.model.MSDLToken
 import com.google.common.truth.Truth.assertThat
@@ -181,7 +180,7 @@
     @Test
     fun onBackspaceButtonLongPressed() =
         testScope.runTest {
-            val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val pin by collectLastValue(underTest.pinInput.map { it.getPin() })
             lockDeviceAndOpenPinBouncer()
 
@@ -194,7 +193,7 @@
             underTest.onBackspaceButtonLongPressed()
 
             assertThat(pin).isEmpty()
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
         }
 
     @Test
@@ -213,7 +212,7 @@
     @Test
     fun onAuthenticateButtonClicked_whenWrong() =
         testScope.runTest {
-            val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val pin by collectLastValue(underTest.pinInput.map { it.getPin() })
             lockDeviceAndOpenPinBouncer()
 
@@ -226,7 +225,7 @@
             underTest.onAuthenticateButtonClicked()
 
             assertThat(pin).isEmpty()
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
         }
 
     @Test
@@ -281,7 +280,7 @@
             val autoConfirmEnabled by
                 collectLastValue(authenticationInteractor.isAutoConfirmEnabled)
 
-            val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val pin by collectLastValue(underTest.pinInput.map { it.getPin() })
             kosmos.fakeAuthenticationRepository.setAutoConfirmFeatureEnabled(true)
 
@@ -296,7 +295,7 @@
             ) // PIN is now wrong!
 
             assertThat(pin).isEmpty()
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
         }
 
     @Test
@@ -310,10 +309,10 @@
             assertThat(pin).isNotEmpty()
 
             // The user doesn't confirm the PIN, but navigates back to the lockscreen instead.
-            switchToScene(Scenes.Lockscreen)
+            hideBouncer()
 
             // The user navigates to the bouncer again.
-            switchToScene(Scenes.Bouncer)
+            showBouncer()
 
             // Ensure the previously-entered PIN is not shown.
             assertThat(pin).isEmpty()
@@ -527,19 +526,26 @@
         assertThat(msdlPlayer.latestPropertiesPlayed).isNull()
     }
 
-    private fun TestScope.switchToScene(toScene: SceneKey) {
-        val currentScene by collectLastValue(sceneInteractor.currentScene)
-        val bouncerHidden = currentScene == Scenes.Bouncer && toScene != Scenes.Bouncer
-        sceneInteractor.changeScene(toScene, "reason")
-        if (bouncerHidden) underTest.onHidden()
+    private fun TestScope.showBouncer() {
+        val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
+        sceneInteractor.showOverlay(Overlays.Bouncer, "reason")
         runCurrent()
 
-        assertThat(currentScene).isEqualTo(toScene)
+        assertThat(currentOverlays).contains(Overlays.Bouncer)
+    }
+
+    private fun TestScope.hideBouncer() {
+        val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
+        sceneInteractor.hideOverlay(Overlays.Bouncer, "reason")
+        underTest.onHidden()
+        runCurrent()
+
+        assertThat(currentOverlays).doesNotContain(Overlays.Bouncer)
     }
 
     private fun TestScope.lockDeviceAndOpenPinBouncer() {
         kosmos.fakeAuthenticationRepository.setAuthenticationMethod(AuthenticationMethodModel.Pin)
-        switchToScene(Scenes.Bouncer)
+        showBouncer()
     }
 
     companion object {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/CommunalOngoingContentStartableTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/CommunalOngoingContentStartableTest.kt
index e53155d..ed73d89 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/CommunalOngoingContentStartableTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/CommunalOngoingContentStartableTest.kt
@@ -21,6 +21,8 @@
 import androidx.test.filters.SmallTest
 import com.android.systemui.Flags.FLAG_COMMUNAL_HUB
 import com.android.systemui.SysuiTestCase
+import com.android.systemui.communal.data.repository.communalMediaRepository
+import com.android.systemui.communal.data.repository.communalSmartspaceRepository
 import com.android.systemui.communal.data.repository.fakeCommunalMediaRepository
 import com.android.systemui.communal.data.repository.fakeCommunalSmartspaceRepository
 import com.android.systemui.communal.domain.interactor.communalInteractor
@@ -28,12 +30,12 @@
 import com.android.systemui.communal.domain.interactor.setCommunalEnabled
 import com.android.systemui.flags.Flags
 import com.android.systemui.flags.fakeFeatureFlagsClassic
+import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.applicationCoroutineScope
-import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
 import com.android.systemui.testKosmos
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -42,46 +44,64 @@
 @EnableFlags(FLAG_COMMUNAL_HUB)
 @RunWith(AndroidJUnit4::class)
 class CommunalOngoingContentStartableTest : SysuiTestCase() {
-    private val kosmos = testKosmos()
-    private val testScope = kosmos.testScope
+    private val kosmos = testKosmos().useUnconfinedTestDispatcher()
 
-    private val mediaRepository = kosmos.fakeCommunalMediaRepository
-    private val smartspaceRepository = kosmos.fakeCommunalSmartspaceRepository
+    private var showUmoOnHub = true
 
-    private lateinit var underTest: CommunalOngoingContentStartable
+    private val Kosmos.underTest by
+        Kosmos.Fixture {
+            CommunalOngoingContentStartable(
+                bgScope = applicationCoroutineScope,
+                communalInteractor = communalInteractor,
+                communalMediaRepository = communalMediaRepository,
+                communalSettingsInteractor = communalSettingsInteractor,
+                communalSmartspaceRepository = communalSmartspaceRepository,
+                showUmoOnHub = showUmoOnHub,
+            )
+        }
 
     @Before
     fun setUp() {
         kosmos.fakeFeatureFlagsClassic.set(Flags.COMMUNAL_SERVICE_ENABLED, true)
-        underTest =
-            CommunalOngoingContentStartable(
-                bgScope = kosmos.applicationCoroutineScope,
-                communalInteractor = kosmos.communalInteractor,
-                communalMediaRepository = mediaRepository,
-                communalSettingsInteractor = kosmos.communalSettingsInteractor,
-                communalSmartspaceRepository = smartspaceRepository,
-            )
     }
 
     @Test
-    fun testListenForOngoingContentWhenCommunalIsEnabled() =
-        testScope.runTest {
+    fun testListenForOngoingContent() =
+        kosmos.runTest {
             underTest.start()
-            runCurrent()
 
-            assertThat(mediaRepository.isListening()).isFalse()
-            assertThat(smartspaceRepository.isListening()).isFalse()
+            assertThat(fakeCommunalMediaRepository.isListening()).isFalse()
+            assertThat(fakeCommunalSmartspaceRepository.isListening()).isFalse()
 
             kosmos.setCommunalEnabled(true)
-            runCurrent()
 
-            assertThat(mediaRepository.isListening()).isTrue()
-            assertThat(smartspaceRepository.isListening()).isTrue()
+            assertThat(fakeCommunalMediaRepository.isListening()).isTrue()
+            assertThat(fakeCommunalSmartspaceRepository.isListening()).isTrue()
 
             kosmos.setCommunalEnabled(false)
-            runCurrent()
 
-            assertThat(mediaRepository.isListening()).isFalse()
-            assertThat(smartspaceRepository.isListening()).isFalse()
+            assertThat(fakeCommunalMediaRepository.isListening()).isFalse()
+            assertThat(fakeCommunalSmartspaceRepository.isListening()).isFalse()
+        }
+
+    @Test
+    fun testListenForOngoingContent_showUmoFalse() =
+        kosmos.runTest {
+            showUmoOnHub = false
+            underTest.start()
+
+            assertThat(fakeCommunalMediaRepository.isListening()).isFalse()
+            assertThat(fakeCommunalSmartspaceRepository.isListening()).isFalse()
+
+            kosmos.setCommunalEnabled(true)
+
+            // Media listening does not start when UMO is disabled.
+            assertThat(fakeCommunalMediaRepository.isListening()).isFalse()
+            assertThat(fakeCommunalSmartspaceRepository.isListening()).isTrue()
+
+            kosmos.setCommunalEnabled(false)
+
+            assertThat(fakeCommunalMediaRepository.isListening()).isFalse()
+            assertThat(fakeCommunalSmartspaceRepository.isListening()).isFalse()
         }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelTest.kt
index 6199954..59fda98 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelTest.kt
@@ -74,7 +74,8 @@
             setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
             assertThat(actions).isNotEmpty()
             assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(Scenes.Lockscreen))
-            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
+            assertThat(actions?.get(Swipe.Up))
+                .isEqualTo(UserActionResult.ShowOverlay(Overlays.Bouncer))
             assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))
 
             setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
@@ -96,7 +97,8 @@
             setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
             assertThat(actions).isNotEmpty()
             assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(Scenes.Lockscreen))
-            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
+            assertThat(actions?.get(Swipe.Up))
+                .isEqualTo(UserActionResult.ShowOverlay(Overlays.Bouncer))
             assertThat(actions?.get(Swipe.Down))
                 .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))
 
@@ -120,7 +122,8 @@
             setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
             assertThat(actions).isNotEmpty()
             assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(Scenes.Lockscreen))
-            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
+            assertThat(actions?.get(Swipe.Up))
+                .isEqualTo(UserActionResult.ShowOverlay(Overlays.Bouncer))
             assertThat(actions?.get(Swipe.Down))
                 .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt
index 799054a..f47aa6b 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt
@@ -85,6 +85,7 @@
 import com.android.systemui.scene.data.repository.Idle
 import com.android.systemui.scene.data.repository.Transition
 import com.android.systemui.scene.data.repository.setTransition
+import com.android.systemui.scene.domain.interactor.sceneInteractor
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.settings.fakeUserTracker
@@ -602,6 +603,7 @@
                 flowOf(ObservableTransitionState.Idle(CommunalScenes.Communal))
             )
             // Transitioned to Glanceable hub.
+            kosmos.sceneInteractor.changeScene(Scenes.Communal, "")
             kosmos.setTransition(
                 sceneTransition = Idle(Scenes.Communal),
                 stateTransition =
@@ -656,6 +658,7 @@
             keyguardRepository.setKeyguardOccluded(true)
 
             // And on hub
+            kosmos.sceneInteractor.changeScene(Scenes.Communal, "")
             kosmos.setTransition(
                 sceneTransition = Idle(Scenes.Communal),
                 stateTransition =
@@ -673,6 +676,7 @@
             assertThat(isCommunalContentFlowFrozen).isEqualTo(true)
 
             // 3. When transitioned to OCCLUDED and activity shows
+            kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "")
             kosmos.setTransition(
                 sceneTransition = Idle(Scenes.Lockscreen),
                 stateTransition =
@@ -759,6 +763,7 @@
             keyguardRepository.setKeyguardOccluded(true)
 
             // And transitioned to hub
+            kosmos.sceneInteractor.changeScene(Scenes.Communal, "")
             kosmos.setTransition(
                 sceneTransition = Idle(Scenes.Communal),
                 stateTransition =
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepositoryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepositoryTest.kt
index f6016c6..651d474 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepositoryTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepositoryTest.kt
@@ -81,6 +81,7 @@
 import com.android.systemui.power.domain.interactor.powerInteractor
 import com.android.systemui.scene.domain.interactor.sceneInteractor
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.statusbar.phone.KeyguardBypassController
 import com.android.systemui.testKosmos
@@ -186,15 +187,13 @@
         underTest = createDeviceEntryFaceAuthRepositoryImpl(faceManager, bypassController)
 
         if (!SceneContainerFlag.isEnabled) {
-            mSetFlagsRule.disableFlags(
-                AConfigFlags.FLAG_KEYGUARD_WM_STATE_REFACTOR,
-            )
+            mSetFlagsRule.disableFlags(AConfigFlags.FLAG_KEYGUARD_WM_STATE_REFACTOR)
         }
     }
 
     private fun createDeviceEntryFaceAuthRepositoryImpl(
         fmOverride: FaceManager? = faceManager,
-        bypassControllerOverride: KeyguardBypassController? = bypassController
+        bypassControllerOverride: KeyguardBypassController? = bypassController,
     ): DeviceEntryFaceAuthRepositoryImpl {
         val faceAuthBuffer = logcatTableLogBuffer(kosmos, "face auth")
         val faceDetectBuffer = logcatTableLogBuffer(kosmos, "face detect")
@@ -256,7 +255,7 @@
                 0,
                 null,
                 keyguardSessionId,
-                faceAuthUiEvent.extraInfo
+                faceAuthUiEvent.extraInfo,
             )
     }
 
@@ -289,7 +288,7 @@
 
             authenticationCallback.value.onAuthenticationError(
                 FACE_ERROR_LOCKOUT_PERMANENT,
-                "face locked out"
+                "face locked out",
             )
 
             assertThat(lockedOut()).isTrue()
@@ -317,7 +316,7 @@
                 .thenReturn(
                     listOf(
                         createFaceSensorProperties(supportsFaceDetection = false),
-                        createFaceSensorProperties(supportsFaceDetection = true)
+                        createFaceSensorProperties(supportsFaceDetection = true),
                     )
                 )
             assertThat(createDeviceEntryFaceAuthRepositoryImpl().isDetectionSupported).isFalse()
@@ -326,7 +325,7 @@
                 .thenReturn(
                     listOf(
                         createFaceSensorProperties(supportsFaceDetection = true),
-                        createFaceSensorProperties(supportsFaceDetection = false)
+                        createFaceSensorProperties(supportsFaceDetection = false),
                     )
                 )
             assertThat(createDeviceEntryFaceAuthRepositoryImpl().isDetectionSupported).isTrue()
@@ -409,7 +408,7 @@
             // Auth is done cancelling.
             authenticationCallback.value.onAuthenticationError(
                 FACE_ERROR_CANCELED,
-                "First auth attempt cancellation completed"
+                "First auth attempt cancellation completed",
             )
             val value = authStatus() as ErrorFaceAuthenticationStatus
             assertThat(value.msgId).isEqualTo(FACE_ERROR_CANCELED)
@@ -472,7 +471,7 @@
             underTest =
                 createDeviceEntryFaceAuthRepositoryImpl(
                     fmOverride = null,
-                    bypassControllerOverride = null
+                    bypassControllerOverride = null,
                 )
             fakeUserRepository.setSelectedUserInfo(primaryUser)
 
@@ -499,7 +498,7 @@
             testGatingCheckForFaceAuth {
                 fakeUserRepository.setSelectedUserInfo(
                     primaryUser,
-                    SelectionStatus.SELECTION_IN_PROGRESS
+                    SelectionStatus.SELECTION_IN_PROGRESS,
                 )
             }
         }
@@ -510,7 +509,7 @@
             testGatingCheckForDetect {
                 fakeUserRepository.setSelectedUserInfo(
                     userInfo = primaryUser,
-                    selectionStatus = SelectionStatus.SELECTION_IN_PROGRESS
+                    selectionStatus = SelectionStatus.SELECTION_IN_PROGRESS,
                 )
             }
         }
@@ -544,11 +543,11 @@
             testGatingCheckForFaceAuth(sceneContainerEnabled = true) {
                 kosmos.sceneInteractor.setTransitionState(
                     MutableStateFlow(
-                        ObservableTransitionState.Transition(
-                            fromScene = Scenes.Bouncer,
+                        ObservableTransitionState.Transition.hideOverlay(
+                            overlay = Overlays.Bouncer,
                             toScene = Scenes.Gone,
-                            currentScene = flowOf(Scenes.Bouncer),
-                            progress = MutableStateFlow(0.2f),
+                            currentOverlays = flowOf(setOf(Overlays.Bouncer)),
+                            progress = flowOf(.2f),
                             isInitiatedByUserInput = true,
                             isUserInputOngoing = flowOf(false),
                         )
@@ -634,9 +633,11 @@
             assertThat(canFaceAuthRun()).isFalse()
 
             // but bouncer is shown after that.
-            kosmos.sceneInteractor.changeScene(Scenes.Bouncer, "for-test")
+            kosmos.sceneInteractor.showOverlay(Overlays.Bouncer, "for-test")
             kosmos.sceneInteractor.setTransitionState(
-                MutableStateFlow(ObservableTransitionState.Idle(Scenes.Bouncer))
+                MutableStateFlow(
+                    ObservableTransitionState.Idle(Scenes.Lockscreen, setOf(Overlays.Bouncer))
+                )
             )
             runCurrent()
 
@@ -666,7 +667,7 @@
             assertThat(canFaceAuthRun()).isFalse()
             underTest.requestAuthenticate(
                 FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER,
-                fallbackToDetection = true
+                fallbackToDetection = true,
             )
             faceAuthenticateIsNotCalled()
 
@@ -687,7 +688,7 @@
             assertThat(canFaceAuthRun()).isFalse()
             underTest.requestAuthenticate(
                 FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER,
-                fallbackToDetection = true
+                fallbackToDetection = true,
             )
             faceAuthenticateIsNotCalled()
 
@@ -704,7 +705,7 @@
             keyguardTransitionRepository.sendTransitionSteps(
                 from = KeyguardState.LOCKSCREEN,
                 to = KeyguardState.OFF,
-                testScope
+                testScope,
             )
             runCurrent()
             keyguardTransitionRepository.sendTransitionStep(
@@ -730,7 +731,7 @@
                 keyguardTransitionRepository.sendTransitionSteps(
                     from = KeyguardState.OFF,
                     to = KeyguardState.LOCKSCREEN,
-                    testScope
+                    testScope,
                 )
                 runCurrent()
 
@@ -834,7 +835,7 @@
 
             fakeUserRepository.setSelectedUserInfo(
                 primaryUser,
-                SelectionStatus.SELECTION_IN_PROGRESS
+                SelectionStatus.SELECTION_IN_PROGRESS,
             )
 
             assertThat(authenticated()).isFalse()
@@ -896,11 +897,11 @@
             testGatingCheckForDetect(sceneContainerEnabled = true) {
                 kosmos.sceneInteractor.setTransitionState(
                     MutableStateFlow(
-                        ObservableTransitionState.Transition(
-                            fromScene = Scenes.Bouncer,
+                        ObservableTransitionState.Transition.hideOverlay(
+                            overlay = Overlays.Bouncer,
                             toScene = Scenes.Gone,
-                            currentScene = flowOf(Scenes.Bouncer),
-                            progress = MutableStateFlow(0.2f),
+                            currentOverlays = flowOf(setOf(Overlays.Bouncer)),
+                            progress = flowOf(.2f),
                             isInitiatedByUserInput = true,
                             isUserInputOngoing = flowOf(false),
                         )
@@ -1032,7 +1033,7 @@
             keyguardTransitionRepository.sendTransitionSteps(
                 from = KeyguardState.DOZING,
                 to = KeyguardState.GONE,
-                testScope
+                testScope,
             )
             runCurrent()
             verify(faceManager).scheduleWatchdog()
@@ -1044,7 +1045,7 @@
             keyguardTransitionRepository.sendTransitionSteps(
                 from = KeyguardState.AOD,
                 to = KeyguardState.GONE,
-                testScope
+                testScope,
             )
             runCurrent()
             verify(faceManager).scheduleWatchdog()
@@ -1056,7 +1057,7 @@
             keyguardTransitionRepository.sendTransitionSteps(
                 from = KeyguardState.LOCKSCREEN,
                 to = KeyguardState.GONE,
-                testScope
+                testScope,
             )
             runCurrent()
             verify(faceManager).scheduleWatchdog()
@@ -1068,7 +1069,7 @@
             keyguardTransitionRepository.sendTransitionSteps(
                 from = KeyguardState.PRIMARY_BOUNCER,
                 to = KeyguardState.GONE,
-                testScope
+                testScope,
             )
             runCurrent()
             verify(faceManager).scheduleWatchdog()
@@ -1085,7 +1086,7 @@
 
             authenticationCallback.value.onAuthenticationError(
                 FACE_ERROR_HW_UNAVAILABLE,
-                "HW unavailable"
+                "HW unavailable",
             )
 
             advanceTimeBy(DeviceEntryFaceAuthRepositoryImpl.HAL_ERROR_RETRY_TIMEOUT)
@@ -1137,7 +1138,7 @@
 
     private suspend fun TestScope.testGatingCheckForFaceAuth(
         sceneContainerEnabled: Boolean = false,
-        gatingCheckModifier: suspend () -> Unit
+        gatingCheckModifier: suspend () -> Unit,
     ) {
         initCollectors()
         allPreconditionsToRunFaceAuthAreTrue(sceneContainerEnabled)
@@ -1180,7 +1181,7 @@
 
     private suspend fun TestScope.testGatingCheckForDetect(
         sceneContainerEnabled: Boolean = false,
-        gatingCheckModifier: suspend () -> Unit
+        gatingCheckModifier: suspend () -> Unit,
     ) {
         initCollectors()
         allPreconditionsToRunFaceAuthAreTrue(sceneContainerEnabled)
@@ -1194,7 +1195,7 @@
         // Trigger authenticate with detection fallback
         underTest.requestAuthenticate(
             FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER,
-            fallbackToDetection = true
+            fallbackToDetection = true,
         )
         runCurrent()
 
@@ -1213,7 +1214,7 @@
         // Try to run detect again
         underTest.requestAuthenticate(
             FACE_AUTH_TRIGGERED_SWIPE_UP_ON_BOUNCER,
-            fallbackToDetection = true
+            fallbackToDetection = true,
         )
 
         // Detect won't run because preconditions are not true anymore.
@@ -1242,7 +1243,7 @@
             // Keyguard is not going away
             kosmos.fakeKeyguardTransitionRepository.sendTransitionStep(
                 TransitionStep(KeyguardState.OFF, KeyguardState.LOCKSCREEN, value = 1.0f),
-                validateStep = false
+                validateStep = false,
             )
             kosmos.sceneInteractor.setTransitionState(
                 MutableStateFlow(ObservableTransitionState.Idle(Scenes.Lockscreen))
@@ -1263,7 +1264,7 @@
         keyguardTransitionRepository.sendTransitionSteps(
             from = KeyguardState.AOD,
             to = KeyguardState.LOCKSCREEN,
-            testScope
+            testScope,
         )
         runCurrent()
     }
@@ -1315,7 +1316,7 @@
                 any(),
                 any(),
                 isNull(),
-                any(FaceAuthenticateOptions::class.java)
+                any(FaceAuthenticateOptions::class.java),
             )
     }
 
@@ -1334,7 +1335,7 @@
                     "vendor/model/revision" /* hardwareVersion */,
                     "1.01" /* firmwareVersion */,
                     "00000001" /* serialNumber */,
-                    "" /* softwareVersion */
+                    "", /* softwareVersion */
                 )
             )
         return FaceSensorPropertiesInternal(
@@ -1345,7 +1346,7 @@
             FaceSensorProperties.TYPE_UNKNOWN,
             supportsFaceDetection /* supportsFaceDetection */,
             true /* supportsSelfIllumination */,
-            false /* resetLockoutRequiresChallenge */
+            false, /* resetLockoutRequiresChallenge */
         )
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntryFaceAuthInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntryFaceAuthInteractorTest.kt
index e36d245..d2d8ab9 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntryFaceAuthInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntryFaceAuthInteractorTest.kt
@@ -55,6 +55,7 @@
 import com.android.systemui.power.domain.interactor.powerInteractor
 import com.android.systemui.power.shared.model.WakeSleepReason
 import com.android.systemui.scene.domain.interactor.sceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.testKosmos
 import com.android.systemui.user.data.model.SelectionStatus
@@ -298,9 +299,12 @@
         testScope.runTest {
             underTest.start()
 
-            kosmos.sceneInteractor.changeScene(Scenes.Bouncer, "for-test")
+            kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "for-test")
+            kosmos.sceneInteractor.showOverlay(Overlays.Bouncer, "for-test")
             kosmos.sceneInteractor.setTransitionState(
-                MutableStateFlow(ObservableTransitionState.Idle(Scenes.Bouncer))
+                MutableStateFlow(
+                    ObservableTransitionState.Idle(Scenes.Lockscreen, setOf(Overlays.Bouncer))
+                )
             )
 
             runCurrent()
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntryInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntryInteractorTest.kt
index 84f08f1..d247137 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntryInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntryInteractorTest.kt
@@ -45,6 +45,7 @@
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.scene.domain.interactor.sceneInteractor
 import com.android.systemui.scene.domain.startable.sceneContainerStartable
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.statusbar.sysuiStatusBarStateController
 import com.android.systemui.testKosmos
@@ -179,7 +180,7 @@
             kosmos.fakeDeviceEntryRepository.setLockscreenEnabled(true)
             switchToScene(Scenes.Lockscreen)
             runCurrent()
-            switchToScene(Scenes.Bouncer)
+            showBouncer()
 
             val isDeviceEntered by collectLastValue(underTest.isDeviceEntered)
             assertThat(isDeviceEntered).isFalse()
@@ -375,6 +376,7 @@
     fun showOrUnlockDevice_noAlternateBouncer_switchesToBouncerScene() =
         testScope.runTest {
             val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             switchToScene(Scenes.Lockscreen)
             assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
 
@@ -386,7 +388,7 @@
 
             underTest.attemptDeviceEntry()
 
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
         }
 
     @Test
@@ -437,6 +439,7 @@
             assertThat(isDeviceEntered).isFalse()
             assertThat(isDeviceEnteredDirectly).isFalse()
             val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
 
             // Navigate to shade and bouncer:
@@ -446,8 +449,8 @@
             // be shown and successful authentication should take the user back to where they are,
             // the shade scene.
             sysuiStatusBarStateController.setLeaveOpenOnKeyguardHide(true)
-            switchToScene(Scenes.Bouncer)
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            showBouncer()
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
 
             assertThat(isDeviceEntered).isFalse()
             assertThat(isDeviceEnteredDirectly).isFalse()
@@ -465,6 +468,19 @@
         runCurrent()
     }
 
+    private fun TestScope.showBouncer() {
+        sceneInteractor.showOverlay(Overlays.Bouncer, "reason")
+        sceneInteractor.setTransitionState(
+            flowOf(
+                ObservableTransitionState.Idle(
+                    sceneInteractor.currentScene.value,
+                    setOf(Overlays.Bouncer),
+                )
+            )
+        )
+        runCurrent()
+    }
+
     private suspend fun givenCanShowAlternateBouncer() {
         val canShowAlternateBouncer by
             testScope.collectLastValue(kosmos.alternateBouncerInteractor.canShowAlternateBouncer)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntrySourceInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntrySourceInteractorTest.kt
index a5c0da5..f15fd28 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntrySourceInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntrySourceInteractorTest.kt
@@ -45,6 +45,7 @@
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.scene.domain.interactor.sceneInteractor
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.statusbar.phone.dozeScrimController
 import com.android.systemui.statusbar.phone.screenOffAnimationController
@@ -145,6 +146,7 @@
             whenever(kosmos.keyguardUpdateMonitor.isDeviceInteractive).thenReturn(true)
             configureDeviceEntryBiometricAuthSuccessState(isFingerprintAuth = true)
             configureBiometricUnlockState(
+                primaryBouncerVisible = false,
                 alternateBouncerVisible = false,
                 sceneKey = Scenes.Lockscreen,
             )
@@ -167,7 +169,11 @@
 
             whenever(kosmos.keyguardUpdateMonitor.isDeviceInteractive).thenReturn(false)
             configureDeviceEntryBiometricAuthSuccessState(isFingerprintAuth = true)
-            configureBiometricUnlockState(alternateBouncerVisible = false, sceneKey = Scenes.Dream)
+            configureBiometricUnlockState(
+                primaryBouncerVisible = false,
+                alternateBouncerVisible = false,
+                sceneKey = Scenes.Dream,
+            )
             runCurrent()
 
             assertThat(deviceEntryFromBiometricSource)
@@ -185,8 +191,9 @@
             whenever(kosmos.keyguardUpdateMonitor.isDeviceInteractive).thenReturn(true)
             configureDeviceEntryBiometricAuthSuccessState(isFingerprintAuth = true)
             configureBiometricUnlockState(
+                primaryBouncerVisible = true,
                 alternateBouncerVisible = false,
-                sceneKey = Scenes.Bouncer,
+                sceneKey = Scenes.Lockscreen,
             )
             runCurrent()
 
@@ -205,6 +212,7 @@
             whenever(kosmos.keyguardUpdateMonitor.isDeviceInteractive).thenReturn(true)
             configureDeviceEntryBiometricAuthSuccessState(isFingerprintAuth = true)
             configureBiometricUnlockState(
+                primaryBouncerVisible = false,
                 alternateBouncerVisible = false,
                 sceneKey = Scenes.Lockscreen,
             )
@@ -225,6 +233,7 @@
             whenever(kosmos.keyguardUpdateMonitor.isDeviceInteractive).thenReturn(true)
             configureDeviceEntryBiometricAuthSuccessState(isFingerprintAuth = true)
             configureBiometricUnlockState(
+                primaryBouncerVisible = false,
                 alternateBouncerVisible = true,
                 sceneKey = Scenes.Lockscreen,
             )
@@ -247,6 +256,7 @@
             whenever(kosmos.keyguardUpdateMonitor.isDeviceInteractive).thenReturn(true)
             configureDeviceEntryBiometricAuthSuccessState(isFaceAuth = true)
             configureBiometricUnlockState(
+                primaryBouncerVisible = false,
                 alternateBouncerVisible = false,
                 sceneKey = Scenes.Lockscreen,
             )
@@ -274,6 +284,7 @@
             whenever(kosmos.keyguardUpdateMonitor.isDeviceInteractive).thenReturn(true)
             configureDeviceEntryBiometricAuthSuccessState(isFaceAuth = true)
             configureBiometricUnlockState(
+                primaryBouncerVisible = false,
                 alternateBouncerVisible = false,
                 sceneKey = Scenes.Lockscreen,
             )
@@ -295,8 +306,9 @@
             whenever(kosmos.keyguardUpdateMonitor.isDeviceInteractive).thenReturn(true)
             configureDeviceEntryBiometricAuthSuccessState(isFaceAuth = true)
             configureBiometricUnlockState(
+                primaryBouncerVisible = true,
                 alternateBouncerVisible = false,
-                sceneKey = Scenes.Bouncer,
+                sceneKey = Scenes.Lockscreen,
             )
             runCurrent()
 
@@ -314,7 +326,11 @@
 
             whenever(kosmos.keyguardUpdateMonitor.isDeviceInteractive).thenReturn(true)
             configureDeviceEntryBiometricAuthSuccessState(isFaceAuth = true)
-            configureBiometricUnlockState(alternateBouncerVisible = false, sceneKey = Scenes.Shade)
+            configureBiometricUnlockState(
+                primaryBouncerVisible = false,
+                alternateBouncerVisible = false,
+                sceneKey = Scenes.Shade,
+            )
             runCurrent()
 
             // MODE_NONE does not dismiss keyguard
@@ -333,6 +349,7 @@
             whenever(kosmos.keyguardUpdateMonitor.isDeviceInteractive).thenReturn(true)
             configureDeviceEntryBiometricAuthSuccessState(isFaceAuth = true)
             configureBiometricUnlockState(
+                primaryBouncerVisible = false,
                 alternateBouncerVisible = false,
                 sceneKey = Scenes.Lockscreen,
             )
@@ -354,6 +371,7 @@
             kosmos.keyguardOcclusionRepository.setShowWhenLockedActivityInfo(onTop = true)
             configureDeviceEntryBiometricAuthSuccessState(isFaceAuth = true)
             configureBiometricUnlockState(
+                primaryBouncerVisible = false,
                 alternateBouncerVisible = true,
                 sceneKey = Scenes.Lockscreen,
             )
@@ -381,13 +399,20 @@
     }
 
     private fun configureBiometricUnlockState(
+        primaryBouncerVisible: Boolean,
         alternateBouncerVisible: Boolean,
         sceneKey: SceneKey,
     ) {
         kosmos.keyguardBouncerRepository.setAlternateVisible(alternateBouncerVisible)
         kosmos.sceneInteractor.changeScene(sceneKey, "reason")
+        if (primaryBouncerVisible) kosmos.sceneInteractor.showOverlay(Overlays.Bouncer, "reason")
         kosmos.sceneInteractor.setTransitionState(
-            MutableStateFlow<ObservableTransitionState>(ObservableTransitionState.Idle(sceneKey))
+            MutableStateFlow<ObservableTransitionState>(
+                ObservableTransitionState.Idle(
+                    sceneKey,
+                    if (primaryBouncerVisible) setOf(Overlays.Bouncer) else emptySet(),
+                )
+            )
         )
     }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/DreamOverlayServiceTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/DreamOverlayServiceTest.kt
index 526510a..b42eddd 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/DreamOverlayServiceTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/DreamOverlayServiceTest.kt
@@ -77,6 +77,7 @@
 import com.android.systemui.navigationbar.gestural.domain.TaskMatcher
 import com.android.systemui.scene.data.repository.sceneContainerRepository
 import com.android.systemui.scene.domain.interactor.sceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.testKosmos
 import com.android.systemui.touch.TouchInsetManager
@@ -1073,7 +1074,8 @@
         assertThat(lifecycleRegistry.currentState).isEqualTo(Lifecycle.State.RESUMED)
 
         // Bouncer shows.
-        kosmos.sceneInteractor.changeScene(Scenes.Bouncer, "test")
+        kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "test")
+        kosmos.sceneInteractor.showOverlay(Overlays.Bouncer, "test")
         testScope.runCurrent()
         mMainExecutor.runAllReady()
 
@@ -1082,6 +1084,7 @@
 
         // Bouncer closes.
         kosmos.sceneInteractor.changeScene(Scenes.Dream, "test")
+        kosmos.sceneInteractor.hideOverlay(Overlays.Bouncer, "test")
         testScope.runCurrent()
         mMainExecutor.runAllReady()
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelTest.kt
index 102ce0b..69b6e6c 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelTest.kt
@@ -74,7 +74,8 @@
 
             setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
             assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
+            assertThat(actions?.get(Swipe.Up))
+                .isEqualTo(UserActionResult.ShowOverlay(Overlays.Bouncer))
             assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))
             assertThat(actions?.get(Swipe.Start)).isNull()
             assertThat(actions?.get(Swipe.End)).isNull()
@@ -99,7 +100,8 @@
 
             setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
             assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
+            assertThat(actions?.get(Swipe.Up))
+                .isEqualTo(UserActionResult.ShowOverlay(Overlays.Bouncer))
             assertThat(actions?.get(Swipe.Down))
                 .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))
             assertThat(actions?.get(Swipe.Start)).isNull()
@@ -126,7 +128,8 @@
 
             setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
             assertThat(actions).isNotEmpty()
-            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
+            assertThat(actions?.get(Swipe.Up))
+                .isEqualTo(UserActionResult.ShowOverlay(Overlays.Bouncer))
             assertThat(actions?.get(Swipe.Down))
                 .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))
             assertThat(actions?.get(Swipe.Start)).isNull()
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/inputdevice/tutorial/ui/viewmodel/KeyboardTouchpadTutorialViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/inputdevice/tutorial/ui/viewmodel/KeyboardTouchpadTutorialViewModelTest.kt
index 57bcc14..63be132 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/inputdevice/tutorial/ui/viewmodel/KeyboardTouchpadTutorialViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/inputdevice/tutorial/ui/viewmodel/KeyboardTouchpadTutorialViewModelTest.kt
@@ -248,6 +248,23 @@
         }
 
     @Test
+    fun screensOrderUntilFinish_whenAutoProceed() =
+        testScope.runTest {
+            val screens by collectValues(viewModel.screen)
+            val closeActivity by collectLastValue(viewModel.closeActivity)
+
+            peripheralsState(keyboardConnected = true, touchpadConnected = true)
+
+            autoProceed()
+            autoProceed()
+            // No autoproceeding at the last screen
+            goToNextScreen()
+
+            assertThat(screens).containsExactly(BACK_GESTURE, HOME_GESTURE, ACTION_KEY).inOrder()
+            assertThat(closeActivity).isTrue()
+        }
+
+    @Test
     fun activityFinishes_ifTouchpadModuleIsNotPresent() =
         testScope.runTest {
             val viewModel =
@@ -299,6 +316,11 @@
         runCurrent()
     }
 
+    private suspend fun TestScope.autoProceed() {
+        viewModel.onAutoProceed()
+        runCurrent()
+    }
+
     private fun TestScope.goBack() {
         viewModel.onBack()
         runCurrent()
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ResourceTrimmerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ResourceTrimmerTest.kt
index 32a631b..043daf0 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ResourceTrimmerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ResourceTrimmerTest.kt
@@ -8,16 +8,19 @@
 import com.android.systemui.flags.DisableSceneContainer
 import com.android.systemui.flags.EnableSceneContainer
 import com.android.systemui.flags.fakeFeatureFlagsClassic
+import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository
 import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
 import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
 import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor
 import com.android.systemui.keyguard.shared.model.KeyguardState
+import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus
 import com.android.systemui.kosmos.testDispatcher
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAsleepForTest
 import com.android.systemui.power.domain.interactor.powerInteractor
 import com.android.systemui.scene.data.repository.Idle
 import com.android.systemui.scene.data.repository.setSceneTransition
+import com.android.systemui.scene.domain.interactor.sceneInteractor
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.testKosmos
 import com.android.systemui.utils.GlobalWindowManager
@@ -130,7 +133,7 @@
             keyguardTransitionRepository.sendTransitionSteps(
                 from = KeyguardState.LOCKSCREEN,
                 to = KeyguardState.GONE,
-                testScope
+                testScope,
             )
             verify(globalWindowManager, times(1))
                 .trimMemory(ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN)
@@ -141,6 +144,13 @@
     @EnableSceneContainer
     fun keyguardTransitionsToGone_trimsFontCache_scene_container() =
         testScope.runTest {
+            kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "reason")
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
+            runCurrent()
+
+            kosmos.sceneInteractor.changeScene(Scenes.Gone, "")
             kosmos.setSceneTransition(Idle(Scenes.Gone))
 
             verify(globalWindowManager, times(1))
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/DeviceEntrySideFpsOverlayInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/DeviceEntrySideFpsOverlayInteractorTest.kt
index 425079d..5bcf73b 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/DeviceEntrySideFpsOverlayInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/DeviceEntrySideFpsOverlayInteractorTest.kt
@@ -41,7 +41,7 @@
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.res.R
 import com.android.systemui.scene.domain.interactor.sceneInteractor
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.statusbar.policy.KeyguardStateController
 import com.android.systemui.testKosmos
 import com.android.systemui.user.domain.interactor.SelectedUserInteractor
@@ -173,7 +173,7 @@
                 collectLastValue(underTest.showIndicatorForDeviceEntry)
             runCurrent()
 
-            updateBouncerScene(
+            updateBouncer(
                 isActive = true,
                 fpsDetectionRunning = true,
                 isUnlockingWithFpAllowed = true,
@@ -199,7 +199,7 @@
                 collectLastValue(underTest.showIndicatorForDeviceEntry)
             runCurrent()
 
-            updateBouncerScene(
+            updateBouncer(
                 isActive = false,
                 fpsDetectionRunning = true,
                 isUnlockingWithFpAllowed = true,
@@ -248,7 +248,7 @@
                 collectLastValue(underTest.showIndicatorForDeviceEntry)
             runCurrent()
 
-            updateBouncerScene(
+            updateBouncer(
                 isActive = true,
                 fpsDetectionRunning = false,
                 isUnlockingWithFpAllowed = true,
@@ -264,7 +264,7 @@
                 collectLastValue(underTest.showIndicatorForDeviceEntry)
             runCurrent()
 
-            updateBouncerScene(
+            updateBouncer(
                 isActive = true,
                 fpsDetectionRunning = true,
                 isUnlockingWithFpAllowed = false,
@@ -349,15 +349,16 @@
         )
     }
 
-    private fun TestScope.updateBouncerScene(
+    private fun TestScope.updateBouncer(
         isActive: Boolean,
         fpsDetectionRunning: Boolean,
         isUnlockingWithFpAllowed: Boolean,
     ) {
-        kosmos.sceneInteractor.changeScene(
-            if (isActive) Scenes.Bouncer else Scenes.Lockscreen,
-            "reason",
-        )
+        if (isActive) {
+            kosmos.sceneInteractor.showOverlay(Overlays.Bouncer, "reason")
+        } else {
+            kosmos.sceneInteractor.hideOverlay(Overlays.Bouncer, "reason")
+        }
 
         whenever(keyguardUpdateMonitor.isFingerprintDetectionRunning)
             .thenReturn(fpsDetectionRunning)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt
index c63f6f6..0a5f079 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt
@@ -38,10 +38,12 @@
 import com.android.systemui.kosmos.collectLastValue
 import com.android.systemui.kosmos.runTest
 import com.android.systemui.kosmos.testScope
+import com.android.systemui.scene.data.repository.HideOverlay
 import com.android.systemui.scene.data.repository.Idle
 import com.android.systemui.scene.data.repository.Transition
 import com.android.systemui.scene.data.repository.setSceneTransition
 import com.android.systemui.scene.domain.interactor.sceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.testKosmos
 import com.google.common.truth.Truth.assertThat
@@ -221,7 +223,7 @@
     @Test
     fun doNotResetDismissActionOnUnlockedShade() =
         testScope.runTest {
-            kosmos.setSceneTransition(Idle(Scenes.Bouncer))
+            kosmos.setSceneTransition(Idle(Scenes.Lockscreen, setOf(Overlays.Bouncer)))
             kosmos.fakeAuthenticationRepository.setAuthenticationMethod(
                 AuthenticationMethodModel.None
             )
@@ -238,7 +240,12 @@
             assertThat(wasOnCancelInvoked).isFalse()
 
             kosmos.setSceneTransition(
-                Transition(from = Scenes.Bouncer, to = Scenes.Shade, progress = flowOf(1f))
+                HideOverlay(
+                    overlay = Overlays.Bouncer,
+                    toScene = Scenes.Shade,
+                    currentOverlays = flowOf(emptySet()),
+                    progress = flowOf(1f),
+                )
             )
             runCurrent()
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractorTest.kt
index 6d53e6c..3fe30b7 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractorTest.kt
@@ -24,9 +24,11 @@
 import com.android.systemui.flags.DisableSceneContainer
 import com.android.systemui.flags.EnableSceneContainer
 import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepository
+import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository
 import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
 import com.android.systemui.keyguard.shared.model.KeyguardState
 import com.android.systemui.keyguard.shared.model.KeyguardSurfaceBehindModel
+import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus
 import com.android.systemui.keyguard.shared.model.TransitionState
 import com.android.systemui.keyguard.shared.model.TransitionStep
 import com.android.systemui.keyguard.util.mockTopActivityClassName
@@ -34,6 +36,7 @@
 import com.android.systemui.scene.data.repository.Idle
 import com.android.systemui.scene.data.repository.Transition
 import com.android.systemui.scene.data.repository.setSceneTransition
+import com.android.systemui.scene.domain.interactor.sceneInteractor
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.shared.system.ActivityManagerWrapper
 import com.android.systemui.shared.system.activityManagerWrapper
@@ -84,7 +87,7 @@
             assertThat(values)
                 .containsExactly(
                     // We're initialized in LOCKSCREEN.
-                    KeyguardSurfaceBehindModel(alpha = 0f),
+                    KeyguardSurfaceBehindModel(alpha = 0f)
                 )
 
             transitionRepository.sendTransitionStep(
@@ -105,7 +108,7 @@
                         it.alpha == 1f &&
                         it.animateFromTranslationY != 0f &&
                         it.translationY == 0f
-                }
+                },
             )
 
             transitionRepository.sendTransitionStep(
@@ -125,7 +128,7 @@
                         it.alpha == 1f &&
                         it.animateFromTranslationY != 0f &&
                         it.translationY == 0f
-                }
+                },
             )
 
             transitionRepository.sendTransitionStep(
@@ -146,7 +149,7 @@
                         it.translationY == 0f
                 },
                 // Once the current state is GONE, we should default to alpha = 1f.
-                { it == KeyguardSurfaceBehindModel(alpha = 1f) }
+                { it == KeyguardSurfaceBehindModel(alpha = 1f) },
             )
         }
 
@@ -161,7 +164,7 @@
             assertThat(values)
                 .containsExactly(
                     // We're initialized in LOCKSCREEN.
-                    KeyguardSurfaceBehindModel(alpha = 0f),
+                    KeyguardSurfaceBehindModel(alpha = 0f)
                 )
                 .inOrder()
 
@@ -242,8 +245,7 @@
 
             values.assertValuesMatch(
                 // We should be at alpha = 0f during the animation.
-                { it == KeyguardSurfaceBehindModel(alpha = 0f) },
-            )
+                { it == KeyguardSurfaceBehindModel(alpha = 0f) })
         }
 
     @Test
@@ -251,14 +253,19 @@
     fun testSurfaceBehindModel_toAppSurface_scene_container() =
         testScope.runTest {
             val values by collectValues(underTest.viewParams)
+            kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "")
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
             runCurrent()
 
             assertThat(values)
                 .containsExactly(
                     // We're initialized in LOCKSCREEN.
-                    KeyguardSurfaceBehindModel(alpha = 0f),
+                    KeyguardSurfaceBehindModel(alpha = 0f)
                 )
 
+            kosmos.sceneInteractor.changeScene(Scenes.Gone, "")
             kosmos.setSceneTransition(Transition(Scenes.Lockscreen, Scenes.Gone))
 
             values.assertValuesMatch(
@@ -270,7 +277,7 @@
                         it.alpha == 1f &&
                         it.animateFromTranslationY != 0f &&
                         it.translationY == 0f
-                }
+                },
             )
 
             kosmos.setSceneTransition(Idle(Scenes.Gone))
@@ -284,7 +291,7 @@
                         it.translationY == 0f
                 },
                 // Once the current state is GONE, we should default to alpha = 1f.
-                { it == KeyguardSurfaceBehindModel(alpha = 1f) }
+                { it == KeyguardSurfaceBehindModel(alpha = 1f) },
             )
         }
 
@@ -294,15 +301,20 @@
         testScope.runTest {
             val values by collectValues(underTest.viewParams)
             activityManagerWrapper.mockTopActivityClassName(LAUNCHER_ACTIVITY_NAME)
+            kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "")
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
             runCurrent()
 
             assertThat(values)
                 .containsExactly(
                     // We're initialized in LOCKSCREEN.
-                    KeyguardSurfaceBehindModel(alpha = 0f),
+                    KeyguardSurfaceBehindModel(alpha = 0f)
                 )
                 .inOrder()
 
+            kosmos.sceneInteractor.changeScene(Scenes.Gone, "")
             kosmos.setSceneTransition(Transition(Scenes.Lockscreen, Scenes.Gone))
 
             assertThat(values)
@@ -340,8 +352,7 @@
 
             values.assertValuesMatch(
                 // We should be at alpha = 0f during the animation.
-                { it == KeyguardSurfaceBehindModel(alpha = 0f) },
-            )
+                { it == KeyguardSurfaceBehindModel(alpha = 0f) })
         }
 
     @Test
@@ -435,6 +446,13 @@
         testScope.runTest {
             val isAnimatingSurface by collectLastValue(underTest.isAnimatingSurface)
 
+            kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "")
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
+            runCurrent()
+
+            kosmos.sceneInteractor.changeScene(Scenes.Gone, "")
             kosmos.setSceneTransition(Idle(Scenes.Gone))
             kosmos.notificationLaunchAnimationInteractor.setIsLaunchAnimationRunning(true)
             runCurrent()
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractorTest.kt
index 0b42898..2d1c905 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractorTest.kt
@@ -24,6 +24,7 @@
 import com.android.systemui.flags.DisableSceneContainer
 import com.android.systemui.flags.EnableSceneContainer
 import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepository
+import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository
 import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
 import com.android.systemui.keyguard.shared.model.Edge
 import com.android.systemui.keyguard.shared.model.KeyguardState
@@ -34,15 +35,20 @@
 import com.android.systemui.keyguard.shared.model.KeyguardState.OFF
 import com.android.systemui.keyguard.shared.model.KeyguardState.PRIMARY_BOUNCER
 import com.android.systemui.keyguard.shared.model.KeyguardState.UNDEFINED
+import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus
 import com.android.systemui.keyguard.shared.model.TransitionState.CANCELED
 import com.android.systemui.keyguard.shared.model.TransitionState.FINISHED
 import com.android.systemui.keyguard.shared.model.TransitionState.RUNNING
 import com.android.systemui.keyguard.shared.model.TransitionState.STARTED
 import com.android.systemui.keyguard.shared.model.TransitionStep
 import com.android.systemui.kosmos.testScope
+import com.android.systemui.scene.data.repository.HideOverlay
 import com.android.systemui.scene.data.repository.Idle
+import com.android.systemui.scene.data.repository.ShowOverlay
 import com.android.systemui.scene.data.repository.Transition
 import com.android.systemui.scene.data.repository.setSceneTransition
+import com.android.systemui.scene.domain.interactor.sceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.testKosmos
 import com.google.common.truth.Truth.assertThat
@@ -295,11 +301,13 @@
                 inTransition,
             )
 
-            kosmos.setSceneTransition(Transition(Scenes.Gone, Scenes.Bouncer))
+            kosmos.setSceneTransition(
+                ShowOverlay(overlay = Overlays.Bouncer, fromScene = Scenes.Gone)
+            )
 
             assertEquals(listOf(false, true, false, true), inTransition)
 
-            kosmos.setSceneTransition(Idle(Scenes.Bouncer))
+            kosmos.setSceneTransition(Idle(Scenes.Lockscreen, setOf(Overlays.Bouncer)))
 
             assertEquals(listOf(false, true, false, true, false), inTransition)
         }
@@ -713,6 +721,11 @@
                 TransitionStep(AOD, DOZING, 1f, FINISHED),
             )
 
+            kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "reason")
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
+
             assertThat(results)
                 .isEqualTo(
                     listOf(
@@ -724,6 +737,7 @@
 
             assertThat(results).isEqualTo(listOf(false))
 
+            kosmos.sceneInteractor.changeScene(Scenes.Gone, "reason")
             kosmos.setSceneTransition(Idle(Scenes.Gone))
 
             assertThat(results).isEqualTo(listOf(false, true))
@@ -732,6 +746,7 @@
 
             assertThat(results).isEqualTo(listOf(false, true))
 
+            kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "reason")
             kosmos.setSceneTransition(Idle(Scenes.Lockscreen))
 
             assertThat(results).isEqualTo(listOf(false, true, false))
@@ -740,6 +755,7 @@
 
             assertThat(results).isEqualTo(listOf(false, true, false))
 
+            kosmos.sceneInteractor.changeScene(Scenes.Gone, "reason")
             kosmos.setSceneTransition(Idle(Scenes.Gone))
 
             assertThat(results).isEqualTo(listOf(false, true, false, true))
@@ -1042,13 +1058,23 @@
             progress.emit(0.6f)
             runCurrent()
 
-            kosmos.setSceneTransition(Transition(Scenes.Gone, Scenes.Bouncer, progress = progress))
+            kosmos.setSceneTransition(
+                ShowOverlay(
+                    overlay = Overlays.Bouncer,
+                    fromScene = Scenes.Gone,
+                    progress = progress,
+                )
+            )
 
             progress.emit(0.1f)
             runCurrent()
 
             kosmos.setSceneTransition(
-                Transition(Scenes.Bouncer, Scenes.Lockscreen, progress = progress)
+                HideOverlay(
+                    overlay = Overlays.Bouncer,
+                    toScene = Scenes.Lockscreen,
+                    progress = progress,
+                )
             )
 
             progress.emit(0.3f)
@@ -1087,12 +1113,20 @@
 
             kosmos.setSceneTransition(Idle(Scenes.Gone))
 
-            kosmos.setSceneTransition(Transition(Scenes.Gone, Scenes.Bouncer, progress = progress))
+            kosmos.setSceneTransition(
+                ShowOverlay(
+                    overlay = Overlays.Bouncer,
+                    fromScene = Scenes.Gone,
+                    progress = progress,
+                )
+            )
 
             progress.emit(0.1f)
             runCurrent()
 
-            kosmos.setSceneTransition(Transition(Scenes.Bouncer, Scenes.Gone, progress = progress))
+            kosmos.setSceneTransition(
+                HideOverlay(overlay = Overlays.Bouncer, toScene = Scenes.Gone, progress = progress)
+            )
 
             progress.emit(0.3f)
             runCurrent()
@@ -1125,7 +1159,13 @@
             progress1.emit(0.1f)
             runCurrent()
 
-            kosmos.setSceneTransition(Transition(Scenes.Gone, Scenes.Bouncer, progress = progress2))
+            kosmos.setSceneTransition(
+                ShowOverlay(
+                    overlay = Overlays.Bouncer,
+                    fromScene = Scenes.Gone,
+                    progress = progress2,
+                )
+            )
 
             progress2.emit(0.3f)
             runCurrent()
@@ -1152,8 +1192,14 @@
             val currentStatesMapped by
                 collectValues(underTest.transition(Edge.create(LOCKSCREEN, Scenes.Gone)))
 
+            kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "reason")
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
+
             kosmos.setSceneTransition(Transition(Scenes.Gone, Scenes.Lockscreen))
             val sendStep1 = TransitionStep(UNDEFINED, LOCKSCREEN, 0f, STARTED)
+            kosmos.sceneInteractor.changeScene(Scenes.Gone, "reason")
             kosmos.setSceneTransition(Idle(Scenes.Gone))
             val sendStep2 = TransitionStep(UNDEFINED, LOCKSCREEN, 0.6f, CANCELED)
             sendSteps(sendStep1, sendStep2)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractorTest.kt
index b7c162b..f0eedee 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractorTest.kt
@@ -37,11 +37,13 @@
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.scene.data.model.asIterable
 import com.android.systemui.scene.data.model.sceneStackOf
+import com.android.systemui.scene.data.repository.HideOverlay
 import com.android.systemui.scene.data.repository.Idle
 import com.android.systemui.scene.data.repository.Transition
 import com.android.systemui.scene.data.repository.setSceneTransition
 import com.android.systemui.scene.domain.interactor.sceneBackInteractor
 import com.android.systemui.scene.domain.interactor.sceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.testKosmos
 import com.android.systemui.util.mockito.mock
@@ -250,12 +252,14 @@
     fun surfaceBehindVisibility_fromBouncerToGone_becomesTrue() =
         testScope.runTest {
             val isSurfaceBehindVisible by collectLastValue(underTest.value.surfaceBehindVisibility)
-            val currentScene by collectLastValue(kosmos.sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(kosmos.sceneInteractor.currentOverlays)
 
             // Before the transition, we start on Bouncer so the surface should start invisible.
-            kosmos.setSceneTransition(ObservableTransitionState.Idle(Scenes.Bouncer))
-            kosmos.sceneInteractor.changeScene(Scenes.Bouncer, "")
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            kosmos.setSceneTransition(
+                ObservableTransitionState.Idle(Scenes.Lockscreen, setOf(Overlays.Bouncer))
+            )
+            kosmos.sceneInteractor.showOverlay(Overlays.Bouncer, "")
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             assertThat(isSurfaceBehindVisible).isFalse()
 
             // Unlocked with fingerprint.
@@ -267,44 +271,45 @@
             // the
             // threshold.
             kosmos.setSceneTransition(
-                ObservableTransitionState.Transition(
-                    fromScene = Scenes.Bouncer,
+                ObservableTransitionState.Transition.hideOverlay(
+                    overlay = Overlays.Bouncer,
                     toScene = Scenes.Gone,
-                    isInitiatedByUserInput = false,
-                    isUserInputOngoing = flowOf(false),
+                    currentOverlays = flowOf(setOf(Overlays.Bouncer)),
                     progress =
                         flowOf(
                             FromPrimaryBouncerTransitionInteractor
                                 .TO_GONE_SURFACE_BEHIND_VISIBLE_THRESHOLD
                         ),
-                    currentScene = flowOf(Scenes.Bouncer),
+                    isInitiatedByUserInput = false,
+                    isUserInputOngoing = flowOf(false),
                 )
             )
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             assertThat(isSurfaceBehindVisible).isFalse()
 
             // Once the transition passes the threshold, the surface should become visible.
             kosmos.setSceneTransition(
-                ObservableTransitionState.Transition(
-                    fromScene = Scenes.Bouncer,
+                ObservableTransitionState.Transition.hideOverlay(
+                    overlay = Overlays.Bouncer,
                     toScene = Scenes.Gone,
-                    isInitiatedByUserInput = false,
-                    isUserInputOngoing = flowOf(false),
+                    currentOverlays = flowOf(setOf(Overlays.Bouncer)),
                     progress =
                         flowOf(
                             FromPrimaryBouncerTransitionInteractor
                                 .TO_GONE_SURFACE_BEHIND_VISIBLE_THRESHOLD + 0.01f
                         ),
-                    currentScene = flowOf(Scenes.Gone),
+                    isInitiatedByUserInput = false,
+                    isUserInputOngoing = flowOf(false),
                 )
             )
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             assertThat(isSurfaceBehindVisible).isTrue()
 
             // After the transition, settles on Gone. Surface behind should stay visible now.
             kosmos.setSceneTransition(ObservableTransitionState.Idle(Scenes.Gone))
             kosmos.sceneInteractor.changeScene(Scenes.Gone, "")
-            assertThat(currentScene).isEqualTo(Scenes.Gone)
+            kosmos.sceneInteractor.hideOverlay(Overlays.Bouncer, "")
+            assertThat(currentOverlays).doesNotContain(Overlays.Bouncer)
             assertThat(isSurfaceBehindVisible).isTrue()
         }
 
@@ -1012,6 +1017,7 @@
 
             kosmos.setSceneTransition(Idle(Scenes.Lockscreen))
             val currentScene by collectLastValue(kosmos.sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(kosmos.sceneInteractor.currentOverlays)
             assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
 
             val lockscreenVisibility by collectLastValue(underTest.value.lockscreenVisibility)
@@ -1038,12 +1044,16 @@
             assertThat(currentScene).isEqualTo(Scenes.Shade)
             assertThat(lockscreenVisibility).isTrue()
 
-            kosmos.setSceneTransition(Idle(Scenes.Bouncer))
-            kosmos.sceneInteractor.changeScene(Scenes.Bouncer, "")
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            kosmos.setSceneTransition(Idle(Scenes.Lockscreen, setOf(Overlays.Bouncer)))
+            kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "")
+            kosmos.sceneInteractor.showOverlay(Overlays.Bouncer, "")
+            assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             assertThat(lockscreenVisibility).isTrue()
 
-            kosmos.setSceneTransition(Transition(from = Scenes.Bouncer, to = Scenes.Gone))
+            kosmos.setSceneTransition(
+                HideOverlay(overlay = Overlays.Bouncer, toScene = Scenes.Gone)
+            )
             assertThat(lockscreenVisibility).isTrue()
 
             kosmos.setSceneTransition(Idle(Scenes.Gone))
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/scenetransition/LockscreenSceneTransitionInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/scenetransition/LockscreenSceneTransitionInteractorTest.kt
index 3cff0fc..41ec065 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/scenetransition/LockscreenSceneTransitionInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/scenetransition/LockscreenSceneTransitionInteractorTest.kt
@@ -1220,13 +1220,13 @@
 
             progress.value = 0.4f
             sceneTransitions.value =
-                ObservableTransitionState.Transition(
-                    Scenes.Lockscreen,
-                    Scenes.Bouncer,
-                    flowOf(Scenes.Lockscreen),
-                    progress,
-                    false,
-                    flowOf(false),
+                ObservableTransitionState.Transition.showOverlay(
+                    overlay = Overlays.Bouncer,
+                    fromScene = Scenes.Lockscreen,
+                    currentOverlays = flowOf(setOf(Overlays.Bouncer)),
+                    progress = progress,
+                    isInitiatedByUserInput = false,
+                    isUserInputOngoing = flowOf(false),
                 )
 
             assertTransition(
@@ -1342,7 +1342,7 @@
             sceneTransitions.value =
                 ObservableTransitionState.Transition(
                     Scenes.Gone,
-                    Scenes.Bouncer,
+                    Scenes.Dream,
                     flowOf(Scenes.Lockscreen),
                     progress,
                     false,
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/DozingToDreamingTransitionViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/DozingToDreamingTransitionViewModelTest.kt
deleted file mode 100644
index 052dfd5..0000000
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/DozingToDreamingTransitionViewModelTest.kt
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2025 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.keyguard.ui.viewmodel
-
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import androidx.test.filters.SmallTest
-import com.android.systemui.SysuiTestCase
-import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
-import com.android.systemui.keyguard.shared.model.KeyguardState
-import com.android.systemui.kosmos.collectValues
-import com.android.systemui.kosmos.runTest
-import com.android.systemui.kosmos.testScope
-import com.android.systemui.testKosmos
-import com.google.common.truth.Truth.assertThat
-import org.junit.Test
-import org.junit.runner.RunWith
-
-@SmallTest
-@RunWith(AndroidJUnit4::class)
-class DozingToDreamingTransitionViewModelTest : SysuiTestCase() {
-    val kosmos = testKosmos()
-
-    val underTest by lazy { kosmos.dozingToDreamingTransitionViewModel }
-
-    @Test
-    fun notificationShadeAlpha() =
-        kosmos.runTest {
-            val values by collectValues(underTest.notificationAlpha)
-            assertThat(values).isEmpty()
-
-            fakeKeyguardTransitionRepository.sendTransitionSteps(
-                from = KeyguardState.DOZING,
-                to = KeyguardState.DREAMING,
-                testScope,
-            )
-
-            assertThat(values).isNotEmpty()
-            values.forEach { assertThat(it).isEqualTo(0) }
-        }
-}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToPrimaryBouncerTransitionViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToPrimaryBouncerTransitionViewModelTest.kt
index a31728c..91cb1ff 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToPrimaryBouncerTransitionViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToPrimaryBouncerTransitionViewModelTest.kt
@@ -39,6 +39,7 @@
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.scene.data.repository.sceneContainerRepository
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.shade.shadeTestUtil
 import com.android.systemui.testKosmos
@@ -125,14 +126,15 @@
 
             kosmos.sceneContainerRepository.setTransitionState(transitionState)
             transitionState.value =
-                ObservableTransitionState.Transition(
+                ObservableTransitionState.Transition.showOverlay(
+                    overlay = Overlays.Bouncer,
                     fromScene = Scenes.Lockscreen,
-                    toScene = Scenes.Bouncer,
-                    emptyFlow(),
-                    emptyFlow(),
-                    false,
-                    emptyFlow(),
+                    currentOverlays = emptyFlow(),
+                    progress = emptyFlow(),
+                    isInitiatedByUserInput = false,
+                    isUserInputOngoing = emptyFlow(),
                 )
+
             runCurrent()
             // fade out
             repository.sendTransitionStep(step(0f, TransitionState.STARTED))
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelTest.kt
index f357d0c..f98ddd2 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelTest.kt
@@ -19,6 +19,7 @@
 import android.platform.test.annotations.EnableFlags
 import android.testing.TestableLooper.RunWithLooper
 import androidx.test.filters.SmallTest
+import com.android.compose.animation.scene.ContentKey
 import com.android.compose.animation.scene.Edge
 import com.android.compose.animation.scene.SceneKey
 import com.android.compose.animation.scene.Swipe
@@ -135,11 +136,11 @@
         private fun expectedUpDestination(
             canSwipeToEnter: Boolean,
             isShadeTouchable: Boolean,
-        ): SceneKey? {
+        ): ContentKey? {
             return when {
                 !isShadeTouchable -> null
                 canSwipeToEnter -> Scenes.Gone
-                else -> Scenes.Bouncer
+                else -> Overlays.Bouncer
             }
         }
     }
@@ -215,15 +216,17 @@
                     )
                 )
 
-            val upScene by
-                collectLastValue(
-                    (userActions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene?.let {
-                        scene ->
-                        kosmos.sceneInteractor.resolveSceneFamily(scene)
-                    } ?: flowOf(null)
-                )
+            val upContent =
+                userActions?.get(Swipe.Up)?.let { result ->
+                    when (result) {
+                        is UserActionResult.ChangeScene -> result.toScene
+                        is UserActionResult.ShowOverlay -> result.overlay
+                        is UserActionResult.HideOverlay -> result.overlay
+                        is UserActionResult.ReplaceByOverlay -> result.overlay
+                    }
+                }
 
-            assertThat(upScene)
+            assertThat(upContent)
                 .isEqualTo(
                     expectedUpDestination(
                         canSwipeToEnter = canSwipeToEnter,
@@ -292,15 +295,17 @@
                 }
             }
 
-            val upScene by
-                collectLastValue(
-                    (userActions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene?.let {
-                        scene ->
-                        kosmos.sceneInteractor.resolveSceneFamily(scene)
-                    } ?: flowOf(null)
-                )
+            val upContent =
+                userActions?.get(Swipe.Up)?.let { result ->
+                    when (result) {
+                        is UserActionResult.ChangeScene -> result.toScene
+                        is UserActionResult.ShowOverlay -> result.overlay
+                        is UserActionResult.HideOverlay -> result.overlay
+                        is UserActionResult.ReplaceByOverlay -> result.overlay
+                    }
+                }
 
-            assertThat(upScene)
+            assertThat(upContent)
                 .isEqualTo(
                     expectedUpDestination(
                         canSwipeToEnter = canSwipeToEnter,
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/data/repository/MediaFilterRepositoryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/data/repository/MediaFilterRepositoryTest.kt
index 24672eb..8a11be0 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/data/repository/MediaFilterRepositoryTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/data/repository/MediaFilterRepositoryTest.kt
@@ -30,21 +30,11 @@
 import com.android.systemui.media.controls.shared.model.MediaDataLoadingModel
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaData
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaLoadingModel
-import com.android.systemui.media.controls.util.SmallHash
-import com.android.systemui.media.controls.util.mediaSmartspaceLogger
-import com.android.systemui.media.controls.util.mockMediaSmartspaceLogger
 import com.android.systemui.testKosmos
-import com.android.systemui.util.time.systemClock
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.test.runTest
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.ArgumentMatchers.anyBoolean
-import org.mockito.ArgumentMatchers.anyInt
-import org.mockito.ArgumentMatchers.eq
-import org.mockito.kotlin.never
-import org.mockito.kotlin.reset
-import org.mockito.kotlin.verify
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
@@ -52,7 +42,6 @@
 
     private val kosmos = testKosmos()
     private val testScope = kosmos.testScope
-    private val smartspaceLogger = kosmos.mockMediaSmartspaceLogger
     private val icon = Icon.createWithResource(context, R.drawable.ic_media_play)
     private val mediaRecommendation =
         SmartspaceMediaData(
@@ -61,11 +50,7 @@
             recommendations = MediaTestHelper.getValidRecommendationList(icon),
         )
 
-    private val underTest: MediaFilterRepository =
-        with(kosmos) {
-            mediaSmartspaceLogger = mockMediaSmartspaceLogger
-            mediaFilterRepository
-        }
+    private val underTest: MediaFilterRepository = with(kosmos) { mediaFilterRepository }
 
     @Test
     fun addSelectedUserMediaEntry_activeThenInactivate() =
@@ -185,29 +170,15 @@
             underTest.addSelectedUserMediaEntry(playingData)
             underTest.addMediaDataLoadingState(
                 MediaDataLoadingModel.Loaded(playingInstanceId),
-                false
+                false,
             )
 
-            verify(smartspaceLogger)
-                .logSmartspaceCardReceived(
-                    playingData.smartspaceId,
-                    playingData.appUid,
-                    cardinality = 2
-                )
-
             underTest.addSelectedUserMediaEntry(remoteData)
             underTest.addMediaDataLoadingState(
                 MediaDataLoadingModel.Loaded(remoteInstanceId),
-                false
+                false,
             )
 
-            verify(smartspaceLogger)
-                .logSmartspaceCardReceived(
-                    remoteData.smartspaceId,
-                    playingData.appUid,
-                    cardinality = 3,
-                    rank = 1
-                )
             assertThat(currentMedia?.size).isEqualTo(3)
             assertThat(currentMedia)
                 .containsExactly(
@@ -215,7 +186,7 @@
                     MediaCommonModel.MediaControl(MediaDataLoadingModel.Loaded(remoteInstanceId)),
                     MediaCommonModel.MediaRecommendations(
                         SmartspaceMediaLoadingModel.Loaded(KEY_MEDIA_SMARTSPACE, true)
-                    )
+                    ),
                 )
                 .inOrder()
         }
@@ -238,7 +209,7 @@
             assertThat(currentMedia)
                 .containsExactly(
                     MediaCommonModel.MediaControl(MediaDataLoadingModel.Loaded(playingInstanceId1)),
-                    MediaCommonModel.MediaControl(MediaDataLoadingModel.Loaded(playingInstanceId2))
+                    MediaCommonModel.MediaControl(MediaDataLoadingModel.Loaded(playingInstanceId2)),
                 )
                 .inOrder()
 
@@ -258,29 +229,19 @@
                     MediaCommonModel.MediaControl(MediaDataLoadingModel.Loaded(playingInstanceId1)),
                     MediaCommonModel.MediaControl(
                         MediaDataLoadingModel.Loaded(playingInstanceId2, false)
-                    )
+                    ),
                 )
                 .inOrder()
 
             underTest.setOrderedMedia()
 
-            verify(smartspaceLogger, never())
-                .logSmartspaceCardReceived(
-                    anyInt(),
-                    anyInt(),
-                    anyInt(),
-                    anyBoolean(),
-                    anyBoolean(),
-                    anyInt(),
-                    anyInt()
-                )
             assertThat(currentMedia?.size).isEqualTo(2)
             assertThat(currentMedia)
                 .containsExactly(
                     MediaCommonModel.MediaControl(
                         MediaDataLoadingModel.Loaded(playingInstanceId2, false)
                     ),
-                    MediaCommonModel.MediaControl(MediaDataLoadingModel.Loaded(playingInstanceId1))
+                    MediaCommonModel.MediaControl(MediaDataLoadingModel.Loaded(playingInstanceId1)),
                 )
                 .inOrder()
         }
@@ -321,27 +282,6 @@
             )
             underTest.setOrderedMedia()
 
-            val smartspaceId = SmallHash.hash(mediaRecommendation.targetId)
-            verify(smartspaceLogger)
-                .logSmartspaceCardReceived(
-                    eq(smartspaceId),
-                    anyInt(),
-                    eq(6),
-                    anyBoolean(),
-                    anyBoolean(),
-                    eq(2),
-                    anyInt()
-                )
-            verify(smartspaceLogger, never())
-                .logSmartspaceCardReceived(
-                    eq(playingAndLocalData.smartspaceId),
-                    anyInt(),
-                    anyInt(),
-                    anyBoolean(),
-                    anyBoolean(),
-                    anyInt(),
-                    anyInt()
-                )
             assertThat(currentMedia?.size).isEqualTo(6)
             assertThat(currentMedia)
                 .containsExactly(
@@ -376,7 +316,7 @@
                     active = true,
                     instanceId = instanceId2,
                     isPlaying = true,
-                    notificationKey = KEY_2
+                    notificationKey = KEY_2,
                 )
 
             underTest.setMediaFromRecPackageName(PACKAGE_NAME)
@@ -391,11 +331,11 @@
                 .containsExactly(
                     MediaCommonModel.MediaControl(
                         MediaDataLoadingModel.Loaded(instanceId1),
-                        isMediaFromRec = true
+                        isMediaFromRec = true,
                     ),
                     MediaCommonModel.MediaRecommendations(
                         SmartspaceMediaLoadingModel.Loaded(KEY_MEDIA_SMARTSPACE)
-                    )
+                    ),
                 )
                 .inOrder()
 
@@ -410,7 +350,7 @@
                     MediaCommonModel.MediaControl(MediaDataLoadingModel.Loaded(instanceId1)),
                     MediaCommonModel.MediaRecommendations(
                         SmartspaceMediaLoadingModel.Loaded(KEY_MEDIA_SMARTSPACE)
-                    )
+                    ),
                 )
                 .inOrder()
         }
@@ -423,89 +363,6 @@
     fun hasActiveMedia_noMediaSet_returnsFalse() =
         testScope.runTest { assertThat(underTest.hasActiveMedia()).isFalse() }
 
-    @Test
-    fun updateMediaWithLatency_smartspaceIsLogged() =
-        testScope.runTest {
-            val instanceId = InstanceId.fakeInstanceId(123)
-            val data = createMediaData("app", true, LOCAL, false, instanceId)
-
-            underTest.setRecommendation(mediaRecommendation)
-            underTest.setRecommendationsLoadingState(
-                SmartspaceMediaLoadingModel.Loaded(KEY_MEDIA_SMARTSPACE, true)
-            )
-
-            val smartspaceId = SmallHash.hash(mediaRecommendation.targetId)
-            verify(smartspaceLogger)
-                .logSmartspaceCardReceived(
-                    eq(smartspaceId),
-                    anyInt(),
-                    eq(1),
-                    eq(true),
-                    anyBoolean(),
-                    eq(0),
-                    anyInt()
-                )
-            reset(smartspaceLogger)
-
-            underTest.addSelectedUserMediaEntry(data)
-            underTest.addMediaDataLoadingState(MediaDataLoadingModel.Loaded(instanceId), false)
-
-            verify(smartspaceLogger)
-                .logSmartspaceCardReceived(data.smartspaceId, data.appUid, cardinality = 2)
-
-            reset(smartspaceLogger)
-
-            underTest.addSelectedUserMediaEntry(data)
-            underTest.addMediaDataLoadingState(
-                MediaDataLoadingModel.Loaded(instanceId, receivedSmartspaceCardLatency = 123),
-                true
-            )
-
-            verify(smartspaceLogger)
-                .logSmartspaceCardReceived(
-                    SmallHash.hash(data.appUid + kosmos.systemClock.currentTimeMillis().toInt()),
-                    data.appUid,
-                    cardinality = 2,
-                    rank = 0,
-                    receivedLatencyMillis = 123
-                )
-        }
-
-    @Test
-    fun resumeMedia_loadSmartspace_allSmartspaceIsLogged() =
-        testScope.runTest {
-            val resumeInstanceId = InstanceId.fakeInstanceId(123)
-            val data = createMediaData("app", false, LOCAL, true, resumeInstanceId)
-
-            underTest.addSelectedUserMediaEntry(data.copy(active = false))
-            underTest.addMediaDataLoadingState(MediaDataLoadingModel.Loaded(resumeInstanceId))
-            underTest.setRecommendation(mediaRecommendation)
-            underTest.setRecommendationsLoadingState(
-                SmartspaceMediaLoadingModel.Loaded(KEY_MEDIA_SMARTSPACE, true)
-            )
-
-            assertThat(underTest.hasActiveMedia()).isFalse()
-            assertThat(underTest.hasAnyMedia()).isTrue()
-            val smartspaceId = SmallHash.hash(mediaRecommendation.targetId)
-            verify(smartspaceLogger)
-                .logSmartspaceCardReceived(
-                    eq(smartspaceId),
-                    anyInt(),
-                    eq(2),
-                    eq(true),
-                    anyBoolean(),
-                    eq(0),
-                    anyInt()
-                )
-            verify(smartspaceLogger)
-                .logSmartspaceCardReceived(
-                    SmallHash.hash(data.appUid + kosmos.systemClock.currentTimeMillis().toInt()),
-                    data.appUid,
-                    cardinality = 2,
-                    rank = 1
-                )
-        }
-
     private fun createMediaData(
         app: String,
         playing: Boolean,
@@ -518,7 +375,7 @@
             resumption = isResume,
             notificationKey = "key: $app",
             isPlaying = playing,
-            instanceId = instanceId
+            instanceId = instanceId,
         )
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/interactor/MediaCarouselInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/interactor/MediaCarouselInteractorTest.kt
index 0a44e7b..0197a1e 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/interactor/MediaCarouselInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/interactor/MediaCarouselInteractorTest.kt
@@ -18,7 +18,6 @@
 
 import android.R
 import android.graphics.drawable.Icon
-import android.os.Process
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import com.android.internal.logging.InstanceId
@@ -37,19 +36,12 @@
 import com.android.systemui.media.controls.shared.model.MediaDataLoadingModel
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaData
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaLoadingModel
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger
-import com.android.systemui.media.controls.util.SmallHash
-import com.android.systemui.media.controls.util.mediaSmartspaceLogger
-import com.android.systemui.media.controls.util.mockMediaSmartspaceLogger
 import com.android.systemui.testKosmos
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.test.runTest
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mockito.reset
-import org.mockito.kotlin.never
-import org.mockito.kotlin.verify
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
@@ -59,10 +51,7 @@
     private val testScope = kosmos.testScope
 
     private val mediaFilterRepository: MediaFilterRepository =
-        with(kosmos) {
-            mediaSmartspaceLogger = mockMediaSmartspaceLogger
-            mediaFilterRepository
-        }
+        with(kosmos) { mediaFilterRepository }
     private val mediaRecommendationsInteractor: MediaRecommendationsInteractor =
         kosmos.mediaRecommendationsInteractor
     val icon = Icon.createWithResource(context, R.drawable.ic_media_play)
@@ -73,7 +62,6 @@
             packageName = PACKAGE_NAME,
             recommendations = MediaTestHelper.getValidRecommendationList(icon),
         )
-    private val smartspaceLogger = kosmos.mockMediaSmartspaceLogger
 
     private val underTest: MediaCarouselInteractor = kosmos.mediaCarouselInteractor
 
@@ -163,18 +151,6 @@
                     MediaCommonModel.MediaControl(mediaLoadingModel, true),
                 )
                 .inOrder()
-
-            underTest.logSmartspaceSeenCard(0, 1, false)
-
-            verify(smartspaceLogger)
-                .logSmartspaceCardUIEvent(
-                    MediaSmartspaceLogger.SMARTSPACE_CARD_SEEN_EVENT,
-                    SmallHash.hash(mediaRecommendation.targetId),
-                    Process.INVALID_UID,
-                    surface = SURFACE,
-                    2,
-                    true,
-                )
         }
 
     @Test
@@ -269,79 +245,6 @@
                 .inOrder()
         }
 
-    @Test
-    fun loadMediaAndRecommendation_logSmartspaceSeenCard() {
-        val instanceId = InstanceId.fakeInstanceId(123)
-        val data =
-            MediaData(
-                active = true,
-                instanceId = instanceId,
-                packageName = PACKAGE_NAME,
-                notificationKey = KEY,
-            )
-        val smartspaceLoadingModel = SmartspaceMediaLoadingModel.Loaded(KEY_MEDIA_SMARTSPACE)
-        val mediaLoadingModel = MediaDataLoadingModel.Loaded(instanceId)
-
-        mediaFilterRepository.addSelectedUserMediaEntry(data)
-        mediaFilterRepository.addMediaDataLoadingState(mediaLoadingModel)
-        underTest.logSmartspaceSeenCard(0, 1, false)
-
-        verify(smartspaceLogger)
-            .logSmartspaceCardUIEvent(
-                MediaSmartspaceLogger.SMARTSPACE_CARD_SEEN_EVENT,
-                data.smartspaceId,
-                data.appUid,
-                surface = SURFACE,
-                1,
-            )
-
-        reset(smartspaceLogger)
-        mediaFilterRepository.addSelectedUserMediaEntry(data)
-        mediaFilterRepository.addMediaDataLoadingState(mediaLoadingModel)
-        underTest.logSmartspaceSeenCard(0, 1, true)
-
-        verify(smartspaceLogger, never())
-            .logSmartspaceCardUIEvent(
-                MediaSmartspaceLogger.SMARTSPACE_CARD_SEEN_EVENT,
-                data.smartspaceId,
-                data.appUid,
-                surface = SURFACE,
-                2,
-            )
-
-        reset(smartspaceLogger)
-        mediaFilterRepository.setRecommendation(mediaRecommendation)
-        mediaFilterRepository.setRecommendationsLoadingState(smartspaceLoadingModel)
-        underTest.logSmartspaceSeenCard(1, 1, true)
-
-        verify(smartspaceLogger)
-            .logSmartspaceCardUIEvent(
-                MediaSmartspaceLogger.SMARTSPACE_CARD_SEEN_EVENT,
-                SmallHash.hash(mediaRecommendation.targetId),
-                Process.INVALID_UID,
-                surface = SURFACE,
-                2,
-                true,
-                rank = 1,
-            )
-
-        reset(smartspaceLogger)
-        mediaFilterRepository.addSelectedUserMediaEntry(data)
-        mediaFilterRepository.addMediaDataLoadingState(
-            mediaLoadingModel.copy(receivedSmartspaceCardLatency = 1)
-        )
-        underTest.logSmartspaceSeenCard(0, 1, true)
-
-        verify(smartspaceLogger)
-            .logSmartspaceCardUIEvent(
-                MediaSmartspaceLogger.SMARTSPACE_CARD_SEEN_EVENT,
-                data.smartspaceId,
-                data.appUid,
-                surface = SURFACE,
-                2,
-            )
-    }
-
     companion object {
         private const val KEY_MEDIA_SMARTSPACE = "MEDIA_SMARTSPACE_ID"
         private const val PACKAGE_NAME = "com.android.example"
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/interactor/MediaControlInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/interactor/MediaControlInteractorTest.kt
index 62d0625..ba987c1 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/interactor/MediaControlInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/interactor/MediaControlInteractorTest.kt
@@ -42,11 +42,7 @@
 import com.android.systemui.media.controls.domain.pipeline.mediaDataProcessor
 import com.android.systemui.media.controls.shared.model.MediaData
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaData
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger.Companion.SMARTSPACE_CARD_CLICK_EVENT
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger.Companion.SMARTSPACE_CARD_DISMISS_EVENT
 import com.android.systemui.media.controls.util.mediaInstanceId
-import com.android.systemui.media.controls.util.mediaSmartspaceLogger
-import com.android.systemui.media.controls.util.mockMediaSmartspaceLogger
 import com.android.systemui.media.mediaOutputDialogManager
 import com.android.systemui.mockActivityIntentHelper
 import com.android.systemui.plugins.activityStarter
@@ -57,8 +53,6 @@
 import kotlinx.coroutines.test.runTest
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mockito.anyBoolean
-import org.mockito.Mockito.anyInt
 import org.mockito.Mockito.never
 import org.mockito.Mockito.verify
 import org.mockito.kotlin.any
@@ -73,16 +67,11 @@
     private val kosmos = testKosmos()
     private val testScope = kosmos.testScope
 
-    private val mediaDataFilter: MediaDataFilterImpl =
-        with(kosmos) {
-            mediaSmartspaceLogger = mockMediaSmartspaceLogger
-            mediaDataFilter
-        }
+    private val mediaDataFilter: MediaDataFilterImpl = with(kosmos) { mediaDataFilter }
     private val activityStarter = kosmos.activityStarter
     private val keyguardStateController = kosmos.keyguardStateController
     private val instanceId: InstanceId = kosmos.mediaInstanceId
     private val notificationLockscreenUserManager = kosmos.notificationLockscreenUserManager
-    private val smartspaceLogger = kosmos.mockMediaSmartspaceLogger
     private val icon = Icon.createWithResource(context, R.drawable.ic_media_play)
     private val mediaRecommendation =
         SmartspaceMediaData(
@@ -148,7 +137,7 @@
         val activityController = mock<ActivityTransitionAnimator.Controller>()
         whenever(expandable.activityTransitionController(any())).thenReturn(activityController)
 
-        underTest.startClickIntent(expandable, clickIntent, SMARTSPACE_CARD_CLICK_EVENT, 1)
+        underTest.startClickIntent(expandable, clickIntent)
 
         verify(activityStarter)
             .startPendingIntentMaybeDismissingKeyguard(
@@ -172,17 +161,8 @@
         val mediaData = MediaData(userId = USER_ID, instanceId = instanceId, artist = ARTIST)
         mediaDataFilter.onSmartspaceMediaDataLoaded(KEY_MEDIA_SMARTSPACE, mediaRecommendation, true)
         mediaDataFilter.onMediaDataLoaded(KEY, null, mediaData)
-        underTest.startClickIntent(expandable, clickIntent, SMARTSPACE_CARD_CLICK_EVENT, 1)
+        underTest.startClickIntent(expandable, clickIntent)
 
-        verify(smartspaceLogger)
-            .logSmartspaceCardUIEvent(
-                SMARTSPACE_CARD_CLICK_EVENT,
-                mediaData.smartspaceId,
-                mediaData.appUid,
-                surface = SURFACE,
-                cardinality = 2,
-                rank = 1,
-            )
         verify(activityStarter)
             .postStartActivityDismissingKeyguard(eq(clickIntent), eq(activityController))
     }
@@ -270,24 +250,10 @@
         kosmos.mediaDataRepository.addMediaEntry(KEY, mediaData)
         kosmos.mediaDataFilter.onMediaDataLoaded(KEY, null, mediaData)
 
-        underTest.removeMediaControl(null, instanceId, 0L, SMARTSPACE_CARD_DISMISS_EVENT, 1)
+        underTest.removeMediaControl(null, instanceId, 0L)
         kosmos.fakeExecutor.advanceClockToNext()
         kosmos.fakeExecutor.runAllReady()
 
-        verify(smartspaceLogger, never())
-            .logSmartspaceCardUIEvent(
-                anyInt(),
-                anyInt(),
-                anyInt(),
-                anyInt(),
-                anyInt(),
-                anyBoolean(),
-                anyBoolean(),
-                anyInt(),
-                anyInt(),
-                anyInt(),
-                anyBoolean(),
-            )
         verify(listener).onMediaDataRemoved(eq(KEY), eq(true))
     }
 
@@ -303,19 +269,10 @@
         mediaDataFilter.onSmartspaceMediaDataLoaded(KEY_MEDIA_SMARTSPACE, mediaRecommendation, true)
         mediaDataFilter.onMediaDataLoaded(KEY, null, mediaData)
 
-        underTest.removeMediaControl(null, instanceId, 0L, SMARTSPACE_CARD_DISMISS_EVENT, 1)
+        underTest.removeMediaControl(null, instanceId, 0L)
         kosmos.fakeExecutor.advanceClockToNext()
         kosmos.fakeExecutor.runAllReady()
 
-        verify(smartspaceLogger)
-            .logSmartspaceCardUIEvent(
-                SMARTSPACE_CARD_DISMISS_EVENT,
-                mediaData.smartspaceId,
-                mediaData.appUid,
-                surface = SURFACE,
-                cardinality = 2,
-                rank = 1,
-            )
         verify(listener).onMediaDataRemoved(eq(KEY), eq(true))
     }
 
@@ -327,6 +284,5 @@
         private const val ARTIST = "artist"
         private const val ARTIST_2 = "artist2"
         private const val KEY_MEDIA_SMARTSPACE = "MEDIA_SMARTSPACE_ID"
-        private const val SURFACE = 4
     }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/interactor/MediaRecommendationsInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/interactor/MediaRecommendationsInteractorTest.kt
index 11397d9..2265c01 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/interactor/MediaRecommendationsInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/interactor/MediaRecommendationsInteractorTest.kt
@@ -21,7 +21,6 @@
 import android.content.Intent
 import android.content.applicationContext
 import android.graphics.drawable.Icon
-import android.os.Process
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
@@ -39,11 +38,6 @@
 import com.android.systemui.media.controls.shared.model.MediaRecModel
 import com.android.systemui.media.controls.shared.model.MediaRecommendationsModel
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaData
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger.Companion.SMARTSPACE_CARD_CLICK_EVENT
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger.Companion.SMARTSPACE_CARD_DISMISS_EVENT
-import com.android.systemui.media.controls.util.SmallHash
-import com.android.systemui.media.controls.util.mediaSmartspaceLogger
-import com.android.systemui.media.controls.util.mockMediaSmartspaceLogger
 import com.android.systemui.plugins.activityStarter
 import com.android.systemui.testKosmos
 import com.android.systemui.util.mockito.any
@@ -66,11 +60,7 @@
     private val kosmos = testKosmos().apply { applicationContext = spyContext }
     private val testScope = kosmos.testScope
 
-    private val mediaDataFilter: MediaDataFilterImpl =
-        with(kosmos) {
-            mediaSmartspaceLogger = mockMediaSmartspaceLogger
-            mediaDataFilter
-        }
+    private val mediaDataFilter: MediaDataFilterImpl = with(kosmos) { mediaDataFilter }
     private val activityStarter = kosmos.activityStarter
     private val icon: Icon = Icon.createWithResource(context, R.drawable.ic_media_play)
     private val smartspaceMediaData: SmartspaceMediaData =
@@ -80,7 +70,6 @@
             packageName = PACKAGE_NAME,
             recommendations = MediaTestHelper.getValidRecommendationList(icon),
         )
-    private val smartspaceLogger = kosmos.mockMediaSmartspaceLogger
 
     private val underTest: MediaRecommendationsInteractor =
         with(kosmos) {
@@ -132,23 +121,8 @@
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
 
         mediaDataFilter.onSmartspaceMediaDataLoaded(KEY_MEDIA_SMARTSPACE, smartspaceMediaData)
-        underTest.removeMediaRecommendations(
-            KEY_MEDIA_SMARTSPACE,
-            intent,
-            0,
-            SMARTSPACE_CARD_DISMISS_EVENT,
-            1,
-        )
+        underTest.removeMediaRecommendations(KEY_MEDIA_SMARTSPACE, intent, 0)
 
-        verify(smartspaceLogger)
-            .logSmartspaceCardUIEvent(
-                SMARTSPACE_CARD_DISMISS_EVENT,
-                SmallHash.hash(smartspaceMediaData.targetId),
-                Process.INVALID_UID,
-                surface = SURFACE,
-                cardinality = 1,
-                isRecommendationCard = true,
-            )
         verify(kosmos.mockBroadcastSender).sendBroadcast(eq(intent))
     }
 
@@ -160,13 +134,7 @@
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
         intent.component = ComponentName(PACKAGE_NAME, EXPORTED_SMARTSPACE_TRAMPOLINE_ACTIVITY_NAME)
 
-        underTest.removeMediaRecommendations(
-            KEY_MEDIA_SMARTSPACE,
-            intent,
-            0,
-            SMARTSPACE_CARD_DISMISS_EVENT,
-            1,
-        )
+        underTest.removeMediaRecommendations(KEY_MEDIA_SMARTSPACE, intent, 0)
 
         verify(spyContext).startActivity(eq(intent))
     }
@@ -187,19 +155,8 @@
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
 
         mediaDataFilter.onSmartspaceMediaDataLoaded(KEY_MEDIA_SMARTSPACE, smartspaceMediaData)
-        underTest.startClickIntent(expandable, intent, SMARTSPACE_CARD_CLICK_EVENT, 1, 2, 3)
+        underTest.startClickIntent(expandable, intent)
 
-        verify(smartspaceLogger)
-            .logSmartspaceCardUIEvent(
-                SMARTSPACE_CARD_CLICK_EVENT,
-                SmallHash.hash(smartspaceMediaData.targetId),
-                Process.INVALID_UID,
-                surface = SURFACE,
-                cardinality = 1,
-                isRecommendationCard = true,
-                interactedSubcardRank = 2,
-                interactedSubcardCardinality = 3,
-            )
         verify(spyContext).startActivity(eq(intent))
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataCombineLatestTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataCombineLatestTest.java
index 1d4b090..544350c 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataCombineLatestTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataCombineLatestTest.java
@@ -79,7 +79,7 @@
                 USER_ID, true, APP, null, ARTIST, TITLE, null,
                 new ArrayList<>(), new ArrayList<>(), null, PACKAGE, null, null, null, true, null,
                 MediaData.PLAYBACK_LOCAL, false, KEY, false, false, false, 0L, 0L,
-                InstanceId.fakeInstanceId(-1), -1, false, null, -1, false);
+                InstanceId.fakeInstanceId(-1), -1, false, null);
         mDeviceData = new MediaDeviceData(true, null, DEVICE_NAME, null, false);
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/binder/SeekBarObserverTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/binder/SeekBarObserverTest.kt
index 943ada9..4e14fec 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/binder/SeekBarObserverTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/binder/SeekBarObserverTest.kt
@@ -18,9 +18,6 @@
 
 import android.animation.Animator
 import android.animation.ObjectAnimator
-import android.icu.text.MeasureFormat
-import android.icu.util.Measure
-import android.icu.util.MeasureUnit
 import android.testing.TestableLooper
 import android.view.View
 import android.widget.SeekBar
@@ -33,7 +30,6 @@
 import com.android.systemui.media.controls.ui.viewmodel.SeekBarViewModel
 import com.android.systemui.res.R
 import com.google.common.truth.Truth.assertThat
-import java.util.Locale
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
@@ -65,11 +61,11 @@
     fun setUp() {
         context.orCreateTestableResources.addOverride(
             R.dimen.qs_media_enabled_seekbar_height,
-            enabledHeight,
+            enabledHeight
         )
         context.orCreateTestableResources.addOverride(
             R.dimen.qs_media_disabled_seekbar_height,
-            disabledHeight,
+            disabledHeight
         )
 
         seekBarView = SeekBar(context)
@@ -114,31 +110,14 @@
 
     @Test
     fun seekBarProgress() {
-        val elapsedTime = 3000
-        val duration = (1.5 * 60 * 60 * 1000).toInt()
         // WHEN part of the track has been played
-        val data = SeekBarViewModel.Progress(true, true, true, false, elapsedTime, duration, true)
+        val data = SeekBarViewModel.Progress(true, true, true, false, 3000, 120000, true)
         observer.onChanged(data)
         // THEN seek bar shows the progress
-        assertThat(seekBarView.progress).isEqualTo(elapsedTime)
-        assertThat(seekBarView.max).isEqualTo(duration)
+        assertThat(seekBarView.progress).isEqualTo(3000)
+        assertThat(seekBarView.max).isEqualTo(120000)
 
-        val expectedProgress =
-            MeasureFormat.getInstance(Locale.getDefault(), MeasureFormat.FormatWidth.WIDE)
-                .formatMeasures(Measure(3, MeasureUnit.SECOND))
-        val expectedDuration =
-            MeasureFormat.getInstance(Locale.getDefault(), MeasureFormat.FormatWidth.WIDE)
-                .formatMeasures(
-                    Measure(1, MeasureUnit.HOUR),
-                    Measure(30, MeasureUnit.MINUTE),
-                    Measure(0, MeasureUnit.SECOND),
-                )
-        val desc =
-            context.getString(
-                R.string.controls_media_seekbar_description,
-                expectedProgress,
-                expectedDuration,
-            )
+        val desc = context.getString(R.string.controls_media_seekbar_description, "00:03", "02:00")
         assertThat(seekBarView.contentDescription).isEqualTo(desc)
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandlerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandlerTest.kt
index c2f0ab9..61119cc 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandlerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandlerTest.kt
@@ -61,7 +61,6 @@
     @Mock lateinit var seekBarUpdateListener: (visibleToUser: Boolean) -> Unit
     @Mock lateinit var closeGuts: (immediate: Boolean) -> Unit
     @Mock lateinit var falsingManager: FalsingManager
-    @Mock lateinit var logSmartspaceImpression: (Boolean) -> Unit
     @Mock lateinit var logger: MediaUiEventLogger
     @Mock lateinit var contentContainer: ViewGroup
     @Mock lateinit var settingsButton: View
@@ -91,7 +90,6 @@
                 seekBarUpdateListener,
                 closeGuts,
                 falsingManager,
-                logSmartspaceImpression,
                 logger,
             )
         mediaCarouselScrollHandler.playerWidthPlusPadding = carouselWidth
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/dialog/MediaOutputAdapterLegacyTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/dialog/MediaOutputAdapterLegacyTest.java
index f293614..2db2199 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/dialog/MediaOutputAdapterLegacyTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/dialog/MediaOutputAdapterLegacyTest.java
@@ -268,6 +268,10 @@
 
         assertThat(mViewHolder.mSeekBar.getContentDescription()).isNotNull();
         assertThat(mViewHolder.mContainerLayout.isFocusable()).isFalse();
+        assertThat(mViewHolder.mContainerLayout.getImportantForAccessibility()).isEqualTo(
+                View.IMPORTANT_FOR_ACCESSIBILITY_NO);
+        assertThat(mViewHolder.mTextContent.getImportantForAccessibility()).isEqualTo(
+                View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
     }
 
     @Test
@@ -511,6 +515,11 @@
         assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mViewHolder.mTitleText.getText().toString()).isEqualTo(TEST_DEVICE_NAME_2);
         assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.GONE);
+        assertThat(mViewHolder.mContainerLayout.isFocusable()).isTrue();
+        assertThat(mViewHolder.mContainerLayout.getImportantForAccessibility()).isEqualTo(
+                View.IMPORTANT_FOR_ACCESSIBILITY_YES);
+        assertThat(mViewHolder.mTextContent.getImportantForAccessibility()).isEqualTo(
+                View.IMPORTANT_FOR_ACCESSIBILITY_YES);
         assertThat(mViewHolder.mProgressBar.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mCheckBox.getVisibility()).isEqualTo(View.GONE);
         assertThat(mViewHolder.mSubTitleText.getVisibility()).isEqualTo(View.VISIBLE);
@@ -750,7 +759,7 @@
                 .onCreateViewHolder(new LinearLayout(mContext), 0);
         mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1);
 
-        mViewHolder.mEndTouchArea.performClick();
+        mViewHolder.mCheckBox.performClick();
 
         verify(mMediaSwitchingController).addDeviceToPlayMedia(mMediaDevice2);
     }
@@ -894,7 +903,7 @@
                 .onCreateViewHolder(new LinearLayout(mContext), 0);
         mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0);
 
-        mViewHolder.mEndTouchArea.performClick();
+        mViewHolder.mCheckBox.performClick();
 
         verify(mMediaSwitchingController).removeDeviceFromPlayMedia(mMediaDevice1);
     }
@@ -1050,7 +1059,7 @@
                         new LinearLayout(mContext), MediaItem.MediaItemType.TYPE_DEVICE);
         mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0);
 
-        mViewHolder.mEndTouchArea.performClick();
+        mViewHolder.mEndClickIcon.performClick();
         mViewHolder = (MediaOutputAdapterLegacy.MediaDeviceViewHolderLegacy) mMediaOutputAdapter
                 .onCreateViewHolder(
                         new LinearLayout(mContext), MediaItem.MediaItemType.TYPE_DEVICE);
@@ -1073,7 +1082,7 @@
                         new LinearLayout(mContext), MediaItem.MediaItemType.TYPE_DEVICE);
         mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0);
 
-        mViewHolder.mEndTouchArea.performClick();
+        mViewHolder.mEndClickIcon.performClick();
         mViewHolder = (MediaOutputAdapterLegacy.MediaDeviceViewHolderLegacy) mMediaOutputAdapter
                 .onCreateViewHolder(
                         new LinearLayout(mContext), MediaItem.MediaItemType.TYPE_DEVICE);
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayContentViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayContentViewModelTest.kt
index b23cd5e..80ce43d 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayContentViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayContentViewModelTest.kt
@@ -65,8 +65,7 @@
 
     private val kosmos = testKosmos()
     private val testScope = kosmos.testScope
-    private val sceneInteractor = kosmos.sceneInteractor
-
+    private val sceneInteractor by lazy { kosmos.sceneInteractor }
     private val underTest by lazy { kosmos.notificationsShadeOverlayContentViewModel }
 
     @Before
@@ -103,20 +102,6 @@
         }
 
     @Test
-    fun bouncerShown_hidesShade() =
-        testScope.runTest {
-            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
-            lockDevice()
-            sceneInteractor.showOverlay(Overlays.NotificationsShade, "test")
-            assertThat(currentOverlays).contains(Overlays.NotificationsShade)
-
-            sceneInteractor.changeScene(Scenes.Bouncer, "test")
-            runCurrent()
-
-            assertThat(currentOverlays).doesNotContain(Overlays.NotificationsShade)
-        }
-
-    @Test
     fun shadeNotTouchable_hidesShade() =
         testScope.runTest {
             val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/AirplaneModeTileTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/AirplaneModeTileTest.kt
index b921ff7..3914bd7 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/AirplaneModeTileTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/AirplaneModeTileTest.kt
@@ -23,7 +23,6 @@
 import android.testing.TestableLooper
 import androidx.test.filters.SmallTest
 import com.android.internal.logging.MetricsLogger
-import com.android.internal.telephony.flags.Flags
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.broadcast.BroadcastDispatcher
 import com.android.systemui.classifier.FalsingManagerFake
@@ -131,17 +130,7 @@
     }
 
     @Test
-    fun handleClick_noSatelliteFeature_directSetAirplaneMode() {
-        mSetFlagsRule.disableFlags(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
-
-        mTile.handleClick(null)
-
-        verify(mConnectivityManager).setAirplaneMode(any())
-    }
-
-    @Test
     fun handleClick_hasSatelliteFeatureButClickIsProcessing_doNothing() {
-        mSetFlagsRule.enableFlags(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
         Mockito.`when`(mClickJob.isCompleted).thenReturn(false)
         mTile.mClickJob = mClickJob
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/CastTileTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/CastTileTest.java
index 31a627f..765c574 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/CastTileTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/CastTileTest.java
@@ -50,6 +50,8 @@
 import com.android.systemui.qs.QSHost;
 import com.android.systemui.qs.QsEventLogger;
 import com.android.systemui.qs.logging.QSLogger;
+import com.android.systemui.shade.domain.interactor.FakeShadeDialogContextInteractor;
+import com.android.systemui.shade.domain.interactor.ShadeDialogContextInteractor;
 import com.android.systemui.statusbar.connectivity.IconState;
 import com.android.systemui.statusbar.connectivity.NetworkController;
 import com.android.systemui.statusbar.connectivity.SignalCallback;
@@ -107,6 +109,8 @@
     private final FakeConnectivityRepository mConnectivityRepository =
             new FakeConnectivityRepository();
     private final FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags();
+    private final ShadeDialogContextInteractor mShadeDialogContextInteractor =
+            new FakeShadeDialogContextInteractor(mContext);
 
     private TestableLooper mTestableLooper;
     private CastTile mCastTile;
@@ -535,7 +539,8 @@
                 mDialogTransitionAnimator,
                 mConnectivityRepository,
                 mJavaAdapter,
-                mFeatureFlags
+                mFeatureFlags,
+                mShadeDialogContextInteractor
         );
         mCastTile.initialize();
 
@@ -578,7 +583,8 @@
                 mDialogTransitionAnimator,
                 mConnectivityRepository,
                 mJavaAdapter,
-                mFeatureFlags
+                mFeatureFlags,
+                mShadeDialogContextInteractor
         );
         mCastTile.initialize();
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/base/viewmodel/QSTileViewModelImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/base/viewmodel/QSTileViewModelImplTest.kt
index fba6151..da3cebd 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/base/viewmodel/QSTileViewModelImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/base/viewmodel/QSTileViewModelImplTest.kt
@@ -22,6 +22,7 @@
 import com.android.systemui.classifier.FalsingManagerFake
 import com.android.systemui.common.shared.model.ContentDescription
 import com.android.systemui.common.shared.model.Icon
+import com.android.systemui.qs.FakeTileDetailsViewModel
 import com.android.systemui.qs.tiles.base.analytics.QSTileAnalytics
 import com.android.systemui.qs.tiles.base.interactor.FakeDisabledByPolicyInteractor
 import com.android.systemui.qs.tiles.base.interactor.FakeQSTileDataInteractor
@@ -97,6 +98,7 @@
                 testCoroutineDispatcher,
                 testCoroutineDispatcher,
                 testScope.backgroundScope,
+                FakeTileDetailsViewModel("QSTileViewModelImplTest"),
             )
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/internet/domain/interactor/InternetTileUserActionInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/internet/domain/interactor/InternetTileUserActionInteractorTest.kt
index 3db5efc..261e3de 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/internet/domain/interactor/InternetTileUserActionInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/internet/domain/interactor/InternetTileUserActionInteractorTest.kt
@@ -26,8 +26,6 @@
 import com.android.systemui.qs.tiles.base.actions.FakeQSTileIntentUserInputHandler
 import com.android.systemui.qs.tiles.base.actions.QSTileIntentUserInputHandlerSubject
 import com.android.systemui.qs.tiles.base.interactor.QSTileInputTestKtx
-import com.android.systemui.qs.tiles.dialog.InternetDetailsContentManager
-import com.android.systemui.qs.tiles.dialog.InternetDetailsViewModel
 import com.android.systemui.qs.tiles.dialog.InternetDialogManager
 import com.android.systemui.qs.tiles.impl.internet.domain.model.InternetTileModel
 import com.android.systemui.statusbar.connectivity.AccessPointController
@@ -39,11 +37,8 @@
 import org.junit.runner.RunWith
 import org.mockito.ArgumentMatchers.anyBoolean
 import org.mockito.ArgumentMatchers.eq
-import org.mockito.kotlin.any
 import org.mockito.kotlin.mock
-import org.mockito.kotlin.times
 import org.mockito.kotlin.verify
-import org.mockito.kotlin.whenever
 
 @SmallTest
 @EnabledOnRavenwood
@@ -56,31 +51,17 @@
 
     private lateinit var internetDialogManager: InternetDialogManager
     private lateinit var controller: AccessPointController
-    private lateinit var internetDetailsViewModelFactory: InternetDetailsViewModel.Factory
-    private lateinit var internetDetailsContentManagerFactory: InternetDetailsContentManager.Factory
-    private lateinit var internetDetailsViewModel: InternetDetailsViewModel
 
     @Before
     fun setup() {
         internetDialogManager = mock<InternetDialogManager>()
         controller = mock<AccessPointController>()
-        internetDetailsViewModelFactory = mock<InternetDetailsViewModel.Factory>()
-        internetDetailsContentManagerFactory = mock<InternetDetailsContentManager.Factory>()
-        internetDetailsViewModel =
-            InternetDetailsViewModel(
-                onLongClick = {},
-                accessPointController = mock<AccessPointController>(),
-                contentManagerFactory = internetDetailsContentManagerFactory,
-            )
-        whenever(internetDetailsViewModelFactory.create(any())).thenReturn(internetDetailsViewModel)
-
         underTest =
             InternetTileUserActionInteractor(
                 kosmos.testScope.coroutineContext,
                 internetDialogManager,
                 controller,
                 inputHandler,
-                internetDetailsViewModelFactory,
             )
     }
 
@@ -127,12 +108,4 @@
                 assertThat(it.intent.action).isEqualTo(Settings.ACTION_WIFI_SETTINGS)
             }
         }
-
-    @Test
-    fun detailsViewModel() =
-        kosmos.testScope.runTest {
-            assertThat(underTest.detailsViewModel.getTitle()).isEqualTo("Internet")
-            assertThat(underTest.detailsViewModel.getSubTitle())
-                .isEqualTo("Tab a network to connect")
-        }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelTest.kt
index 0598a8b..4e9b635 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelTest.kt
@@ -25,6 +25,7 @@
 import com.android.systemui.common.shared.model.ContentDescription
 import com.android.systemui.common.shared.model.Icon
 import com.android.systemui.coroutines.collectValues
+import com.android.systemui.qs.FakeTileDetailsViewModel
 import com.android.systemui.qs.tiles.base.analytics.QSTileAnalytics
 import com.android.systemui.qs.tiles.base.interactor.DataUpdateTrigger
 import com.android.systemui.qs.tiles.base.interactor.FakeDisabledByPolicyInteractor
@@ -171,21 +172,6 @@
                 .isEqualTo(FakeQSTileDataInteractor.AvailabilityRequest(USER))
         }
 
-    @Test
-    fun tileDetails() =
-        testScope.runTest {
-            assertThat(tileUserActionInteractor.detailsViewModel).isNotNull()
-            assertThat(tileUserActionInteractor.detailsViewModel?.getTitle())
-                .isEqualTo("FakeQSTileUserActionInteractor")
-            assertThat(underTest.detailsViewModel).isNotNull()
-            assertThat(underTest.detailsViewModel?.getTitle())
-                .isEqualTo("FakeQSTileUserActionInteractor")
-
-            tileUserActionInteractor.detailsViewModel = null
-            assertThat(tileUserActionInteractor.detailsViewModel).isNull()
-            assertThat(underTest.detailsViewModel).isNull()
-        }
-
     private fun createViewModel(
         scope: TestScope,
         config: QSTileConfig = tileConfig,
@@ -209,6 +195,7 @@
             testCoroutineDispatcher,
             testCoroutineDispatcher,
             scope.backgroundScope,
+            FakeTileDetailsViewModel("QSTileViewModelTest"),
         )
 
     private companion object {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelUserInputTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelUserInputTest.kt
index ece21e1..166e950 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelUserInputTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelUserInputTest.kt
@@ -22,6 +22,7 @@
 import com.android.systemui.classifier.FalsingManagerFake
 import com.android.systemui.common.shared.model.ContentDescription
 import com.android.systemui.common.shared.model.Icon
+import com.android.systemui.qs.FakeTileDetailsViewModel
 import com.android.systemui.qs.tiles.base.analytics.QSTileAnalytics
 import com.android.systemui.qs.tiles.base.interactor.DataUpdateTrigger
 import com.android.systemui.qs.tiles.base.interactor.FakeDisabledByPolicyInteractor
@@ -253,5 +254,6 @@
             testCoroutineDispatcher,
             testCoroutineDispatcher,
             scope.backgroundScope,
+            FakeTileDetailsViewModel("QSTileViewModelUserInputTest"),
         )
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayContentViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayContentViewModelTest.kt
index bf5f9f4..baf0aeb 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayContentViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayContentViewModelTest.kt
@@ -61,8 +61,7 @@
             usingMediaInComposeFragment = false // This is not for the compose fragment
         }
     private val testScope = kosmos.testScope
-    private val sceneInteractor = kosmos.sceneInteractor
-
+    private val sceneInteractor by lazy { kosmos.sceneInteractor }
     private val underTest by lazy { kosmos.quickSettingsShadeOverlayContentViewModel }
 
     @Before
@@ -99,20 +98,6 @@
         }
 
     @Test
-    fun bouncerShown_hidesShade() =
-        testScope.runTest {
-            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
-            lockDevice()
-            sceneInteractor.showOverlay(Overlays.QuickSettingsShade, "test")
-            assertThat(currentOverlays).contains(Overlays.QuickSettingsShade)
-
-            sceneInteractor.changeScene(Scenes.Bouncer, "test")
-            runCurrent()
-
-            assertThat(currentOverlays).doesNotContain(Overlays.QuickSettingsShade)
-        }
-
-    @Test
     fun shadeNotTouchable_hidesShade() =
         testScope.runTest {
             val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/SceneFrameworkIntegrationTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/SceneFrameworkIntegrationTest.kt
index c5fac08..eb630b4 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/SceneFrameworkIntegrationTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/SceneFrameworkIntegrationTest.kt
@@ -22,6 +22,7 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import com.android.compose.animation.scene.ObservableTransitionState
+import com.android.compose.animation.scene.OverlayKey
 import com.android.compose.animation.scene.SceneKey
 import com.android.compose.animation.scene.Swipe
 import com.android.compose.animation.scene.UserActionResult
@@ -34,7 +35,7 @@
 import com.android.systemui.authentication.shared.model.AuthenticationMethodModel
 import com.android.systemui.bouncer.ui.viewmodel.PasswordBouncerViewModel
 import com.android.systemui.bouncer.ui.viewmodel.PinBouncerViewModel
-import com.android.systemui.bouncer.ui.viewmodel.bouncerSceneContentViewModel
+import com.android.systemui.bouncer.ui.viewmodel.bouncerOverlayContentViewModel
 import com.android.systemui.deviceentry.data.repository.fakeDeviceEntryRepository
 import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor
 import com.android.systemui.flags.EnableSceneContainer
@@ -54,6 +55,7 @@
 import com.android.systemui.power.domain.interactor.powerInteractor
 import com.android.systemui.scene.domain.interactor.sceneInteractor
 import com.android.systemui.scene.domain.startable.sceneContainerStartable
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.shared.model.fakeSceneDataSource
 import com.android.systemui.scene.ui.viewmodel.SceneContainerViewModel
@@ -87,7 +89,7 @@
  *   Therefore, when adding or modifying test cases, consider whether what you're testing is better
  *   covered by a more granular unit test.
  * * Please reuse the helper methods in this class (for example, [putDeviceToSleep] or
- *   [emulateUserDrivenTransition]).
+ *   [emulateUserDrivenSceneTransition]).
  * * All tests start with the device locked and with a PIN auth method. The class offers useful
  *   methods like [setAuthMethod], [unlockDevice], [lockDevice], etc. to help you set up a starting
  *   state that makes more sense for your test case.
@@ -101,7 +103,7 @@
 @EnableSceneContainer
 class SceneFrameworkIntegrationTest : SysuiTestCase() {
     private val kosmos = testKosmos()
-    private var bouncerSceneJob: Job? = null
+    private var bouncerOverlayJob: Job? = null
 
     @Before
     fun setUp() =
@@ -125,7 +127,7 @@
             lockscreenUserActionsViewModel.activateIn(testScope)
             shadeSceneContentViewModel.activateIn(testScope)
             shadeUserActionsViewModel.activateIn(testScope)
-            bouncerSceneContentViewModel.activateIn(testScope)
+            bouncerOverlayContentViewModel.activateIn(testScope)
             sceneContainerViewModel.activateIn(testScope)
 
             assertWithMessage("Initial scene key mismatch!")
@@ -141,27 +143,29 @@
     @Test
     fun clickLockButtonAndEnterCorrectPin_unlocksDevice() =
         kosmos.runTest {
-            emulateUserDrivenTransition(Scenes.Bouncer)
+            emulateUserDrivenOverlayTransition(show = Overlays.Bouncer)
 
             fakeSceneDataSource.pause()
             enterPin()
             emulatePendingTransitionProgress(expectedVisible = false)
             assertCurrentScene(Scenes.Gone)
+            assertOverlaysEmpty()
         }
 
     @Test
     fun swipeUpOnLockscreen_enterCorrectPin_unlocksDevice() =
         kosmos.runTest {
             val actions by collectLastValue(kosmos.lockscreenUserActionsViewModel.actions)
-            val upDestinationSceneKey =
-                (actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene
-            assertThat(upDestinationSceneKey).isEqualTo(Scenes.Bouncer)
-            emulateUserDrivenTransition(to = upDestinationSceneKey)
+            val upDestinationOverlayKey =
+                (actions?.get(Swipe.Up) as? UserActionResult.ShowOverlay)?.overlay
+            assertThat(upDestinationOverlayKey).isEqualTo(Overlays.Bouncer)
+            emulateUserDrivenOverlayTransition(show = upDestinationOverlayKey)
 
             fakeSceneDataSource.pause()
             enterPin()
             emulatePendingTransitionProgress(expectedVisible = false)
             assertCurrentScene(Scenes.Gone)
+            assertOverlaysEmpty()
         }
 
     @Test
@@ -173,7 +177,7 @@
             val upDestinationSceneKey =
                 (actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene
             assertThat(upDestinationSceneKey).isEqualTo(Scenes.Gone)
-            emulateUserDrivenTransition(to = upDestinationSceneKey)
+            emulateUserDrivenSceneTransition(to = upDestinationSceneKey)
         }
 
     @Test
@@ -184,13 +188,13 @@
             assertCurrentScene(Scenes.Lockscreen)
 
             // Emulate a user swipe to the shade scene.
-            emulateUserDrivenTransition(to = Scenes.Shade)
+            emulateUserDrivenSceneTransition(to = Scenes.Shade)
             assertCurrentScene(Scenes.Shade)
 
             val upDestinationSceneKey =
                 (actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene
             assertThat(upDestinationSceneKey).isEqualTo(Scenes.Lockscreen)
-            emulateUserDrivenTransition(to = Scenes.Lockscreen)
+            emulateUserDrivenSceneTransition(to = Scenes.Lockscreen)
         }
 
     @Test
@@ -205,17 +209,17 @@
             assertCurrentScene(Scenes.Lockscreen)
 
             // Emulate a user swipe to dismiss the lockscreen.
-            emulateUserDrivenTransition(to = Scenes.Gone)
+            emulateUserDrivenSceneTransition(to = Scenes.Gone)
             assertCurrentScene(Scenes.Gone)
 
             // Emulate a user swipe to the shade scene.
-            emulateUserDrivenTransition(to = Scenes.Shade)
+            emulateUserDrivenSceneTransition(to = Scenes.Shade)
             assertCurrentScene(Scenes.Shade)
 
             val upDestinationSceneKey =
                 (actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene
             assertThat(upDestinationSceneKey).isEqualTo(Scenes.Gone)
-            emulateUserDrivenTransition(to = Scenes.Gone)
+            emulateUserDrivenSceneTransition(to = Scenes.Gone)
         }
 
     @Test
@@ -270,6 +274,8 @@
             wakeUpDevice()
             assertCurrentScene(Scenes.Lockscreen)
 
+            // set UI state to match view-model
+            transitionState.value = ObservableTransitionState.Idle(Scenes.Lockscreen)
             unlockDevice()
             assertCurrentScene(Scenes.Gone)
         }
@@ -302,10 +308,10 @@
         kosmos.runTest {
             setAuthMethod(AuthenticationMethodModel.Password)
             val actions by collectLastValue(lockscreenUserActionsViewModel.actions)
-            val upDestinationSceneKey =
-                (actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene
-            assertThat(upDestinationSceneKey).isEqualTo(Scenes.Bouncer)
-            emulateUserDrivenTransition(to = upDestinationSceneKey)
+            val upDestinationOverlayKey =
+                (actions?.get(Swipe.Up) as? UserActionResult.ShowOverlay)?.overlay
+            assertThat(upDestinationOverlayKey).isEqualTo(Overlays.Bouncer)
+            emulateUserDrivenOverlayTransition(show = upDestinationOverlayKey)
 
             fakeSceneDataSource.pause()
             dismissIme()
@@ -319,16 +325,16 @@
         kosmos.runTest {
             setAuthMethod(AuthenticationMethodModel.Password)
             val actions by collectLastValue(lockscreenUserActionsViewModel.actions)
-            val upDestinationSceneKey =
-                (actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene
-            assertThat(upDestinationSceneKey).isEqualTo(Scenes.Bouncer)
-            emulateUserDrivenTransition(to = upDestinationSceneKey)
+            val upDestinationOverlayKey =
+                (actions?.get(Swipe.Up) as? UserActionResult.ShowOverlay)?.overlay
+            assertThat(upDestinationOverlayKey).isEqualTo(Overlays.Bouncer)
+            emulateUserDrivenOverlayTransition(show = upDestinationOverlayKey)
 
-            val bouncerActionButton by collectLastValue(bouncerSceneContentViewModel.actionButton)
+            val bouncerActionButton by collectLastValue(bouncerOverlayContentViewModel.actionButton)
             assertWithMessage("Bouncer action button not visible")
                 .that(bouncerActionButton)
                 .isNotNull()
-            kosmos.bouncerSceneContentViewModel.onActionButtonClicked(bouncerActionButton!!)
+            kosmos.bouncerOverlayContentViewModel.onActionButtonClicked(bouncerActionButton!!)
 
             // TODO(b/369765704): Assert that an activity was started once we use ActivityStarter.
         }
@@ -339,16 +345,16 @@
             setAuthMethod(AuthenticationMethodModel.Password)
             startPhoneCall()
             val actions by collectLastValue(lockscreenUserActionsViewModel.actions)
-            val upDestinationSceneKey =
-                (actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene
-            assertThat(upDestinationSceneKey).isEqualTo(Scenes.Bouncer)
-            emulateUserDrivenTransition(to = upDestinationSceneKey)
+            val upDestinationOverlayKey =
+                (actions?.get(Swipe.Up) as? UserActionResult.ShowOverlay)?.overlay
+            assertThat(upDestinationOverlayKey).isEqualTo(Overlays.Bouncer)
+            emulateUserDrivenOverlayTransition(show = upDestinationOverlayKey)
 
-            val bouncerActionButton by collectLastValue(bouncerSceneContentViewModel.actionButton)
+            val bouncerActionButton by collectLastValue(bouncerOverlayContentViewModel.actionButton)
             assertWithMessage("Bouncer action button not visible during call")
                 .that(bouncerActionButton)
                 .isNotNull()
-            kosmos.bouncerSceneContentViewModel.onActionButtonClicked(bouncerActionButton!!)
+            kosmos.bouncerOverlayContentViewModel.onActionButtonClicked(bouncerActionButton!!)
 
             verifyCurrent(mockTelecomManager).showInCallScreen(any())
         }
@@ -358,7 +364,7 @@
         kosmos.runTest {
             setAuthMethod(AuthenticationMethodModel.None)
             introduceLockedSim()
-            assertCurrentScene(Scenes.Bouncer)
+            assertCurrentOverlay(Overlays.Bouncer)
         }
 
     @Test
@@ -366,7 +372,7 @@
         kosmos.runTest {
             fakeSceneDataSource.pause()
             introduceLockedSim()
-            emulatePendingTransitionProgress(expectedVisible = true)
+            emulatePendingTransitionProgress()
             enterSimPin(
                 authMethodAfterSimUnlock = AuthenticationMethodModel.None,
                 enableLockscreen = false,
@@ -380,7 +386,7 @@
         kosmos.runTest {
             fakeSceneDataSource.pause()
             introduceLockedSim()
-            emulatePendingTransitionProgress(expectedVisible = true)
+            emulatePendingTransitionProgress()
             enterSimPin(authMethodAfterSimUnlock = AuthenticationMethodModel.Pin)
             assertCurrentScene(Scenes.Lockscreen)
         }
@@ -396,6 +402,18 @@
             .isEqualTo(expected)
     }
 
+    private fun Kosmos.assertCurrentOverlay(expected: OverlayKey) {
+        assertWithMessage("Expected overlay missing!")
+            .that(currentValue(sceneInteractor.currentOverlays))
+            .contains(expected)
+    }
+
+    private fun Kosmos.assertOverlaysEmpty() {
+        assertWithMessage("Expected no overlays, but at least one was present")
+            .that(currentValue(sceneInteractor.currentOverlays))
+            .isEmpty()
+    }
+
     /**
      * Returns the [SceneKey] of the current scene as displayed in the UI.
      *
@@ -439,9 +457,10 @@
     }
 
     /**
-     * Emulates a gradual transition to the currently pending scene that's sitting in the
-     * [fakeSceneDataSource]. This emits a series of progress updates to the [transitionState] and
-     * finishes by committing the pending scene as the current scene.
+     * Emulates a gradual transition to the currently pending scene and overlay that are sitting in
+     * the [fakeSceneDataSource]. This emits a series of progress updates to the [transitionState]
+     * and finishes by committing the pending scene as the current scene, and the pending overlay as
+     * the current overlay
      *
      * In order to use this, the [fakeSceneDataSource] must be paused before this method is called.
      */
@@ -450,49 +469,96 @@
             .that(fakeSceneDataSource.isPaused)
             .isTrue()
 
-        val to = fakeSceneDataSource.pendingScene ?: return
-        val from = getCurrentSceneInUi()
+        val fromScene = getCurrentSceneInUi()
+        val toScene = fakeSceneDataSource.pendingScene ?: fromScene
 
-        if (to == from) {
-            return
+        val fromOverlays =
+            collectLastValue(currentValue(transitionState).currentOverlays()).invoke() ?: emptySet()
+        val toOverlays = fakeSceneDataSource.pendingOverlays ?: fromOverlays
+
+        val addedOverlays = toOverlays - fromOverlays
+        val removedOverlays = fromOverlays - toOverlays
+        check(
+            addedOverlays.size + removedOverlays.size < 2 &&
+                (addedOverlays.size <= 1 || removedOverlays.size <= 1)
+        ) {
+            "Detected multiple overlays being added/removed. Currently only testing single-overlay transitions."
         }
 
-        // Begin to transition.
-        val progressFlow = MutableStateFlow(0f)
-        transitionState.value =
-            ObservableTransitionState.Transition(
-                fromScene = getCurrentSceneInUi(),
-                toScene = to,
-                currentScene = flowOf(to),
-                progress = progressFlow,
-                isInitiatedByUserInput = false,
-                isUserInputOngoing = flowOf(false),
-            )
+        if (toScene != fromScene) {
+            // Begin scene transition.
+            val progressFlow = MutableStateFlow(0f)
+            transitionState.value =
+                ObservableTransitionState.Transition(
+                    fromScene = getCurrentSceneInUi(),
+                    toScene = toScene,
+                    currentScene = flowOf(toScene),
+                    progress = progressFlow,
+                    isInitiatedByUserInput = false,
+                    isUserInputOngoing = flowOf(false),
+                )
 
-        // Report progress of transition.
-        while (currentValue(progressFlow) < 1f) {
-            progressFlow.value += 0.2f
+            // Report progress of transition.
+            while (currentValue(progressFlow) < 1f) {
+                progressFlow.value += 0.2f
+            }
+
+            // End the transition and report the change.
+            transitionState.value = ObservableTransitionState.Idle(toScene)
         }
 
-        // End the transition and report the change.
-        transitionState.value = ObservableTransitionState.Idle(to)
+        if (addedOverlays.isNotEmpty() || removedOverlays.isNotEmpty()) {
+            // Begin overlay transition.
+            val progressFlow = MutableStateFlow(0f)
+            transitionState.value =
+                if (addedOverlays.size == 1) {
+                    ObservableTransitionState.Transition.showOverlay(
+                        overlay = addedOverlays.first(),
+                        fromScene = toScene,
+                        currentOverlays = flowOf(addedOverlays),
+                        progress = progressFlow,
+                        isInitiatedByUserInput = false,
+                        isUserInputOngoing = flowOf(false),
+                    )
+                } else {
+                    ObservableTransitionState.Transition.hideOverlay(
+                        overlay = removedOverlays.first(),
+                        toScene = toScene,
+                        currentOverlays = flowOf(removedOverlays),
+                        progress = progressFlow,
+                        isInitiatedByUserInput = false,
+                        isUserInputOngoing = flowOf(false),
+                    )
+                }
+
+            // Report progress of transition.
+            while (currentValue(progressFlow) < 1f) {
+                progressFlow.value += 0.2f
+            }
+
+            // End the transition and report the change, taking any scene transition into account.
+            transitionState.value = ObservableTransitionState.Idle(toScene, toOverlays)
+        }
 
         fakeSceneDataSource.unpause(force = true)
 
-        assertWithMessage("Visibility mismatch after scene transition from $from to $to!")
+        assertWithMessage(
+                "Visibility mismatch after transition from $fromScene to $toScene and $fromOverlays to $toOverlays!"
+            )
             .that(currentValue { sceneContainerViewModel.isVisible })
             .isEqualTo(expectedVisible)
-        assertThat(currentValue(sceneContainerViewModel.currentScene)).isEqualTo(to)
+        assertThat(currentValue(sceneContainerViewModel.currentScene)).isEqualTo(toScene)
+        assertThat(currentValue(sceneInteractor.currentOverlays)).isEqualTo(toOverlays)
 
-        bouncerSceneJob =
-            if (to == Scenes.Bouncer) {
+        bouncerOverlayJob =
+            if (Overlays.Bouncer in addedOverlays) {
                 testScope.backgroundScope.launch {
-                    bouncerSceneContentViewModel.authMethodViewModel.collect {
+                    bouncerOverlayContentViewModel.authMethodViewModel.collect {
                         // Do nothing. Need this to turn this otherwise cold flow, hot.
                     }
                 }
             } else {
-                bouncerSceneJob?.cancel()
+                bouncerOverlayJob?.cancel()
                 null
             }
     }
@@ -506,7 +572,7 @@
      *
      * @param to The scene to transition to.
      */
-    private fun Kosmos.emulateUserDrivenTransition(to: SceneKey?) {
+    private fun Kosmos.emulateUserDrivenSceneTransition(to: SceneKey?) {
         checkNotNull(to)
 
         fakeSceneDataSource.pause()
@@ -515,6 +581,22 @@
         emulatePendingTransitionProgress(expectedVisible = to != Scenes.Gone)
     }
 
+    private fun Kosmos.emulateUserDrivenOverlayTransition(
+        show: OverlayKey? = null,
+        hide: OverlayKey? = null,
+    ) {
+        fakeSceneDataSource.pause()
+        if (show != null && hide != null) {
+            sceneInteractor.replaceOverlay(from = show, to = hide, "reason")
+        } else if (show != null) {
+            sceneInteractor.showOverlay(overlay = show, "reason")
+        } else if (hide != null) {
+            sceneInteractor.hideOverlay(overlay = hide, "reason")
+        }
+
+        emulatePendingTransitionProgress()
+    }
+
     /**
      * Locks the device.
      *
@@ -548,7 +630,7 @@
             .that(currentValue(deviceEntryInteractor.isUnlocked))
             .isFalse()
 
-        emulateUserDrivenTransition(Scenes.Bouncer)
+        emulateUserDrivenOverlayTransition(show = Overlays.Bouncer)
         fakeSceneDataSource.pause()
         enterPin()
 
@@ -558,17 +640,18 @@
     /**
      * Enters the correct PIN in the bouncer UI.
      *
-     * Asserts that the current scene is [Scenes.Bouncer] and that the current bouncer UI is a PIN
-     * before proceeding.
+     * Asserts that [Overlays.Bouncer] is showing and that the current bouncer UI is a PIN before
+     * proceeding.
      *
      * Does not assert that the device is locked or unlocked.
      */
     private fun Kosmos.enterPin() {
-        assertWithMessage("Cannot enter PIN when not on the Bouncer scene!")
-            .that(getCurrentSceneInUi())
-            .isEqualTo(Scenes.Bouncer)
+        val currentOverlays by collectLastValue(currentValue(transitionState).currentOverlays())
+        assertWithMessage("Cannot enter PIN when Bouncer not showing!")
+            .that(currentOverlays)
+            .contains(Overlays.Bouncer)
         val authMethodViewModel by
-            collectLastValue(bouncerSceneContentViewModel.authMethodViewModel)
+            collectLastValue(bouncerOverlayContentViewModel.authMethodViewModel)
         assertWithMessage("Cannot enter PIN when not using a PIN authentication method!")
             .that(authMethodViewModel)
             .isInstanceOf(PinBouncerViewModel::class.java)
@@ -583,8 +666,8 @@
     /**
      * Enters the correct PIN in the sim bouncer UI.
      *
-     * Asserts that the current scene is [Scenes.Bouncer] and that the current bouncer UI is a PIN
-     * before proceeding.
+     * Asserts that [Overlays.Bouncer] is showing and that the current bouncer UI is a PIN before
+     * proceeding.
      *
      * Does not assert that the device is locked or unlocked.
      */
@@ -592,11 +675,12 @@
         authMethodAfterSimUnlock: AuthenticationMethodModel = AuthenticationMethodModel.None,
         enableLockscreen: Boolean = true,
     ) {
-        assertWithMessage("Cannot enter PIN when not on the Bouncer scene!")
-            .that(getCurrentSceneInUi())
-            .isEqualTo(Scenes.Bouncer)
+        val currentOverlays by collectLastValue(currentValue(transitionState).currentOverlays())
+        assertWithMessage("Cannot enter PIN when Bouncer not showing!")
+            .that(currentOverlays)
+            .contains(Overlays.Bouncer)
         val authMethodViewModel by
-            collectLastValue(bouncerSceneContentViewModel.authMethodViewModel)
+            collectLastValue(bouncerOverlayContentViewModel.authMethodViewModel)
         assertWithMessage("Cannot enter PIN when not using a PIN authentication method!")
             .that(authMethodViewModel)
             .isInstanceOf(PinBouncerViewModel::class.java)
@@ -643,7 +727,7 @@
 
     /** Emulates the dismissal of the IME (soft keyboard). */
     private fun Kosmos.dismissIme() {
-        (currentValue(bouncerSceneContentViewModel.authMethodViewModel)
+        (currentValue(bouncerOverlayContentViewModel.authMethodViewModel)
                 as? PasswordBouncerViewModel)
             ?.let { it.onImeDismissed() }
     }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneBackInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneBackInteractorTest.kt
index 9cc6c0f..0345853 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneBackInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneBackInteractorTest.kt
@@ -53,7 +53,7 @@
 
     @Test
     @EnableSceneContainer
-    fun navigateToQs_thenBouncer_thenBack_whileLocked() =
+    fun navigateToQs_thenBack_whileLocked() =
         testScope.runTest {
             sceneContainerStartable.start()
 
@@ -61,8 +61,6 @@
                 RouteNode(Scenes.Lockscreen, null),
                 RouteNode(Scenes.Shade, Scenes.Lockscreen),
                 RouteNode(Scenes.QuickSettings, Scenes.Shade),
-                RouteNode(Scenes.Bouncer, Scenes.QuickSettings),
-                RouteNode(Scenes.QuickSettings, Scenes.Shade),
                 RouteNode(Scenes.Shade, Scenes.Lockscreen),
                 RouteNode(Scenes.Lockscreen, null),
             )
@@ -70,57 +68,39 @@
 
     @Test
     @EnableSceneContainer
-    fun navigateToQs_thenBouncer_thenUnlock() =
+    fun navigateToQs_thenUnlock() =
         testScope.runTest {
             sceneContainerStartable.start()
 
             assertRoute(
                 RouteNode(Scenes.Lockscreen, null),
                 RouteNode(Scenes.Shade, Scenes.Lockscreen),
-                RouteNode(Scenes.QuickSettings, Scenes.Shade),
-                RouteNode(Scenes.Bouncer, Scenes.QuickSettings, unlockDevice = true),
+                RouteNode(Scenes.QuickSettings, Scenes.Shade, unlockDevice = true),
                 RouteNode(Scenes.Gone, null),
             )
         }
 
     @Test
     @EnableSceneContainer
-    fun navigateToQs_skippingShade_thenBouncer_thenBack_whileLocked() =
+    fun navigateToQs_skippingShade_thenBack_whileLocked() =
         testScope.runTest {
             sceneContainerStartable.start()
 
             assertRoute(
                 RouteNode(Scenes.Lockscreen, null),
                 RouteNode(Scenes.QuickSettings, Scenes.Lockscreen),
-                RouteNode(Scenes.Bouncer, Scenes.QuickSettings),
-                RouteNode(Scenes.QuickSettings, Scenes.Lockscreen),
                 RouteNode(Scenes.Lockscreen, null),
             )
         }
 
     @Test
     @EnableSceneContainer
-    fun navigateToBouncer_thenBack_whileLocked() =
+    fun navigateToQs_skippingShade_thenBack_thenShade_whileLocked() =
         testScope.runTest {
             sceneContainerStartable.start()
 
             assertRoute(
                 RouteNode(Scenes.Lockscreen, null),
-                RouteNode(Scenes.Bouncer, Scenes.Lockscreen),
-                RouteNode(Scenes.Lockscreen, null),
-            )
-        }
-
-    @Test
-    @EnableSceneContainer
-    fun navigateToQs_skippingShade_thenBouncer_thenBack_thenShade_whileLocked() =
-        testScope.runTest {
-            sceneContainerStartable.start()
-
-            assertRoute(
-                RouteNode(Scenes.Lockscreen, null),
-                RouteNode(Scenes.QuickSettings, Scenes.Lockscreen),
-                RouteNode(Scenes.Bouncer, Scenes.QuickSettings),
                 RouteNode(Scenes.QuickSettings, Scenes.Lockscreen),
                 RouteNode(Scenes.Lockscreen, null),
                 RouteNode(Scenes.Shade, Scenes.Lockscreen),
@@ -178,9 +158,8 @@
         testScope.runTest {
             underTest.onSceneChange(from = Scenes.Lockscreen, to = Scenes.Shade)
             underTest.onSceneChange(from = Scenes.Shade, to = Scenes.QuickSettings)
-            underTest.onSceneChange(from = Scenes.QuickSettings, to = Scenes.Bouncer)
             assertThat(underTest.backStack.value.asIterable().toList())
-                .isEqualTo(listOf(Scenes.QuickSettings, Scenes.Shade, Scenes.Lockscreen))
+                .isEqualTo(listOf(Scenes.Shade, Scenes.Lockscreen))
 
             underTest.updateBackStack { stack ->
                 // Reverse the stack, just to see if it can be done:
@@ -188,7 +167,7 @@
             }
 
             assertThat(underTest.backStack.value.asIterable().toList())
-                .isEqualTo(listOf(Scenes.Lockscreen, Scenes.Shade, Scenes.QuickSettings))
+                .isEqualTo(listOf(Scenes.Lockscreen, Scenes.Shade))
         }
 
     private suspend fun TestScope.assertRoute(vararg route: RouteNode) {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt
index 23a0f62..d3f5923 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt
@@ -73,9 +73,8 @@
 
     private val kosmos = testKosmos()
     private val testScope = kosmos.testScope
-    private val fakeSceneDataSource = kosmos.fakeSceneDataSource
-
-    private val underTest = kosmos.sceneInteractor
+    private val fakeSceneDataSource by lazy { kosmos.fakeSceneDataSource }
+    private val underTest by lazy { kosmos.sceneInteractor }
 
     @Before
     fun setUp() {
@@ -799,4 +798,88 @@
             verify(processor, never()).onSceneAboutToChange(any(), any())
             assertThat(fakeSceneDataSource.freezeAndAnimateToCurrentStateCallCount).isEqualTo(0)
         }
+
+    @Test
+    fun topmostContent_sceneChange_noOverlays() =
+        kosmos.runTest {
+            val topmostContent by collectLastValue(underTest.topmostContent)
+
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
+
+            underTest.snapToScene(Scenes.Lockscreen, "reason")
+
+            assertThat(topmostContent).isEqualTo(Scenes.Lockscreen)
+
+            underTest.changeScene(Scenes.Gone, "reason")
+
+            assertThat(topmostContent).isEqualTo(Scenes.Gone)
+        }
+
+    @Test
+    fun topmostContent_sceneChange_withOverlay() =
+        kosmos.runTest {
+            kosmos.enableDualShade()
+            runCurrent()
+
+            val topmostContent by collectLastValue(underTest.topmostContent)
+
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
+
+            underTest.snapToScene(Scenes.Lockscreen, "reason")
+            underTest.showOverlay(Overlays.NotificationsShade, "reason")
+
+            assertThat(topmostContent).isEqualTo(Overlays.NotificationsShade)
+
+            underTest.changeScene(Scenes.Gone, "reason")
+
+            assertThat(topmostContent).isEqualTo(Overlays.NotificationsShade)
+        }
+
+    @Test
+    fun topmostContent_overlayChange_higherZOrder() =
+        kosmos.runTest {
+            kosmos.enableDualShade()
+            runCurrent()
+
+            val topmostContent by collectLastValue(underTest.topmostContent)
+
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
+
+            underTest.snapToScene(Scenes.Lockscreen, "reason")
+            underTest.showOverlay(Overlays.NotificationsShade, "reason")
+
+            assertThat(topmostContent).isEqualTo(Overlays.NotificationsShade)
+
+            underTest.showOverlay(Overlays.QuickSettingsShade, "reason")
+
+            assertThat(topmostContent).isEqualTo(Overlays.QuickSettingsShade)
+        }
+
+    @Test
+    fun topmostContent_overlayChange_lowerZOrder() =
+        kosmos.runTest {
+            kosmos.enableDualShade()
+            runCurrent()
+
+            val topmostContent by collectLastValue(underTest.topmostContent)
+
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
+
+            underTest.snapToScene(Scenes.Lockscreen, "reason")
+            underTest.showOverlay(Overlays.QuickSettingsShade, "reason")
+
+            assertThat(topmostContent).isEqualTo(Overlays.QuickSettingsShade)
+
+            underTest.showOverlay(Overlays.NotificationsShade, "reason")
+
+            assertThat(topmostContent).isEqualTo(Overlays.QuickSettingsShade)
+        }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt
index ae77ac4..9adf24f 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt
@@ -475,17 +475,18 @@
     @Test
     fun switchFromBouncerToGoneWhenDeviceUnlocked() =
         testScope.runTest {
-            val currentSceneKey by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             prepareState(
                 authenticationMethod = AuthenticationMethodModel.Pin,
                 isDeviceUnlocked = false,
-                initialSceneKey = Scenes.Bouncer,
+                initialSceneKey = Scenes.Lockscreen,
+                initialOverlays = setOf(Overlays.Bouncer),
             )
-            assertThat(currentSceneKey).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             underTest.start()
 
             updateFingerprintAuthStatus(isSuccess = true)
-            assertThat(currentSceneKey).isEqualTo(Scenes.Gone)
+            assertThat(currentOverlays).doesNotContain(Overlays.Bouncer)
         }
 
     @Test
@@ -548,6 +549,7 @@
     fun switchFromBouncerToQuickSettingsWhenDeviceUnlocked_whenLeaveOpenShade() =
         testScope.runTest {
             val currentSceneKey by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val backStack by collectLastValue(sceneBackInteractor.backStack)
             kosmos.sysuiStatusBarStateController.leaveOpen = true // leave shade open
 
@@ -566,14 +568,16 @@
             runCurrent()
             assertThat(currentSceneKey).isEqualTo(Scenes.QuickSettings)
 
-            sceneInteractor.changeScene(Scenes.Bouncer, "switching to bouncer for test")
-            transitionState.value = ObservableTransitionState.Idle(Scenes.Bouncer)
+            sceneInteractor.showOverlay(Overlays.Bouncer, "showing bouncer for test")
+            transitionState.value =
+                ObservableTransitionState.Idle(Scenes.QuickSettings, setOf(Overlays.Bouncer))
             runCurrent()
-            assertThat(currentSceneKey).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             assertThat(backStack?.asIterable()?.last()).isEqualTo(Scenes.Lockscreen)
 
             updateFingerprintAuthStatus(isSuccess = true)
             assertThat(currentSceneKey).isEqualTo(Scenes.QuickSettings)
+            assertThat(currentOverlays).doesNotContain(Overlays.Bouncer)
             assertThat(backStack?.asIterable()?.last()).isEqualTo(Scenes.Gone)
         }
 
@@ -581,6 +585,7 @@
     fun switchFromBouncerToGoneWhenDeviceUnlocked_whenDoNotLeaveOpenShade() =
         testScope.runTest {
             val currentSceneKey by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             kosmos.sysuiStatusBarStateController.leaveOpen = false // don't leave shade open
 
             val transitionState =
@@ -598,13 +603,15 @@
             runCurrent()
             assertThat(currentSceneKey).isEqualTo(Scenes.QuickSettings)
 
-            sceneInteractor.changeScene(Scenes.Bouncer, "switching to bouncer for test")
-            transitionState.value = ObservableTransitionState.Idle(Scenes.Bouncer)
+            sceneInteractor.showOverlay(Overlays.Bouncer, "showing bouncer for test")
+            transitionState.value =
+                ObservableTransitionState.Idle(Scenes.QuickSettings, setOf(Overlays.Bouncer))
             runCurrent()
-            assertThat(currentSceneKey).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
 
             updateFingerprintAuthStatus(isSuccess = true)
             assertThat(currentSceneKey).isEqualTo(Scenes.Gone)
+            assertThat(currentOverlays).doesNotContain(Overlays.Bouncer)
         }
 
     @Test
@@ -664,14 +671,21 @@
     fun switchToGoneWhenDeviceIsUnlockedAndUserIsOnBouncerWithBypassDisabled() =
         testScope.runTest {
             val currentSceneKey by collectLastValue(sceneInteractor.currentScene)
-            prepareState(isBypassEnabled = false, initialSceneKey = Scenes.Bouncer)
-            assertThat(currentSceneKey).isEqualTo(Scenes.Bouncer)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
+            prepareState(
+                isBypassEnabled = false,
+                initialSceneKey = Scenes.Lockscreen,
+                initialOverlays = setOf(Overlays.Bouncer),
+            )
+            assertThat(currentSceneKey).isEqualTo(Scenes.Lockscreen)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             underTest.start()
 
             // Authenticate using a passive auth method like face auth while bypass is disabled.
             faceAuthRepository.isAuthenticated.value = true
 
             assertThat(currentSceneKey).isEqualTo(Scenes.Gone)
+            assertThat(currentOverlays).doesNotContain(Overlays.Bouncer)
         }
 
     @Test
@@ -1192,14 +1206,7 @@
             runCurrent()
             clearInvocations(sysUiState)
 
-            listOf(
-                    Scenes.Gone,
-                    Scenes.Lockscreen,
-                    Scenes.Bouncer,
-                    Scenes.Gone,
-                    Scenes.Shade,
-                    Scenes.QuickSettings,
-                )
+            listOf(Scenes.Gone, Scenes.Lockscreen, Scenes.Gone, Scenes.Shade, Scenes.QuickSettings)
                 .forEachIndexed { index, sceneKey ->
                     if (sceneKey == Scenes.Gone) {
                         updateFingerprintAuthStatus(isSuccess = true)
@@ -1385,19 +1392,13 @@
             verify(falsingCollector, never()).onSuccessfulUnlock()
 
             // Move around scenes without unlocking.
-            listOf(
-                    Scenes.Shade,
-                    Scenes.QuickSettings,
-                    Scenes.Shade,
-                    Scenes.Lockscreen,
-                    Scenes.Bouncer,
-                )
-                .forEach { sceneKey ->
-                    sceneInteractor.changeScene(sceneKey, "reason")
-                    transitionStateFlow.value = ObservableTransitionState.Idle(sceneKey)
-                    runCurrent()
-                    verify(falsingCollector, never()).onSuccessfulUnlock()
-                }
+            listOf(Scenes.Shade, Scenes.QuickSettings, Scenes.Shade, Scenes.Lockscreen).forEach {
+                sceneKey ->
+                sceneInteractor.changeScene(sceneKey, "reason")
+                transitionStateFlow.value = ObservableTransitionState.Idle(sceneKey)
+                runCurrent()
+                verify(falsingCollector, never()).onSuccessfulUnlock()
+            }
 
             // Changing to the Gone scene should report a successful unlock.
             kosmos.authenticationInteractor.authenticate(FakeAuthenticationRepository.DEFAULT_PIN)
@@ -1444,19 +1445,13 @@
             verify(falsingCollector, times(1)).onSuccessfulUnlock()
 
             // Move around scenes without unlocking.
-            listOf(
-                    Scenes.Shade,
-                    Scenes.QuickSettings,
-                    Scenes.Shade,
-                    Scenes.Lockscreen,
-                    Scenes.Bouncer,
-                )
-                .forEach { sceneKey ->
-                    sceneInteractor.changeScene(sceneKey, "reason")
-                    transitionStateFlow.value = ObservableTransitionState.Idle(sceneKey)
-                    runCurrent()
-                    verify(falsingCollector, times(1)).onSuccessfulUnlock()
-                }
+            listOf(Scenes.Shade, Scenes.QuickSettings, Scenes.Shade, Scenes.Lockscreen).forEach {
+                sceneKey ->
+                sceneInteractor.changeScene(sceneKey, "reason")
+                transitionStateFlow.value = ObservableTransitionState.Idle(sceneKey)
+                runCurrent()
+                verify(falsingCollector, times(1)).onSuccessfulUnlock()
+            }
 
             kosmos.authenticationInteractor.authenticate(FakeAuthenticationRepository.DEFAULT_PIN)
             runCurrent()
@@ -1565,13 +1560,13 @@
             runCurrent()
             verify(falsingCollector).onBouncerHidden()
 
-            sceneInteractor.changeScene(Scenes.Bouncer, "reason")
+            sceneInteractor.showOverlay(Overlays.Bouncer, "reason")
             runCurrent()
             verify(falsingCollector).onBouncerShown()
 
             updateFingerprintAuthStatus(isSuccess = true)
             runCurrent()
-            sceneInteractor.changeScene(Scenes.Gone, "reason")
+            sceneInteractor.hideOverlay(Overlays.Bouncer, "reason")
             runCurrent()
             verify(falsingCollector, times(2)).onBouncerHidden()
         }
@@ -1579,7 +1574,7 @@
     @Test
     fun switchesToBouncer_whenSimBecomesLocked() =
         testScope.runTest {
-            val currentSceneKey by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
 
             prepareState(
                 initialSceneKey = Scenes.Lockscreen,
@@ -1592,17 +1587,18 @@
             kosmos.fakeMobileConnectionsRepository.isAnySimSecure.value = true
             runCurrent()
 
-            assertThat(currentSceneKey).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
         }
 
     @Test
     fun switchesToLockscreen_whenSimBecomesUnlocked() =
         testScope.runTest {
             kosmos.fakeMobileConnectionsRepository.isAnySimSecure.value = true
-            val currentSceneKey by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
 
             prepareState(
-                initialSceneKey = Scenes.Bouncer,
+                initialSceneKey = Scenes.Lockscreen,
+                initialOverlays = setOf(Overlays.Bouncer),
                 authenticationMethod = AuthenticationMethodModel.Pin,
                 isDeviceUnlocked = false,
             )
@@ -1611,7 +1607,7 @@
             kosmos.fakeMobileConnectionsRepository.isAnySimSecure.value = false
             runCurrent()
 
-            assertThat(currentSceneKey).isEqualTo(Scenes.Lockscreen)
+            assertThat(currentOverlays).doesNotContain(Overlays.Bouncer)
         }
 
     @Test
@@ -1700,7 +1696,7 @@
             assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
             verify(notificationShadeWindowController).setKeyguardShowing(true)
 
-            emulateSceneTransition(transitionStateFlow, Scenes.Bouncer)
+            emulateOverlayTransition(transitionStateFlow, Overlays.Bouncer)
             verify(notificationShadeWindowController, times(1)).setKeyguardShowing(true)
 
             emulateSceneTransition(transitionStateFlow, Scenes.Lockscreen)
@@ -1748,9 +1744,9 @@
             verify(centralSurfaces).setInteracting(StatusBarManager.WINDOW_STATUS_BAR, true)
 
             clearInvocations(centralSurfaces)
-            emulateSceneTransition(
+            emulateOverlayTransition(
                 transitionStateFlow = transitionStateFlow,
-                toScene = Scenes.Bouncer,
+                toOverlay = Overlays.Bouncer,
                 verifyBeforeTransition = {
                     verify(centralSurfaces, never()).setInteracting(anyInt(), anyBoolean())
                 },
@@ -1839,9 +1835,9 @@
             verify(centralSurfaces, never()).setInteracting(anyInt(), anyBoolean())
 
             clearInvocations(centralSurfaces)
-            emulateSceneTransition(
+            emulateOverlayTransition(
                 transitionStateFlow = transitionStateFlow,
-                toScene = Scenes.Bouncer,
+                toOverlay = Overlays.Bouncer,
                 verifyBeforeTransition = {
                     verify(centralSurfaces, never()).setInteracting(anyInt(), anyBoolean())
                 },
@@ -1926,9 +1922,9 @@
             assertThat(currentDesiredOverlays).isEmpty()
 
             clearInvocations(centralSurfaces)
-            emulateSceneTransition(
+            emulateOverlayTransition(
                 transitionStateFlow = transitionStateFlow,
-                toScene = Scenes.Bouncer,
+                toOverlay = Overlays.Bouncer,
                 verifyBeforeTransition = {
                     verify(centralSurfaces, never()).setInteracting(anyInt(), anyBoolean())
                 },
@@ -2019,9 +2015,9 @@
             assertThat(currentDesiredOverlays).isEmpty()
 
             clearInvocations(centralSurfaces)
-            emulateSceneTransition(
+            emulateOverlayTransition(
                 transitionStateFlow = transitionStateFlow,
-                toScene = Scenes.Bouncer,
+                toOverlay = Overlays.Bouncer,
                 verifyBeforeTransition = {
                     verify(centralSurfaces, never()).setInteracting(anyInt(), anyBoolean())
                 },
@@ -2098,32 +2094,42 @@
     fun respondToFalsingDetections() =
         testScope.runTest {
             val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val transitionStateFlow = prepareState()
             underTest.start()
             runCurrent()
-            emulateSceneTransition(transitionStateFlow, toScene = Scenes.Bouncer)
-            assertThat(currentScene).isNotEqualTo(Scenes.Lockscreen)
+            emulateOverlayTransition(
+                transitionStateFlow = transitionStateFlow,
+                toOverlay = Overlays.Bouncer,
+            )
+            assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
 
             kosmos.falsingManager.sendFalsingBelief()
+            runCurrent()
 
             assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
+            assertThat(currentOverlays).isEmpty()
         }
 
     @Test
     fun handleBouncerOverscroll() =
         testScope.runTest {
-            val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val transitionStateFlow = prepareState()
             underTest.start()
             runCurrent()
-            emulateSceneTransition(transitionStateFlow, toScene = Scenes.Bouncer)
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            emulateOverlayTransition(
+                transitionStateFlow = transitionStateFlow,
+                toOverlay = Overlays.Bouncer,
+            )
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
 
             transitionStateFlow.value =
-                ObservableTransitionState.Transition(
-                    fromScene = Scenes.Bouncer,
+                ObservableTransitionState.Transition.hideOverlay(
+                    overlay = Overlays.Bouncer,
                     toScene = Scenes.Lockscreen,
-                    currentScene = flowOf(Scenes.Bouncer),
+                    currentOverlays = flowOf(setOf(Overlays.Bouncer)),
                     progress = flowOf(-0.4f),
                     isInitiatedByUserInput = true,
                     isUserInputOngoing = flowOf(true),
@@ -2137,16 +2143,17 @@
     fun switchToLockscreen_whenShadeBecomesNotTouchable() =
         testScope.runTest {
             val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val isShadeTouchable by collectLastValue(kosmos.shadeInteractor.isShadeTouchable)
             val transitionStateFlow = prepareState()
             underTest.start()
             assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
             // Flung to bouncer, 90% of the way there:
             transitionStateFlow.value =
-                ObservableTransitionState.Transition(
+                ObservableTransitionState.Transition.showOverlay(
+                    overlay = Overlays.Bouncer,
                     fromScene = Scenes.Lockscreen,
-                    toScene = Scenes.Bouncer,
-                    currentScene = flowOf(Scenes.Bouncer),
+                    currentOverlays = flowOf(setOf(Overlays.Bouncer)),
                     progress = flowOf(0.9f),
                     isInitiatedByUserInput = true,
                     isUserInputOngoing = flowOf(false),
@@ -2159,22 +2166,27 @@
             assertThat(isShadeTouchable).isFalse()
 
             assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
+            assertThat(currentOverlays).doesNotContain(Overlays.Bouncer)
         }
 
     @Test
     fun switchToGone_extendUnlock() =
         testScope.runTest {
             val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             prepareState(
-                initialSceneKey = Scenes.Bouncer,
+                initialSceneKey = Scenes.Lockscreen,
+                initialOverlays = setOf(Overlays.Bouncer),
                 authenticationMethod = AuthenticationMethodModel.Pin,
             )
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
 
             underTest.start()
             fakeTrustRepository.setCurrentUserTrusted(true)
 
             assertThat(currentScene).isEqualTo(Scenes.Gone)
+            assertThat(currentOverlays).doesNotContain(Overlays.Bouncer)
             assertThat(uiEventLoggerFake[0].eventId)
                 .isEqualTo(BouncerUiEvent.BOUNCER_DISMISS_EXTENDED_ACCESS.id)
             assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
@@ -2285,12 +2297,15 @@
     fun notifyKeyguardDismissCallbacks_whenUnlockingFromBouncer_onDismissSucceeded() =
         testScope.runTest {
             val currentSceneKey by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             prepareState(
                 authenticationMethod = AuthenticationMethodModel.Pin,
                 isDeviceUnlocked = false,
-                initialSceneKey = Scenes.Bouncer,
+                initialSceneKey = Scenes.Lockscreen,
+                initialOverlays = setOf(Overlays.Bouncer),
             )
-            assertThat(currentSceneKey).isEqualTo(Scenes.Bouncer)
+            assertThat(currentSceneKey).isEqualTo(Scenes.Lockscreen)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             underTest.start()
 
             // run all pending dismiss succeeded/cancelled calls from setup:
@@ -2311,7 +2326,7 @@
     fun notifyKeyguardDismissCallbacks_whenLeavingBouncer_onDismissCancelled() =
         testScope.runTest {
             val isUnlocked by collectLastValue(kosmos.deviceEntryInteractor.isUnlocked)
-            val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             prepareState()
             underTest.start()
             runCurrent()
@@ -2323,13 +2338,13 @@
             kosmos.dismissCallbackRegistry.addCallback(dismissCallback)
 
             // Switch to bouncer:
-            sceneInteractor.changeScene(Scenes.Bouncer, "")
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            sceneInteractor.showOverlay(Overlays.Bouncer, "")
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             runCurrent()
 
             // Return to lockscreen when isUnlocked=false:
-            sceneInteractor.changeScene(Scenes.Lockscreen, "")
-            assertThat(currentScene).isEqualTo(Scenes.Lockscreen)
+            sceneInteractor.hideOverlay(Overlays.Bouncer, "")
+            assertThat(currentOverlays).doesNotContain(Overlays.Bouncer)
             assertThat(isUnlocked).isFalse()
             runCurrent()
             kosmos.fakeExecutor.runAllReady()
@@ -2844,6 +2859,7 @@
         isDeviceUnlocked: Boolean = false,
         isBypassEnabled: Boolean = false,
         initialSceneKey: SceneKey? = null,
+        initialOverlays: Set<OverlayKey> = emptySet(),
         authenticationMethod: AuthenticationMethodModel? = null,
         isLockscreenEnabled: Boolean = true,
         startsAwake: Boolean = true,
@@ -2870,7 +2886,7 @@
         runCurrent()
         val transitionStateFlow =
             MutableStateFlow<ObservableTransitionState>(
-                ObservableTransitionState.Idle(Scenes.Lockscreen)
+                ObservableTransitionState.Idle(Scenes.Lockscreen, initialOverlays)
             )
         sceneInteractor.setTransitionState(transitionStateFlow)
         initialSceneKey?.let {
@@ -2881,9 +2897,12 @@
                 runCurrent()
             }
 
-            transitionStateFlow.value = ObservableTransitionState.Idle(it)
+            transitionStateFlow.value = ObservableTransitionState.Idle(it, initialOverlays)
             sceneInteractor.changeScene(it, "prepareState, initialSceneKey isn't null")
         }
+        for (overlay in initialOverlays) {
+            sceneInteractor.showOverlay(overlay, "prepareState, initialOverlays isn't empty")
+        }
         if (startsAwake) {
             powerInteractor.setAwakeForTest()
         } else {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/ScrimStartableTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/ScrimStartableTest.kt
index 572bc4d..46f4970 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/ScrimStartableTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/ScrimStartableTest.kt
@@ -18,6 +18,7 @@
 
 import androidx.test.filters.SmallTest
 import com.android.compose.animation.scene.ObservableTransitionState
+import com.android.compose.animation.scene.OverlayKey
 import com.android.compose.animation.scene.SceneKey
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.bouncer.data.repository.fakeKeyguardBouncerRepository
@@ -33,6 +34,7 @@
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.scene.data.repository.setSceneTransition
 import com.android.systemui.scene.domain.interactor.sceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.settings.brightness.domain.interactor.brightnessMirrorShowingInteractor
 import com.android.systemui.statusbar.domain.interactor.keyguardOcclusionInteractor
@@ -90,34 +92,28 @@
                 TestSpec(
                     id = 2,
                     expectedState = ScrimState.BOUNCER,
-                    Preconditions(
-                        isOnKeyguard = true,
-                        isCurrentSceneBouncer = true,
-                    ),
+                    Preconditions(isOnKeyguard = true, isIdleOnBouncer = true),
                 ),
                 TestSpec(
                     id = 3,
                     expectedState = ScrimState.BOUNCER_SCRIMMED,
                     Preconditions(
                         isOnKeyguard = true,
-                        isCurrentSceneBouncer = true,
+                        isIdleOnBouncer = true,
                         isBouncerScrimmingNeeded = true,
                     ),
                 ),
                 TestSpec(
                     id = 4,
                     expectedState = ScrimState.BRIGHTNESS_MIRROR,
-                    Preconditions(
-                        isOnKeyguard = true,
-                        isBrightnessMirrorVisible = true,
-                    ),
+                    Preconditions(isOnKeyguard = true, isBrightnessMirrorVisible = true),
                 ),
                 TestSpec(
                     id = 5,
                     expectedState = ScrimState.BRIGHTNESS_MIRROR,
                     Preconditions(
                         isOnKeyguard = true,
-                        isCurrentSceneBouncer = true,
+                        isIdleOnBouncer = true,
                         isBiometricWakeAndUnlock = true,
                         isBrightnessMirrorVisible = true,
                     ),
@@ -125,42 +121,27 @@
                 TestSpec(
                     id = 6,
                     expectedState = ScrimState.SHADE_LOCKED,
-                    Preconditions(
-                        isOnKeyguard = true,
-                        isCurrentSceneShade = true,
-                    ),
+                    Preconditions(isOnKeyguard = true, isCurrentSceneShade = true),
                 ),
                 TestSpec(
                     id = 7,
                     expectedState = ScrimState.PULSING,
-                    Preconditions(
-                        isOnKeyguard = true,
-                        isDozing = true,
-                        isPulsing = true,
-                    ),
+                    Preconditions(isOnKeyguard = true, isDozing = true, isPulsing = true),
                 ),
                 TestSpec(
                     id = 8,
                     expectedState = ScrimState.OFF,
-                    Preconditions(
-                        isOnKeyguard = true,
-                        hasPendingScreenOffCallback = true,
-                    ),
+                    Preconditions(isOnKeyguard = true, hasPendingScreenOffCallback = true),
                 ),
                 TestSpec(
                     id = 9,
                     expectedState = ScrimState.AOD,
-                    Preconditions(
-                        isOnKeyguard = true,
-                        isDozing = true,
-                    ),
+                    Preconditions(isOnKeyguard = true, isDozing = true),
                 ),
                 TestSpec(
                     id = 10,
                     expectedState = ScrimState.GLANCEABLE_HUB,
-                    Preconditions(
-                        isIdleOnCommunal = true,
-                    ),
+                    Preconditions(isIdleOnCommunal = true),
                 ),
                 TestSpec(
                     id = 11,
@@ -170,39 +151,23 @@
                 TestSpec(
                     id = 12,
                     expectedState = ScrimState.UNLOCKED,
-                    Preconditions(
-                        isDeviceEntered = true,
-                    ),
+                    Preconditions(isDeviceEntered = true),
                 ),
                 TestSpec(
                     id = 13,
                     expectedState = ScrimState.UNLOCKED,
-                    Preconditions(
-                        isOnKeyguard = true,
-                        isBiometricWakeAndUnlock = true,
-                    ),
+                    Preconditions(isOnKeyguard = true, isBiometricWakeAndUnlock = true),
                 ),
-                TestSpec(
-                    id = 14,
-                    expectedState = ScrimState.KEYGUARD,
-                    Preconditions(),
-                ),
+                TestSpec(id = 14, expectedState = ScrimState.KEYGUARD, Preconditions()),
                 TestSpec(
                     id = 15,
                     expectedState = ScrimState.DREAMING,
-                    Preconditions(
-                        isOnKeyguard = true,
-                        isOccluded = true,
-                        isDreaming = true,
-                    ),
+                    Preconditions(isOnKeyguard = true, isOccluded = true, isDreaming = true),
                 ),
                 TestSpec(
                     id = 16,
                     expectedState = ScrimState.UNLOCKED,
-                    Preconditions(
-                        isOnKeyguard = true,
-                        isOccluded = true,
-                    ),
+                    Preconditions(isOnKeyguard = true, isOccluded = true),
                 ),
             )
         }
@@ -253,9 +218,7 @@
         }
 
     /** Sets up the state to match what's specified in the given [preconditions]. */
-    private fun TestScope.setUpWith(
-        preconditions: Preconditions,
-    ) {
+    private fun TestScope.setUpWith(preconditions: Preconditions) {
         kosmos.fakeKeyguardBouncerRepository.setAlternateVisible(
             preconditions.isAlternateBouncerVisible
         )
@@ -272,17 +235,12 @@
 
         when {
             preconditions.isTransitioningToShade ->
-                whenTransitioning(
-                    from = Scenes.Lockscreen,
-                    to = Scenes.Shade,
-                )
+                whenTransitioning(from = Scenes.Lockscreen, to = Scenes.Shade)
             preconditions.isTransitioningAwayFromKeyguard ->
-                whenTransitioning(
-                    from = Scenes.Lockscreen,
-                    to = Scenes.Gone,
-                )
+                whenTransitioning(from = Scenes.Lockscreen, to = Scenes.Gone)
             preconditions.isCurrentSceneShade -> whenIdle(on = Scenes.Shade)
-            preconditions.isCurrentSceneBouncer -> whenIdle(on = Scenes.Bouncer)
+            preconditions.isIdleOnBouncer ->
+                whenIdle(on = Scenes.Lockscreen, overlays = setOf(Overlays.Bouncer))
             preconditions.isIdleOnCommunal -> whenIdle(on = Scenes.Communal)
         }
 
@@ -323,9 +281,12 @@
     }
 
     /** Sets up an idle state on the given [on] scene. */
-    private fun whenIdle(on: SceneKey) {
-        kosmos.setSceneTransition(ObservableTransitionState.Idle(on))
+    private fun whenIdle(on: SceneKey, overlays: Set<OverlayKey> = emptySet()) {
+        kosmos.setSceneTransition(ObservableTransitionState.Idle(on, overlays))
         kosmos.sceneInteractor.changeScene(on, "")
+        for (overlay in overlays) {
+            kosmos.sceneInteractor.showOverlay(overlay, "")
+        }
     }
 
     /** Sets up a transitioning state between the [given] and [to] scenes. */
@@ -351,7 +312,7 @@
         /** Whether any non-shade nor QS scene is transitioning to a shade or QS scene. */
         val isTransitioningToShade: Boolean = false,
         val isOccluded: Boolean = false,
-        val isCurrentSceneBouncer: Boolean = false,
+        val isIdleOnBouncer: Boolean = false,
         val isBiometricWakeAndUnlock: Boolean = false,
         /** Whether there's an active transition from lockscreen or bouncer to gone. */
         val isTransitioningAwayFromKeyguard: Boolean = false,
@@ -388,7 +349,7 @@
             assertWithMessage(
                     "isCurrentSceneBouncer cannot be true without isOnKeyguard also being true"
                 )
-                .that(!isCurrentSceneBouncer || isOnKeyguard)
+                .that(!isIdleOnBouncer || isOnKeyguard)
                 .isTrue()
 
             assertWithMessage(
@@ -400,13 +361,13 @@
             assertWithMessage(
                     "isCurrentSceneBouncer cannot be true at the same time as isCurrentSceneShade"
                 )
-                .that(!isCurrentSceneBouncer || !isCurrentSceneShade)
+                .that(!isIdleOnBouncer || !isCurrentSceneShade)
                 .isTrue()
 
             assertWithMessage(
                     "isCurrentSceneBouncer cannot be true at the same time as isIdleOnCommunal"
                 )
-                .that(!isCurrentSceneBouncer || !isIdleOnCommunal)
+                .that(!isIdleOnBouncer || !isIdleOnCommunal)
                 .isTrue()
 
             assertWithMessage(
@@ -422,7 +383,7 @@
             assertWithMessage(
                     "isDeviceEntered cannot be true at the same time as isCurrentSceneBouncer"
                 )
-                .that(!isDeviceEntered || !isCurrentSceneBouncer)
+                .that(!isDeviceEntered || !isIdleOnBouncer)
                 .isTrue()
 
             assertWithMessage(
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/StatusBarStartableTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/StatusBarStartableTest.kt
index 99146d8..eebbc84 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/StatusBarStartableTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/StatusBarStartableTest.kt
@@ -21,6 +21,7 @@
 import android.view.WindowManagerPolicyConstants
 import androidx.test.filters.SmallTest
 import com.android.compose.animation.scene.ObservableTransitionState
+import com.android.compose.animation.scene.OverlayKey
 import com.android.compose.animation.scene.SceneKey
 import com.android.internal.config.sysui.SystemUiDeviceConfigFlags
 import com.android.internal.statusbar.statusBarService
@@ -40,6 +41,7 @@
 import com.android.systemui.power.shared.model.WakefulnessState
 import com.android.systemui.scene.data.repository.setSceneTransition
 import com.android.systemui.scene.domain.interactor.sceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.statusbar.domain.interactor.keyguardOcclusionInteractor
 import com.android.systemui.testKosmos
@@ -246,16 +248,14 @@
         }
 
     /** Sets up the state to match what's specified in the given [preconditions]. */
-    private fun TestScope.setUpWith(
-        preconditions: Preconditions,
-    ) {
+    private fun TestScope.setUpWith(preconditions: Preconditions) {
         if (!preconditions.isKeyguardShowing) {
             kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
                 SuccessFingerprintAuthenticationStatus(0, true)
             )
         }
         if (preconditions.isForceHideHomeAndRecents) {
-            whenIdle(Scenes.Bouncer)
+            whenIdle(Scenes.Lockscreen, setOf(Overlays.Bouncer))
         } else if (preconditions.isKeyguardShowing) {
             whenIdle(Scenes.Lockscreen)
         } else {
@@ -308,9 +308,12 @@
     }
 
     /** Sets up an idle state on the given [on] scene. */
-    private fun whenIdle(on: SceneKey) {
-        kosmos.setSceneTransition(ObservableTransitionState.Idle(on))
+    private fun whenIdle(on: SceneKey, overlays: Set<OverlayKey> = emptySet()) {
+        kosmos.setSceneTransition(ObservableTransitionState.Idle(on, overlays))
         kosmos.sceneInteractor.changeScene(on, "")
+        for (overlay in overlays) {
+            kosmos.sceneInteractor.showOverlay(overlay, "")
+        }
     }
 
     data class Preconditions(
@@ -350,11 +353,7 @@
         }
     }
 
-    data class TestSpec(
-        val id: Int,
-        val expectedFlags: Int,
-        val preconditions: Preconditions,
-    ) {
+    data class TestSpec(val id: Int, val expectedFlags: Int, val preconditions: Preconditions) {
         override fun toString(): String {
             return "id=$id, expected=$expectedFlags, preconditions=$preconditions"
         }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/shared/model/SceneDataSourceDelegatorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/shared/model/SceneDataSourceDelegatorTest.kt
index 2720c57..c9dab34 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/shared/model/SceneDataSourceDelegatorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/shared/model/SceneDataSourceDelegatorTest.kt
@@ -55,9 +55,9 @@
         testScope.runTest {
             val currentScene by collectLastValue(underTest.currentScene)
             underTest.setDelegate(null)
-            assertThat(currentScene).isNotEqualTo(Scenes.Bouncer)
+            assertThat(currentScene).isNotEqualTo(Scenes.Gone)
 
-            underTest.changeScene(toScene = Scenes.Bouncer)
+            underTest.changeScene(toScene = Scenes.Gone)
 
             assertThat(currentScene).isEqualTo(initialSceneKey)
         }
@@ -73,11 +73,11 @@
     fun currentScene_withDelegate_changesScenes() =
         testScope.runTest {
             val currentScene by collectLastValue(underTest.currentScene)
-            assertThat(currentScene).isNotEqualTo(Scenes.Bouncer)
+            assertThat(currentScene).isNotEqualTo(Scenes.Gone)
 
-            underTest.changeScene(toScene = Scenes.Bouncer)
+            underTest.changeScene(toScene = Scenes.Gone)
 
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentScene).isEqualTo(Scenes.Gone)
         }
 
     @Test
@@ -85,8 +85,8 @@
         testScope.runTest {
             val currentScene by collectLastValue(underTest.currentScene)
 
-            fakeSceneDataSource.changeScene(toScene = Scenes.Bouncer)
+            fakeSceneDataSource.changeScene(toScene = Scenes.Gone)
 
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentScene).isEqualTo(Scenes.Gone)
         }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/view/SceneJankMonitorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/view/SceneJankMonitorTest.kt
index 984f8fd..9b00e21 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/view/SceneJankMonitorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/view/SceneJankMonitorTest.kt
@@ -31,6 +31,7 @@
 import com.android.systemui.kosmos.runTest
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.lifecycle.activateIn
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.testKosmos
 import com.google.common.truth.Truth.assertThat
@@ -158,22 +159,22 @@
         underTest.onTransitionStart(
             view = mock(),
             from = Scenes.Lockscreen,
-            to = Scenes.Bouncer,
+            to = Overlays.Bouncer,
             cuj = null,
         )
         verifyCujCounts(beginAppearCount = 1)
-        underTest.onTransitionEnd(from = Scenes.Lockscreen, to = Scenes.Bouncer, cuj = null)
+        underTest.onTransitionEnd(from = Scenes.Lockscreen, to = Overlays.Bouncer, cuj = null)
         verifyCujCounts(beginAppearCount = 1, endAppearCount = 1)
 
         // Bouncer disappear CUJ but it doesn't log because the device isn't unlocked.
         underTest.onTransitionStart(
             view = mock(),
-            from = Scenes.Bouncer,
+            from = Overlays.Bouncer,
             to = Scenes.Lockscreen,
             cuj = null,
         )
         verifyCujCounts(beginAppearCount = 1, endAppearCount = 1)
-        underTest.onTransitionEnd(from = Scenes.Bouncer, to = Scenes.Lockscreen, cuj = null)
+        underTest.onTransitionEnd(from = Overlays.Bouncer, to = Scenes.Lockscreen, cuj = null)
         verifyCujCounts(beginAppearCount = 1, endAppearCount = 1)
 
         if (!testUnlockedDisappearance) {
@@ -190,12 +191,12 @@
         // Bouncer disappear CUJ and it doeslog because the device is unlocked.
         underTest.onTransitionStart(
             view = mock(),
-            from = Scenes.Bouncer,
+            from = Overlays.Bouncer,
             to = Scenes.Gone,
             cuj = null,
         )
         verifyCujCounts(beginAppearCount = 1, endAppearCount = 1, beginDisappearCount = 1)
-        underTest.onTransitionEnd(from = Scenes.Bouncer, to = Scenes.Gone, cuj = null)
+        underTest.onTransitionEnd(from = Overlays.Bouncer, to = Scenes.Gone, cuj = null)
         verifyCujCounts(
             beginAppearCount = 1,
             endAppearCount = 1,
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerHapticsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerHapticsViewModelTest.kt
index 7330b51..f04f0a3 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerHapticsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerHapticsViewModelTest.kt
@@ -164,7 +164,7 @@
             kosmos.enableDualShade()
             // GIVEN an invalid scene transition to play haptics
             val invalidTransition =
-                createTransitionState(from = Scenes.Bouncer, to = Overlays.NotificationsShade)
+                createTransitionState(from = Scenes.QuickSettings, to = Scenes.Gone)
 
             // WHEN the transition occurs
             sceneInteractor.setTransitionState(MutableStateFlow(invalidTransition))
@@ -199,7 +199,7 @@
             kosmos.enableDualShade()
             // GIVEN an invalid scene transition to play haptics
             val invalidTransition =
-                createTransitionState(from = Scenes.Bouncer, to = Overlays.NotificationsShade)
+                createTransitionState(from = Scenes.QuickSettings, to = Scenes.Gone)
 
             // WHEN the transition occurs
             sceneInteractor.setTransitionState(MutableStateFlow(invalidTransition))
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/screenshot/DefaultScreenshotActionsProviderTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/screenshot/DefaultScreenshotActionsProviderTest.kt
index cd30edd..0448ad5 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/screenshot/DefaultScreenshotActionsProviderTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/screenshot/DefaultScreenshotActionsProviderTest.kt
@@ -46,6 +46,7 @@
     private val actionExecutor = mock<ActionExecutor>()
     private val uiEventLogger = mock<UiEventLogger>()
     private val actionsCallback = mock<ScreenshotActionsController.ActionsCallback>()
+    private val actionIntentCreator = ActionIntentCreator(context, context.packageManager)
 
     private val request = ScreenshotData.forTesting(userHandle = UserHandle.OWNER)
     private val validResult = ScreenshotSavedResult(Uri.EMPTY, Process.myUserHandle(), 0)
@@ -196,6 +197,7 @@
         return DefaultScreenshotActionsProvider(
             context,
             uiEventLogger,
+            actionIntentCreator,
             UUID.randomUUID(),
             request,
             actionExecutor,
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/settings/brightness/domain/interactor/BrightnessMirrorShowingInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/settings/brightness/domain/interactor/BrightnessMirrorShowingInteractorTest.kt
index 31d6df2..7b7d76b 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/settings/brightness/domain/interactor/BrightnessMirrorShowingInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/settings/brightness/domain/interactor/BrightnessMirrorShowingInteractorTest.kt
@@ -21,7 +21,6 @@
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.kosmos.testScope
-import com.android.systemui.settings.brightness.data.repository.brightnessMirrorShowingRepository
 import com.android.systemui.testKosmos
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.test.runTest
@@ -34,8 +33,7 @@
 
     private val kosmos = testKosmos()
 
-    private val underTest =
-        BrightnessMirrorShowingInteractor(kosmos.brightnessMirrorShowingRepository)
+    private val underTest = kosmos.brightnessMirrorShowingInteractor
 
     @Test
     fun isShowing_setAndFlow() =
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java
index 904f5e8..d852a9d 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java
@@ -104,7 +104,7 @@
 import com.android.systemui.qs.QSFragmentLegacy;
 import com.android.systemui.res.R;
 import com.android.systemui.screenrecord.RecordingController;
-import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractor;
+import com.android.systemui.settings.brightness.data.repository.BrightnessMirrorShowingRepository;
 import com.android.systemui.shade.data.repository.FakeShadeRepository;
 import com.android.systemui.shade.data.repository.ShadeAnimationRepository;
 import com.android.systemui.shade.data.repository.ShadeRepository;
@@ -314,8 +314,8 @@
     protected ShadeRepository mShadeRepository;
     protected FakeMSDLPlayer mMSDLPlayer = mKosmos.getMsdlPlayer();
 
-    protected BrightnessMirrorShowingInteractor mBrightnessMirrorShowingInteractor =
-            mKosmos.getBrightnessMirrorShowingInteractor();
+    protected BrightnessMirrorShowingRepository mBrightnessMirrorShowingRepository =
+            mKosmos.getBrightnessMirrorShowingRepository();
 
     protected final FalsingManagerFake mFalsingManager = new FalsingManagerFake();
     protected final Optional<SysUIUnfoldComponent> mSysUIUnfoldComponent = Optional.empty();
@@ -588,7 +588,7 @@
                 mPowerInteractor,
                 mKeyguardClockPositionAlgorithm,
                 mMSDLPlayer,
-                mBrightnessMirrorShowingInteractor,
+                mBrightnessMirrorShowingRepository,
                 new BlurConfig(0f, 0f));
         mNotificationPanelViewController.initDependencies(
                 mCentralSurfaces,
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java
index ba989db..354c23d 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java
@@ -27,6 +27,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.os.Build;
 import android.platform.test.annotations.EnableFlags;
 import android.testing.TestableLooper;
 import android.view.HapticFeedbackConstants;
@@ -41,6 +42,7 @@
 
 import com.google.android.msdl.data.model.MSDLToken;
 
+import org.junit.Assume;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -59,6 +61,8 @@
     @Test
     @EnableFlags(com.android.systemui.Flags.FLAG_SHADE_EXPANDS_ON_STATUS_BAR_LONG_PRESS)
     public void onStatusBarLongPress_shadeExpands() {
+        //TODO(b/394977231) delete this temporary workaround used only by tests
+        Assume.assumeFalse(Build.HARDWARE.equals("cutf_cvm"));
         long downTime = 42L;
         // Start touch session with down event
         onTouchEvent(MotionEvent.obtain(downTime, downTime, MotionEvent.ACTION_DOWN, 1f, 1f, 0));
@@ -85,6 +89,8 @@
     @Test
     @EnableFlags(com.android.systemui.Flags.FLAG_SHADE_EXPANDS_ON_STATUS_BAR_LONG_PRESS)
     public void onStatusBarLongPress_qsExpands() {
+        //TODO(b/394977231) delete this temporary workaround used only by tests
+        Assume.assumeFalse(Build.HARDWARE.equals("cutf_cvm"));
         long downTime = 42L;
         // Start with shade already expanded
         mNotificationPanelViewController.setExpandedFraction(1F);
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.kt
index a8b4836..59e3a2e 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.kt
@@ -43,7 +43,7 @@
 import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN
 import com.android.systemui.res.R
 import com.android.systemui.settings.brightness.data.repository.BrightnessMirrorShowingRepository
-import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractor
+import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractorPassThrough
 import com.android.systemui.shade.NotificationShadeWindowView.InteractionEventHandler
 import com.android.systemui.shade.data.repository.ShadeAnimationRepository
 import com.android.systemui.shade.data.repository.ShadeRepositoryImpl
@@ -143,7 +143,7 @@
 
     private val brightnessMirrorShowingRepository = BrightnessMirrorShowingRepository()
     private val brightnessMirrorShowingInteractor =
-        BrightnessMirrorShowingInteractor(brightnessMirrorShowingRepository)
+        BrightnessMirrorShowingInteractorPassThrough(brightnessMirrorShowingRepository)
 
     private lateinit var underTest: NotificationShadeWindowView
     private lateinit var controller: NotificationShadeWindowViewController
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/PanelExpansionInteractorImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/PanelExpansionInteractorImplTest.kt
index 1859e25..d7b8aff 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/PanelExpansionInteractorImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/PanelExpansionInteractorImplTest.kt
@@ -78,7 +78,7 @@
             changeScene(Scenes.Lockscreen) { assertThat(panelExpansion).isEqualTo(1f) }
             assertThat(panelExpansion).isEqualTo(1f)
 
-            changeScene(Scenes.Bouncer) { assertThat(panelExpansion).isEqualTo(1f) }
+            showOverlay(Overlays.Bouncer) { assertThat(panelExpansion).isEqualTo(1f) }
             assertThat(panelExpansion).isEqualTo(1f)
 
             changeScene(Scenes.Shade) { assertThat(panelExpansion).isEqualTo(1f) }
@@ -133,7 +133,7 @@
             changeScene(Scenes.Lockscreen) { assertThat(panelExpansion).isEqualTo(1f) }
             assertThat(panelExpansion).isEqualTo(1f)
 
-            changeScene(Scenes.Bouncer) { assertThat(panelExpansion).isEqualTo(1f) }
+            showOverlay(Overlays.Bouncer) { assertThat(panelExpansion).isEqualTo(1f) }
             assertThat(panelExpansion).isEqualTo(1f)
 
             showOverlay(Overlays.NotificationsShade) { assertThat(panelExpansion).isEqualTo(1f) }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt
index 4a011c0..ccc876c 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt
@@ -50,11 +50,10 @@
 
     private val kosmos = testKosmos()
     private val testScope = kosmos.testScope
-    private val configurationRepository = kosmos.fakeConfigurationRepository
-    private val keyguardRepository = kosmos.fakeKeyguardRepository
-    private val sceneInteractor = kosmos.sceneInteractor
+    private val configurationRepository by lazy { kosmos.fakeConfigurationRepository }
+    private val keyguardRepository by lazy { kosmos.fakeKeyguardRepository }
+    private val sceneInteractor by lazy { kosmos.sceneInteractor }
     private val shadeTestUtil by lazy { kosmos.shadeTestUtil }
-
     private val underTest by lazy { kosmos.shadeInteractorSceneContainerImpl }
 
     @Test
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/NotificationShadeWindowModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/NotificationShadeWindowModelTest.kt
index 2038adc..d5537a6 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/NotificationShadeWindowModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/NotificationShadeWindowModelTest.kt
@@ -32,6 +32,7 @@
 import com.android.systemui.keyguard.shared.model.TransitionStep
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.scene.domain.interactor.sceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.testKosmos
 import com.google.common.truth.Truth.assertThat
@@ -125,7 +126,7 @@
                     to = KeyguardState.DREAMING,
                     value = 1f,
                     transitionState = TransitionState.FINISHED,
-                ),
+                )
             )
             assertThat(isKeyguardOccluded).isTrue()
 
@@ -154,7 +155,7 @@
                     to = KeyguardState.OCCLUDED,
                     value = 1f,
                     transitionState = TransitionState.FINISHED,
-                ),
+                )
             )
             assertThat(isKeyguardOccluded).isTrue()
         }
@@ -173,7 +174,8 @@
             runCurrent()
             assertThat(bouncerShowing).isFalse()
 
-            transitionState.value = ObservableTransitionState.Idle(Scenes.Bouncer)
+            transitionState.value =
+                ObservableTransitionState.Idle(Scenes.Lockscreen, setOf(Overlays.Bouncer))
             runCurrent()
             assertThat(bouncerShowing).isTrue()
         }
@@ -204,7 +206,7 @@
 
             val transitionState =
                 MutableStateFlow<ObservableTransitionState>(
-                    ObservableTransitionState.Idle(Scenes.Bouncer)
+                    ObservableTransitionState.Idle(Scenes.Lockscreen, setOf(Overlays.Bouncer))
                 )
             kosmos.sceneInteractor.setTransitionState(transitionState)
             runCurrent()
@@ -219,7 +221,8 @@
                 AuthenticationMethodModel.Password
             )
             // go back to bouncer
-            transitionState.value = ObservableTransitionState.Idle(Scenes.Bouncer)
+            transitionState.value =
+                ObservableTransitionState.Idle(Scenes.Lockscreen, setOf(Overlays.Bouncer))
             runCurrent()
             assertThat(bouncerRequiresIme).isTrue()
         }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt
index 37b4688..a832f48 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt
@@ -15,7 +15,9 @@
 import com.android.systemui.flags.EnableSceneContainer
 import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository
 import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus
+import com.android.systemui.kosmos.runCurrent
 import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
 import com.android.systemui.lifecycle.activateIn
 import com.android.systemui.plugins.activityStarter
 import com.android.systemui.scene.domain.interactor.sceneInteractor
@@ -51,12 +53,11 @@
 @RunWith(AndroidJUnit4::class)
 @EnableSceneContainer
 class ShadeHeaderViewModelTest : SysuiTestCase() {
-    private val kosmos = testKosmos()
+    private val kosmos = testKosmos().useUnconfinedTestDispatcher()
     private val testScope = kosmos.testScope
-    private val mobileIconsInteractor = kosmos.fakeMobileIconsInteractor
-    private val sceneInteractor = kosmos.sceneInteractor
-    private val deviceEntryInteractor = kosmos.deviceEntryInteractor
-
+    private val mobileIconsInteractor by lazy { kosmos.fakeMobileIconsInteractor }
+    private val sceneInteractor by lazy { kosmos.sceneInteractor }
+    private val deviceEntryInteractor by lazy { kosmos.deviceEntryInteractor }
     private val underTest by lazy { kosmos.shadeHeaderViewModel }
 
     @Before
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/CommandQueueTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/CommandQueueTest.java
index 3d8da61..70df82d 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/CommandQueueTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/CommandQueueTest.java
@@ -22,6 +22,7 @@
 import static android.service.quickaccesswallet.Flags.FLAG_LAUNCH_WALLET_VIA_SYSUI_CALLBACKS;
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.WindowInsetsController.BEHAVIOR_DEFAULT;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
@@ -556,9 +557,9 @@
     @Test
     public void testImmersiveModeChanged() {
         final int displayAreaId = 10;
-        mCommandQueue.immersiveModeChanged(displayAreaId, true);
+        mCommandQueue.immersiveModeChanged(displayAreaId, true, TYPE_APPLICATION);
         waitForIdleSync();
-        verify(mCallbacks).immersiveModeChanged(displayAreaId, true);
+        verify(mCallbacks).immersiveModeChanged(displayAreaId, true, TYPE_APPLICATION);
     }
 
     @Test
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/NotificationShadeDepthControllerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/NotificationShadeDepthControllerTest.kt
index 83361da..326d8ff 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/NotificationShadeDepthControllerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/NotificationShadeDepthControllerTest.kt
@@ -34,7 +34,6 @@
 import com.android.systemui.plugins.statusbar.StatusBarStateController
 import com.android.systemui.res.R
 import com.android.systemui.shade.ShadeExpansionChangeEvent
-import com.android.systemui.shared.Flags as SharedFlags
 import com.android.systemui.statusbar.phone.BiometricUnlockController
 import com.android.systemui.statusbar.phone.DozeParameters
 import com.android.systemui.statusbar.phone.ScrimController
@@ -44,11 +43,10 @@
 import com.android.systemui.testKosmos
 import com.android.systemui.util.WallpaperController
 import com.android.systemui.util.mockito.eq
+import com.android.systemui.wallpapers.domain.interactor.WallpaperInteractor
 import com.android.systemui.window.domain.interactor.WindowRootViewBlurInteractor
 import com.android.wm.shell.appzoomout.AppZoomOut
 import com.google.common.truth.Truth.assertThat
-import java.util.Optional
-import java.util.function.Consumer
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
@@ -69,6 +67,8 @@
 import org.mockito.Mockito.verify
 import org.mockito.Mockito.`when`
 import org.mockito.junit.MockitoJUnit
+import java.util.Optional
+import java.util.function.Consumer
 
 @RunWith(AndroidJUnit4::class)
 @RunWithLooper
@@ -76,6 +76,7 @@
 class NotificationShadeDepthControllerTest : SysuiTestCase() {
     private val kosmos = testKosmos()
 
+    private val applicationScope = kosmos.testScope.backgroundScope
     @Mock private lateinit var windowRootViewBlurInteractor: WindowRootViewBlurInteractor
     @Mock private lateinit var statusBarStateController: StatusBarStateController
     @Mock private lateinit var blurUtils: BlurUtils
@@ -84,6 +85,7 @@
     @Mock private lateinit var keyguardInteractor: KeyguardInteractor
     @Mock private lateinit var choreographer: Choreographer
     @Mock private lateinit var wallpaperController: WallpaperController
+    @Mock private lateinit var wallpaperInteractor: WallpaperInteractor
     @Mock private lateinit var notificationShadeWindowController: NotificationShadeWindowController
     @Mock private lateinit var dumpManager: DumpManager
     @Mock private lateinit var appZoomOutOptional: Optional<AppZoomOut>
@@ -128,12 +130,14 @@
                 keyguardInteractor,
                 choreographer,
                 wallpaperController,
+                wallpaperInteractor,
                 notificationShadeWindowController,
                 dozeParameters,
                 context,
                 ResourcesSplitShadeStateController(),
                 windowRootViewBlurInteractor,
                 appZoomOutOptional,
+                applicationScope,
                 dumpManager,
                 configurationController,
             )
@@ -310,22 +314,24 @@
     }
 
     @Test
-    @DisableFlags(SharedFlags.FLAG_AMBIENT_AOD)
-    fun onDozeAmountChanged_appliesBlur() {
-        statusBarStateListener.onDozeAmountChanged(1f, 1f)
-        notificationShadeDepthController.updateBlurCallback.doFrame(0)
-        verify(blurUtils).applyBlur(any(), eq(maxBlur), eq(false))
-    }
-
-    @Test
-    @EnableFlags(SharedFlags.FLAG_AMBIENT_AOD)
     fun onDozeAmountChanged_doesNotApplyBlurWithAmbientAod() {
+        notificationShadeDepthController.wallpaperSupportsAmbientMode = false
+
         statusBarStateListener.onDozeAmountChanged(1f, 1f)
         notificationShadeDepthController.updateBlurCallback.doFrame(0)
         verify(blurUtils).applyBlur(any(), eq(0), eq(false))
     }
 
     @Test
+    fun onDozeAmountChanged_appliesBlurWithAmbientAod() {
+        notificationShadeDepthController.wallpaperSupportsAmbientMode = true
+
+        statusBarStateListener.onDozeAmountChanged(1f, 1f)
+        notificationShadeDepthController.updateBlurCallback.doFrame(0)
+        verify(blurUtils).applyBlur(any(), eq(maxBlur), eq(false))
+    }
+
+    @Test
     fun setFullShadeTransition_appliesBlur_onlyIfSupported() {
         reset(blurUtils)
         `when`(blurUtils.blurRadiusOfRatio(anyFloat())).then { answer ->
@@ -353,6 +359,7 @@
     }
 
     @Test
+    @DisableFlags(Flags.FLAG_NOTIFICATION_SHADE_BLUR)
     fun updateBlurCallback_setsOpaque_whenScrim() {
         scrimVisibilityCaptor.value.accept(ScrimController.OPAQUE)
         notificationShadeDepthController.updateBlurCallback.doFrame(0)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/StatusBarStateControllerImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/StatusBarStateControllerImplTest.kt
index 7a982a3..6a222c6 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/StatusBarStateControllerImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/StatusBarStateControllerImplTest.kt
@@ -253,6 +253,7 @@
             underTest.addCallback(listener)
 
             val currentScene by collectLastValue(sceneInteractor.currentScene)
+            val currentOverlays by collectLastValue(sceneInteractor.currentOverlays)
             val deviceUnlockStatus by
                 collectLastValue(kosmos.deviceUnlockedInteractor.deviceUnlockStatus)
 
@@ -269,9 +270,9 @@
             // Call start to begin hydrating based on the scene framework:
             underTest.start()
 
-            sceneInteractor.changeScene(toScene = Scenes.Bouncer, loggingReason = "reason")
+            sceneInteractor.showOverlay(overlay = Overlays.Bouncer, loggingReason = "reason")
             runCurrent()
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             assertThat(statusBarState).isEqualTo(StatusBarState.KEYGUARD)
 
             sceneInteractor.changeScene(toScene = Scenes.Shade, loggingReason = "reason")
@@ -373,13 +374,12 @@
             // Call start to begin hydrating based on the scene framework:
             underTest.start()
 
-            sceneInteractor.changeScene(Scenes.Bouncer, loggingReason = "reason")
+            sceneInteractor.showOverlay(Overlays.Bouncer, loggingReason = "reason")
             runCurrent()
-            assertThat(currentScene).isEqualTo(Scenes.Bouncer)
-            assertThat(currentOverlays).isEmpty()
+            assertThat(currentOverlays).contains(Overlays.Bouncer)
             assertThat(statusBarState).isEqualTo(StatusBarState.KEYGUARD)
 
-            sceneInteractor.changeScene(Scenes.Lockscreen, loggingReason = "reason")
+            sceneInteractor.hideOverlay(Overlays.Bouncer, loggingReason = "reason")
             runCurrent()
 
             sceneInteractor.showOverlay(Overlays.NotificationsShade, loggingReason = "reason")
@@ -507,6 +507,11 @@
         testScope.runTest {
             underTest.start()
             underTest.setLeaveOpenOnKeyguardHide(true)
+            kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "")
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
+            runCurrent()
 
             keyguardTransitionRepository.sendTransitionSteps(
                 from = KeyguardState.AOD,
@@ -515,6 +520,7 @@
             )
             assertThat(underTest.leaveOpenOnKeyguardHide()).isEqualTo(true)
 
+            kosmos.sceneInteractor.changeScene(Scenes.Gone, "")
             kosmos.setTransition(
                 sceneTransition = Idle(Scenes.Gone),
                 stateTransition =
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/call/domain/interactor/CallChipInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/call/domain/interactor/CallChipInteractorTest.kt
index e38ea30..9fd189f 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/call/domain/interactor/CallChipInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/call/domain/interactor/CallChipInteractorTest.kt
@@ -20,11 +20,14 @@
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.coroutines.collectLastValue
-import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
 import com.android.systemui.statusbar.phone.ongoingcall.data.repository.ongoingCallRepository
 import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
-import com.android.systemui.statusbar.phone.ongoingcall.shared.model.inCallModel
+import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallTestHelper.addOngoingCallState
+import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallTestHelper.removeOngoingCallState
+import com.android.systemui.testKosmos
 import com.google.common.truth.Truth.assertThat
 import kotlin.test.Test
 import kotlinx.coroutines.test.runTest
@@ -33,22 +36,20 @@
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 class CallChipInteractorTest : SysuiTestCase() {
-    val kosmos = Kosmos()
+    val kosmos = testKosmos().useUnconfinedTestDispatcher()
     val repo = kosmos.ongoingCallRepository
 
     val underTest = kosmos.callChipInteractor
 
     @Test
-    fun ongoingCallState_matchesRepo() =
-        kosmos.testScope.runTest {
+    fun ongoingCallState_matchesState() =
+        kosmos.runTest {
             val latest by collectLastValue(underTest.ongoingCallState)
 
-            val inCall = inCallModel(startTimeMs = 1000)
-            repo.setOngoingCallState(inCall)
-            assertThat(latest).isEqualTo(inCall)
+            addOngoingCallState(key = "testKey")
+            assertThat(latest).isInstanceOf(OngoingCallModel.InCall::class.java)
 
-            val noCall = OngoingCallModel.NoCall
-            repo.setOngoingCallState(noCall)
-            assertThat(latest).isEqualTo(noCall)
+            removeOngoingCallState(key = "testKey")
+            assertThat(latest).isEqualTo(OngoingCallModel.NoCall)
         }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModelTest.kt
index e044d1d..fda4ab0 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModelTest.kt
@@ -27,7 +27,9 @@
 import com.android.systemui.common.shared.model.ContentDescription.Companion.loadContentDescription
 import com.android.systemui.common.shared.model.Icon
 import com.android.systemui.coroutines.collectLastValue
-import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
 import com.android.systemui.plugins.activityStarter
 import com.android.systemui.res.R
 import com.android.systemui.statusbar.StatusBarIconView
@@ -35,17 +37,11 @@
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
 import com.android.systemui.statusbar.chips.ui.view.ChipBackgroundContainer
 import com.android.systemui.statusbar.core.StatusBarConnectedDisplays
-import com.android.systemui.statusbar.notification.data.model.activeNotificationModel
-import com.android.systemui.statusbar.notification.data.repository.ActiveNotificationListRepository
-import com.android.systemui.statusbar.notification.data.repository.ActiveNotificationsStore
-import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository
 import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel
-import com.android.systemui.statusbar.notification.shared.CallType
 import com.android.systemui.statusbar.phone.ongoingcall.DisableChipsModernization
 import com.android.systemui.statusbar.phone.ongoingcall.EnableChipsModernization
-import com.android.systemui.statusbar.phone.ongoingcall.data.repository.ongoingCallRepository
-import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
-import com.android.systemui.statusbar.phone.ongoingcall.shared.model.inCallModel
+import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallTestHelper.addOngoingCallState
+import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallTestHelper.removeOngoingCallState
 import com.android.systemui.testKosmos
 import com.android.systemui.util.time.fakeSystemClock
 import com.google.common.truth.Truth.assertThat
@@ -60,10 +56,7 @@
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 class CallChipViewModelTest : SysuiTestCase() {
-    private val kosmos = testKosmos()
-    private val notificationListRepository = kosmos.activeNotificationListRepository
-    private val testScope = kosmos.testScope
-    private val repo = kosmos.ongoingCallRepository
+    private val kosmos = testKosmos().useUnconfinedTestDispatcher()
 
     private val chipBackgroundView = mock<ChipBackgroundContainer>()
     private val chipView =
@@ -82,53 +75,53 @@
 
     @Test
     fun chip_noCall_isHidden() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
-            repo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState("testKey")
 
             assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
         }
 
     @Test
     fun chip_inCall_zeroStartTime_isShownAsIconOnly() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
-            repo.setOngoingCallState(inCallModel(startTimeMs = 0))
+            addOngoingCallState(startTimeMs = 0)
 
             assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
         }
 
     @Test
     fun chip_inCall_negativeStartTime_isShownAsIconOnly() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
-            repo.setOngoingCallState(inCallModel(startTimeMs = -2))
+            addOngoingCallState(startTimeMs = -2)
 
             assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.IconOnly::class.java)
         }
 
     @Test
     fun chip_inCall_positiveStartTime_isShownAsTimer() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
-            repo.setOngoingCallState(inCallModel(startTimeMs = 345))
+            addOngoingCallState(startTimeMs = 345)
 
             assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active.Timer::class.java)
         }
 
     @Test
     fun chip_inCall_startTimeConvertedToElapsedRealtime() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
             kosmos.fakeSystemClock.setCurrentTimeMillis(3000)
             kosmos.fakeSystemClock.setElapsedRealtime(400_000)
 
-            repo.setOngoingCallState(inCallModel(startTimeMs = 1000))
+            addOngoingCallState(startTimeMs = 1000)
 
             // The OngoingCallModel start time is relative to currentTimeMillis, so this call
             // started 2000ms ago (1000 - 3000). The OngoingActivityChipModel start time needs to be
@@ -141,13 +134,11 @@
     @Test
     @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME)
     fun chip_positiveStartTime_connectedDisplaysFlagOn_iconIsNotifIcon() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
             val notifKey = "testNotifKey"
-            repo.setOngoingCallState(
-                inCallModel(startTimeMs = 1000, notificationIcon = null, notificationKey = notifKey)
-            )
+            addOngoingCallState(startTimeMs = 1000, statusBarChipIconView = null, key = notifKey)
 
             assertThat((latest as OngoingActivityChipModel.Active).icon)
                 .isInstanceOf(
@@ -163,16 +154,14 @@
     @Test
     @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME)
     fun chip_zeroStartTime_cdFlagOff_iconIsNotifIcon_withContentDescription() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
             val notifIcon = createStatusBarIconViewOrNull()
-            repo.setOngoingCallState(
-                inCallModel(
-                    startTimeMs = 0,
-                    notificationIcon = notifIcon,
-                    appName = "Fake app name",
-                )
+            addOngoingCallState(
+                startTimeMs = 0,
+                statusBarChipIconView = notifIcon,
+                appName = "Fake app name",
             )
 
             assertThat((latest as OngoingActivityChipModel.Active).icon)
@@ -190,16 +179,13 @@
     @Test
     @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME)
     fun chip_zeroStartTime_cdFlagOn_iconIsNotifKeyIcon_withContentDescription() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
-            repo.setOngoingCallState(
-                inCallModel(
-                    startTimeMs = 0,
-                    notificationIcon = createStatusBarIconViewOrNull(),
-                    notificationKey = "notifKey",
-                    appName = "Fake app name",
-                )
+            addOngoingCallState(
+                key = "notifKey",
+                statusBarChipIconView = createStatusBarIconViewOrNull(),
+                appName = "Fake app name",
             )
 
             assertThat((latest as OngoingActivityChipModel.Active).icon)
@@ -219,10 +205,10 @@
     @Test
     @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME)
     fun chip_notifIconFlagOn_butNullNotifIcon_cdFlagOff_iconIsPhone() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
-            repo.setOngoingCallState(inCallModel(startTimeMs = 1000, notificationIcon = null))
+            addOngoingCallState(statusBarChipIconView = null)
 
             assertThat((latest as OngoingActivityChipModel.Active).icon)
                 .isInstanceOf(OngoingActivityChipModel.ChipIcon.SingleColorIcon::class.java)
@@ -237,16 +223,13 @@
     @Test
     @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME)
     fun chip_notifIconFlagOn_butNullNotifIcon_cdFlagOn_iconIsNotifKeyIcon_withContentDescription() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
-            repo.setOngoingCallState(
-                inCallModel(
-                    startTimeMs = 1000,
-                    notificationIcon = null,
-                    notificationKey = "notifKey",
-                    appName = "Fake app name",
-                )
+            addOngoingCallState(
+                key = "notifKey",
+                statusBarChipIconView = null,
+                appName = "Fake app name",
             )
 
             assertThat((latest as OngoingActivityChipModel.Active).icon)
@@ -265,10 +248,10 @@
 
     @Test
     fun chip_positiveStartTime_colorsAreAccentThemed() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
-            repo.setOngoingCallState(inCallModel(startTimeMs = 1000, promotedContent = null))
+            addOngoingCallState(startTimeMs = 1000, promotedContent = null)
 
             assertThat((latest as OngoingActivityChipModel.Active).colors)
                 .isEqualTo(ColorsModel.AccentThemed)
@@ -276,10 +259,10 @@
 
     @Test
     fun chip_zeroStartTime_colorsAreAccentThemed() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
-            repo.setOngoingCallState(inCallModel(startTimeMs = 0, promotedContent = null))
+            addOngoingCallState(startTimeMs = 0, promotedContent = null)
 
             assertThat((latest as OngoingActivityChipModel.Active).colors)
                 .isEqualTo(ColorsModel.AccentThemed)
@@ -287,19 +270,19 @@
 
     @Test
     fun chip_resetsCorrectly() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
             kosmos.fakeSystemClock.setCurrentTimeMillis(3000)
             kosmos.fakeSystemClock.setElapsedRealtime(400_000)
 
             // Start a call
-            repo.setOngoingCallState(inCallModel(startTimeMs = 1000))
+            addOngoingCallState(key = "testKey", startTimeMs = 1000)
             assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
             assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
                 .isEqualTo(398_000)
 
             // End the call
-            repo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState(key = "testKey")
             assertThat(latest).isInstanceOf(OngoingActivityChipModel.Inactive::class.java)
 
             // Let 100_000ms elapse
@@ -307,7 +290,7 @@
             kosmos.fakeSystemClock.setElapsedRealtime(500_000)
 
             // Start a new call, which started 1000ms ago
-            repo.setOngoingCallState(inCallModel(startTimeMs = 102_000))
+            addOngoingCallState(key = "testKey", startTimeMs = 102_000)
             assertThat(latest).isInstanceOf(OngoingActivityChipModel.Active::class.java)
             assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
                 .isEqualTo(499_000)
@@ -316,10 +299,10 @@
     @Test
     @DisableChipsModernization
     fun chip_inCall_nullIntent_nullClickListener() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
-            repo.setOngoingCallState(inCallModel(startTimeMs = 1000, intent = null))
+            addOngoingCallState(contentIntent = null)
 
             assertThat((latest as OngoingActivityChipModel.Active).onClickListenerLegacy).isNull()
         }
@@ -327,11 +310,11 @@
     @Test
     @DisableChipsModernization
     fun chip_inCall_positiveStartTime_validIntent_clickListenerLaunchesIntent() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
             val pendingIntent = mock<PendingIntent>()
-            repo.setOngoingCallState(inCallModel(startTimeMs = 1000, intent = pendingIntent))
+            addOngoingCallState(startTimeMs = 1000, contentIntent = pendingIntent)
             val clickListener = (latest as OngoingActivityChipModel.Active).onClickListenerLegacy
             assertThat(clickListener).isNotNull()
 
@@ -345,11 +328,11 @@
     @Test
     @DisableChipsModernization
     fun chip_inCall_zeroStartTime_validIntent_clickListenerLaunchesIntent() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
             val pendingIntent = mock<PendingIntent>()
-            repo.setOngoingCallState(inCallModel(startTimeMs = 0, intent = pendingIntent))
+            addOngoingCallState(startTimeMs = 0, contentIntent = pendingIntent)
             val clickListener = (latest as OngoingActivityChipModel.Active).onClickListenerLegacy
 
             assertThat(clickListener).isNotNull()
@@ -364,14 +347,10 @@
     @Test
     @EnableChipsModernization
     fun chip_inCall_nullIntent_noneClickBehavior() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
-            postOngoingCallNotification(
-                repository = notificationListRepository,
-                startTimeMs = 1000L,
-                intent = null,
-            )
+            addOngoingCallState(startTimeMs = 1000, contentIntent = null)
 
             assertThat((latest as OngoingActivityChipModel.Active).clickBehavior)
                 .isInstanceOf(OngoingActivityChipModel.ClickBehavior.None::class.java)
@@ -380,15 +359,11 @@
     @Test
     @EnableChipsModernization
     fun chip_inCall_positiveStartTime_validIntent_clickBehaviorLaunchesIntent() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
             val pendingIntent = mock<PendingIntent>()
-            postOngoingCallNotification(
-                repository = notificationListRepository,
-                startTimeMs = 1000L,
-                intent = pendingIntent,
-            )
+            addOngoingCallState(startTimeMs = 1000, contentIntent = pendingIntent)
 
             val clickBehavior = (latest as OngoingActivityChipModel.Active).clickBehavior
             assertThat(clickBehavior)
@@ -405,15 +380,11 @@
     @Test
     @EnableChipsModernization
     fun chip_inCall_zeroStartTime_validIntent_clickBehaviorLaunchesIntent() =
-        testScope.runTest {
+        kosmos.runTest {
             val latest by collectLastValue(underTest.chip)
 
             val pendingIntent = mock<PendingIntent>()
-            postOngoingCallNotification(
-                repository = notificationListRepository,
-                startTimeMs = 0L,
-                intent = pendingIntent,
-            )
+            addOngoingCallState(startTimeMs = 0, contentIntent = pendingIntent)
 
             val clickBehavior = (latest as OngoingActivityChipModel.Active).clickBehavior
             assertThat(clickBehavior)
@@ -435,27 +406,6 @@
                 mock<StatusBarIconView>()
             }
 
-        fun postOngoingCallNotification(
-            repository: ActiveNotificationListRepository,
-            startTimeMs: Long,
-            intent: PendingIntent?,
-        ) {
-            repository.activeNotifications.value =
-                ActiveNotificationsStore.Builder()
-                    .apply {
-                        addIndividualNotif(
-                            activeNotificationModel(
-                                key = "notif1",
-                                whenTime = startTimeMs,
-                                callType = CallType.Ongoing,
-                                statusBarChipIcon = null,
-                                contentIntent = intent,
-                            )
-                        )
-                    }
-                    .build()
-        }
-
         private val PROMOTED_CONTENT_WITH_COLOR =
             PromotedNotificationContentModel.Builder("notif")
                 .apply {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsViewModelTest.kt
index 626dcd5..1b5b0d6 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsViewModelTest.kt
@@ -22,15 +22,18 @@
 import android.graphics.Bitmap
 import android.graphics.drawable.BitmapDrawable
 import android.platform.test.annotations.DisableFlags
+import android.platform.test.annotations.EnableFlags
 import android.view.View
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.animation.Expandable
 import com.android.systemui.common.shared.model.Icon
-import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runTest
 import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
 import com.android.systemui.mediaprojection.data.model.MediaProjectionState
 import com.android.systemui.mediaprojection.data.repository.fakeMediaProjectionRepository
 import com.android.systemui.mediaprojection.taskswitcher.FakeActivityTaskManager.Companion.createTask
@@ -48,16 +51,13 @@
 import com.android.systemui.statusbar.phone.SystemUIDialog
 import com.android.systemui.statusbar.phone.mockSystemUIDialogFactory
 import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
-import com.android.systemui.statusbar.phone.ongoingcall.data.repository.ongoingCallRepository
-import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
-import com.android.systemui.statusbar.phone.ongoingcall.shared.model.inCallModel
+import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallTestHelper.addOngoingCallState
+import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallTestHelper.removeOngoingCallState
 import com.android.systemui.testKosmos
 import com.android.systemui.util.time.fakeSystemClock
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.onEach
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -74,13 +74,11 @@
 @RunWith(AndroidJUnit4::class)
 @DisableFlags(StatusBarNotifChips.FLAG_NAME)
 class OngoingActivityChipsViewModelTest : SysuiTestCase() {
-    private val kosmos = testKosmos()
-    private val testScope = kosmos.testScope
+    private val kosmos = testKosmos().useUnconfinedTestDispatcher()
     private val systemClock = kosmos.fakeSystemClock
 
     private val screenRecordState = kosmos.screenRecordRepository.screenRecordState
     private val mediaProjectionState = kosmos.fakeMediaProjectionRepository.mediaProjectionState
-    private val callRepo = kosmos.ongoingCallRepository
 
     private val mockSystemUIDialog = mock<SystemUIDialog>()
     private val chipBackgroundView = mock<ChipBackgroundContainer>()
@@ -96,7 +94,7 @@
     private val mockExpandable: Expandable =
         mock<Expandable>().apply { whenever(dialogTransitionController(any())).thenReturn(mock()) }
 
-    private val underTest = kosmos.ongoingActivityChipsViewModel
+    private val Kosmos.underTest by Kosmos.Fixture { ongoingActivityChipsViewModel }
 
     @Before
     fun setUp() {
@@ -111,10 +109,10 @@
 
     @Test
     fun primaryChip_allHidden_hidden() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.DoingNothing
             mediaProjectionState.value = MediaProjectionState.NotProjecting
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState("testKey")
 
             val latest by collectLastValue(underTest.primaryChip)
 
@@ -123,10 +121,10 @@
 
     @Test
     fun primaryChip_screenRecordShow_restHidden_screenRecordShown() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Recording
             mediaProjectionState.value = MediaProjectionState.NotProjecting
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState("testKey")
 
             val latest by collectLastValue(underTest.primaryChip)
 
@@ -135,10 +133,10 @@
 
     @Test
     fun primaryChip_screenRecordShowAndCallShow_screenRecordShown() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Recording
 
-            callRepo.setOngoingCallState(inCallModel(startTimeMs = 34))
+            addOngoingCallState()
 
             val latest by collectLastValue(underTest.primaryChip)
 
@@ -147,11 +145,11 @@
 
     @Test
     fun primaryChip_screenRecordShowAndShareToAppShow_screenRecordShown() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Recording
             mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState("testKey")
 
             val latest by collectLastValue(underTest.primaryChip)
 
@@ -160,11 +158,11 @@
 
     @Test
     fun primaryChip_shareToAppShowAndCallShow_shareToAppShown() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.DoingNothing
             mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
-            callRepo.setOngoingCallState(inCallModel(startTimeMs = 34))
+            addOngoingCallState()
 
             val latest by collectLastValue(underTest.primaryChip)
 
@@ -173,15 +171,13 @@
 
     @Test
     fun primaryChip_screenRecordAndShareToAppAndCastToOtherHideAndCallShown_callShown() =
-        testScope.runTest {
+        kosmos.runTest {
             val notificationKey = "call"
             screenRecordState.value = ScreenRecordModel.DoingNothing
             // MediaProjection covers both share-to-app and cast-to-other-device
             mediaProjectionState.value = MediaProjectionState.NotProjecting
 
-            callRepo.setOngoingCallState(
-                inCallModel(startTimeMs = 34, notificationKey = notificationKey)
-            )
+            addOngoingCallState(key = notificationKey)
 
             val latest by collectLastValue(underTest.primaryChip)
 
@@ -190,12 +186,10 @@
 
     @Test
     fun primaryChip_higherPriorityChipAdded_lowerPriorityChipReplaced() =
-        testScope.runTest {
+        kosmos.runTest {
             // Start with just the lowest priority chip shown
             val callNotificationKey = "call"
-            callRepo.setOngoingCallState(
-                inCallModel(startTimeMs = 34, notificationKey = callNotificationKey)
-            )
+            addOngoingCallState(key = callNotificationKey)
             // And everything else hidden
             mediaProjectionState.value = MediaProjectionState.NotProjecting
             screenRecordState.value = ScreenRecordModel.DoingNothing
@@ -224,15 +218,13 @@
 
     @Test
     fun primaryChip_highestPriorityChipRemoved_showsNextPriorityChip() =
-        testScope.runTest {
+        kosmos.runTest {
             // WHEN all chips are active
             screenRecordState.value = ScreenRecordModel.Recording
             mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
             val callNotificationKey = "call"
-            callRepo.setOngoingCallState(
-                inCallModel(startTimeMs = 34, notificationKey = callNotificationKey)
-            )
+            addOngoingCallState(key = callNotificationKey)
 
             val latest by collectLastValue(underTest.primaryChip)
 
@@ -255,17 +247,15 @@
     /** Regression test for b/347726238. */
     @Test
     fun primaryChip_timerDoesNotResetAfterSubscribersRestart() =
-        testScope.runTest {
+        kosmos.runTest {
             var latest: OngoingActivityChipModel? = null
 
-            val job1 = underTest.primaryChip.onEach { latest = it }.launchIn(this)
+            val job1 = underTest.primaryChip.onEach { latest = it }.launchIn(kosmos.testScope)
 
             // Start a chip with a timer
             systemClock.setElapsedRealtime(1234)
             screenRecordState.value = ScreenRecordModel.Recording
 
-            runCurrent()
-
             assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
                 .isEqualTo(1234)
 
@@ -276,9 +266,7 @@
             systemClock.setElapsedRealtime(5678)
 
             // WHEN we re-subscribe to the chip flow
-            val job2 = underTest.primaryChip.onEach { latest = it }.launchIn(this)
-
-            runCurrent()
+            val job2 = underTest.primaryChip.onEach { latest = it }.launchIn(kosmos.testScope)
 
             // THEN the old start time is still used
             assertThat((latest as OngoingActivityChipModel.Active.Timer).startTimeMs)
@@ -289,14 +277,14 @@
 
     @Test
     fun primaryChip_screenRecordStoppedViaDialog_chipHiddenWithoutAnimation() =
-        testScope.runTest {
+        kosmos.runTest {
             screenRecordState.value = ScreenRecordModel.Recording
             mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(
                     NORMAL_PACKAGE,
                     hostDeviceName = "Recording Display",
                 )
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState("testKey")
 
             val latest by collectLastValue(underTest.primaryChip)
 
@@ -319,11 +307,11 @@
 
     @Test
     fun primaryChip_projectionStoppedViaDialog_chipHiddenWithoutAnimation() =
-        testScope.runTest {
+        kosmos.runTest {
             mediaProjectionState.value =
                 MediaProjectionState.Projecting.EntireScreen(NORMAL_PACKAGE)
             screenRecordState.value = ScreenRecordModel.DoingNothing
-            callRepo.setOngoingCallState(OngoingCallModel.NoCall)
+            removeOngoingCallState("testKey")
 
             val latest by collectLastValue(underTest.primaryChip)
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/data/repository/StatusBarModeRepositoryImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/data/repository/StatusBarModeRepositoryImplTest.kt
index ab475c5..2f6bedb 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/data/repository/StatusBarModeRepositoryImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/data/repository/StatusBarModeRepositoryImplTest.kt
@@ -37,6 +37,8 @@
 import com.android.systemui.statusbar.layout.LetterboxAppearanceCalculator
 import com.android.systemui.statusbar.layout.StatusBarBoundsProvider
 import com.android.systemui.statusbar.phone.fragment.dagger.HomeStatusBarComponent
+import com.android.systemui.statusbar.phone.ongoingcall.DisableChipsModernization
+import com.android.systemui.statusbar.phone.ongoingcall.EnableChipsModernization
 import com.android.systemui.statusbar.phone.ongoingcall.data.repository.ongoingCallRepository
 import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
 import com.android.systemui.statusbar.phone.ongoingcall.shared.model.inCallModel
@@ -387,6 +389,7 @@
         }
 
     @Test
+    @DisableChipsModernization
     fun statusBarMode_ongoingCallAndFullscreen_semiTransparent() =
         testScope.runTest {
             val latest by collectLastValue(underTest.statusBarAppearance)
@@ -398,6 +401,19 @@
         }
 
     @Test
+    @EnableChipsModernization
+    fun statusBarMode_ongoingProcessRequiresStatusBarVisible_andFullscreen_semiTransparent() =
+        testScope.runTest {
+            val latest by collectLastValue(underTest.statusBarAppearance)
+
+            underTest.setOngoingProcessRequiresStatusBarVisible(true)
+            onSystemBarAttributesChanged(requestedVisibleTypes = WindowInsets.Type.navigationBars())
+
+            assertThat(latest!!.mode).isEqualTo(StatusBarMode.SEMI_TRANSPARENT)
+        }
+
+    @Test
+    @DisableChipsModernization
     fun statusBarMode_ongoingCallButNotFullscreen_matchesAppearance() =
         testScope.runTest {
             val latest by collectLastValue(underTest.statusBarAppearance)
@@ -413,6 +429,23 @@
         }
 
     @Test
+    @EnableChipsModernization
+    fun statusBarMode_ongoingProcessRequiresStatusBarVisible_butNotFullscreen_matchesAppearance() =
+        testScope.runTest {
+            val latest by collectLastValue(underTest.statusBarAppearance)
+
+            underTest.setOngoingProcessRequiresStatusBarVisible(true)
+
+            onSystemBarAttributesChanged(
+                requestedVisibleTypes = WindowInsets.Type.statusBars(),
+                appearance = APPEARANCE_OPAQUE_STATUS_BARS,
+            )
+
+            assertThat(latest!!.mode).isEqualTo(StatusBarMode.OPAQUE)
+        }
+
+    @Test
+    @DisableChipsModernization
     fun statusBarMode_fullscreenButNotOngoingCall_matchesAppearance() =
         testScope.runTest {
             val latest by collectLastValue(underTest.statusBarAppearance)
@@ -427,6 +460,21 @@
         }
 
     @Test
+    @EnableChipsModernization
+    fun statusBarMode_fullscreen_butNotOngoingProcessRequiresStatusBarVisible_matchesAppearance() =
+        testScope.runTest {
+            val latest by collectLastValue(underTest.statusBarAppearance)
+
+            underTest.setOngoingProcessRequiresStatusBarVisible(false)
+            onSystemBarAttributesChanged(
+                requestedVisibleTypes = WindowInsets.Type.navigationBars(),
+                appearance = APPEARANCE_OPAQUE_STATUS_BARS,
+            )
+
+            assertThat(latest!!.mode).isEqualTo(StatusBarMode.OPAQUE)
+        }
+
+    @Test
     fun statusBarMode_transientShown_semiTransparent() =
         testScope.runTest {
             val latest by collectLastValue(underTest.statusBarAppearance)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/NotificationTransitionAnimatorControllerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/NotificationTransitionAnimatorControllerTest.kt
index a1772e3..510167d 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/NotificationTransitionAnimatorControllerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/NotificationTransitionAnimatorControllerTest.kt
@@ -10,6 +10,7 @@
 import com.android.systemui.jank.interactionJankMonitor
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.res.R
+import com.android.systemui.statusbar.notification.collection.GroupEntry
 import com.android.systemui.statusbar.notification.collection.GroupEntryBuilder
 import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
 import com.android.systemui.statusbar.notification.data.repository.NotificationLaunchAnimationRepository
@@ -165,7 +166,10 @@
             .setSummary(summary)
             .addChild(notification.entry)
             .build()
-        assertSame(summary, notification.entry.parent?.summary)
+
+        val parentSummary = if (notification.entry.parent is GroupEntry)
+            (notification.entry.parent as GroupEntry).summary else null
+        assertSame(summary, parentSummary)
 
         `when`(headsUpManager.isHeadsUpEntry(notificationKey)).thenReturn(false)
         `when`(headsUpManager.isHeadsUpEntry(summary.key)).thenReturn(true)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/BundleEntryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/BundleEntryTest.kt
index 83e26c4..5d8b68e 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/BundleEntryTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/BundleEntryTest.kt
@@ -65,8 +65,8 @@
 
     @Test
     @EnableFlags(NotificationBundleUi.FLAG_NAME)
-    fun getGroupRoot_adapter() {
-        assertThat(underTest.entryAdapter.groupRoot).isEqualTo(underTest.entryAdapter)
+    fun isGroupRoot_adapter() {
+        assertThat(underTest.entryAdapter.isGroupRoot).isTrue()
     }
 
     @Test
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryTest.java
index 1f5c672..34dff24 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryTest.java
@@ -542,7 +542,7 @@
 
     @Test
     @EnableFlags(NotificationBundleUi.FLAG_NAME)
-    public void getGroupRoot_adapter_groupSummary() {
+    public void isGroupRoot_adapter_groupSummary() {
         ExpandableNotificationRow row = mock(ExpandableNotificationRow.class);
         Notification notification = new Notification.Builder(mContext, "")
                 .setSmallIcon(R.drawable.ic_person)
@@ -562,12 +562,12 @@
                 .build();
         entry.setRow(row);
 
-        assertThat(entry.getEntryAdapter().getGroupRoot()).isNull();
+        assertThat(entry.getEntryAdapter().isGroupRoot()).isFalse();
     }
 
     @Test
     @EnableFlags(NotificationBundleUi.FLAG_NAME)
-    public void getGroupRoot_adapter_groupChild() {
+    public void isGroupRoot_adapter_groupChild() {
         Notification notification = new Notification.Builder(mContext, "")
                 .setSmallIcon(R.drawable.ic_person)
                 .setGroupSummary(true)
@@ -591,7 +591,7 @@
                 .setParent(groupEntry.build())
                 .build();
 
-        assertThat(entry.getEntryAdapter().getGroupRoot()).isEqualTo(parent.getEntryAdapter());
+        assertThat(entry.getEntryAdapter().isGroupRoot()).isFalse();
     }
 
     @Test
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/DismissibilityCoordinatorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/DismissibilityCoordinatorTest.kt
index 543f0c7..e40d68e 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/DismissibilityCoordinatorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/DismissibilityCoordinatorTest.kt
@@ -66,7 +66,7 @@
 
         assertTrue(
             "Notifs without any flags should be dismissible",
-            dismissibilityProvider.isDismissable(entry)
+            dismissibilityProvider.isDismissable(entry.key)
         )
     }
 
@@ -96,7 +96,7 @@
 
         assertFalse(
             "Non-dismiss Notifs should NOT be dismissible",
-            dismissibilityProvider.isDismissable(entry)
+            dismissibilityProvider.isDismissable(entry.key)
         )
     }
 
@@ -113,7 +113,7 @@
 
         assertFalse(
             "Ongoing Notifs should NOT be dismissible when the device is locked",
-            dismissibilityProvider.isDismissable(entry)
+            dismissibilityProvider.isDismissable(entry.key)
         )
     }
 
@@ -130,7 +130,7 @@
 
         assertTrue(
             "Ongoing Notifs should be dismissible when the device is unlocked",
-            dismissibilityProvider.isDismissable(entry)
+            dismissibilityProvider.isDismissable(entry.key)
         )
     }
 
@@ -148,7 +148,7 @@
 
         assertFalse(
             "Non-dismiss Notifs should NOT be dismissible",
-            dismissibilityProvider.isDismissable(entry)
+            dismissibilityProvider.isDismissable(entry.key)
         )
     }
 
@@ -174,16 +174,16 @@
 
         assertTrue(
             "Notifs without any flags should be dismissible",
-            dismissibilityProvider.isDismissable(noFlagEntry)
+            dismissibilityProvider.isDismissable(noFlagEntry.key)
         )
         assertTrue(
             "Ongoing Notifs should be dismissible when the device is unlocked",
-            dismissibilityProvider.isDismissable(ongoingEntry)
+            dismissibilityProvider.isDismissable(ongoingEntry.key)
         )
 
         assertFalse(
             "Non-dismiss Notifs should NOT be dismissible",
-            dismissibilityProvider.isDismissable(nonDismissEntry)
+            dismissibilityProvider.isDismissable(nonDismissEntry.key)
         )
     }
 
@@ -199,10 +199,13 @@
 
         onBeforeRenderListListener.onBeforeRenderList(listOf(group))
 
-        assertFalse("Child should be non-dismissible", dismissibilityProvider.isDismissable(entry))
+        assertFalse(
+            "Child should be non-dismissible",
+            dismissibilityProvider.isDismissable(entry.key)
+        )
         assertFalse(
             "Summary should be non-dismissible",
-            dismissibilityProvider.isDismissable(summary)
+            dismissibilityProvider.isDismissable(summary.key)
         )
     }
 
@@ -219,10 +222,13 @@
 
         onBeforeRenderListListener.onBeforeRenderList(listOf(group))
 
-        assertFalse("Child should be non-dismissible", dismissibilityProvider.isDismissable(entry))
+        assertFalse(
+            "Child should be non-dismissible",
+            dismissibilityProvider.isDismissable(entry.key)
+        )
         assertFalse(
             "Summary should be non-dismissible",
-            dismissibilityProvider.isDismissable(summary)
+            dismissibilityProvider.isDismissable(summary.key)
         )
     }
 
@@ -239,8 +245,11 @@
 
         onBeforeRenderListListener.onBeforeRenderList(listOf(group))
 
-        assertTrue("Child should be dismissible", dismissibilityProvider.isDismissable(entry))
-        assertTrue("Summary should be dismissible", dismissibilityProvider.isDismissable(summary))
+        assertTrue("Child should be dismissible", dismissibilityProvider.isDismissable(entry.key))
+        assertTrue(
+            "Summary should be dismissible",
+            dismissibilityProvider.isDismissable(summary.key)
+        )
     }
 
     @Test
@@ -254,7 +263,10 @@
 
         onBeforeRenderListListener.onBeforeRenderList(listOf(group))
 
-        assertFalse("Child should be non-dismissible", dismissibilityProvider.isDismissable(entry))
+        assertFalse(
+            "Child should be non-dismissible",
+            dismissibilityProvider.isDismissable(entry.key)
+        )
     }
 
     @Test
@@ -269,7 +281,10 @@
 
         onBeforeRenderListListener.onBeforeRenderList(listOf(group))
 
-        assertFalse("Child should be non-dismissible", dismissibilityProvider.isDismissable(entry))
+        assertFalse(
+            "Child should be non-dismissible",
+            dismissibilityProvider.isDismissable(entry.key)
+        )
     }
 
     @Test
@@ -284,7 +299,7 @@
 
         onBeforeRenderListListener.onBeforeRenderList(listOf(group))
 
-        assertTrue("Child should be dismissible", dismissibilityProvider.isDismissable(entry))
+        assertTrue("Child should be dismissible", dismissibilityProvider.isDismissable(entry.key))
     }
 
     @Test
@@ -299,10 +314,10 @@
 
         onBeforeRenderListListener.onBeforeRenderList(listOf(group))
 
-        assertTrue("Child should be dismissible", dismissibilityProvider.isDismissable(entry))
+        assertTrue("Child should be dismissible", dismissibilityProvider.isDismissable(entry.key))
         assertFalse(
             "Summary should be non-dismissible",
-            dismissibilityProvider.isDismissable(summary)
+            dismissibilityProvider.isDismissable(summary.key)
         )
     }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinatorTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinatorTest.java
index 2aa1efa..2aa405a 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinatorTest.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinatorTest.java
@@ -22,9 +22,10 @@
 
 import static junit.framework.Assert.assertFalse;
 
+import static kotlinx.coroutines.flow.StateFlowKt.MutableStateFlow;
 
-import static org.junit.Assume.assumeFalse;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeFalse;
 import static org.junit.Assume.assumeTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
@@ -36,8 +37,6 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import static kotlinx.coroutines.flow.StateFlowKt.MutableStateFlow;
-
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.FlagsParameterization;
 import android.testing.TestableLooper;
@@ -74,13 +73,16 @@
 import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifStabilityManager;
 import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.Pluggable;
 import com.android.systemui.statusbar.notification.collection.provider.VisualStabilityProvider;
+import com.android.systemui.statusbar.notification.data.repository.HeadsUpRepository;
 import com.android.systemui.statusbar.notification.domain.interactor.SeenNotificationsInteractor;
-import com.android.systemui.statusbar.notification.headsup.HeadsUpManager;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
 import com.android.systemui.util.concurrency.FakeExecutor;
 import com.android.systemui.util.kotlin.JavaAdapter;
 import com.android.systemui.util.time.FakeSystemClock;
 
+import kotlinx.coroutines.flow.MutableStateFlow;
+import kotlinx.coroutines.test.TestScope;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -90,15 +92,12 @@
 import org.mockito.MockitoAnnotations;
 import org.mockito.verification.VerificationMode;
 
-import java.util.List;
-import java.util.Set;
-
-import kotlinx.coroutines.flow.MutableStateFlow;
-import kotlinx.coroutines.test.TestScope;
-
 import platform.test.runner.parameterized.ParameterizedAndroidJunit4;
 import platform.test.runner.parameterized.Parameters;
 
+import java.util.List;
+import java.util.Set;
+
 @SmallTest
 @RunWith(ParameterizedAndroidJunit4.class)
 @TestableLooper.RunWithLooper
@@ -118,7 +117,7 @@
     @Mock private StatusBarStateController mStatusBarStateController;
     @Mock private Pluggable.PluggableListener<NotifStabilityManager> mInvalidateListener;
     @Mock private SeenNotificationsInteractor mSeenNotificationsInteractor;
-    @Mock private HeadsUpManager mHeadsUpManager;
+    @Mock private HeadsUpRepository mHeadsUpRepository;
     @Mock private VisibilityLocationProvider mVisibilityLocationProvider;
     @Mock private VisualStabilityProvider mVisualStabilityProvider;
     @Mock private VisualStabilityCoordinatorLogger mLogger;
@@ -159,7 +158,7 @@
                 mFakeBackgroundExecutor,
                 mFakeMainExecutor,
                 mDumpManager,
-                mHeadsUpManager,
+                mHeadsUpRepository,
                 mShadeAnimationInteractor,
                 mJavaAdapter,
                 mSeenNotificationsInteractor,
@@ -172,6 +171,8 @@
                 mKosmos.getKeyguardTransitionInteractor(),
                 mKeyguardStateController,
                 mLogger);
+
+        when(mHeadsUpRepository.isTrackingHeadsUp()).thenReturn(MutableStateFlow(false));
         mCoordinator.attach(mNotifPipeline);
         mTestScope.getTestScheduler().runCurrent();
 
@@ -194,7 +195,7 @@
                 .setSummary(mEntry)
                 .build();
 
-        when(mHeadsUpManager.isHeadsUpEntry(mEntry.getKey())).thenReturn(false);
+        when(mHeadsUpRepository.isHeadsUpEntry(mEntry.getKey())).thenReturn(false);
 
         // Whenever we invalidate, the pipeline runs again, so we invalidate the state
         doAnswer(i -> {
@@ -461,7 +462,7 @@
         setSleepy(false);
 
         // WHEN a notification is alerting and visible
-        when(mHeadsUpManager.isHeadsUpEntry(mEntry.getKey())).thenReturn(true);
+        when(mHeadsUpRepository.isHeadsUpEntry(mEntry.getKey())).thenReturn(true);
         when(mVisibilityLocationProvider.isInVisibleLocation(any(NotificationEntry.class)))
                 .thenReturn(true);
 
@@ -477,7 +478,7 @@
         setSleepy(false);
 
         // WHEN a notification is alerting but not visible
-        when(mHeadsUpManager.isHeadsUpEntry(mEntry.getKey())).thenReturn(true);
+        when(mHeadsUpRepository.isHeadsUpEntry(mEntry.getKey())).thenReturn(true);
         when(mVisibilityLocationProvider.isInVisibleLocation(any(NotificationEntry.class)))
                 .thenReturn(false);
 
@@ -701,7 +702,7 @@
         assertFalse(mNotifStabilityManager.isSectionChangeAllowed(mEntry));
 
         // GIVEN mEntry is a HUN
-        when(mHeadsUpManager.isHeadsUpEntry(mEntry.getKey())).thenReturn(true);
+        when(mHeadsUpRepository.isHeadsUpEntry(mEntry.getKey())).thenReturn(true);
 
         // THEN group + section changes are allowed
         assertTrue(mNotifStabilityManager.isGroupChangeAllowed(mEntry));
@@ -768,7 +769,7 @@
         //  GIVEN - there is a group heads-up.
         String headsUpGroupKey = "heads_up_group_key";
         mCoordinator.setHeadsUpGroupKeys(Set.of(headsUpGroupKey));
-        when(mHeadsUpManager.isHeadsUpEntry(headsUpGroupKey)).thenReturn(true);
+        when(mHeadsUpRepository.isHeadsUpEntry(headsUpGroupKey)).thenReturn(true);
 
         // GIVEN - HUN Group Summary
         final NotificationEntry nonHeadsUpGroupSummary = mock(NotificationEntry.class);
@@ -793,7 +794,7 @@
         //  GIVEN - there is a group heads-up.
         final String headsUpGroupKey = "heads_up_group_key";
         mCoordinator.setHeadsUpGroupKeys(Set.of(headsUpGroupKey));
-        when(mHeadsUpManager.isHeadsUpEntry(headsUpGroupKey)).thenReturn(true);
+        when(mHeadsUpRepository.isHeadsUpEntry(headsUpGroupKey)).thenReturn(true);
 
         // GIVEN - HUN Group
         final NotificationEntry headsUpGroupSummary = mock(NotificationEntry.class);
@@ -825,7 +826,7 @@
         //  GIVEN - there is a group heads-up.
         final String headsUpGroupKey = "heads_up_group_key";
         mCoordinator.setHeadsUpGroupKeys(Set.of(headsUpGroupKey));
-        when(mHeadsUpManager.isHeadsUpEntry(headsUpGroupKey)).thenReturn(true);
+        when(mHeadsUpRepository.isHeadsUpEntry(headsUpGroupKey)).thenReturn(true);
 
         // GIVEN - HUN Group
         final NotificationEntry headsUpGroupSummary = mock(NotificationEntry.class);
@@ -858,7 +859,7 @@
         //  GIVEN - there is a group heads-up.
         String headsUpGroupKey = "heads_up_group_key";
         mCoordinator.setHeadsUpGroupKeys(Set.of(headsUpGroupKey));
-        when(mHeadsUpManager.isHeadsUpEntry(headsUpGroupKey)).thenReturn(true);
+        when(mHeadsUpRepository.isHeadsUpEntry(headsUpGroupKey)).thenReturn(true);
 
         // GIVEN - non HUN parent Group Summary
         final NotificationEntry groupSummary = mock(NotificationEntry.class);
@@ -891,7 +892,7 @@
         // GIVEN - there is a group heads-up.
         final String headsUpGroupKey = "heads_up_group_key";
         mCoordinator.setHeadsUpGroupKeys(Set.of(headsUpGroupKey));
-        when(mHeadsUpManager.isHeadsUpEntry(headsUpGroupKey)).thenReturn(true);
+        when(mHeadsUpRepository.isHeadsUpEntry(headsUpGroupKey)).thenReturn(true);
 
         // GIVEN - HUN Group Summary
         final NotificationEntry headsUpGroupSummary = mock(NotificationEntry.class);
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerTest.kt
index 3dd0982..8e6aedca 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerTest.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar.notification.collection.render
 
 import android.os.Build
+import android.os.UserHandle
 import android.platform.test.annotations.DisableFlags
 import android.platform.test.annotations.EnableFlags
 import android.platform.test.flag.junit.SetFlagsRule
@@ -29,9 +30,12 @@
 import com.android.systemui.statusbar.notification.collection.GroupEntryBuilder
 import com.android.systemui.statusbar.notification.collection.ListEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
+import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeRenderListListener
 import com.android.systemui.statusbar.notification.collection.render.GroupExpansionManager.OnGroupExpansionChangeListener
+import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper
 import com.android.systemui.statusbar.notification.shared.NotificationBundleUi
 import com.android.systemui.util.mockito.any
 import com.android.systemui.util.mockito.mock
@@ -55,56 +59,58 @@
 
     private lateinit var underTest: GroupExpansionManagerImpl
 
+    private lateinit var testHelper: NotificationTestHelper
     private val dumpManager: DumpManager = mock()
     private val groupMembershipManager: GroupMembershipManager = mock()
 
     private val pipeline: NotifPipeline = mock()
     private lateinit var beforeRenderListListener: OnBeforeRenderListListener
 
-    private val summary1 = notificationSummaryEntry("foo", 1)
-    private val summary2 = notificationSummaryEntry("bar", 1)
-    private val entries =
-        listOf<ListEntry>(
-            GroupEntryBuilder()
-                .setSummary(summary1)
-                .setChildren(
-                    listOf(
-                        notificationEntry("foo", 2),
-                        notificationEntry("foo", 3),
-                        notificationEntry("foo", 4)
-                    )
-                )
-                .build(),
-            GroupEntryBuilder()
-                .setSummary(summary2)
-                .setChildren(
-                    listOf(
-                        notificationEntry("bar", 2),
-                        notificationEntry("bar", 3),
-                        notificationEntry("bar", 4)
-                    )
-                )
-                .build(),
-            notificationEntry("baz", 1)
-        )
+    private lateinit var summary1: NotificationEntry
+    private lateinit var summary2: NotificationEntry
+    private lateinit var entries: List<ListEntry>
 
-    private fun notificationEntry(pkg: String, id: Int) =
-        NotificationEntryBuilder().setPkg(pkg).setId(id).build().apply { row = mock() }
-
-    private fun notificationSummaryEntry(pkg: String, id: Int) =
-        NotificationEntryBuilder().setPkg(pkg).setId(id).setParent(GroupEntry.ROOT_ENTRY).build()
-            .apply { row = mock() }
+    private fun notificationEntry(pkg: String, id: Int, parent: ExpandableNotificationRow?) =
+        NotificationEntryBuilder().setPkg(pkg).setId(id).build().apply {
+            row = testHelper.createRow().apply {
+                setIsChildInGroup(true, parent)
+            }
+        }
 
     @Before
     fun setUp() {
+        testHelper = NotificationTestHelper(mContext, mDependency)
+
+        summary1 = testHelper.createRow().entry
+        summary2 = testHelper.createRow().entry
+        entries =
+            listOf<ListEntry>(
+                GroupEntryBuilder()
+                    .setSummary(summary1)
+                    .setChildren(
+                        listOf(
+                            notificationEntry("foo", 2, summary1.row),
+                            notificationEntry("foo", 3, summary1.row),
+                            notificationEntry("foo", 4, summary1.row)
+                        )
+                    )
+                    .build(),
+                GroupEntryBuilder()
+                    .setSummary(summary2)
+                    .setChildren(
+                        listOf(
+                            notificationEntry("bar", 2, summary2.row),
+                            notificationEntry("bar", 3, summary2.row),
+                            notificationEntry("bar", 4, summary2.row)
+                        )
+                    )
+                    .build(),
+                notificationEntry("baz", 1, null)
+            )
+
         whenever(groupMembershipManager.getGroupSummary(summary1)).thenReturn(summary1)
         whenever(groupMembershipManager.getGroupSummary(summary2)).thenReturn(summary2)
 
-        whenever(groupMembershipManager.getGroupRoot(summary1.entryAdapter))
-            .thenReturn(summary1.entryAdapter)
-        whenever(groupMembershipManager.getGroupRoot(summary2.entryAdapter))
-            .thenReturn(summary2.entryAdapter)
-
         underTest = GroupExpansionManagerImpl(dumpManager, groupMembershipManager)
     }
 
@@ -221,4 +227,15 @@
         verify(listener).onGroupExpansionChange(summary1.row, false)
         verifyNoMoreInteractions(listener)
     }
+
+    @Test
+    @EnableFlags(NotificationBundleUi.FLAG_NAME)
+    fun isGroupExpanded() {
+        underTest.setGroupExpanded(summary1.entryAdapter, true)
+
+        assertThat(underTest.isGroupExpanded(summary1.entryAdapter)).isTrue();
+        assertThat(underTest.isGroupExpanded(
+            (entries[0] as? GroupEntry)?.getChildren()?.get(0)?.entryAdapter))
+            .isTrue();
+    }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/GroupMembershipManagerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/GroupMembershipManagerTest.kt
index dcbf44e..2bbf094 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/GroupMembershipManagerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/GroupMembershipManagerTest.kt
@@ -170,6 +170,21 @@
 
     @Test
     @EnableFlags(NotificationBundleUi.FLAG_NAME)
+    fun isChildEntryAdapterInGroup_child() {
+        val groupKey = "group"
+        val summary =
+            NotificationEntryBuilder()
+                .setGroup(mContext, groupKey)
+                .setGroupSummary(mContext, true)
+                .build()
+        val entry = NotificationEntryBuilder().setGroup(mContext, groupKey).build()
+        GroupEntryBuilder().setKey(groupKey).setSummary(summary).addChild(entry).build()
+
+        assertThat(underTest.isChildInGroup(entry.entryAdapter)).isTrue()
+    }
+
+    @Test
+    @EnableFlags(NotificationBundleUi.FLAG_NAME)
     fun isGroupRoot_topLevelEntry() {
         val entry = NotificationEntryBuilder().setParent(GroupEntry.ROOT_ENTRY).build()
         assertThat(underTest.isGroupRoot(entry.entryAdapter)).isFalse()
@@ -203,40 +218,4 @@
 
         assertThat(underTest.isGroupRoot(entry.entryAdapter)).isFalse()
     }
-
-    @Test
-    @EnableFlags(NotificationBundleUi.FLAG_NAME)
-    fun getGroupRoot_topLevelEntry() {
-        val entry = NotificationEntryBuilder().setParent(GroupEntry.ROOT_ENTRY).build()
-        assertThat(underTest.getGroupRoot(entry.entryAdapter)).isNull()
-    }
-
-    @Test
-    @EnableFlags(NotificationBundleUi.FLAG_NAME)
-    fun getGroupRoot_summary() {
-        val groupKey = "group"
-        val summary =
-            NotificationEntryBuilder()
-                .setGroup(mContext, groupKey)
-                .setGroupSummary(mContext, true)
-                .build()
-        GroupEntryBuilder().setKey(groupKey).setSummary(summary).build()
-
-        assertThat(underTest.getGroupRoot(summary.entryAdapter)).isEqualTo(summary.entryAdapter)
-    }
-
-    @Test
-    @EnableFlags(NotificationBundleUi.FLAG_NAME)
-    fun getGroupRoot_child() {
-        val groupKey = "group"
-        val summary =
-            NotificationEntryBuilder()
-                .setGroup(mContext, groupKey)
-                .setGroupSummary(mContext, true)
-                .build()
-        val entry = NotificationEntryBuilder().setGroup(mContext, groupKey).build()
-        GroupEntryBuilder().setKey(groupKey).setSummary(summary).addChild(entry).build()
-
-        assertThat(underTest.getGroupRoot(entry.entryAdapter)).isEqualTo(summary.entryAdapter)
-    }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/NodeSpecBuilderTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/NodeSpecBuilderTest.kt
index 99bd4fc..d9c9177 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/NodeSpecBuilderTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/NodeSpecBuilderTest.kt
@@ -26,6 +26,7 @@
 import com.android.systemui.statusbar.notification.collection.ListEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.getAttachState
 import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection
 import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
@@ -409,7 +410,7 @@
 ): NotifSection {
     return NotifSection(object : NotifSectioner("Section $index (bucket=$bucket)", bucket) {
 
-        override fun isInSection(entry: ListEntry?): Boolean {
+        override fun isInSection(entry: PipelineEntry?): Boolean {
             throw NotImplementedError("This should never be called")
         }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/RenderStageManagerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/RenderStageManagerTest.kt
index e6fbc72..4a05804 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/RenderStageManagerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/render/RenderStageManagerTest.kt
@@ -24,6 +24,7 @@
 import com.android.systemui.statusbar.notification.collection.ListEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.ShadeListBuilder
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnAfterRenderEntryListener
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnAfterRenderGroupListener
@@ -40,6 +41,7 @@
 import org.mockito.kotlin.times
 import org.mockito.kotlin.verify
 import org.mockito.kotlin.verifyNoMoreInteractions
+import java.nio.channels.Pipe
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
@@ -198,7 +200,7 @@
         )
 
     private class FakeNotifViewRenderer : NotifViewRenderer {
-        override fun onRenderList(notifList: List<ListEntry>) {}
+        override fun onRenderList(notifList: List<PipelineEntry>) {}
 
         override fun getGroupController(group: GroupEntry): NotifGroupController = mock()
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java
index f2131da..92ceb60 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java
@@ -101,6 +101,7 @@
 
 import kotlin.coroutines.CoroutineContext;
 
+import kotlinx.coroutines.flow.StateFlowKt;
 import kotlinx.coroutines.test.TestScope;
 
 import org.mockito.ArgumentCaptor;
@@ -166,11 +167,21 @@
         this(context, dependency, testLooper, new FakeFeatureFlagsClassic());
     }
 
+
     public NotificationTestHelper(
             Context context,
             TestableDependency dependency,
             @Nullable TestableLooper testLooper,
             @NonNull FakeFeatureFlagsClassic featureFlags) {
+        this(context, dependency, testLooper, featureFlags, mockHeadsUpManager());
+    }
+
+    public NotificationTestHelper(
+            Context context,
+            TestableDependency dependency,
+            @Nullable TestableLooper testLooper,
+            @NonNull FakeFeatureFlagsClassic featureFlags,
+            @NonNull HeadsUpManager headsUpManager) {
         mContext = context;
         mFeatureFlags = Objects.requireNonNull(featureFlags);
         dependency.injectTestDependency(FeatureFlagsClassic.class, mFeatureFlags);
@@ -182,7 +193,7 @@
         mKeyguardBypassController = mock(KeyguardBypassController.class);
         mGroupMembershipManager = mock(GroupMembershipManager.class);
         mGroupExpansionManager = mock(GroupExpansionManager.class);
-        mHeadsUpManager = mock(HeadsUpManager.class);
+        mHeadsUpManager = headsUpManager;
         mIconManager = new IconManager(
                 mock(CommonNotifCollection.class),
                 mock(LauncherApps.class),
@@ -689,6 +700,12 @@
                 .build();
     }
 
+    private static HeadsUpManager mockHeadsUpManager() {
+        HeadsUpManager mock = mock(HeadsUpManager.class);
+        when(mock.isTrackingHeadsUp()).thenReturn(StateFlowKt.MutableStateFlow(false));
+        return mock;
+    }
+
     private static class MockSmartReplyInflater implements SmartReplyStateInflater {
         @Override
         public InflatedSmartReplyState inflateSmartReplyState(NotificationEntry entry) {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationConversationTemplateViewWrapperTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationConversationTemplateViewWrapperTest.kt
index 9a6a699..bf6ee92 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationConversationTemplateViewWrapperTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationConversationTemplateViewWrapperTest.kt
@@ -75,9 +75,10 @@
         // Creates a mocked out NotificationEntry of ConversationLayout type,
         // with a mock imageMessage.drawable embedded in its MessagingImageMessages
         // (both top level, and in a group).
-        val mockDrawable = mock<AnimatedImageDrawable>()
-        val mockDrawable2 = mock<AnimatedImageDrawable>()
-        val mockLayoutView: View = fakeConversationLayout(mockDrawable, mockDrawable2)
+        val mockDrawableGroupMessage = mock<AnimatedImageDrawable>()
+        val mockDrawableImageMessage = mock<AnimatedImageDrawable>()
+        val mockLayoutView: View =
+            fakeConversationLayout(mockDrawableGroupMessage, mockDrawableImageMessage)
 
         val wrapper: NotificationViewWrapper =
             NotificationConversationTemplateViewWrapper(mContext, mockLayoutView, mRow)
@@ -85,8 +86,8 @@
         wrapper.setAnimationsRunning(false)
 
         // Verifies that each AnimatedImageDrawable is started animating.
-        verify(mockDrawable).stop()
-        verify(mockDrawable2).stop()
+        verify(mockDrawableGroupMessage).stop()
+        verify(mockDrawableImageMessage).stop()
     }
 
     private fun fakeConversationLayout(
@@ -135,6 +136,7 @@
                     .thenReturn(mock())
                 whenever(requireViewById<View>(R.id.app_name_text)).thenReturn(mock())
                 whenever(requireViewById<View>(R.id.conversation_text)).thenReturn(mock())
+                whenever(requireViewById<View>(R.id.title)).thenReturn(mock())
             }
         return mockView
     }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImplTest.kt
index 885e71e..ccc8be7 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImplTest.kt
@@ -80,7 +80,7 @@
             // THEN the magnetic and roundable targets are defined and the state is TARGETS_SET
             assertThat(underTest.currentState).isEqualTo(State.TARGETS_SET)
             assertThat(underTest.currentMagneticListeners.isNotEmpty()).isTrue()
-            assertThat(underTest.currentRoundableTargets).isNotNull()
+            assertThat(underTest.isSwipedViewRoundableSet).isTrue()
         }
 
     @Test
@@ -281,6 +281,19 @@
             assertThat(magneticAnimationsCancelled[neighborIndex]).isTrue()
         }
 
+    @Test
+    fun onResetRoundness_swipedRoundableGetsCleared() =
+        kosmos.testScope.runTest {
+            // GIVEN targets are set
+            setTargets()
+
+            // WHEN we reset the roundness
+            underTest.resetRoundness()
+
+            // THEN the swiped roundable gets cleared
+            assertThat(underTest.isSwipedViewRoundableSet).isFalse()
+        }
+
     @After
     fun tearDown() {
         // We reset the manager so that all MagneticRowListener can cancel all animations
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithmTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithmTest.kt
index 01ba4df..33211d4 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithmTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithmTest.kt
@@ -20,6 +20,7 @@
 import com.android.systemui.statusbar.NotificationShelf
 import com.android.systemui.statusbar.StatusBarState
 import com.android.systemui.statusbar.notification.RoundableState
+import com.android.systemui.statusbar.notification.collection.EntryAdapter
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.emptyshade.ui.view.EmptyShadeView
 import com.android.systemui.statusbar.notification.footer.ui.view.FooterView
@@ -56,6 +57,7 @@
     private val stackScrollAlgorithm = StackScrollAlgorithm(context, hostView)
     private val notificationRow = mock<ExpandableNotificationRow>()
     private val notificationEntry = mock<NotificationEntry>()
+    private val notificationEntryAdapter = mock<EntryAdapter>()
     private val dumpManager = mock<DumpManager>()
     private val mStatusBarKeyguardViewManager = mock<StatusBarKeyguardViewManager>()
     private val notificationShelf = mock<NotificationShelf>()
@@ -109,8 +111,10 @@
         Assume.assumeFalse(isTv())
         mDependency.injectTestDependency(FeatureFlags::class.java, featureFlags)
         whenever(notificationShelf.viewState).thenReturn(ExpandableViewState())
+        whenever(notificationRow.key).thenReturn("key")
         whenever(notificationRow.viewState).thenReturn(ExpandableViewState())
         whenever(notificationRow.entry).thenReturn(notificationEntry)
+        whenever(notificationRow.entryAdapter).thenReturn(notificationEntryAdapter)
         whenever(notificationRow.roundableState)
             .thenReturn(RoundableState(notificationRow, notificationRow, 0f))
         ambientState.isSmallScreen = true
@@ -146,6 +150,20 @@
     }
 
     @Test
+    @EnableSceneContainer
+    fun resetViewStates_defaultHun_hasShadow() {
+        val headsUpTop = 200f
+        ambientState.headsUpTop = headsUpTop
+
+        whenever(notificationRow.isPinned).thenReturn(true)
+        whenever(notificationRow.isHeadsUp).thenReturn(true)
+
+        stackScrollAlgorithm.resetViewStates(ambientState, 0)
+
+        assertThat(notificationRow.viewState.zTranslation).isGreaterThan(baseZ)
+    }
+
+    @Test
     @DisableSceneContainer
     fun resetViewStates_defaultHunWhenShadeIsOpening_yTranslationIsInset() {
         whenever(notificationRow.isPinned).thenReturn(true)
@@ -438,7 +456,11 @@
     @Test
     fun resetViewStates_hunsOverlapping_bottomHunClipped() {
         val topHun = mockExpandableNotificationRow()
+        whenever(topHun.key).thenReturn("key")
+        whenever(topHun.entryAdapter).thenReturn(notificationEntryAdapter)
         val bottomHun = mockExpandableNotificationRow()
+        whenever(bottomHun.key).thenReturn("key")
+        whenever(bottomHun.entryAdapter).thenReturn(notificationEntryAdapter)
         whenever(topHun.isHeadsUp).thenReturn(true)
         whenever(topHun.isPinned).thenReturn(true)
         whenever(bottomHun.isHeadsUp).thenReturn(true)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/StackStateAnimatorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/StackStateAnimatorTest.kt
index 67415de..e7be20e 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/StackStateAnimatorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/StackStateAnimatorTest.kt
@@ -88,6 +88,7 @@
                 /* delay= */ 0L,
                 /* duration= */ ANIMATION_DURATION_HEADS_UP_APPEAR.toLong(),
                 /* isHeadsUpAppear= */ true,
+                /* isHeadsUpCycling= */ false,
                 /* onEndRunnable= */ null,
             )
     }
@@ -111,6 +112,7 @@
                 /* delay= */ 0L,
                 /* duration= */ ANIMATION_DURATION_HEADS_UP_APPEAR.toLong(),
                 /* isHeadsUpAppear= */ true,
+                /* isHeadsUpCycling= */ false,
                 /* onEndRunnable= */ null,
             )
     }
@@ -128,6 +130,7 @@
                 /* delay= */ eq(0L),
                 /* translationDirection= */ eq(0f),
                 /* isHeadsUpAnimation= */ eq(true),
+                /* isHeadsUpCycling= */ eq(false),
                 /* onStartedRunnable= */ any(),
                 /* onFinishedRunnable= */ runnableCaptor.capture(),
                 /* animationListener= */ any(),
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelTest.kt
index 21297e3..e7c571d 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelTest.kt
@@ -17,14 +17,15 @@
 
 package com.android.systemui.statusbar.notification.stack.ui.viewmodel
 
+import android.platform.test.annotations.EnableFlags
 import android.platform.test.flag.junit.FlagsParameterization
 import androidx.test.filters.SmallTest
-import com.android.compose.animation.scene.ObservableTransitionState
+import com.android.systemui.Flags.FLAG_GLANCEABLE_HUB_V2
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.bouncer.data.repository.keyguardBouncerRepository
 import com.android.systemui.common.shared.model.NotificationContainerBounds
 import com.android.systemui.common.ui.data.repository.fakeConfigurationRepository
-import com.android.systemui.communal.data.repository.communalSceneRepository
+import com.android.systemui.communal.domain.interactor.communalSceneInteractor
 import com.android.systemui.communal.shared.model.CommunalScenes
 import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.coroutines.collectValues
@@ -54,11 +55,16 @@
 import com.android.systemui.keyguard.ui.viewmodel.ViewStateAccessor
 import com.android.systemui.keyguard.ui.viewmodel.aodBurnInViewModel
 import com.android.systemui.keyguard.ui.viewmodel.keyguardRootViewModel
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.runTest
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.res.R
 import com.android.systemui.scene.data.repository.Idle
 import com.android.systemui.scene.data.repository.Transition
 import com.android.systemui.scene.data.repository.setTransition
+import com.android.systemui.scene.domain.interactor.sceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
+import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.shade.domain.interactor.enableDualShade
 import com.android.systemui.shade.domain.interactor.enableSingleShade
@@ -125,7 +131,6 @@
         kosmos.sharedNotificationContainerInteractor
     }
     private val largeScreenHeaderHelper by lazy { kosmos.mockLargeScreenHeaderHelper }
-    private val communalSceneRepository by lazy { kosmos.communalSceneRepository }
 
     lateinit var underTest: SharedNotificationContainerViewModel
 
@@ -360,6 +365,8 @@
             assertThat(alpha).isEqualTo(1f)
 
             // Start transitioning to glanceable hub
+            kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "")
+
             val progress = 0.6f
             kosmos.setTransition(
                 sceneTransition = Transition(from = Scenes.Lockscreen, to = Scenes.Communal),
@@ -393,6 +400,7 @@
             assertThat(alpha).isIn(Range.closed(0f, 1f))
 
             // Finish transition to glanceable hub
+            kosmos.sceneInteractor.changeScene(Scenes.Communal, "")
             kosmos.setTransition(
                 sceneTransition = Idle(Scenes.Communal),
                 stateTransition =
@@ -429,6 +437,8 @@
             assertThat(alpha).isEqualTo(1f)
 
             // Start transitioning to glanceable hub
+            kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "")
+
             val progress = 0.6f
             kosmos.setTransition(
                 sceneTransition = Transition(from = Scenes.Lockscreen, to = Scenes.Communal),
@@ -461,6 +471,7 @@
             assertThat(alpha).isEqualTo(0)
 
             // Finish transition to glanceable hub
+            kosmos.sceneInteractor.changeScene(Scenes.Communal, "")
             kosmos.setTransition(
                 sceneTransition = Idle(Scenes.Communal),
                 stateTransition =
@@ -489,6 +500,8 @@
             assertThat(alpha).isEqualTo(0f)
 
             // Start transitioning to glanceable hub
+            kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "")
+
             val progress = 0.6f
             kosmos.setTransition(
                 sceneTransition = Transition(from = Scenes.Lockscreen, to = Scenes.Communal),
@@ -521,6 +534,7 @@
             assertThat(alpha).isEqualTo(0)
 
             // Finish transition to glanceable hub
+            kosmos.sceneInteractor.changeScene(Scenes.Communal, "")
             kosmos.setTransition(
                 sceneTransition = Idle(Scenes.Communal),
                 stateTransition =
@@ -584,13 +598,32 @@
             assertThat(isOnLockscreen).isTrue()
 
             kosmos.setTransition(
-                sceneTransition = Idle(Scenes.Bouncer),
+                sceneTransition = Idle(Scenes.Lockscreen, setOf(Overlays.Bouncer)),
                 stateTransition = TransitionStep(from = LOCKSCREEN, to = PRIMARY_BOUNCER),
             )
             assertThat(isOnLockscreen).isTrue()
         }
 
     @Test
+    @DisableSceneContainer
+    @EnableFlags(FLAG_GLANCEABLE_HUB_V2)
+    fun isOnLockscreenFalseWhenCommunalShowing() =
+        kosmos.runTest {
+            val isOnLockscreen by collectLastValue(underTest.isOnLockscreen)
+
+            setTransition(
+                sceneTransition = Idle(Scenes.Lockscreen, setOf(Overlays.Bouncer)),
+                stateTransition = TransitionStep(from = LOCKSCREEN, to = PRIMARY_BOUNCER),
+            )
+            assertThat(isOnLockscreen).isTrue()
+
+            testScope.showCommunalScene()
+
+            // If bouncer is showing over the hub, it should not be considered on lockscreen
+            assertThat(isOnLockscreen).isFalse()
+        }
+
+    @Test
     fun isOnLockscreenWithoutShade() =
         testScope.runTest {
             val isOnLockscreenWithoutShade by collectLastValue(underTest.isOnLockscreenWithoutShade)
@@ -637,6 +670,7 @@
             assertThat(isOnGlanceableHubWithoutShade).isFalse()
 
             // Move to glanceable hub
+            kosmos.sceneInteractor.changeScene(Scenes.Communal, "")
             kosmos.setTransition(
                 sceneTransition = Idle(Scenes.Communal),
                 stateTransition = TransitionStep(from = LOCKSCREEN, to = GLANCEABLE_HUB),
@@ -659,6 +693,7 @@
 
             shadeTestUtil.setQsExpansion(0f)
             shadeTestUtil.setLockscreenShadeExpansion(0f)
+            kosmos.sceneInteractor.changeScene(Scenes.Communal, "")
             kosmos.setTransition(
                 sceneTransition = Idle(Scenes.Communal),
                 stateTransition = TransitionStep(from = LOCKSCREEN, to = GLANCEABLE_HUB),
@@ -1472,20 +1507,24 @@
     }
 
     private fun TestScope.showCommunalScene() {
-        val transitionState =
-            MutableStateFlow<ObservableTransitionState>(
-                ObservableTransitionState.Idle(CommunalScenes.Communal)
-            )
-        communalSceneRepository.setTransitionState(transitionState)
+        val targetScene =
+            if (SceneContainerFlag.isEnabled) {
+                Scenes.Communal
+            } else {
+                CommunalScenes.Communal
+            }
+        kosmos.communalSceneInteractor.changeScene(targetScene, "test")
         runCurrent()
     }
 
     private fun TestScope.hideCommunalScene() {
-        val transitionState =
-            MutableStateFlow<ObservableTransitionState>(
-                ObservableTransitionState.Idle(CommunalScenes.Blank)
-            )
-        communalSceneRepository.setTransitionState(transitionState)
+        val targetScene =
+            if (SceneContainerFlag.isEnabled) {
+                Scenes.Lockscreen
+            } else {
+                CommunalScenes.Blank
+            }
+        kosmos.communalSceneInteractor.changeScene(targetScene, "test")
         runCurrent()
     }
 
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.kt
index bd76268..6a56716 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.kt
@@ -388,7 +388,7 @@
 
         // Pulsing: Enabled
         row.isHeadsUp = true
-        underTest.updateHeadsUpAndPulsingRoundness(entry)
+        underTest.updateHeadsUpAndPulsingRoundness(row)
 
         val debugString: String = row.roundableState.debugString()
         // If Pulsing is enabled, roundness should be set to 1
@@ -397,7 +397,7 @@
 
         // Pulsing: Disabled
         row.isHeadsUp = false
-        underTest.updateHeadsUpAndPulsingRoundness(entry)
+        underTest.updateHeadsUpAndPulsingRoundness(row)
 
         // If Pulsing is disabled, roundness should be set to 0
         assertThat(row.topRoundness.toDouble()).isWithin(0.001).of(0.0)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.kt
index baea1a1..47967b3 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.kt
@@ -54,6 +54,7 @@
 import com.android.systemui.statusbar.notification.interruption.VisualInterruptionRefactor
 import com.android.systemui.statusbar.notification.interruption.VisualInterruptionType
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
+import com.android.systemui.statusbar.notification.shared.NotificationBundleUi
 import com.android.systemui.statusbar.notification.stack.notificationStackScrollLayoutController
 import com.android.systemui.statusbar.notification.visualInterruptionDecisionProvider
 import com.android.systemui.statusbar.notificationLockscreenUserManager
@@ -293,6 +294,7 @@
 
     @Test
     @EnableSceneContainer
+    @DisableFlags(NotificationBundleUi.FLAG_NAME)
     fun testExpandSensitiveNotification_onLockScreen_opensShade() =
         kosmos.runTest {
             // Given we are on the keyguard
@@ -303,11 +305,10 @@
             )
 
             // When the user expands a sensitive Notification
-            val row = createRow()
-            val entry =
-                row.entry.apply { setSensitive(/* sensitive= */ true, /* deviceSensitive= */ true) }
+            val row = createRow(createNotificationEntry())
+            row.entry.apply { setSensitive(/* sensitive= */ true, /* deviceSensitive= */ true) }
 
-            underTest.onExpandClicked(entry, mock(), /* nowExpanded= */ true)
+            underTest.onExpandClicked(row.entry, mock(), /* nowExpanded= */ true)
 
             // Then we open the locked shade
             verify(kosmos.lockscreenShadeTransitionController)
@@ -317,6 +318,32 @@
 
     @Test
     @EnableSceneContainer
+    @EnableFlags(NotificationBundleUi.FLAG_NAME)
+    fun testExpandSensitiveNotification_onLockScreen_opensShade_entryAdapter() =
+        kosmos.runTest {
+            // Given we are on the keyguard
+            kosmos.sysuiStatusBarStateController.state = StatusBarState.KEYGUARD
+            // And the device is locked
+            kosmos.fakeAuthenticationRepository.setAuthenticationMethod(
+                AuthenticationMethodModel.Pin
+            )
+
+            // When the user expands a sensitive Notification
+            val entry = createNotificationEntry()
+            val row = createRow(entry)
+            entry.setSensitive(/* sensitive= */ true, /* deviceSensitive= */ true)
+
+            underTest.onExpandClicked(row, row.entryAdapter, /* nowExpanded= */ true)
+
+            // Then we open the locked shade
+            verify(kosmos.lockscreenShadeTransitionController)
+                // Explicit parameters to avoid issues with Kotlin default arguments in Mockito
+                .goToLockedShade(row, true)
+        }
+
+    @Test
+    @EnableSceneContainer
+    @DisableFlags(NotificationBundleUi.FLAG_NAME)
     fun testExpandSensitiveNotification_onLockedShade_showsBouncer() =
         kosmos.runTest {
             // Given we are on the locked shade
@@ -328,7 +355,7 @@
 
             // When the user expands a sensitive Notification
             val entry =
-                createRow().entry.apply {
+                createRow(createNotificationEntry()).entry.apply {
                     setSensitive(/* sensitive= */ true, /* deviceSensitive= */ true)
                 }
             underTest.onExpandClicked(entry, mock(), /* nowExpanded= */ true)
@@ -337,6 +364,29 @@
             verify(kosmos.activityStarter).dismissKeyguardThenExecute(any(), eq(null), eq(false))
         }
 
+    @Test
+    @EnableSceneContainer
+    @EnableFlags(NotificationBundleUi.FLAG_NAME)
+    fun testExpandSensitiveNotification_onLockedShade_showsBouncer_entryAdapter() =
+        kosmos.runTest {
+            // Given we are on the locked shade
+            kosmos.sysuiStatusBarStateController.state = StatusBarState.SHADE_LOCKED
+            // And the device is locked
+            kosmos.fakeAuthenticationRepository.setAuthenticationMethod(
+                AuthenticationMethodModel.Pin
+            )
+
+            // When the user expands a sensitive Notification
+            val entry = createNotificationEntry()
+            val row = createRow(entry)
+            entry.setSensitive(/* sensitive= */ true, /* deviceSensitive= */ true)
+
+            underTest.onExpandClicked(row, row.entryAdapter, /* nowExpanded= */ true)
+
+            // Then we show the bouncer
+            verify(kosmos.activityStarter).dismissKeyguardThenExecute(any(), eq(null), eq(false))
+        }
+
     private fun createPresenter(): StatusBarNotificationPresenter {
         val initController: InitController = InitController()
         return StatusBarNotificationPresenter(
@@ -398,10 +448,13 @@
         interruptSuppressor = suppressorCaptor.lastValue
     }
 
-    private fun createRow(): ExpandableNotificationRow {
+    private fun createRow(entry: NotificationEntry): ExpandableNotificationRow {
         val row: ExpandableNotificationRow = mock()
-        val entry: NotificationEntry = createNotificationEntry()
-        whenever(row.entry).thenReturn(entry)
+        if (NotificationBundleUi.isEnabled) {
+            whenever(row.entryAdapter).thenReturn(entry.entryAdapter)
+        } else {
+            whenever(row.entry).thenReturn(entry)
+        }
         entry.row = row
         return row
     }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/domain/interactor/KeyguardBypassInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/domain/interactor/KeyguardBypassInteractorTest.kt
index 091fbb6..c966f52 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/domain/interactor/KeyguardBypassInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/phone/domain/interactor/KeyguardBypassInteractorTest.kt
@@ -29,6 +29,7 @@
 import com.android.systemui.keyguard.domain.interactor.pulseExpansionInteractor
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.scene.domain.interactor.sceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.shade.shadeTestUtil
 import com.android.systemui.testKosmos
@@ -147,10 +148,11 @@
     }
 
     private fun setScene(bouncerShowing: Boolean, onLockscreenScene: Boolean) {
-        if (bouncerShowing) {
-            kosmos.sceneInteractor.changeScene(Scenes.Bouncer, "reason")
-        } else if (onLockscreenScene) {
+        if (onLockscreenScene) {
             kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "reason")
+            if (bouncerShowing) {
+                kosmos.sceneInteractor.showOverlay(Overlays.Bouncer, "reason")
+            }
         } else {
             kosmos.sceneInteractor.changeScene(Scenes.Shade, "reason")
         }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/StackedMobileIconViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/StackedMobileIconViewModelTest.kt
new file mode 100644
index 0000000..20bdebd
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/StackedMobileIconViewModelTest.kt
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2025 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.pipeline.mobile.ui.viewmodel
+
+import android.platform.test.annotations.EnableFlags
+import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.common.shared.model.Icon
+import com.android.systemui.flags.Flags
+import com.android.systemui.flags.fakeFeatureFlagsClassic
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.Kosmos.Fixture
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
+import com.android.systemui.lifecycle.activateIn
+import com.android.systemui.statusbar.core.NewStatusBarIcons
+import com.android.systemui.statusbar.core.StatusBarRootModernization
+import com.android.systemui.statusbar.pipeline.mobile.data.model.SubscriptionModel
+import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.fakeMobileIconsInteractor
+import com.android.systemui.statusbar.pipeline.mobile.domain.model.SignalIconModel
+import com.android.systemui.testKosmos
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class StackedMobileIconViewModelTest : SysuiTestCase() {
+    private val kosmos = testKosmos().useUnconfinedTestDispatcher()
+    private val testScope = kosmos.testScope
+
+    private val Kosmos.underTest: StackedMobileIconViewModel by Fixture {
+        stackedMobileIconViewModel
+    }
+
+    @Before
+    fun setUp() {
+        kosmos.fakeFeatureFlagsClassic.set(Flags.NEW_NETWORK_SLICE_UI, false)
+        kosmos.underTest.activateIn(testScope)
+    }
+
+    @Test
+    @EnableFlags(NewStatusBarIcons.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    fun dualSim_filtersOutNonDualConnections() =
+        kosmos.runTest {
+            fakeMobileIconsInteractor.filteredSubscriptions.value = listOf()
+            assertThat(underTest.dualSim).isNull()
+
+            fakeMobileIconsInteractor.filteredSubscriptions.value = listOf(SUB_1)
+            assertThat(underTest.dualSim).isNull()
+
+            fakeMobileIconsInteractor.filteredSubscriptions.value = listOf(SUB_1, SUB_2, SUB_3)
+            assertThat(underTest.dualSim).isNull()
+
+            fakeMobileIconsInteractor.filteredSubscriptions.value = listOf(SUB_1, SUB_2)
+            assertThat(underTest.dualSim).isNotNull()
+        }
+
+    @Test
+    @EnableFlags(NewStatusBarIcons.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    fun dualSim_filtersOutNonCellularIcons() =
+        kosmos.runTest {
+            fakeMobileIconsInteractor.filteredSubscriptions.value = listOf(SUB_1)
+            assertThat(underTest.dualSim).isNull()
+
+            fakeMobileIconsInteractor
+                .getInteractorForSubId(SUB_1.subscriptionId)!!
+                .signalLevelIcon
+                .value =
+                SignalIconModel.Satellite(
+                    level = 0,
+                    icon = Icon.Resource(res = 0, contentDescription = null),
+                )
+            fakeMobileIconsInteractor.filteredSubscriptions.value = listOf(SUB_1, SUB_2)
+            assertThat(underTest.dualSim).isNull()
+        }
+
+    @Test
+    @EnableFlags(NewStatusBarIcons.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    fun dualSim_tracksActiveSubId() =
+        kosmos.runTest {
+            // Active sub id is null, order is unchanged
+            fakeMobileIconsInteractor.filteredSubscriptions.value = listOf(SUB_1, SUB_2)
+            setIconLevel(SUB_1.subscriptionId, 1)
+            setIconLevel(SUB_2.subscriptionId, 2)
+
+            assertThat(underTest.dualSim!!.primary.level).isEqualTo(1)
+            assertThat(underTest.dualSim!!.secondary.level).isEqualTo(2)
+
+            // Active sub is 2, order is swapped
+            fakeMobileIconsInteractor.activeMobileDataSubscriptionId.value = SUB_2.subscriptionId
+
+            assertThat(underTest.dualSim!!.primary.level).isEqualTo(2)
+            assertThat(underTest.dualSim!!.secondary.level).isEqualTo(1)
+        }
+
+    private fun setIconLevel(subId: Int, level: Int) {
+        with(kosmos.fakeMobileIconsInteractor.getInteractorForSubId(subId)!!) {
+            signalLevelIcon.value =
+                (signalLevelIcon.value as SignalIconModel.Cellular).copy(level = level)
+        }
+    }
+
+    companion object {
+        private val SUB_1 =
+            SubscriptionModel(
+                subscriptionId = 1,
+                isOpportunistic = false,
+                carrierName = "Carrier 1",
+                profileClass = PROFILE_CLASS_UNSET,
+            )
+        private val SUB_2 =
+            SubscriptionModel(
+                subscriptionId = 2,
+                isOpportunistic = false,
+                carrierName = "Carrier 2",
+                profileClass = PROFILE_CLASS_UNSET,
+            )
+        private val SUB_3 =
+            SubscriptionModel(
+                subscriptionId = 3,
+                isOpportunistic = false,
+                carrierName = "Carrier 3",
+                profileClass = PROFILE_CLASS_UNSET,
+            )
+    }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/satellite/domain/interactor/DeviceBasedSatelliteInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/satellite/domain/interactor/DeviceBasedSatelliteInteractorTest.kt
index 9ad2315..29c6260 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/satellite/domain/interactor/DeviceBasedSatelliteInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/satellite/domain/interactor/DeviceBasedSatelliteInteractorTest.kt
@@ -16,11 +16,8 @@
 
 package com.android.systemui.statusbar.pipeline.satellite.domain.interactor
 
-import android.platform.test.annotations.DisableFlags
-import android.platform.test.annotations.EnableFlags
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import com.android.internal.telephony.flags.Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.coroutines.collectLastValue
 import com.android.systemui.log.core.FakeLogBuffer
@@ -71,7 +68,6 @@
     }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun isSatelliteAllowed_falseWhenNotAllowed() =
         testScope.runTest {
             val latest by collectLastValue(underTest.isSatelliteAllowed)
@@ -84,7 +80,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun isSatelliteAllowed_trueWhenAllowed() =
         testScope.runTest {
             val latest by collectLastValue(underTest.isSatelliteAllowed)
@@ -97,33 +92,6 @@
         }
 
     @Test
-    @DisableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
-    fun isSatelliteAllowed_offWhenFlagIsOff() =
-        testScope.runTest {
-            // GIVEN feature is disabled
-
-            // Remake the interactor so the flag is read
-            underTest =
-                DeviceBasedSatelliteInteractor(
-                    repo,
-                    iconsInteractor,
-                    wifiInteractor,
-                    testScope.backgroundScope,
-                    FakeLogBuffer.Factory.create(),
-                    mock(),
-                )
-
-            val latest by collectLastValue(underTest.isSatelliteAllowed)
-
-            // WHEN satellite is allowed
-            repo.isSatelliteAllowedForCurrentLocation.value = true
-
-            // THEN the interactor returns false due to the flag value
-            assertThat(latest).isFalse()
-        }
-
-    @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun connectionState_matchesRepositoryValue() =
         testScope.runTest {
             val latest by collectLastValue(underTest.connectionState)
@@ -146,45 +114,6 @@
         }
 
     @Test
-    @DisableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
-    fun connectionState_offWhenFeatureIsDisabled() =
-        testScope.runTest {
-            // GIVEN the flag is disabled
-
-            // Remake the interactor so the flag is read
-            underTest =
-                DeviceBasedSatelliteInteractor(
-                    repo,
-                    iconsInteractor,
-                    wifiInteractor,
-                    testScope.backgroundScope,
-                    FakeLogBuffer.Factory.create(),
-                    mock(),
-                )
-
-            val latest by collectLastValue(underTest.connectionState)
-
-            // THEN the state is always Off, regardless of status in system_server
-
-            // Off
-            repo.connectionState.value = SatelliteConnectionState.Off
-            assertThat(latest).isEqualTo(SatelliteConnectionState.Off)
-
-            // On
-            repo.connectionState.value = SatelliteConnectionState.On
-            assertThat(latest).isEqualTo(SatelliteConnectionState.Off)
-
-            // Connected
-            repo.connectionState.value = SatelliteConnectionState.Connected
-            assertThat(latest).isEqualTo(SatelliteConnectionState.Off)
-
-            // Unknown
-            repo.connectionState.value = SatelliteConnectionState.Unknown
-            assertThat(latest).isEqualTo(SatelliteConnectionState.Off)
-        }
-
-    @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun signalStrength_matchesRepo() =
         testScope.runTest {
             val latest by collectLastValue(underTest.signalStrength)
@@ -203,40 +132,6 @@
         }
 
     @Test
-    @DisableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
-    fun signalStrength_zeroWhenDisabled() =
-        testScope.runTest {
-            // GIVEN the flag is enabled
-
-            // Remake the interactor so the flag is read
-            underTest =
-                DeviceBasedSatelliteInteractor(
-                    repo,
-                    iconsInteractor,
-                    wifiInteractor,
-                    testScope.backgroundScope,
-                    FakeLogBuffer.Factory.create(),
-                    mock(),
-                )
-
-            val latest by collectLastValue(underTest.signalStrength)
-
-            // THEN the value is always 0, regardless of what the system says
-            repo.signalStrength.value = 1
-            assertThat(latest).isEqualTo(0)
-
-            repo.signalStrength.value = 2
-            assertThat(latest).isEqualTo(0)
-
-            repo.signalStrength.value = 3
-            assertThat(latest).isEqualTo(0)
-
-            repo.signalStrength.value = 4
-            assertThat(latest).isEqualTo(0)
-        }
-
-    @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_noConnections_noDeviceEmergencyCalls_yes() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -251,7 +146,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_noConnections_deviceEmergencyCalls_yes() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -266,7 +160,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_oneConnectionInService_thenLost_noDeviceEmergencyCalls_yes() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -292,7 +185,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_oneConnectionInService_thenLost_deviceEmergencyCalls_no() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -318,7 +210,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_twoConnectionsOos_nonNtn_noDeviceEmergencyCalls_yes() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -342,7 +233,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_twoConnectionsOos_nonNtn_deviceEmergencyCalls_no() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -366,7 +256,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_twoConnectionsOos_noDeviceEmergencyCalls_oneNtn_no() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -392,7 +281,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_oneConnectionOos_noDeviceEmergencyCalls_nonNtn_yes() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -412,7 +300,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_oneConnectionOos_nonNtn_no() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -432,7 +319,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_oneConnectionOos_ntn_no() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -450,7 +336,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_oneConnectionInService_nonNtn_no() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -467,7 +352,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_oneConnectionInService_ntn_no() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -484,7 +368,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_twoConnectionsOneInService_nonNtn_no() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -504,7 +387,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun areAllConnectionsOutOfService_twoConnectionsInService_nonNtn_no() =
         testScope.runTest {
             val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
@@ -522,37 +404,6 @@
         }
 
     @Test
-    @DisableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
-    fun areAllConnectionsOutOfService_falseWhenFlagIsOff() =
-        testScope.runTest {
-            // GIVEN the flag is disabled
-
-            // Remake the interactor so the flag is read
-            underTest =
-                DeviceBasedSatelliteInteractor(
-                    repo,
-                    iconsInteractor,
-                    wifiInteractor,
-                    testScope.backgroundScope,
-                    FakeLogBuffer.Factory.create(),
-                    mock(),
-                )
-
-            val latest by collectLastValue(underTest.areAllConnectionsOutOfService)
-
-            // GIVEN a condition that should return true (all conections OOS)
-
-            val i1 = iconsInteractor.getMobileConnectionInteractorForSubId(1)
-            val i2 = iconsInteractor.getMobileConnectionInteractorForSubId(2)
-
-            i1.isInService.value = true
-            i2.isInService.value = true
-
-            // THEN the value is still false, because the flag is off
-            assertThat(latest).isFalse()
-        }
-
-    @Test
     fun isWifiActive_falseWhenWifiNotActive() =
         testScope.runTest {
             val latest by collectLastValue(underTest.isWifiActive)
@@ -577,7 +428,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun isAnyConnectionNtn_trueWhenAnyNtn() =
         testScope.runTest {
             val latest by collectLastValue(underTest.isAnyConnectionNtn)
@@ -595,7 +445,6 @@
         }
 
     @Test
-    @EnableFlags(FLAG_OEM_ENABLED_SATELLITE_FLAG)
     fun isAnyConnectionNtn_falseWhenNoNtn() =
         testScope.runTest {
             val latest by collectLastValue(underTest.isAnyConnectionNtn)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/FakeHomeStatusBarViewModel.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/FakeHomeStatusBarViewModel.kt
index eb961bd..f91e3a6 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/FakeHomeStatusBarViewModel.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/FakeHomeStatusBarViewModel.kt
@@ -64,6 +64,8 @@
 
     override val isHomeStatusBarAllowedByScene = MutableStateFlow(false)
 
+    override val canShowOngoingActivityChips: Flow<Boolean> = MutableStateFlow(false)
+
     override val batteryViewModelFactory: BatteryViewModel.Factory =
         object : BatteryViewModel.Factory {
             override fun create(): BatteryViewModel = mock(BatteryViewModel::class.java)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt
index 51484ba..7e8ee1b 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt
@@ -522,11 +522,12 @@
         }
 
     @Test
-    fun isHomeStatusBarAllowedByScene_sceneBouncer_false() =
+    fun isHomeStatusBarAllowedByScene_overlayBouncer_false() =
         kosmos.runTest {
             val latest by collectLastValue(underTest.isHomeStatusBarAllowedByScene)
 
-            kosmos.sceneContainerRepository.snapToScene(Scenes.Bouncer)
+            kosmos.sceneContainerRepository.snapToScene(Scenes.Lockscreen)
+            kosmos.sceneContainerRepository.showOverlay(Overlays.Bouncer)
 
             assertThat(latest).isFalse()
         }
@@ -678,6 +679,60 @@
         }
 
     @Test
+    fun canShowOngoingActivityChips_statusBarHidden_noSecureCamera_noHun_false() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.canShowOngoingActivityChips)
+
+            // home status bar not allowed
+            kosmos.sceneContainerRepository.snapToScene(Scenes.Lockscreen)
+            kosmos.keyguardOcclusionRepository.setShowWhenLockedActivityInfo(false, taskInfo = null)
+
+            assertThat(latest).isFalse()
+        }
+
+    @Test
+    fun canShowOngoingActivityChips_statusBarNotHidden_noSecureCamera_noHun_true() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.canShowOngoingActivityChips)
+
+            transitionKeyguardToGone()
+
+            assertThat(latest).isTrue()
+        }
+
+    @Test
+    fun canShowOngoingActivityChips_statusBarNotHidden_secureCamera_noHun_false() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.canShowOngoingActivityChips)
+
+            fakeKeyguardTransitionRepository.sendTransitionSteps(
+                from = KeyguardState.LOCKSCREEN,
+                to = KeyguardState.OCCLUDED,
+                testScope = testScope,
+            )
+            kosmos.keyguardInteractor.onCameraLaunchDetected(CAMERA_LAUNCH_SOURCE_POWER_DOUBLE_TAP)
+
+            assertThat(latest).isFalse()
+        }
+
+    @Test
+    fun canShowOngoingActivityChips_statusBarNotHidden_noSecureCamera_hun_false() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.canShowOngoingActivityChips)
+
+            transitionKeyguardToGone()
+
+            headsUpNotificationRepository.setNotifications(
+                UnconfinedFakeHeadsUpRowRepository(
+                    key = "key",
+                    pinnedStatus = MutableStateFlow(PinnedStatus.PinnedByUser),
+                )
+            )
+
+            assertThat(latest).isFalse()
+        }
+
+    @Test
     fun isClockVisible_allowedByDisableFlags_visible() =
         kosmos.runTest {
             val latest by collectLastValue(underTest.isClockVisible)
@@ -998,7 +1053,8 @@
             val notifIconsVisible by collectLastValue(underTest.isNotificationIconContainerVisible)
             val systemInfoVisible by collectLastValue(underTest.systemInfoCombinedVis)
 
-            kosmos.sceneContainerRepository.snapToScene(Scenes.Bouncer)
+            kosmos.sceneContainerRepository.snapToScene(Scenes.Lockscreen)
+            kosmos.sceneContainerRepository.showOverlay(Overlays.Bouncer)
 
             assertThat(clockVisible!!.visibility).isEqualTo(View.INVISIBLE)
             assertThat(notifIconsVisible!!.visibility).isEqualTo(View.GONE)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt
index 4ab1c0b..fea0320 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt
@@ -154,7 +154,8 @@
         testScope.runTest {
             val latest by collectLastValue(underTest.isVisible)
 
-            kosmos.sceneContainerRepository.snapToScene(Scenes.Bouncer)
+            kosmos.sceneContainerRepository.snapToScene(Scenes.Lockscreen)
+            kosmos.sceneContainerRepository.showOverlay(Overlays.Bouncer)
 
             assertThat(latest).isFalse()
         }
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockPickerConfig.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockPickerConfig.kt
index 6e4dc14..0cbc30d 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockPickerConfig.kt
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockPickerConfig.kt
@@ -34,6 +34,9 @@
 
     /** Font axes that can be modified on this clock */
     val axes: List<ClockFontAxis> = listOf(),
+
+    /** List of font presets for this clock. Can be assigned directly. */
+    val axisPresets: List<List<ClockFontAxisSetting>> = listOf(),
 )
 
 /** Represents an Axis that can be modified */
diff --git a/packages/SystemUI/pods/Android.bp b/packages/SystemUI/pods/Android.bp
index e45f317..588a074 100644
--- a/packages/SystemUI/pods/Android.bp
+++ b/packages/SystemUI/pods/Android.bp
@@ -20,3 +20,14 @@
     // specify default_visibility:
     default_visibility: ["//visibility:private"],
 }
+
+java_defaults {
+    name: "SystemUI_pod_defaults",
+    libs: [
+        "jsr330",
+    ],
+    kotlincflags: [
+        "-Xjvm-default=all",
+    ],
+    defaults_visibility: [":__subpackages__"],
+}
diff --git a/packages/SystemUI/pods/com/android/systemui/dagger/Android.bp b/packages/SystemUI/pods/com/android/systemui/dagger/Android.bp
index df90be8..72c41bb 100644
--- a/packages/SystemUI/pods/com/android/systemui/dagger/Android.bp
+++ b/packages/SystemUI/pods/com/android/systemui/dagger/Android.bp
@@ -14,21 +14,18 @@
 // limitations under the License.
 //
 
-soong_namespace {
-}
-
 package {
     default_applicable_licenses: ["frameworks_base_packages_SystemUI_license"],
 }
 
 java_library {
-    name: "api",
+    name: "com.android.systemui.dagger-api",
     srcs: [
         "**/*.java",
         "**/*.kt",
     ],
-    libs: [
-        "jsr330",
+    defaults: [
+        "SystemUI_pod_defaults",
     ],
     visibility: ["//frameworks/base/packages/SystemUI:__subpackages__"],
 }
diff --git a/packages/SystemUI/pods/com/android/systemui/retail/Android.bp b/packages/SystemUI/pods/com/android/systemui/retail/Android.bp
index f047848..639eae9 100644
--- a/packages/SystemUI/pods/com/android/systemui/retail/Android.bp
+++ b/packages/SystemUI/pods/com/android/systemui/retail/Android.bp
@@ -14,25 +14,24 @@
 // limitations under the License.
 //
 
-soong_namespace {
-}
-
 package {
     default_applicable_licenses: ["frameworks_base_packages_SystemUI_license"],
 }
 
 java_library {
-    name: "impl",
+    name: "com.android.systemui.retail-impl",
     srcs: ["*.kt"],
     libs: [
-        "jsr330",
         "dagger2",
         "SystemUICommon",
         "kotlinx_coroutines",
     ],
-    static_libs: [
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail/data:impl",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail/domain:impl",
+    defaults: [
+        "SystemUI_pod_defaults",
     ],
-    visibility: ["//frameworks/base/packages/SystemUI"],
+    static_libs: [
+        "com.android.systemui.retail.data-impl",
+        "com.android.systemui.retail.domain-impl",
+    ],
+    visibility: ["//frameworks/base/packages/SystemUI:__pkg__"],
 }
diff --git a/packages/SystemUI/pods/com/android/systemui/retail/data/Android.bp b/packages/SystemUI/pods/com/android/systemui/retail/data/Android.bp
index f148a7c..1aa41e4 100644
--- a/packages/SystemUI/pods/com/android/systemui/retail/data/Android.bp
+++ b/packages/SystemUI/pods/com/android/systemui/retail/data/Android.bp
@@ -14,42 +14,44 @@
 // limitations under the License.
 //
 
-soong_namespace {
-}
-
 package {
     default_applicable_licenses: ["frameworks_base_packages_SystemUI_license"],
 }
 
 java_library {
-    name: "api",
+    name: "com.android.systemui.retail.data-api",
     srcs: ["repository/*.kt"],
     libs: [
         "kotlinx_coroutines",
     ],
+    defaults: [
+        "SystemUI_pod_defaults",
+    ],
     visibility: [
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail/dagger",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail/domain",
+        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail:__pkg__",
+        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail/dagger:__pkg__",
+        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail/domain:__pkg__",
     ],
 }
 
 java_library {
-    name: "impl",
+    name: "com.android.systemui.retail.data-impl",
     srcs: ["repository/impl/*.kt"],
     libs: [
-        "jsr330",
         "kotlinx_coroutines",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/dagger:api",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/util/settings:api",
+        "com.android.systemui.dagger-api",
+        "com.android.systemui.util.settings-api",
         "SystemUICommon",
     ],
     static_libs: [
-        "api",
+        "com.android.systemui.retail.data-api",
+    ],
+    defaults: [
+        "SystemUI_pod_defaults",
     ],
     visibility: [
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail/dagger",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail/domain",
+        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail:__pkg__",
+        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail/dagger:__pkg__",
+        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail/domain:__pkg__",
     ],
 }
diff --git a/packages/SystemUI/pods/com/android/systemui/retail/domain/Android.bp b/packages/SystemUI/pods/com/android/systemui/retail/domain/Android.bp
index 787861c..64b0e22 100644
--- a/packages/SystemUI/pods/com/android/systemui/retail/domain/Android.bp
+++ b/packages/SystemUI/pods/com/android/systemui/retail/domain/Android.bp
@@ -14,33 +14,35 @@
 // limitations under the License.
 //
 
-soong_namespace {
-}
-
 package {
     default_applicable_licenses: ["frameworks_base_packages_SystemUI_license"],
 }
 
 java_library {
-    name: "api",
+    name: "com.android.systemui.retail.domain-api",
     srcs: ["interactor/*.kt"],
+    defaults: [
+        "SystemUI_pod_defaults",
+    ],
     visibility: [
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail",
+        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail:__pkg__",
     ],
 }
 
 java_library {
-    name: "impl",
+    name: "com.android.systemui.retail.domain-impl",
     srcs: ["interactor/impl/*.kt"],
     libs: [
-        "jsr330",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/dagger:api",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail/data:api",
+        "com.android.systemui.dagger-api",
+        "com.android.systemui.retail.data-api",
     ],
     static_libs: [
-        "api",
+        "com.android.systemui.retail.domain-api",
+    ],
+    defaults: [
+        "SystemUI_pod_defaults",
     ],
     visibility: [
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail",
+        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/retail:__pkg__",
     ],
 }
diff --git a/packages/SystemUI/pods/com/android/systemui/util/settings/Android.bp b/packages/SystemUI/pods/com/android/systemui/util/settings/Android.bp
index 1aa7729..d97ff13 100644
--- a/packages/SystemUI/pods/com/android/systemui/util/settings/Android.bp
+++ b/packages/SystemUI/pods/com/android/systemui/util/settings/Android.bp
@@ -14,27 +14,25 @@
 // limitations under the License.
 //
 
-soong_namespace {
-}
-
 package {
     default_applicable_licenses: ["frameworks_base_packages_SystemUI_license"],
 }
 
 java_library {
-    name: "api",
+    name: "com.android.systemui.util.settings-api",
     srcs: [
         "*.java",
         "*.kt",
     ],
     libs: [
         "//frameworks/libs/systemui:tracinglib-platform",
-        "//frameworks/base/packages/SystemUI/pods/com/android/systemui/dagger:api",
+        "com.android.systemui.dagger-api",
         "SystemUICommon",
         "androidx.annotation_annotation",
         "kotlinx_coroutines_android",
-        "jsr330",
     ],
-    kotlincflags: ["-Xjvm-default=all"],
+    defaults: [
+        "SystemUI_pod_defaults",
+    ],
     visibility: ["//frameworks/base/packages/SystemUI:__subpackages__"],
 }
diff --git a/packages/SystemUI/res-keyguard/values-es-rUS/strings.xml b/packages/SystemUI/res-keyguard/values-es-rUS/strings.xml
index e7116d6..7e5ff8c 100644
--- a/packages/SystemUI/res-keyguard/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-es-rUS/strings.xml
@@ -21,11 +21,11 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="keyguard_enter_your_pin" msgid="5429932527814874032">"Ingresa tu PIN"</string>
-    <string name="keyguard_enter_pin" msgid="8114529922480276834">"Ingresar PIN"</string>
+    <string name="keyguard_enter_pin" msgid="8114529922480276834">"Ingresa el PIN"</string>
     <string name="keyguard_enter_your_pattern" msgid="351503370332324745">"Ingresa tu patrón"</string>
-    <string name="keyguard_enter_pattern" msgid="7616595160901084119">"Dibujar patrón"</string>
+    <string name="keyguard_enter_pattern" msgid="7616595160901084119">"Dibuja el patrón"</string>
     <string name="keyguard_enter_your_password" msgid="7225626204122735501">"Ingresa tu contraseña"</string>
-    <string name="keyguard_enter_password" msgid="6483623792371009758">"Ingresar contraseña"</string>
+    <string name="keyguard_enter_password" msgid="6483623792371009758">"Ingresa la contraseña"</string>
     <string name="keyguard_sim_error_message_short" msgid="633630844240494070">"Tarjeta no válida"</string>
     <string name="keyguard_charged" msgid="5478247181205188995">"Cargada"</string>
     <string name="keyguard_plugged_in_wireless" msgid="2537874724955057383">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Cargando de manera inalámbrica"</string>
@@ -62,9 +62,9 @@
     <string name="kg_bio_try_again_or_pin" msgid="4752168242723808390">"Vuelve a intentarlo o ingresa el PIN"</string>
     <string name="kg_bio_try_again_or_password" msgid="1473132729225398039">"Vuelve a intentarlo o ingresa la contraseña"</string>
     <string name="kg_bio_try_again_or_pattern" msgid="4867893307468801501">"Vuelve a intentarlo o dibuja el patrón"</string>
-    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Se requiere PIN luego de demasiados intentos"</string>
-    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Se requiere contraseña luego de demasiados intentos"</string>
-    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Se requiere patrón luego de demasiados intentos"</string>
+    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Debes ingresar un PIN luego de demasiados intentos"</string>
+    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Debes ingresar una contraseña luego de demasiados intentos"</string>
+    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Debes ingresar un patrón luego de demasiados intentos"</string>
     <string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"Desbloquear con PIN o huella dactilar"</string>
     <string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"Desbloq. contraseña/huella"</string>
     <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"Desbloq. patrón/huella"</string>
@@ -104,7 +104,7 @@
     <string name="kg_password_pin_failed" msgid="5136259126330604009">"Se produjo un error al desbloquear la tarjeta SIM con el PIN."</string>
     <string name="kg_password_puk_failed" msgid="6778867411556937118">"Se produjo un error al desbloquear la tarjeta SIM con el PUK."</string>
     <string name="accessibility_ime_switch_button" msgid="9082358310194861329">"Cambiar método de entrada"</string>
-    <string name="airplane_mode" msgid="2528005343938497866">"Modo de avión"</string>
+    <string name="airplane_mode" msgid="2528005343938497866">"Modo avión"</string>
     <string name="kg_prompt_reason_restart_pattern" msgid="3321211830602827742">"Se requiere patrón tras reiniciar dispositivo"</string>
     <string name="kg_prompt_reason_restart_pin" msgid="2672166323886110512">"Se requiere PIN tras reiniciar dispositivo"</string>
     <string name="kg_prompt_reason_restart_password" msgid="3967993994418885887">"Se requiere contraseña tras reiniciar dispositivo"</string>
diff --git a/packages/SystemUI/res-keyguard/values-es/strings.xml b/packages/SystemUI/res-keyguard/values-es/strings.xml
index 33a7346..0e0f9eb 100644
--- a/packages/SystemUI/res-keyguard/values-es/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-es/strings.xml
@@ -62,9 +62,9 @@
     <string name="kg_bio_try_again_or_pin" msgid="4752168242723808390">"Vuelve a intentarlo o introduce el PIN"</string>
     <string name="kg_bio_try_again_or_password" msgid="1473132729225398039">"Vuelve a intentarlo o escribe la contraseña"</string>
     <string name="kg_bio_try_again_or_pattern" msgid="4867893307468801501">"Vuelve a intentarlo o dibuja el patrón"</string>
-    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Demasiados intentos, se necesita el PIN"</string>
-    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Demasiados intentos, se necesita la contraseña"</string>
-    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Demasiados intentos, se necesita el patrón"</string>
+    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Tras demasiados intentos, es necesario introducir el PIN"</string>
+    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Tras demasiados intentos, es necesario introducir la contraseña"</string>
+    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Tras demasiados intentos, es necesario dibujar el patrón"</string>
     <string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"Desbloquea con PIN o huella digital"</string>
     <string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"Desbloquea con contraseña o huella digital"</string>
     <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"Desbloquea con tu patrón o huella digital"</string>
diff --git a/packages/SystemUI/res-keyguard/values-fr-rCA/strings.xml b/packages/SystemUI/res-keyguard/values-fr-rCA/strings.xml
index 82a553c..cb6f5b4 100644
--- a/packages/SystemUI/res-keyguard/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-fr-rCA/strings.xml
@@ -62,9 +62,9 @@
     <string name="kg_bio_try_again_or_pin" msgid="4752168242723808390">"Réessayez ou entrez le NIP"</string>
     <string name="kg_bio_try_again_or_password" msgid="1473132729225398039">"Réessayez ou entrez le mot de passe"</string>
     <string name="kg_bio_try_again_or_pattern" msgid="4867893307468801501">"Réessayez ou dessinez le schéma"</string>
-    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Le NIP est requis (trop de tentatives)"</string>
-    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Le mot de passe est requis (trop de tentatives)"</string>
-    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Le schéma est requis (trop de tentatives)"</string>
+    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Le NIP est requis après trop de tentatives"</string>
+    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Le mot de passe est requis après trop de tentatives"</string>
+    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Le schéma est requis après trop de tentatives"</string>
     <string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"Déverr. par NIP ou empr. dig."</string>
     <string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"Déverr. par MDP ou empr. dig."</string>
     <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"Déverr. par schéma ou empr. dig."</string>
diff --git a/packages/SystemUI/res-keyguard/values-hi/strings.xml b/packages/SystemUI/res-keyguard/values-hi/strings.xml
index d905581..9eb89b6 100644
--- a/packages/SystemUI/res-keyguard/values-hi/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-hi/strings.xml
@@ -62,9 +62,9 @@
     <string name="kg_bio_try_again_or_pin" msgid="4752168242723808390">"फिर से कोशिश करें या पिन डालें"</string>
     <string name="kg_bio_try_again_or_password" msgid="1473132729225398039">"फिर से कोशिश करें या पासवर्ड डालें"</string>
     <string name="kg_bio_try_again_or_pattern" msgid="4867893307468801501">"फिर से कोशिश करें या पैटर्न ड्रॉ करें"</string>
-    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"कई बार कोशिश की जा चुकी है, इसलिए पिन डालें"</string>
-    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"कई बार कोशिश की जा चुकी है, इसलिए पासवर्ड डालें"</string>
-    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"कई बार कोशिश की जा चुकी है, इसलिए पैटर्न ड्रा करें"</string>
+    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"कई बार कोशिश करने के बाद पिन डालना ज़रूरी है"</string>
+    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"कई बार कोशिश करने के बाद पासवर्ड डालना ज़रूरी है"</string>
+    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"कई बार कोशिश करने के बाद पैटर्न ड्रा करना ज़रूरी है"</string>
     <string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"पिन/फ़िंगरप्रिंट से अनलॉक करें"</string>
     <string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"पासवर्ड/फ़िंगरप्रिंट से अनलॉक करें"</string>
     <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"पैटर्न/फ़िंगरप्रिंट से अनलॉक करें"</string>
diff --git a/packages/SystemUI/res-keyguard/values-km/strings.xml b/packages/SystemUI/res-keyguard/values-km/strings.xml
index 733e29c..5f2bffb 100644
--- a/packages/SystemUI/res-keyguard/values-km/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-km/strings.xml
@@ -62,9 +62,9 @@
     <string name="kg_bio_try_again_or_pin" msgid="4752168242723808390">"ព្យាយាមម្ដងទៀត ឬបញ្ចូលកូដ PIN"</string>
     <string name="kg_bio_try_again_or_password" msgid="1473132729225398039">"ព្យាយាមម្ដងទៀត ឬបញ្ចូលពាក្យសម្ងាត់"</string>
     <string name="kg_bio_try_again_or_pattern" msgid="4867893307468801501">"ព្យាយាមម្ដងទៀត ឬគូរលំនាំ"</string>
-    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"ត្រូវការកូដ PIN បន្ទាប់ពីព្យាយាមច្រើនដងពេក"</string>
+    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"តម្រូវឱ្យមាន PIN បន្ទាប់ពីព្យាយាមច្រើនដងពេក"</string>
     <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"ត្រូវការពាក្យសម្ងាត់ បន្ទាប់ពីព្យាយាមច្រើនដងពេក"</string>
-    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"ត្រូវការលំនាំ បន្ទាប់ពីព្យាយាមច្រើនដងពេក"</string>
+    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"តម្រូវឱ្យមាន​លំនាំ បន្ទាប់ពីព្យាយាមច្រើនដងពេក"</string>
     <string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"ដោះសោដោយប្រើកូដ PIN ឬស្នាមម្រាមដៃ"</string>
     <string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"ដោះសោដោយប្រើពាក្យសម្ងាត់ ឬស្នាមម្រាមដៃ"</string>
     <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"ដោះសោដោយប្រើលំនាំ ឬស្នាមម្រាមដៃ"</string>
diff --git a/packages/SystemUI/res-keyguard/values-ky/strings.xml b/packages/SystemUI/res-keyguard/values-ky/strings.xml
index 544adee..addb01e 100644
--- a/packages/SystemUI/res-keyguard/values-ky/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-ky/strings.xml
@@ -62,9 +62,9 @@
     <string name="kg_bio_try_again_or_pin" msgid="4752168242723808390">"Кайталап көрүңүз же PIN кодду киргизиңиз"</string>
     <string name="kg_bio_try_again_or_password" msgid="1473132729225398039">"Кайра аракет кылыңыз же сырсөздү киргизиңиз"</string>
     <string name="kg_bio_try_again_or_pattern" msgid="4867893307468801501">"Кайра аракет кылыңыз же графикалык ачкычты тартыңыз"</string>
-    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Өтө көп аракеттен кийин PIN код талап кылынат"</string>
-    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Өтө көп аракеттен кийин сырсөз талап кылынат"</string>
-    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Өтө көп аракеттен кийин графикалык ачкыч талап клынт"</string>
+    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Өтө көп жолу аракет кылдыңыз. PIN кодду киргизиңиз."</string>
+    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Өтө көп жолу аракет кылдыңыз. Сырсөздү киргизиңиз."</string>
+    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Өтө көп жолу аракет кылдыңыз. Графикалык ачкычты киргизиңиз."</string>
     <string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"PIN кд же мнжа изи мнен клпусн ачңыз"</string>
     <string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"Срсөз же мнжа изи мнен клпусн ачңз"</string>
     <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"Грфиклык ачкч же мнжа изи менн клпусн ачңз"</string>
diff --git a/packages/SystemUI/res-keyguard/values-mn/strings.xml b/packages/SystemUI/res-keyguard/values-mn/strings.xml
index 83ce698..cd187bc 100644
--- a/packages/SystemUI/res-keyguard/values-mn/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-mn/strings.xml
@@ -62,9 +62,9 @@
     <string name="kg_bio_try_again_or_pin" msgid="4752168242723808390">"Дахин оролдох эсвэл ПИН оруулна уу"</string>
     <string name="kg_bio_try_again_or_password" msgid="1473132729225398039">"Дахин оролдох эсвэл нууц үг оруулна уу"</string>
     <string name="kg_bio_try_again_or_pattern" msgid="4867893307468801501">"Дахин оролдох эсвэл хээ зурна уу"</string>
-    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Хэт олон оролдлогын дараа ПИН шаардлагатай"</string>
-    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Хэт олон оролдлогын дараа нууц үг шаардлагатай"</string>
-    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Хэт олон оролдлогын дараа хээ шаардлагатай"</string>
+    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Хэт олон оролдлогын дараа ПИН оруулахыг шаардана"</string>
+    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Хэт олон оролдлогын дараа нууц үг оруулахыг шаардана"</string>
+    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Хэт олон оролдлогын дараа хээ оруулахыг шаардана"</string>
     <string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"ПИН эсвэл хурууны хээгээр түгжээ тайл"</string>
     <string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"Нууц үг эсвэл хурууны хээгээр түгжээ тайл"</string>
     <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"Хээ эсвэл хурууны хээгээр түгжээ тайл"</string>
diff --git a/packages/SystemUI/res-keyguard/values-ne/strings.xml b/packages/SystemUI/res-keyguard/values-ne/strings.xml
index 2fd42f4..502c42d 100644
--- a/packages/SystemUI/res-keyguard/values-ne/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-ne/strings.xml
@@ -23,7 +23,7 @@
     <string name="keyguard_enter_your_pin" msgid="5429932527814874032">"आफ्नो PIN हाल्नुहोस्"</string>
     <string name="keyguard_enter_pin" msgid="8114529922480276834">"PIN हाल्नुहोस्"</string>
     <string name="keyguard_enter_your_pattern" msgid="351503370332324745">"प्याटर्न हाल्नुहोस्"</string>
-    <string name="keyguard_enter_pattern" msgid="7616595160901084119">"प्याटर्न हाल्नुहोस्"</string>
+    <string name="keyguard_enter_pattern" msgid="7616595160901084119">"प्याटर्न कोर्नुहोस्"</string>
     <string name="keyguard_enter_your_password" msgid="7225626204122735501">"पासवर्ड हाल्नुहोस्"</string>
     <string name="keyguard_enter_password" msgid="6483623792371009758">"पासवर्ड हाल्नुहोस्"</string>
     <string name="keyguard_sim_error_message_short" msgid="633630844240494070">"अमान्य कार्ड।"</string>
diff --git a/packages/SystemUI/res-keyguard/values-pa/strings.xml b/packages/SystemUI/res-keyguard/values-pa/strings.xml
index 3411571..ea958e5 100644
--- a/packages/SystemUI/res-keyguard/values-pa/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-pa/strings.xml
@@ -64,7 +64,7 @@
     <string name="kg_bio_try_again_or_pattern" msgid="4867893307468801501">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜਾਂ ਪੈਟਰਨ ਬਣਾਓ"</string>
     <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"ਬਹੁਤ ਸਾਰੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਬਾਅਦ ਪਿੰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ"</string>
     <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"ਬਹੁਤ ਸਾਰੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਬਾਅਦ ਪਾਸਵਰਡ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ"</string>
-    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"ਬਹੁਤ ਸਾਰੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਬਾਅਦ ਪੈਟਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ"</string>
+    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"ਬਹੁਤ ਸਾਰੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ ਪੈਟਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ"</string>
     <string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"ਪਿੰਨ ਜਾਂ ਫਿੰਗਰਪ੍ਰਿੰਟ ਨਾਲ ਅਣਲਾਕ ਕਰੋ"</string>
     <string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"ਪਾਸਵਰਡ ਜਾਂ ਫਿੰਗਰਪ੍ਰਿੰਟ ਨਾਲ ਅਣਲਾਕ ਕਰੋ"</string>
     <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"ਪੈਟਰਨ ਜਾਂ ਫਿੰਗਰਪ੍ਰਿੰਟ ਨਾਲ ਅਣਲਾਕ ਕਰੋ"</string>
diff --git a/packages/SystemUI/res-keyguard/values-ru/strings.xml b/packages/SystemUI/res-keyguard/values-ru/strings.xml
index cab9cb9..d066292 100644
--- a/packages/SystemUI/res-keyguard/values-ru/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-ru/strings.xml
@@ -64,7 +64,7 @@
     <string name="kg_bio_try_again_or_pattern" msgid="4867893307468801501">"Повторите попытку или введите графический ключ."</string>
     <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Слишком много попыток. Необходимо ввести PIN-код."</string>
     <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Слишком много попыток. Необходимо ввести пароль."</string>
-    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Слишком много попыток. Необходимо ввести граф. ключ."</string>
+    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Слишком много попыток. Необходимо ввести графический ключ."</string>
     <string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"Используйте PIN-код или отпечаток пальца"</string>
     <string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"Используйте пароль или отпечаток пальца"</string>
     <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"Используйте граф. ключ или отпечаток пальца"</string>
diff --git a/packages/SystemUI/res-keyguard/values-sk/strings.xml b/packages/SystemUI/res-keyguard/values-sk/strings.xml
index 4dffd97..3cccb9c 100644
--- a/packages/SystemUI/res-keyguard/values-sk/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-sk/strings.xml
@@ -62,9 +62,9 @@
     <string name="kg_bio_try_again_or_pin" msgid="4752168242723808390">"Skúste to znova alebo zadajte PIN"</string>
     <string name="kg_bio_try_again_or_password" msgid="1473132729225398039">"Skúste to znova alebo zadajte heslo"</string>
     <string name="kg_bio_try_again_or_pattern" msgid="4867893307468801501">"Skúste to znova alebo nakreslite vzor"</string>
-    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Príliš veľký počet pokusov. Vyžaduje sa PIN."</string>
-    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Príliš veľký počet pokusov. Vyžaduje sa heslo."</string>
-    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Príliš veľký počet pokusov. Vyžaduje sa vzor."</string>
+    <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"Príliš veľa pokusov. Vyžaduje sa PIN."</string>
+    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"Príliš veľa pokusov. Vyžaduje sa heslo."</string>
+    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Príliš veľa pokusov. Vyžaduje sa vzor."</string>
     <string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"Odomknúť kódom PIN/odtlačkom"</string>
     <string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"Odomknúť heslom/odtlačkom"</string>
     <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"Odomknúť vzorom/odtlačkom"</string>
diff --git a/packages/SystemUI/res-keyguard/values-te/strings.xml b/packages/SystemUI/res-keyguard/values-te/strings.xml
index 0a6476fc..b0beca6 100644
--- a/packages/SystemUI/res-keyguard/values-te/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-te/strings.xml
@@ -57,14 +57,14 @@
     <string name="kg_wrong_pin" msgid="4160978845968732624">"PIN తప్పు"</string>
     <string name="kg_wrong_pin_try_again" msgid="3129729383303430190">"PIN తప్పు. రీట్రై చేయండి."</string>
     <string name="kg_wrong_input_try_fp_suggestion" msgid="3143861542242024833">"లేదా వేలిముద్రతో అన్‌లాక్ చేయండి"</string>
-    <string name="kg_fp_not_recognized" msgid="5183108260932029241">"వేలిముద్ర గుర్తించబడలేదు"</string>
+    <string name="kg_fp_not_recognized" msgid="5183108260932029241">"వేలిముద్ర (ఫింగర్-ప్రింట్) మ్యాచ్ కాలేదు"</string>
     <string name="bouncer_face_not_recognized" msgid="1666128054475597485">"ముఖం గుర్తించబడలేదు"</string>
     <string name="kg_bio_try_again_or_pin" msgid="4752168242723808390">"మళ్లీ ట్రై చేయండి లేదా PINని ఎంటర్ చేయండి"</string>
     <string name="kg_bio_try_again_or_password" msgid="1473132729225398039">"మళ్లీ ట్రై చేయండి లేదా పాస్‌వర్డ్‌ను ఎంటర్ చేయండి"</string>
     <string name="kg_bio_try_again_or_pattern" msgid="4867893307468801501">"మళ్లీ ట్రై చేయండి లేదా ఆకృతిని గీయండి"</string>
     <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"చాలా సార్లు ట్రై చేసిన తర్వాత PIN అవసరం అవుతుంది"</string>
     <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"చాలా సార్లు ట్రై చేసిన తర్వాత పాస్‌వర్డ్ అవసరం"</string>
-    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"చాలా సార్లు ట్రై చేసిన తర్వాత ఆకృతి అవసరం అవుతుంది"</string>
+    <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"చాలా సార్లు ట్రై చేసిన తర్వాత ఆకృతి (ప్యాటర్న్‌) అవసరం అవుతుంది"</string>
     <string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"PIN/వేలిముద్రతో తెరవండి"</string>
     <string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"పాస్‌వర్డ్/వేలిముద్రతో తెరవండి"</string>
     <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"ఆకృతి/వేలిముద్రతో తెరవండి"</string>
diff --git a/packages/SystemUI/res-keyguard/values-zh-rCN/strings.xml b/packages/SystemUI/res-keyguard/values-zh-rCN/strings.xml
index 196df28..6b08a3a4 100644
--- a/packages/SystemUI/res-keyguard/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-zh-rCN/strings.xml
@@ -63,7 +63,7 @@
     <string name="kg_bio_try_again_or_password" msgid="1473132729225398039">"请重试，或输入密码"</string>
     <string name="kg_bio_try_again_or_pattern" msgid="4867893307468801501">"请重试，或绘制解锁图案"</string>
     <string name="kg_bio_too_many_attempts_pin" msgid="5850845723433047605">"如果出错的尝试次数太多，必须输入 PIN 码才能解锁"</string>
-    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"如果出错的尝试次数太多，必须输入密码才能解锁"</string>
+    <string name="kg_bio_too_many_attempts_password" msgid="5551690347827728042">"如果多次尝试失败，必须输入密码才能解锁"</string>
     <string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"如果出错的尝试次数太多，必须绘制图案才能解锁"</string>
     <string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"请使用 PIN 码或指纹解锁"</string>
     <string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"请使用密码或指纹解锁"</string>
diff --git a/packages/SystemUI/res/anim/volume_dialog_ringer_close.xml b/packages/SystemUI/res/anim/volume_dialog_ringer_close.xml
new file mode 100644
index 0000000..e7ba52c
--- /dev/null
+++ b/packages/SystemUI/res/anim/volume_dialog_ringer_close.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  ~ Copyright (C) 2025 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.
+  -->
+
+<pathInterpolator
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:controlX1="0.20"
+    android:controlY1="0.00"
+    android:controlX2="0.00"
+    android:controlY2="1.00" />
\ No newline at end of file
diff --git a/packages/SystemUI/res/anim/volume_dialog_ringer_open.xml b/packages/SystemUI/res/anim/volume_dialog_ringer_open.xml
new file mode 100644
index 0000000..3b18eef
--- /dev/null
+++ b/packages/SystemUI/res/anim/volume_dialog_ringer_open.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  ~ Copyright (C) 2025 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.
+  -->
+
+<pathInterpolator
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:controlX1="0.05"
+    android:controlY1="0.70"
+    android:controlX2="0.10"
+    android:controlY2="1.00" />
\ No newline at end of file
diff --git a/packages/CompanionDeviceManager/res/drawable/btn_positive_bottom.xml b/packages/SystemUI/res/drawable/notification_2025_guts_priority_button_bg.xml
similarity index 63%
copy from packages/CompanionDeviceManager/res/drawable/btn_positive_bottom.xml
copy to packages/SystemUI/res/drawable/notification_2025_guts_priority_button_bg.xml
index 2cff473..1de8c2b 100644
--- a/packages/CompanionDeviceManager/res/drawable/btn_positive_bottom.xml
+++ b/packages/SystemUI/res/drawable/notification_2025_guts_priority_button_bg.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2022 The Android Open Source Project
+  ~ Copyright (C) 2025 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.
@@ -12,12 +12,16 @@
   ~ 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.
+  ~ limitations under the License
   -->
-
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
-       android:shape="rectangle">
-    <solid android:color="@android:color/system_accent1_100"/>
-    <corners android:topLeftRadius="12dp" android:topRightRadius="12dp"
-             android:bottomLeftRadius="4dp" android:bottomRightRadius="4dp"/>
+       android:shape="rectangle" >
+    <solid
+        android:color="@color/notification_guts_priority_button_bg_fill" />
+
+    <stroke
+        android:width="1.5dp"
+        android:color="@color/notification_guts_priority_button_bg_stroke" />
+
+    <corners android:radius="16dp" />
 </shape>
diff --git a/packages/SystemUI/res/layout/bindable_status_bar_compose_icon.xml b/packages/SystemUI/res/layout/bindable_status_bar_compose_icon.xml
index fa9318b..6b55ac2 100644
--- a/packages/SystemUI/res/layout/bindable_status_bar_compose_icon.xml
+++ b/packages/SystemUI/res/layout/bindable_status_bar_compose_icon.xml
@@ -27,7 +27,6 @@
         android:layout_height="@dimen/status_bar_bindable_icon_size"
         android:layout_width="wrap_content"
         android:layout_gravity="center_vertical"
-        android:padding="4sp"
         />
 
 </com.android.systemui.statusbar.pipeline.shared.ui.view.SingleBindableStatusBarComposeIconView>
diff --git a/packages/SystemUI/res/layout/media_output_list_group_divider.xml b/packages/SystemUI/res/layout/media_output_list_group_divider.xml
index c351912..fa5ad0d 100644
--- a/packages/SystemUI/res/layout/media_output_list_group_divider.xml
+++ b/packages/SystemUI/res/layout/media_output_list_group_divider.xml
@@ -20,14 +20,14 @@
     android:id="@+id/device_container"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:layout_marginStart="@dimen/media_output_dialog_margin_horizontal"
+    android:layout_marginEnd="56dp"
     android:orientation="vertical">
     <TextView
         android:id="@+id/title"
         android:layout_width="wrap_content"
         android:layout_height="36dp"
         android:layout_gravity="center_vertical|start"
-        android:layout_marginStart="@dimen/media_output_dialog_margin_horizontal"
-        android:layout_marginEnd="56dp"
         android:ellipsize="end"
         android:maxLines="1"
         android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
diff --git a/packages/SystemUI/res/layout/media_output_list_item_advanced.xml b/packages/SystemUI/res/layout/media_output_list_item_advanced.xml
index d297ec4..6b868b3 100644
--- a/packages/SystemUI/res/layout/media_output_list_item_advanced.xml
+++ b/packages/SystemUI/res/layout/media_output_list_item_advanced.xml
@@ -20,7 +20,8 @@
     android:id="@+id/device_container"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:paddingHorizontal="@dimen/media_output_dialog_margin_horizontal"
+    android:layout_marginHorizontal="@dimen/media_output_dialog_margin_horizontal"
+    android:focusable="true"
     android:baselineAligned="false">
     <FrameLayout
         android:layout_weight="1"
@@ -77,6 +78,7 @@
         </FrameLayout>
 
         <LinearLayout
+            android:id="@+id/text_content"
             android:orientation="vertical"
             android:layout_width="wrap_content"
             android:layout_gravity="center_vertical|start"
@@ -86,7 +88,7 @@
             android:layout_marginStart="72dp">
             <TextView
                 android:id="@+id/title"
-                android:importantForAccessibility="no"
+                android:focusable="false"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:ellipsize="end"
@@ -96,6 +98,7 @@
                 android:textSize="16sp"/>
             <TextView
                 android:id="@+id/subtitle"
+                android:focusable="false"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:marqueeRepeatLimit="marquee_forever"
@@ -124,7 +127,6 @@
             android:layout_width="24dp"
             android:layout_height="24dp"
             android:layout_marginEnd="16dp"
-            android:indeterminate="true"
             android:layout_gravity="end|center"
             android:indeterminateOnly="true"
             android:importantForAccessibility="no"
@@ -135,30 +137,23 @@
         android:layout_width="@dimen/media_output_dialog_item_height"
         android:layout_height="@dimen/media_output_dialog_item_height"
         android:visibility="gone"
-        android:layout_marginBottom="6dp"
         android:layout_marginStart="7dp"
-        android:layout_gravity="end|center"
-        android:gravity="center"
         android:background="@drawable/media_output_item_background_active">
         <CheckBox
             android:id="@+id/check_box"
-            android:focusable="false"
-            android:importantForAccessibility="no"
-            android:layout_gravity="center"
-            android:layout_width="24dp"
-            android:layout_height="24dp"
-            android:button="@drawable/media_output_item_check_box"
+            android:foreground="@drawable/media_output_item_check_box"
+            android:foregroundGravity="center"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:button="@null"
             android:visibility="gone"
             />
-        <ImageView
-            android:id="@+id/media_output_item_end_click_icon"
-            android:layout_width="24dp"
-            android:layout_height="24dp"
-            android:focusable="false"
-            android:importantForAccessibility="no"
-            android:layout_gravity="center"
-            android:indeterminate="true"
-            android:indeterminateOnly="true"
+        <ImageButton
+            android:id="@+id/end_area_image_button"
+            android:background="@android:color/transparent"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:contentDescription="@null"
             android:visibility="gone"/>
     </FrameLayout>
 </LinearLayout>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/notification_2025_info.xml b/packages/SystemUI/res/layout/notification_2025_info.xml
new file mode 100644
index 0000000..7b69166
--- /dev/null
+++ b/packages/SystemUI/res/layout/notification_2025_info.xml
@@ -0,0 +1,365 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright 2025, 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.
+-->
+
+<!-- extends LinearLayout -->
+<com.android.systemui.statusbar.notification.row.NotificationInfo
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+    android:id="@+id/notification_guts"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:focusable="true"
+    android:clipChildren="false"
+    android:clipToPadding="true"
+    android:orientation="vertical"
+    android:paddingStart="@*android:dimen/notification_2025_margin">
+
+    <!-- Package Info -->
+    <LinearLayout
+        android:id="@+id/header"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:clipChildren="false"
+        android:clipToPadding="true">
+        <ImageView
+            android:id="@+id/pkg_icon"
+            android:layout_width="@*android:dimen/notification_2025_icon_circle_size"
+            android:layout_height="@*android:dimen/notification_2025_icon_circle_size"
+            android:layout_marginTop="@*android:dimen/notification_2025_margin"
+            android:layout_marginEnd="@*android:dimen/notification_2025_margin" />
+        <LinearLayout
+            android:id="@+id/names"
+            android:layout_weight="1"
+            android:layout_width="0dp"
+            android:orientation="vertical"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@*android:dimen/notification_2025_margin"
+            android:minHeight="@*android:dimen/notification_2025_icon_circle_size">
+            <TextView
+                android:id="@+id/channel_name"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textDirection="locale"
+                style="@style/TextAppearance.NotificationImportanceChannel"/>
+            <TextView
+                android:id="@+id/group_name"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textDirection="locale"
+                android:ellipsize="end"
+                style="@style/TextAppearance.NotificationImportanceChannelGroup"/>
+            <TextView
+                android:id="@+id/pkg_name"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                style="@style/TextAppearance.NotificationImportanceApp"
+                android:ellipsize="end"
+                android:textDirection="locale"
+                android:maxLines="1"/>
+            <TextView
+                android:id="@+id/delegate_name"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                style="@style/TextAppearance.NotificationImportanceHeader"
+                android:ellipsize="end"
+                android:textDirection="locale"
+                android:text="@string/notification_delegate_header"
+                android:maxLines="1" />
+
+        </LinearLayout>
+
+        <!-- feedback for notificationassistantservice -->
+        <ImageButton
+            android:id="@+id/feedback"
+            android:layout_width="@dimen/notification_2025_guts_button_size"
+            android:layout_height="@dimen/notification_2025_guts_button_size"
+            android:visibility="gone"
+            android:background="@drawable/ripple_drawable"
+            android:contentDescription="@string/notification_guts_bundle_feedback"
+            android:src="@*android:drawable/ic_feedback"
+            android:paddingTop="@*android:dimen/notification_2025_margin"
+            android:tint="@androidprv:color/materialColorPrimary"/>
+
+        <!-- Optional link to app. Only appears if the channel is not disabled and the app
+        asked for it -->
+        <ImageButton
+            android:id="@+id/app_settings"
+            android:layout_width="@dimen/notification_2025_guts_button_size"
+            android:layout_height="@dimen/notification_2025_guts_button_size"
+            android:visibility="gone"
+            android:background="@drawable/ripple_drawable"
+            android:contentDescription="@string/notification_app_settings"
+            android:src="@drawable/ic_info"
+            android:paddingTop="@*android:dimen/notification_2025_margin"
+            android:tint="@androidprv:color/materialColorPrimary"/>
+
+        <!-- System notification settings -->
+        <ImageButton
+            android:id="@+id/info"
+            android:layout_width="@dimen/notification_2025_guts_button_size"
+            android:layout_height="@dimen/notification_2025_guts_button_size"
+            android:contentDescription="@string/notification_more_settings"
+            android:background="@drawable/ripple_drawable"
+            android:src="@drawable/ic_settings"
+            android:padding="@*android:dimen/notification_2025_margin"
+            android:tint="@androidprv:color/materialColorPrimary" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:id="@+id/inline_controls"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="@*android:dimen/notification_2025_margin"
+        android:layout_marginTop="@*android:dimen/notification_2025_margin"
+        android:clipChildren="false"
+        android:clipToPadding="false"
+        android:orientation="vertical">
+
+        <!-- Non configurable app/channel text. appears instead of @+id/interruptiveness_settings-->
+        <TextView
+            android:id="@+id/non_configurable_text"
+            android:text="@string/notification_unblockable_desc"
+            android:visibility="gone"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            style="@*android:style/TextAppearance.DeviceDefault.Notification" />
+
+        <!-- Non configurable app/channel text. appears instead of @+id/interruptiveness_settings-->
+        <TextView
+            android:id="@+id/non_configurable_call_text"
+            android:text="@string/notification_unblockable_call_desc"
+            android:visibility="gone"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            style="@*android:style/TextAppearance.DeviceDefault.Notification" />
+
+        <!-- Non configurable multichannel text. appears instead of @+id/interruptiveness_settings-->
+        <TextView
+            android:id="@+id/non_configurable_multichannel_text"
+            android:text="@string/notification_multichannel_desc"
+            android:visibility="gone"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            style="@*android:style/TextAppearance.DeviceDefault.Notification" />
+
+        <LinearLayout
+            android:id="@+id/interruptiveness_settings"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:orientation="vertical">
+            <com.android.systemui.statusbar.notification.row.ButtonLinearLayout
+                android:id="@+id/automatic"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:paddingVertical="@dimen/notification_2025_importance_button_padding_vertical"
+                android:paddingHorizontal="@dimen/notification_2025_importance_button_padding_horizontal"
+                android:gravity="center_vertical"
+                android:clickable="true"
+                android:focusable="true"
+                android:background="@drawable/notification_2025_guts_priority_button_bg"
+                android:orientation="horizontal"
+                android:visibility="gone">
+                <ImageView
+                    android:id="@+id/automatic_icon"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingEnd="@*android:dimen/notification_2025_margin"
+                    android:src="@drawable/ic_notifications_automatic"
+                    android:background="@android:color/transparent"
+                    android:tint="@color/notification_guts_priority_contents"
+                    android:clickable="false"
+                    android:focusable="false"/>
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:gravity="center"
+                >
+                    <TextView
+                        android:id="@+id/automatic_label"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        android:clickable="false"
+                        android:focusable="false"
+                        android:textAppearance="@style/TextAppearance.NotificationImportanceButton"
+                        android:text="@string/notification_automatic_title"/>
+                    <TextView
+                        android:id="@+id/automatic_summary"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="@dimen/notification_importance_button_description_top_margin"
+                        android:visibility="gone"
+                        android:text="@string/notification_channel_summary_automatic"
+                        android:clickable="false"
+                        android:focusable="false"
+                        android:ellipsize="end"
+                        android:maxLines="2"
+                        android:textAppearance="@style/TextAppearance.NotificationImportanceDetail"/>
+                </LinearLayout>
+            </com.android.systemui.statusbar.notification.row.ButtonLinearLayout>
+
+            <com.android.systemui.statusbar.notification.row.ButtonLinearLayout
+                android:id="@+id/alert"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:paddingVertical="@dimen/notification_2025_importance_button_padding_vertical"
+                android:paddingHorizontal="@dimen/notification_2025_importance_button_padding_horizontal"
+                android:gravity="center_vertical"
+                android:clickable="true"
+                android:focusable="true"
+                android:background="@drawable/notification_2025_guts_priority_button_bg"
+                android:orientation="horizontal">
+                <ImageView
+                    android:id="@+id/alert_icon"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingEnd="@*android:dimen/notification_2025_margin"
+                    android:src="@drawable/ic_notifications_alert"
+                    android:background="@android:color/transparent"
+                    android:tint="@color/notification_guts_priority_contents"
+                    android:clickable="false"
+                    android:focusable="false"/>
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:gravity="center"
+                    >
+                    <TextView
+                        android:id="@+id/alert_label"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        android:clickable="false"
+                        android:focusable="false"
+                        android:textAppearance="@style/TextAppearance.NotificationImportanceButton"
+                        android:text="@string/notification_alert_title"/>
+                    <TextView
+                        android:id="@+id/alert_summary"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:visibility="gone"
+                        android:text="@string/notification_channel_summary_default"
+                        android:clickable="false"
+                        android:focusable="false"
+                        android:ellipsize="end"
+                        android:maxLines="2"
+                        android:textAppearance="@style/TextAppearance.NotificationImportanceDetail"/>
+                </LinearLayout>
+            </com.android.systemui.statusbar.notification.row.ButtonLinearLayout>
+
+            <com.android.systemui.statusbar.notification.row.ButtonLinearLayout
+                android:id="@+id/silence"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/notification_importance_button_separation"
+                android:paddingVertical="@dimen/notification_2025_importance_button_padding_vertical"
+                android:paddingHorizontal="@dimen/notification_2025_importance_button_padding_horizontal"
+                android:gravity="center_vertical"
+                android:clickable="true"
+                android:focusable="true"
+                android:background="@drawable/notification_2025_guts_priority_button_bg"
+                android:orientation="horizontal">
+                <ImageView
+                    android:id="@+id/silence_icon"
+                    android:src="@drawable/ic_notifications_silence"
+                    android:background="@android:color/transparent"
+                    android:tint="@color/notification_guts_priority_contents"
+                    android:layout_gravity="center"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingEnd="@*android:dimen/notification_2025_margin"
+                    android:clickable="false"
+                    android:focusable="false"/>
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:gravity="center"
+                    >
+                    <TextView
+                        android:id="@+id/silence_label"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        android:clickable="false"
+                        android:focusable="false"
+                        android:layout_toEndOf="@id/silence_icon"
+                        android:textAppearance="@style/TextAppearance.NotificationImportanceButton"
+                        android:text="@string/notification_silence_title"/>
+                    <TextView
+                        android:id="@+id/silence_summary"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:visibility="gone"
+                        android:text="@string/notification_channel_summary_low"
+                        android:clickable="false"
+                        android:focusable="false"
+                        android:ellipsize="end"
+                        android:maxLines="2"
+                        android:textAppearance="@style/TextAppearance.NotificationImportanceDetail"/>
+                </LinearLayout>
+            </com.android.systemui.statusbar.notification.row.ButtonLinearLayout>
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:id="@+id/bottom_buttons"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@*android:dimen/notification_2025_margin"
+            android:minHeight="@dimen/notification_2025_guts_button_size"
+            android:gravity="center_vertical"
+            >
+            <TextView
+                android:id="@+id/turn_off_notifications"
+                android:text="@string/inline_turn_off_notifications"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="32dp"
+                android:paddingTop="8dp"
+                android:paddingBottom="@*android:dimen/notification_2025_margin"
+                android:gravity="center"
+                android:minWidth="@dimen/notification_2025_min_tap_target_size"
+                android:minHeight="@dimen/notification_2025_min_tap_target_size"
+                android:maxWidth="200dp"
+                style="@style/TextAppearance.NotificationInfo.Button"
+                android:textSize="@*android:dimen/notification_2025_action_text_size"/>
+            <TextView
+                android:id="@+id/done"
+                android:text="@string/inline_ok_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingTop="8dp"
+                android:paddingBottom="@*android:dimen/notification_2025_margin"
+                android:gravity="center"
+                android:minWidth="@dimen/notification_2025_min_tap_target_size"
+                android:minHeight="@dimen/notification_2025_min_tap_target_size"
+                android:maxWidth="125dp"
+                style="@style/TextAppearance.NotificationInfo.Button"
+                android:textSize="@*android:dimen/notification_2025_action_text_size"/>
+        </LinearLayout>
+    </LinearLayout>
+</com.android.systemui.statusbar.notification.row.NotificationInfo>
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 538d9e2..d9a28a6 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth gekoppel."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth-toestelikoon"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Klik om toestelbesonderhede op te stel."</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Klik om alle toestelle te sien"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Klik om met nuwe toestel te koppel"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Batterypersentasie is onbekend."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Gekoppel aan <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Gekoppel aan <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Invoer"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Gehoortoestelle"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Skakel tans aan …"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Kan nie helderheid verstel nie omdat dit\n deur die topapp beheer word"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Kan nie helderheid verstel nie omdat dit deur die topapp beheer word"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Outodraai"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Outodraai skerm"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Ligging"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> steun nie gesprekskenmerke nie"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Terugvoer"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Maak toe"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Moenie as vasgespeld wys nie"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Wys tans regstreekse opdaterings"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Vasgespelde kennisgewings wys regstreekse inligting vanaf apps en verskyn altyd op die statusbalk en sluitskerm"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Hierdie kennisgewings kan nie gewysig word nie."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Oproepkennisgewings kan nie gewysig word nie."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Hierdie groep kennisgewings kan nie hier opgestel word nie"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Verrigting van veelvuldige take"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Gebruik verdeelde skerm met app aan die regterkant"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Gebruik verdeelde skerm met app aan die linkerkant"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Skakel oor na volskerm"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Skakel oor na app regs of onder terwyl jy verdeelde skerm gebruik"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Skakel oor na app links of bo terwyl jy verdeelde skerm gebruik"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Tydens verdeelde skerm: verplaas ’n app van een skerm na ’n ander"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Wys laeprioriteit-kennisgewingikone"</string>
     <string name="other" msgid="429768510980739978">"Ander"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"verwyder teël"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"voeg teël by die laaste posisie"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Skuif teël"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Bekyk onlangse apps"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Wissel apps"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Klaar"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Probeer weer!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Gaan terug"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Swiep links of regs met drie vingers op jou raakpaneel"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Swiep op en hou met drie vingers op die raakpaneel om onlangse apps te bekyk"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Druk die handelingsleutel op jou sleutelbord om al jou apps te bekyk"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Gewysig"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Ontsluit om te kyk"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstuele opvoeding"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Gebruik jou raakpaneel om terug te gaan"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Swiep links of regs met drie vingers. Tik om meer gebare te leer."</string>
diff --git a/packages/SystemUI/res/values-af/tiles_states_strings.xml b/packages/SystemUI/res/values-af/tiles_states_strings.xml
index 3d0dbb5..fde914f 100644
--- a/packages/SystemUI/res/values-af/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-af/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Af"</item>
     <item msgid="5908720590832378783">"Aan"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Onbeskikbaar"</item>
+    <item msgid="6641673879029894995">"Af"</item>
+    <item msgid="5806682401126108403">"Aan"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index f1b9fca..ba1c3ed 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"ብሉቱዝ ተያይዟል።"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"የብሉቱዝ መሣሪያ አዶ"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"የመሣሪያ ዝርዝርን ለማዋቀር ጠቅ ያድርጉ"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"ሁሉንም መሣሪያዎች ለማየት ጠቅ ያድርጉ"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"ከአዲስ መሣሪያ ጋር ለማጣመር ጠቅ ያድርጉ"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"የባትሪ መቶኛ አይታወቅም።"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"ከ<xliff:g id="BLUETOOTH">%s</xliff:g> ጋር ተገናኝቷል።"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"ከ<xliff:g id="CAST">%s</xliff:g> ጋር ተገናኝቷል።"</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"ግቤት"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"መስሚያ አጋዥ መሣሪያዎች"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"በማብራት ላይ..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ከላይ ባለው መተግበሪያ ቁጥጥር ላይ ስለሆነ\n ብሩህነትን ማስተካከል አልተቻለም"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ከላይ ባለው መተግበሪያ ቁጥጥር ላይ ስለሆነ ብሩህነትን ማስተካከል አልተቻለም"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"በራስ ሰር አሽከርክር"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"ማያ ገጽን በራስ-አሽከርክር"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"አካባቢ"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> የውይይት ባህሪያትን አይደግፍም"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ግብረመልስ"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"አሰናብት"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"ፒን እንደተደረገ አታሳይ"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"የቀጥታ ዝማኔዎችን በማሳየት ላይ"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"ፒን የተደረጉ ማሳወቂያዎች ከመተግበሪያዎች ላይ Live መረጃ ያሳያሉ እና በሁኔታ አሞሌ እና ማያ ገፅ ቁልፍ ላይ ሁልጊዜ ይታያሉ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"እነዚህ ማሳወቂያዎች ሊሻሻሉ አይችሉም።"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"የጥሪ ማሳወቂያዎች ሊቀየሩ አይችሉም።"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"የማሳወቂያዎች ይህ ቡድን እዚህ ላይ ሊዋቀር አይችልም"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"ብዙ ተግባራትን በተመሳሳይ ጊዜ ማከናወን"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"መተግበሪያ በስተቀኝ ላይ ሆኖ የተከፈለ ማያ ገፅን ይጠቀሙ"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"መተግበሪያ በስተግራ ላይ ሆኖ የተከፈለ ማያ ገፅን ይጠቀሙ"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"ወደ ሙሉ ገፅ ዕይታ ይቀይሩ"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"የተከፈለ ማያ ገጽን ሲጠቀሙ በቀኝ ወይም ከታች ወዳለ መተግበሪያ ይቀይሩ"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"የተከፈለ ማያ ገጽን ሲጠቀሙ በቀኝ ወይም ከላይ ወዳለ መተግበሪያ ይቀይሩ"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"በተከፈለ ማያ ገጽ ወቅት፡- መተግበሪያን ከአንዱ ወደ ሌላው ተካ"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"አነስተኛ ቅድሚያ ያላቸው የማሳወቂያ አዶዎችን አሳይ"</string>
     <string name="other" msgid="429768510980739978">"ሌላ"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ሰቅ አስወግድ"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"በመጨረሻው ቦታ ላይ ሰቅ ያክሉ"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"ሰቁን ውሰድ"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"የቅርብ ጊዜ መተግበሪያዎችን አሳይ"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"መተግበሪያዎችን ይቀያይሩ"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"ተከናውኗል"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"እንደገና ይሞክሩ!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"ወደኋላ ተመለስ"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"የመዳሰሻ ሰሌዳዎ ላይ ሦስት ጣቶችን በመጠቀም ወደ ግራ ወይም ወደ ቀኝ ያንሸራትቱ"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"የቅርብ ጊዜ መተግበሪያዎችን ለማየት የመዳሰሻ ሰሌዳው ላይ በሦስት ጣቶች ወደላይ ያንሸራትቱ እና ይያዙ"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"ሁሉንም መተግበሪያዎችዎን ለማየት በቁልፍ ሰሌዳዎ ላይ ያለውን የተግባር ቁልፍ ይጫኑ"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"ጽሁፍ ተቀይሯል"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"ለመመልከት ይክፈቱ"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"የዓውድ ትምህርት"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"ለመመለስ የመዳሰሻ ሰሌዳዎን ይጠቀሙ"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"ሦስት ጣቶችን በመጠቀም ወደ ግራ ወይም ወደ ቀኝ ያንሸራትቱ። ምልክቶችን የበለጠ ለማወቅ መታ ያድርጉ።"</string>
diff --git a/packages/SystemUI/res/values-am/tiles_states_strings.xml b/packages/SystemUI/res/values-am/tiles_states_strings.xml
index 31a7d96..f8e7a43 100644
--- a/packages/SystemUI/res/values-am/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-am/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"ጠፍቷል"</item>
     <item msgid="5908720590832378783">"በርቷል"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"አይገኝም"</item>
+    <item msgid="6641673879029894995">"ጠፍቷል"</item>
+    <item msgid="5806682401126108403">"በርቷል"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 7d55b85..905183c 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"تم توصيل البلوتوث."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"رمز الجهاز الذي يتضمّن بلوتوث"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"انقر هنا لضبط إعدادات الجهاز."</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"انقر لعرض جميع الأجهزة."</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"انقر لإقران جهاز جديد."</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"نسبة شحن البطارية غير معروفة."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"متصل بـ <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"تم الاتصال بـ <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"الإدخال"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"سماعات الأذن الطبية"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"جارٍ التفعيل…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"لا يمكن ضبط مستوى السطوع لأنّ\n التطبيق الأول يتحكّم فيه"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"لا يمكن ضبط مستوى السطوع لأنّ التطبيق الأول يتحكّم فيه"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"التدوير التلقائي"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"التدوير التلقائي للشاشة"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"الموقع الجغرافي"</string>
@@ -471,7 +475,7 @@
     <string name="zen_silence_introduction" msgid="6117517737057344014">"سيؤدي هذا إلى حظر جميع الأصوات والاهتزازات، بما في ذلك ما يرد من التنبيهات والموسيقى والفيديو والألعاب."</string>
     <string name="notification_tap_again" msgid="4477318164947497249">"انقر مرة أخرى للفتح"</string>
     <string name="tap_again" msgid="1315420114387908655">"انقر مرة أخرى"</string>
-    <string name="keyguard_unlock" msgid="8031975796351361601">"التمرير إلى الأعلى لفتح القفل"</string>
+    <string name="keyguard_unlock" msgid="8031975796351361601">"مرِّر إلى الأعلى لفتح القفل"</string>
     <string name="keyguard_unlock_press" msgid="9140109453735019209">"اضغط على رمز فتح القفل لفتح قفل الشاشة."</string>
     <string name="keyguard_face_successful_unlock_swipe" msgid="6180997591385846073">"تم فتح قفل جهازك عند تقريبه من وجهك. مرِّر سريعًا للأعلى لفتح الجهاز."</string>
     <string name="keyguard_face_successful_unlock_press" msgid="25520941264602588">"تم فتح القفل ببصمة وجهك. لفتح الجهاز، اضغط على رمز فتح القفل."</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"لا يدعم تطبيق <xliff:g id="APP_NAME">%1$s</xliff:g> ميزات المحادثات."</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"الملاحظات"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"إغلاق"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"عدم العرض كإشعار مثبَّت"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"عرض تغطية مباشرة للأخبار"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"تعرِض الإشعارات المثبَّتة معلومات مباشرة من التطبيقات، وتظهر دائمًا في شريط الحالة وعلى شاشة القفل"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"يتعذّر تعديل هذه الإشعارات."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"لا يمكن تعديل إشعارات المكالمات."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"يتعذّر ضبط مجموعة الإشعارات هذه هنا."</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"تعدُّد المهام"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"استخدام \"وضع تقسيم الشاشة\" مع تثبيت التطبيق على اليمين"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"استخدام \"وضع تقسيم الشاشة\" مع تثبيت التطبيق على اليسار"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"التبديل إلى وضع ملء الشاشة"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"التبديل إلى التطبيق على اليسار أو الأسفل أثناء استخدام \"تقسيم الشاشة\""</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"التبديل إلى التطبيق على اليمين أو الأعلى أثناء استخدام \"تقسيم الشاشة\""</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"استبدال تطبيق بآخر في وضع \"تقسيم الشاشة\""</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"إظهار رموز الإشعارات ذات الأولوية المنخفضة"</string>
     <string name="other" msgid="429768510980739978">"غير ذلك"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"إزالة بطاقة"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"إضافة مربّع إلى الموضع الأخير"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"نقل بطاقة"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"عرض التطبيقات المستخدَمة مؤخرًا"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"التبديل بين التطبيقات"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"تم"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"يُرجى إعادة المحاولة"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"رجوع"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"مرِّر سريعًا لليمين أو لليسار باستخدام 3 أصابع على لوحة اللمس"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"لعرض التطبيقات المستخدَمة مؤخرًا، مرِّر سريعًا للأعلى مع استمرار الضغط على لوحة اللمس باستخدام 3 أصابع"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"لعرض جميع التطبيقات، اضغط على مفتاح الإجراء في لوحة المفاتيح"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"إشعار مخفي"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"افتح القفل لعرض المعلومات"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"التعليم السياقي"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"استخدِم لوحة اللمس للرجوع"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"مرِّر سريعًا لليمين أو لليسار باستخدام 3 أصابع. انقر للتعرّف على المزيد من الإيماءات."</string>
diff --git a/packages/SystemUI/res/values-as/strings.xml b/packages/SystemUI/res/values-as/strings.xml
index 74c4e3e..784dfee 100644
--- a/packages/SystemUI/res/values-as/strings.xml
+++ b/packages/SystemUI/res/values-as/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"ব্লুটুথ সংযোগ হ’ল।"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"ব্লুটুথ ডিভাইচৰ চিহ্ন"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"ডিভাইচৰ সবিশেষ কনফিগাৰ কৰিবলৈ ক্লিক কৰক"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"আটাইবোৰ ডিভাইচ চাবলৈ ক্লিক কৰক"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"নতুন ডিভাইচ পেয়াৰ কৰিবলৈ ক্লিক কৰক"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"বেটাৰীৰ চাৰ্জৰ শতাংশ অজ্ঞাত।"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>ৰ লগত সংযোগ কৰা হ’ল।"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g>ত সংযোগ হ’ল।"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ বাৰ্তালাপৰ সুবিধাসমূহ সমৰ্থন নকৰে"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"মতামত"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"অগ্ৰাহ্য কৰক"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"পিন কৰা হিচাপে নেদেখুৱাব"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"লাইভ আপডে’ট দেখুওৱা"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"পিন কৰি থোৱা জাননীসমূহে এপৰ পৰা লাইভ তথ্য দেখুৱায় আৰু সেয়া সদায় স্থিতি দণ্ড আৰু লক স্ক্ৰীনত ওলায়"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"এই জাননীসমূহ সংশোধন কৰিব নোৱাৰি।"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"কলৰ জাননীসমূহ সংশোধন কৰিব নোৱাৰি।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"এই ধৰণৰ জাননীবোৰ ইয়াত কনফিগাৰ কৰিব পৰা নাযায়"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"মাল্টিটাস্কিং"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"সোঁফালে থকা এপ্‌টোৰ সৈতে বিভাজিত স্ক্ৰীন ব্যৱহাৰ কৰক"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"বাওঁফালে থকা এপ্‌টোৰ সৈতে বিভাজিত স্ক্ৰীন ব্যৱহাৰ কৰক"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"পূৰ্ণ স্ক্ৰীনলৈ সলনি কৰক"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"বিভাজিত স্ক্ৰীন ব্যৱহাৰ কৰাৰ সময়ত সোঁফালে অথবা তলত থকা এপলৈ সলনি কৰক"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"বিভাজিত স্ক্ৰীন ব্যৱহাৰ কৰাৰ সময়ত বাওঁফালে অথবা ওপৰত থকা এপলৈ সলনি কৰক"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"বিভাজিত স্ক্ৰীনৰ ব্যৱহাৰ কৰাৰ সময়ত: কোনো এপ্ এখন স্ক্ৰীনৰ পৰা আনখনলৈ নিয়ক"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"কম গুৰুত্বপূৰ্ণ জাননীৰ আইকনসমূহ দেখুৱাওক"</string>
     <string name="other" msgid="429768510980739978">"অন্যান্য"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"টাইল আঁতৰাবলৈ"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"অন্তিম স্থানত টাইল যোগ দিয়ক"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"টাইল স্থানান্তৰ কৰক"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"শেহতীয়া এপ্‌সমূহ চাওক"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"এপ্‌সমূহ সলনি কৰক"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"হ’ল"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"পুনৰ চেষ্টা কৰক!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"উভতি যাওক"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"আপোনাৰ টাচ্চপেডত তিনিটা আঙুলি ব্যৱহাৰ কৰি বাওঁফাললৈ বা সোঁফাললৈ ছোৱাইপ কৰক"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"শেহতীয়া এপ্‌সমূহ চাবলৈ টাচ্চপেডখনত তিনিটা আঙুলিৰে ওপৰলৈ ছোৱাইপ কৰি ধৰি ৰাখক"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"আপোনাৰ আটাইবোৰ এপ্‌ চাবলৈ আপোনাৰ কীব’ৰ্ডৰ কাৰ্য কীটোত টিপক"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"সম্পাদনা কৰা হৈছে"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"চাবলৈ আনলক কৰক"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"প্ৰাসংগিক শিক্ষা"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"উভতি যাবলৈ আপোনাৰ টাচ্চপেড ব্যৱহাৰ কৰক"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"তিনিটা আঙুলি ব্যৱহাৰ কৰি বাওঁফাললৈ বা সোঁফাললৈ ছোৱাইপ কৰক। অধিক নিৰ্দেশ শিকিবলৈ টিপক।"</string>
diff --git a/packages/SystemUI/res/values-as/tiles_states_strings.xml b/packages/SystemUI/res/values-as/tiles_states_strings.xml
index 68212e0..ba30c1e 100644
--- a/packages/SystemUI/res/values-as/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-as/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"অফ আছে"</item>
     <item msgid="5908720590832378783">"অন আছে"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"উপলব্ধ নহয়"</item>
+    <item msgid="6641673879029894995">"অফ আছে"</item>
+    <item msgid="5806682401126108403">"অন আছে"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml
index 4b316b6..20f3e37 100644
--- a/packages/SystemUI/res/values-az/strings.xml
+++ b/packages/SystemUI/res/values-az/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth qoşulub."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth cihazı ikonası"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Cihaz təfərrüatlarını konfiqurasiya etmək üçün klikləyin"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Bütün cihazları görmək üçün klikləyin"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Yeni cihazı birləşdirmək üçün klikləyin"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Batareyanın faizi naməlumdur."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> üzərindən qoşuldu."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> cihazına qoşulub."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Giriş"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Eşitmə aparatları"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Aktiv edilir..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Yuxarıdakı tətbiq tərəfindən idarə olunduğu üçün\n parlaqlığı tənzimləmək mümkün deyil"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Yuxarıdakı tətbiq tərəfindən idarə olunduğu üçün parlaqlığı tənzimləmək mümkün deyil"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Avtodönüş"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Ekranın avtomatik dönməsi"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Məkan"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> söhbət funksiyalarını dəstəkləmir"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Rəy"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Rədd edin"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Bərkidilmiş kimi göstərməyin"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Canlı güncəlləmələr göstərilir"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Bərkidilmiş bildirişlər tətbiqlərdəki canlı məlumatları göstərir, həmişə status panelində və kilidli ekranda görünür"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirişlər dəyişdirilə bilməz."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Zəng bildirişləri dəyişdirilə bilməz."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Bu bildiriş qrupunu burada konfiqurasiya etmək olmaz"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Çoxsaylı tapşırıq icrası"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Tətbiq sağda olmaqla bölünmüş ekranı istifadə edin"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Tətbiq solda olmaqla bölünmüş ekranı istifadə edin"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Tam ekran rejiminə keçin"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Bölünmüş ekran istifadə edərkən sağda və ya aşağıda tətbiqə keçin"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Bölünmüş ekran istifadə edərkən solda və ya yuxarıda tətbiqə keçin"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Bölünmüş ekran rejimində: tətbiqi birindən digərinə dəyişin"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Aşağı prioritet bildiriş işarələrini göstərin"</string>
     <string name="other" msgid="429768510980739978">"Digər"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"lövhəni silin"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"son mövqeyə mozaik əlavə edin"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Lövhəni köçürün"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Son tətbiqlərə baxın"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Başqa tətbiqə keçin"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Hazırdır"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Yenidən cəhd edin!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Geri qayıdın"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Taçpeddə üç barmaqla sola və ya sağa sürüşdürün"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Son tətbiqlərə baxmaq üçün taçpeddə üç barmağınızla yuxarı çəkib saxlayın"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Bütün tətbiqlərə baxmaq üçün klaviaturada fəaliyyət açarını basın"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Çıxarılıb"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Baxmaq üçün kiliddən çıxarın"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstual təhsil"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Geri qayıtmaq üçün taçped istifadə edin"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Üç barmaqla sola və ya sağa çəkin. Daha çox jest öyrənmək üçün toxunun."</string>
diff --git a/packages/SystemUI/res/values-az/tiles_states_strings.xml b/packages/SystemUI/res/values-az/tiles_states_strings.xml
index 696fad2..74b95e2 100644
--- a/packages/SystemUI/res/values-az/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-az/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Deaktiv"</item>
     <item msgid="5908720590832378783">"Aktiv"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Əlçatan deyil"</item>
+    <item msgid="6641673879029894995">"Sönülü"</item>
+    <item msgid="5806682401126108403">"Yanılı"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index 9a5bc49..69ebc70 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth je priključen."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ikona Bluetooth uređaja"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Kliknite da biste konfigurisali detalje o uređaju"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Kliknite da biste videli sve uređaje"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Kliknite da biste uparili nov uređaj"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. Konfigurišite detalje o uređaju"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"Pogledajte sve uređaje"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"Uparite novi uređaj"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Procenat napunjenosti baterije nije poznat."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Povezani ste sa <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Povezani smo sa uređajem <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Unos"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Slušni aparati"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Uključuje se..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Ne možete da prilagodite osvetljenost jer je\n kontroliše aplikacija u vrhu"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Ne možete da prilagodite osvetljenost jer je kontroliše aplikacija u vrhu"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Automatska rotacija"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Automatsko rotiranje ekrana"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Lokacija"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ne podržava funkcije konverzacije"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Povratne informacije"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Odbaci"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ne prikazuj kao zakačeno"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Prikazuju se novosti uživo"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Zakačena obaveštenja prikazuju informacije uživo iz aplikacija i uvek se pojavljuju na statusnoj traci i zaključanom ekranu"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ova obaveštenja ne mogu da se menjaju."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Obaveštenja o pozivima ne mogu da se menjaju."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ova grupa obaveštenja ne može da se konfiguriše ovde"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Obavljanje više zadataka istovremeno"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Koristi podeljeni ekran sa aplikacijom s desne strane"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Koristi podeljeni ekran sa aplikacijom s leve strane"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Pređi na režim preko celog ekrana"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"Koristi prikaz preko celog ekrana"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"Koristi prikaz za računare"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Pređi u aplikaciju zdesna ili ispod dok je podeljen ekran"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Pređite u aplikaciju sleva ili iznad dok koristite podeljeni ekran"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"U režimu podeljenog ekrana: zamena jedne aplikacije drugom"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Prikaži ikone obaveštenja niskog prioriteta"</string>
     <string name="other" msgid="429768510980739978">"Drugo"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"uklonili pločicu"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"dodali pločicu na poslednju poziciju"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Premestite pločicu"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Prikaži nedavno korišćene aplikacije"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Pređi na drugu aplikaciju"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Gotovo"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"Dalje"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"Probajte ponovo."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Nazad"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Prevucite ulevo ili udesno sa tri prsta na tačpedu"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Da biste pregledali nedavne aplikacije, prevucite nagore i zadržite sa tri prsta na tačpedu"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Da biste pogledali sve aplikacije, pritisnite taster radnji na tastaturi"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Redigovano"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Otključajte za prikaz"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstualno obrazovanje"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Koristite tačped za vraćanje nazad"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Prevucite ulevo ili udesno sa tri prsta. Dodirnite da biste videli više pokreta."</string>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/tiles_states_strings.xml b/packages/SystemUI/res/values-b+sr+Latn/tiles_states_strings.xml
index 3b99019..51b667c 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Isključeno"</item>
     <item msgid="5908720590832378783">"Uključeno"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Nedostupno"</item>
+    <item msgid="6641673879029894995">"Isključeno"</item>
+    <item msgid="5806682401126108403">"Uključeno"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml
index 5fc56bc..7c7c364 100644
--- a/packages/SystemUI/res/values-be/strings.xml
+++ b/packages/SystemUI/res/values-be/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth-сувязь."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Значок прылады з Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Націсніце, каб задаць падрабязныя налады прылады"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Націсніце, каб пабачыць усе прылады"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Націсніце, каб спалучыць новую прыладу"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. Наладзіць звесткі пра прыладу"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"Паглядзець усе прылады"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"Спалучыць новую прыладу"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Працэнт зараду акумулятара невядомы."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Падлучаны да <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Ёсць падключэнне да <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Увод"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Слыхавыя апараты"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Уключэнне…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Не ўдаецца адрэгуляваць яркасць, бо яна\nкантралюецца асноўнай праграмай"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Не ўдаецца адрэгуляваць яркасць, бо янакантралюецца асноўнай праграмай"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Аўтапаварот"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Аўтаматычны паварот экрана"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Месцазнаходжанне"</string>
@@ -471,7 +472,7 @@
     <string name="zen_silence_introduction" msgid="6117517737057344014">"Гэта заблакіруе ЎСЕ гукі і вібрацыі, у тым ліку ад будзільнікаў, музыкі, відэа і гульняў."</string>
     <string name="notification_tap_again" msgid="4477318164947497249">"Дакраніцеся яшчэ раз, каб адкрыць"</string>
     <string name="tap_again" msgid="1315420114387908655">"Націсніце яшчэ раз"</string>
-    <string name="keyguard_unlock" msgid="8031975796351361601">"Каб адкрыць, прагарніце ўверх"</string>
+    <string name="keyguard_unlock" msgid="8031975796351361601">"Каб адкрыць, правядзіце пальцам уверх"</string>
     <string name="keyguard_unlock_press" msgid="9140109453735019209">"Каб адкрыць, націсніце значок разблакіроўкі"</string>
     <string name="keyguard_face_successful_unlock_swipe" msgid="6180997591385846073">"Твар распазнаны. Каб адкрыць, прагарніце ўверх."</string>
     <string name="keyguard_face_successful_unlock_press" msgid="25520941264602588">"Твар распазнаны. Для адкрыцця націсніце значок разблакіроўкі"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не падтрымлівае функцыі размовы"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Водгук"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Закрыць"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Не паказваць як замацаванае"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Паказ навін у рэальным часе"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Замацаваныя апавяшчэнні паказваюць актуальную інфармацыю з праграм і заўсёды з’яўляюцца на панэлі стану і экране блакіроўкі"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Гэтыя апавяшчэнні нельга змяніць."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Апавяшчэнні пра выклікі нельга змяніць."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Тут канфігурыраваць гэту групу апавяшчэнняў забаронена"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Шматзадачнасць"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Падзяліць экран і памясціць праграму справа"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Падзяліць экран і памясціць праграму злева"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Уключыць поўнаэкранны рэжым"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"Выкарыстоўваць поўнаэкранны рэжым"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"Выкарыстоўваць версію для камп’ютараў"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Пераключыцца на праграму справа або ўнізе на падзеленым экране"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Пераключыцца на праграму злева або ўверсе на падзеленым экране"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"У рэжыме падзеленага экрана замяніць адну праграму на іншую"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Паказваць значкі апавяшчэнняў з нізкім прыярытэтам"</string>
     <string name="other" msgid="429768510980739978">"Іншае"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"выдаліць плітку"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"дадаць плітку ў апошнюю пазіцыю"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Перамясціць плітку"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Прагляд нядаўніх праграм"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Пераключэнне праграм"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Гатова"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"Далей"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"Паспрабуйце яшчэ раз!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Назад"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Правядзіце па сэнсарнай панэлі трыма пальцамі ўлева ці ўправа"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Для прагляду нядаўніх праграм правядзіце па сэнсарнай панэлі трыма пальцамі ўверх і затрымайцеся"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Каб праглядзець усе праграмы, націсніце на клавішу дзеяння на клавіятуры"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Схавана"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Разблакіруйце экран, каб праглядзець"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Кантэкстнае навучанне"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Выкарыстайце сэнсарную панэль для вяртання"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Правядзіце ўлева ці ўправа трыма пальцамі. Націсніце, каб азнаёміцца з іншымі жэстамі."</string>
diff --git a/packages/SystemUI/res/values-be/tiles_states_strings.xml b/packages/SystemUI/res/values-be/tiles_states_strings.xml
index 9f520da9..cbbfe92 100644
--- a/packages/SystemUI/res/values-be/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-be/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Выключана"</item>
     <item msgid="5908720590832378783">"Уключана"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Недаступна"</item>
+    <item msgid="6641673879029894995">"Выключана"</item>
+    <item msgid="5806682401126108403">"Уключана"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 339d751..0f2ab17 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth е включен."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Икона за устройство с Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Кликнете, за да конфигурирате подробностите за устройството"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Кликнете, за да видите всички устройства"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Кликнете за сдвояване на ново устройство"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Процентът на батерията е неизвестен."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Има връзка с <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Установена е връзка с/ъс <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Вход"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Слухови апарати"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Включва се..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Яркостта не може да се коригира, защото се контролира\n от приложението на екрана"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Яркостта не може да се коригира, защото се контролира от приложението на екрана"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Авт. ориентация"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Автоматично завъртане на екрана"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Местоположение"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не поддържа функциите за разговор"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Отзиви"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Отхвърляне"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Без показване като фиксирано"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Показване на актуализации на живо"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Фиксираните известия показват информация в реално време от приложенията и винаги се показват в лентата на състоянието и на заключения екран"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Тези известия не могат да бъдат променяни."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Известията за обаждания не могат да бъдат променяни."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Тази група от известия не може да бъде конфигурирана тук"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Няколко задачи едновременно"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Използване на разделен екран с приложението вдясно"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Използване на разделен екран с приложението вляво"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Превключване на цял екран"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Превключване към приложението вдясно/отдолу в режима на разделен екран"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Превключване към приложението вляво/отгоре в режима на разделен екран"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"При разделен екран: замяна на дадено приложение с друго"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Показване на иконите за известията с нисък приоритет"</string>
     <string name="other" msgid="429768510980739978">"Друго"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"премахване на панел"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"добавяне на панела на последната позиция"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Преместване на панел"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Преглед на скорошните приложения"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Превключване на приложенията"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Готово"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Опитайте отново!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Назад"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Плъзнете три пръста наляво или надясно по сензорния панел"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"За да прегледате скорошните приложения, плъзнете нагоре по сензорния панел с три пръста и задръжте"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"За да прегледате всичките си приложения, натиснете клавиша за действия на клавиатурата си"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Скрито"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Отключете за преглед"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Контекстуално обучение"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Използвайте сензорния панел, за да се върнете назад"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Плъзнете три пръста наляво или надясно. Докоснете, за да научите повече жестове."</string>
diff --git a/packages/SystemUI/res/values-bg/tiles_states_strings.xml b/packages/SystemUI/res/values-bg/tiles_states_strings.xml
index e598f928..636585d 100644
--- a/packages/SystemUI/res/values-bg/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-bg/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Изкл."</item>
     <item msgid="5908720590832378783">"Вкл."</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Не е налице"</item>
+    <item msgid="6641673879029894995">"Изкл."</item>
+    <item msgid="5806682401126108403">"Вкл."</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml
index ef1253b..10a1fd6 100644
--- a/packages/SystemUI/res/values-bn/strings.xml
+++ b/packages/SystemUI/res/values-bn/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"ব্লুটুথ সংযুক্ত হয়েছে৷"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"ব্লুটুথ ডিভাইসের আইকন"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"ডিভাইসের বিবরণ কনফিগার করতে ক্লিক করুন"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"সব ডিভাইস দেখতে ক্লিক করুন"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"নতুন ডিভাইস পেয়ার করতে ক্লিক করুন"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ব্যাটারি কত শতাংশ আছে তা জানা যায়নি।"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>এ সংযুক্ত হয়ে আছে।"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> এর সাথে সংযুক্ত৷"</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"ইনপুট"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"হিয়ারিং এড"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"চালু করা হচ্ছে…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"উজ্জ্বলতা টপ অ্যাপ নিয়ন্ত্রণ করায়\n এটিকে অ্যাডজাস্ট করা যাচ্ছে না"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"উজ্জ্বলতা টপ অ্যাপ নিয়ন্ত্রণ করায় এটিকে অ্যাডজাস্ট করা যাচ্ছে না"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"নিজে থেকে ঘুরবে"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"অটো-রোটেট স্ক্রিন"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"লোকেশন"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>-এ কথোপকথন ফিচার কাজ করে না"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"মতামত"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"বাতিল করুন"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"পিন করা হিসেবে দেখতে চাই না"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"লাইভ আপডেট দেখানো হচ্ছে"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"পিন করা বিজ্ঞপ্তিগুলি অ্যাপ থেকে লাইভ তথ্য দেখায় এবং তা সর্বদা স্ট্যাটাস বার ও লক স্ক্রিনে দেখানো হয়"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"এই বিজ্ঞপ্তিগুলি পরিবর্তন করা যাবে না।"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"কল বিজ্ঞপ্তি পরিবর্তন করা যাবে না।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"এই সমস্ত বিজ্ঞপ্তিকে এখানে কনফিগার করা যাবে না"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"মাল্টিটাস্কিং"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"ডানদিকে বর্তমান অ্যাপে স্প্লিট স্ক্রিন ব্যবহার করুন"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"বাঁদিকে বর্তমান অ্যাপে স্প্লিট স্ক্রিন ব্যবহার করুন"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"ফুল-স্ক্রিন মোডে সুইচ করুন"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"স্প্লিট স্ক্রিন ব্যবহার করার সময় ডানদিকের বা নিচের অ্যাপে পাল্টে নিন"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"স্প্লিট স্ক্রিন ব্যবহার করার সময় বাঁদিকের বা উপরের অ্যাপে পাল্টে নিন"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"\'স্প্লিট স্ক্রিন\' থাকাকালীন: একটি অ্যাপ থেকে অন্যটিতে পাল্টান"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"কম-গুরুত্বপূর্ণ বিজ্ঞপ্তির আইকন দেখুন"</string>
     <string name="other" msgid="429768510980739978">"অন্যান্য"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"টাইল সরান"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"শেষ জায়গাতে টাইল যোগ করুন"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"টাইল সরান"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"সম্প্রতি ব্যবহার করা হয়েছে এমন অ্যাপ দেখুন"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"অ্যাপ পরিবর্তন করুন"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"হয়ে গেছে"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"আবার চেষ্টা করুন!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"ফিরে যান"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"আপনার টাচপ্যাডে তিনটি আঙুল ব্যবহার করে বাঁদিকে বা ডানদিকে সোয়াইপ করুন"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"সম্প্রতি ব্যবহার করা অ্যাপ দেখতে, টাচপ্যাডে তিনটি আঙুল ব্যবহার করে উপরের দিকে সোয়াইপ করে ধরে রাখুন"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"আপনার সব অ্যাপ দেখতে, কীবোর্ডে অ্যাকশন কী প্রেস করুন"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"রিড্যাক্ট করা হয়েছে"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"দেখার জন্য আনলক করুন"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"প্রাসঙ্গিক শিক্ষা"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"ফিরে যেতে টাচপ্যাড ব্যবহার করুন"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"তিনটি আঙুলের ব্যবহার করে ডান বা বাঁদিকে সোয়াইপ করুন। আরও জেসচার সম্পর্কে জানতে ট্যাপ করুন।"</string>
diff --git a/packages/SystemUI/res/values-bn/tiles_states_strings.xml b/packages/SystemUI/res/values-bn/tiles_states_strings.xml
index 38d9ee7..08231e4 100644
--- a/packages/SystemUI/res/values-bn/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-bn/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"বন্ধ আছে"</item>
     <item msgid="5908720590832378783">"চালু আছে"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"উপলভ্য নেই"</item>
+    <item msgid="6641673879029894995">"বন্ধ আছে"</item>
+    <item msgid="5806682401126108403">"চালু আছে"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml
index aa036d4..8eadd4d 100644
--- a/packages/SystemUI/res/values-bs/strings.xml
+++ b/packages/SystemUI/res/values-bs/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth je povezan."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ikona Bluetooth uređaja"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Kliknite da konfigurirate detalje uređaja"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Pregled svih uređaja klikom"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Uparivanje novog uređaja klikom"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. Konfigurirajte pojedinosti o uređaju"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"Pogledajte sve uređaje"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"Upari novi uređaj"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Postotak napunjenosti baterije nije poznat"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Povezan na <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Povezan na <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Ulaz"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Slušni aparati"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Uključivanje…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Nije moguće podesiti osvijetljenost\n jer njome upravlja aplikacija pri vrhu"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Nije moguće podesiti osvijetljenost jer njome upravlja aplikacija pri vrhu"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Automatsko rotiranje"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Automatsko rotiranje ekrana"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Lokacija"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> ne podržava funkcije razgovora"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Povratne informacije"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Odbaci"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ne prikazuj kao zakačeno"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Prikazivanje novosti uživo"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Zakačena obavještenja prikazuju informacije uživo iz aplikacija i uvijek se prikazuju na statusnoj traci i zaključanom ekranu"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ta obavještenja se ne mogu izmijeniti."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Nije moguće izmijeniti obavještenja o pozivima."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ovu grupu obavještenja nije moguće konfigurirati ovdje"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Korištenje podijeljenog ekrana s aplikacijom na desnoj strani"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Korištenje podijeljenog ekrana s aplikacijom na lijevoj strani"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Prelazak na prikaz preko cijelog ekrana"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"Upotreba prikaza na cijelom zaslonu"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"Upotreba prikaza na računalu"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Prelazak u aplikaciju desno ili ispod uz podijeljeni ekran"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Pređite u aplikaciju lijevo ili iznad dok koristite podijeljeni ekran"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Za vrijeme podijeljenog ekrana: zamjena jedne aplikacije drugom"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Prikaži ikone obavještenja niskog prioriteta"</string>
     <string name="other" msgid="429768510980739978">"Ostalo"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"uklanjanje kartice"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"dodavanje kartice na posljednji položaj"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Pomjeranje kartice"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Prikaži nedavne aplikacije"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Promijenite aplikaciju"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Gotovo"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"Dalje"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"Pokušajte ponovo!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Nazad"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Prevucite ulijevo ili udesno s tri prsta na dodirnoj podlozi"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Da pregledate nedavne aplikacije, prevucite nagore i zadržite s tri prsta na dodirnoj podlozi"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Da pregledate sve aplikacije, pritisnite tipku radnji na tastaturi"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Redigovano"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Otključajte da pregledate"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstualno obrazovanje"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Koristite dodirnu podlogu da se vratite"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Prevucite ulijevo ili udesno s tri prsta. Dodirnite da naučite više pokreta."</string>
diff --git a/packages/SystemUI/res/values-bs/tiles_states_strings.xml b/packages/SystemUI/res/values-bs/tiles_states_strings.xml
index 3b99019..51b667c 100644
--- a/packages/SystemUI/res/values-bs/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-bs/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Isključeno"</item>
     <item msgid="5908720590832378783">"Uključeno"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Nedostupno"</item>
+    <item msgid="6641673879029894995">"Isključeno"</item>
+    <item msgid="5806682401126108403">"Uključeno"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 15d9283..8e4da1d 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth connectat."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Icona de dispositiu Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Fes clic per configurar els detalls del dispositiu"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Fes clic per veure tots els dispositius"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Fes clic per vincular un dispositiu nou"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Es desconeix el percentatge de bateria."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"S\'ha connectat a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Està connectat amb <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Entrada"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Audiòfons"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"S\'està activant…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"No es pot ajustar la brillantor perquè\n està controlada per l\'aplicació superior"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"No es pot ajustar la brillantor perquè està controlada per l\'aplicació superior"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Gira automàticament"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Gira la pantalla automàticament"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Ubicació"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> no admet les funcions de converses"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Suggeriments"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Ignora"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"No mostris com a fixat"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"S\'estan mostrant les actualitzacions en temps real"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Les notificacions fixades mostren informació en temps real de les aplicacions i sempre es mostren a la barra d\'estat i a la pantalla de bloqueig"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Aquestes notificacions no es poden modificar."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Les notificacions de trucades no es poden modificar."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Aquest grup de notificacions no es pot configurar aquí"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasca"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Utilitzar la pantalla dividida amb l\'aplicació a la dreta"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Utilitzar la pantalla dividida amb l\'aplicació a l\'esquerra"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Canviar a pantalla completa"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Canvia a l\'aplicació de la dreta o de sota amb la pantalla dividida"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Canvia a l\'aplicació de l\'esquerra o de dalt amb la pantalla dividida"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Durant el mode de pantalla dividida: substitueix una app per una altra"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Mostra les icones de notificació amb prioritat baixa"</string>
     <string name="other" msgid="429768510980739978">"Altres"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"suprimir el mosaic"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"afegir una icona a la darrera posició"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Mou el mosaic"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Mostra les aplicacions recents"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Canviar d\'aplicació"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Fet"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Torna-ho a provar"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Torna"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Llisca cap a l\'esquerra o cap a la dreta amb tres dits al ratolí tàctil"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Per veure les aplicacions recents, llisca cap amunt amb tres dits i mantén premut al ratolí tàctil"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Per veure totes les aplicacions, prem la tecla d\'acció al teclat"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Emmascarat"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Desbloqueja per veure"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Educació contextual"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Utilitza el ratolí tàctil per tornar enrere"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Fes lliscar tres dits cap a l\'esquerra o cap a la dreta. Toca per aprendre més gestos."</string>
diff --git a/packages/SystemUI/res/values-ca/tiles_states_strings.xml b/packages/SystemUI/res/values-ca/tiles_states_strings.xml
index e0c3fb9..3b0b9d7 100644
--- a/packages/SystemUI/res/values-ca/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ca/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Desactivat"</item>
     <item msgid="5908720590832378783">"Activat"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"No disponible"</item>
+    <item msgid="6641673879029894995">"Desactivat"</item>
+    <item msgid="5806682401126108403">"Activat"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index 031e59d..6d38055 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Rozhraní Bluetooth je připojeno."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ikona zařízení Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Kliknutím nakonfigurujete podrobnosti o zařízení"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Kliknutím zobrazíte všechna zařízení"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Kliknutím spárujete nové zařízení"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Procento baterie není známé."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Připojeno k zařízení <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Jste připojeni k zařízení <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Vstup"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Naslouchátka"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Zapínání…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Jas nelze upravit, protože ho\n řídí hlavní aplikace"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Jas nelze upravit, protože ho řídí hlavní aplikace"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Autom. otáčení"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Automatické otáčení obrazovky"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Poloha"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"Aplikace <xliff:g id="APP_NAME">%1$s</xliff:g> funkce konverzace nepodporuje"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Zpětná vazba"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Zavřít"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Zobrazovat připnuté"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Zobrazování aktualit živě"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Připnutá oznámení zobrazují živé informace z aplikací a vždy se zobrazují na stavovém řádku a obrazovce uzamčení"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Tato oznámení nelze upravit."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Upozornění na hovor nelze upravit."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Tuto skupinu oznámení tady nelze nakonfigurovat"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Použít rozdělenou obrazovku s aplikací vpravo"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Použít rozdělenou obrazovku s aplikací vlevo"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Přepnout na celou obrazovku"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Přepnout na aplikaci vpravo nebo dole v režimu rozdělené obrazovky"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Přepnout na aplikaci vlevo nebo nahoře v režimu rozdělené obrazovky"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"V režimu rozdělené obrazovky: nahradit jednu aplikaci druhou"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Zobrazit ikony oznámení s nízkou prioritou"</string>
     <string name="other" msgid="429768510980739978">"Jiné"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"odstranit dlaždici"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"přidat dlaždici na poslední pozici"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Přesunout dlaždici"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Zobrazit nedávné aplikace"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Přepnout aplikace"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Hotovo"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Zkuste to znovu."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Zpět"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Přejeďte po touchpadu třemi prsty doleva nebo doprava"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Pokud chcete zobrazit poslední aplikace, přejeďte na touchpadu třemi prsty nahoru a podržte je"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Pokud chcete zobrazit všechny aplikace, stiskněte na klávesnici akční klávesu"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Odstraněno"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"K zobrazení je potřeba zařízení odemknout"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontextová výuka"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Návrat zpět pomocí touchpadu"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Přejeďte třemi prsty doleva nebo doprava. Další gesta zjistíte klepnutím."</string>
diff --git a/packages/SystemUI/res/values-cs/tiles_states_strings.xml b/packages/SystemUI/res/values-cs/tiles_states_strings.xml
index ea62773..4977032 100644
--- a/packages/SystemUI/res/values-cs/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-cs/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Vypnuto"</item>
     <item msgid="5908720590832378783">"Zapnuto"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Nedostupné"</item>
+    <item msgid="6641673879029894995">"Vypnuto"</item>
+    <item msgid="5806682401126108403">"Zapnuto"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 1ddaf8c..a5801cb 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth tilsluttet."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ikon for Bluetooth-enhed"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Klik for at konfigurere enhedsoplysninger"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Klik for at se alle enheder"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Klik for at parre en ny enhed"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Batteriniveauet er ukendt."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Forbundet med <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Forbundet til <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Input"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Høreapparater"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Aktiverer…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Lysstyrken kan ikke justeres, fordi den\n styres af den øverste app"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Lysstyrken kan ikke justeres, fordi den styres af den øverste app"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Roter automatisk"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Roter skærmen automatisk"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Lokation"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> understøtter ikke samtalefunktioner"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Luk"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Vis ikke som fastgjort"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Viser liveopdateringer"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Fastgjorte notifikationer viser liveoplysninger fra apps og vises altid på statusbjælken og låseskærmen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Disse notifikationer kan ikke redigeres."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Opkaldsnotifikationer kan ikke redigeres."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Du kan ikke konfigurere denne gruppe notifikationer her"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Brug opdelt skærm med appen til højre"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Brug opdelt skærm med appen til venstre"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Skift til fuld skærm"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Skift til en app til højre eller nedenfor, når du bruger opdelt skærm"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Skift til en app til venstre eller ovenfor, når du bruger opdelt skærm"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Ved opdelt skærm: Udskift én app med en anden"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Vis ikoner for notifikationer med lav prioritet"</string>
     <string name="other" msgid="429768510980739978">"Andet"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"fjern felt"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"føj handlingsfeltet til den sidste position"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Flyt felt"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Se seneste apps"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Skift mellem apps"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Udfør"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Prøv igen!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Gå tilbage"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Stryg til venstre eller højre med tre fingre på touchpladen"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Du kan se nyligt brugte apps ved at stryge opad og holde tre fingre nede på touchpladen"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Du kan se alle dine apps ved at trykke på handlingstasten på dit tastatur"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Skjult"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Lås op for at se"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstbaseret uddannelse"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Brug din touchplade til at gå tilbage"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Stryg til venstre eller højre med tre fingre. Tryk for at lære flere bevægelser."</string>
diff --git a/packages/SystemUI/res/values-da/tiles_states_strings.xml b/packages/SystemUI/res/values-da/tiles_states_strings.xml
index 2b1dbcf..af6dafb 100644
--- a/packages/SystemUI/res/values-da/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-da/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Fra"</item>
     <item msgid="5908720590832378783">"Til"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Ikke tilgængelig"</item>
+    <item msgid="6641673879029894995">"Fra"</item>
+    <item msgid="5806682401126108403">"Til"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index 16bbea1..132de74 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Mit Bluetooth verbunden"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Symbol des Bluetooth-Geräts"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Klicke, um das Gerätedetail zu konfigurieren"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Klicken, um alle Geräte anzeigen zu lassen"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Klicken, um neues Gerät zu koppeln"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Akkustand unbekannt."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Mit <xliff:g id="BLUETOOTH">%s</xliff:g> verbunden"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Verbunden mit <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Eingabe"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Hörgerät"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Wird aktiviert…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Die Helligkeit kann nicht angepasst werden, weil sie\n von der obersten App gesteuert wird"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Die Helligkeit kann nicht angepasst werden, weil sie von der obersten App gesteuert wird"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Autom. drehen"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Bildschirm automatisch drehen"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Standort"</string>
@@ -506,7 +510,7 @@
     <string name="communal_tutorial_indicator_text" msgid="4503010353591430123">"Wische nach links, um das gemeinsame Tutorial zu starten"</string>
     <string name="cta_tile_button_to_open_widget_editor" msgid="3871562362382963878">"Anpassen"</string>
     <string name="cta_tile_button_to_dismiss" msgid="3377597875997861754">"Schließen"</string>
-    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"Hier kannst du Widgets hinzufügen, entfernen und neu anordnen"</string>
+    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"Widgets hinzufügen, entfernen und neu anordnen"</string>
     <string name="cta_label_to_open_widget_picker" msgid="3874946756976360699">"Weitere Widgets hinzufügen"</string>
     <string name="popup_on_dismiss_cta_tile_text" msgid="8292501780996070019">"Lange drücken, um Widgets anzupassen"</string>
     <string name="button_to_configure_widgets_text" msgid="4191862850185256901">"Widgets anpassen"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> unterstützt keine Funktionen für Unterhaltungen"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Schließen"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Nicht als angepinnt anzeigen"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Livemeldungen werden angezeigt"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Aktuelle Informationen aus Apps werden als angeheftete Benachrichtigungen angezeigt, die immer in der Statusleiste und auf dem Sperrbildschirm erscheinen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Diese Benachrichtigungen können nicht geändert werden."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Anrufbenachrichtigungen können nicht geändert werden."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Die Benachrichtigungsgruppe kann hier nicht konfiguriert werden"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Splitscreen mit der App auf der rechten Seite nutzen"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Splitscreen mit der App auf der linken Seite nutzen"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"In den Vollbildmodus wechseln"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Im Splitscreen-Modus zu einer App rechts oder unten wechseln"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Im Splitscreen-Modus zu einer App links oder oben wechseln"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Im Splitscreen: eine App durch eine andere ersetzen"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Symbole für Benachrichtigungen mit einer niedrigen Priorität anzeigen"</string>
     <string name="other" msgid="429768510980739978">"Sonstiges"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"Entfernen der Kachel"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"Kachel an letzter Position hinzufügen"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Kachel verschieben"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Letzte Apps aufrufen"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Zwischen Apps wechseln"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Fertig"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Noch einmal versuchen"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Zurück"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Wische mit drei Fingern auf dem Touchpad nach links oder rechts"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Um zuletzt verwendete Apps aufzurufen, wische mit 3 Fingern nach oben und halte das Touchpad gedrückt"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Wenn du alle deine Apps aufrufen möchtest, drücke auf der Tastatur die Aktionstaste"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Entfernt"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Zum Ansehen entsperren"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontextbezogene Informationen"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Zum Zurückgehen Touchpad verwenden"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Wische mit drei Fingern nach links oder rechts. Tippe für mehr Infos zu Touch-Gesten."</string>
diff --git a/packages/SystemUI/res/values-de/tiles_states_strings.xml b/packages/SystemUI/res/values-de/tiles_states_strings.xml
index ded7efd..44734ae 100644
--- a/packages/SystemUI/res/values-de/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-de/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Aus"</item>
     <item msgid="5908720590832378783">"An"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Nicht verfügbar"</item>
+    <item msgid="6641673879029894995">"Aus"</item>
+    <item msgid="5806682401126108403">"An"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index 89c2cd2..a628e21 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Το Bluetooth είναι συνδεδεμένο."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Εικονίδιο συσκευής Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Κάντε κλικ για να διαμορφώσετε τις λεπτομέρειες συσκευής"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Κάντε κλικ για εμφάνιση όλων των συσκευών"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Κάντε κλικ για σύζευξη νέας συσκευής"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Άγνωστο ποσοστό μπαταρίας."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Συνδέθηκε στο <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Συνδέθηκε σε <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Είσοδος"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Βοηθήματα ακοής"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Ενεργοποίηση…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Δεν είναι δυνατή η προσαρμογή της φωτεινότητας, επειδή\n ελέγχεται από την εφαρμογή στην κορυφή"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Δεν είναι δυνατή η προσαρμογή της φωτεινότητας, επειδή ελέγχεται από την εφαρμογή στην κορυφή"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Αυτόματη περιστροφή"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Αυτόματη περιστροφή οθόνης"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Τοποθεσία"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"Η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> δεν υποστηρίζει τις λειτουργίες συζήτησης"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Σχόλια"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Παράβλεψη"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Να μην φαίνεται καρφιτσωμένο"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Εμφανίζονται οι ενημερώσεις σε πραγματικό χρόνο"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Οι καρφιτσωμένες ειδοποιήσεις προβάλλουν ζωντανές πληροφορίες από εφαρμογές και εμφανίζονται πάντα στη γραμμή κατάστασης και στην οθόνη κλειδώματος"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Δεν είναι δυνατή η τροποποίηση αυτών των ειδοποιήσεων"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Δεν είναι δυνατή η τροποποίηση των ειδοποιήσεων κλήσεων."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Δεν είναι δυνατή η διαμόρφωση αυτής της ομάδας ειδοποιήσεων εδώ"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Πολυδιεργασία"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Χρήση διαχωρισμού οθόνης με την εφαρμογή στα δεξιά"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Χρήση διαχωρισμού οθόνης με την εφαρμογή στα αριστερά"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Εναλλαγή σε πλήρη οθόνη"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Εναλλαγή στην εφαρμογή δεξιά ή κάτω κατά τη χρήση διαχωρισμού οθόνης"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Εναλλαγή σε εφαρμογή αριστερά ή επάνω κατά τη χρήση διαχωρισμού οθόνης"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Κατά τον διαχωρισμό οθόνης: αντικατάσταση μιας εφαρμογής με άλλη"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Εμφάνιση εικονιδίων ειδοποιήσεων χαμηλής προτεραιότητας"</string>
     <string name="other" msgid="429768510980739978">"Άλλο"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"κατάργηση πλακιδίου"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"προσθήκη πλακιδίου στην τελευταία θέση"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Μετακίνηση πλακιδίου"</string>
@@ -1377,7 +1383,7 @@
     <string name="bt_le_audio_broadcast_dialog_different_output" msgid="7885102097302562674">"Αλλαγή εξόδου"</string>
     <string name="bt_le_audio_broadcast_dialog_unknown_name" msgid="3791472237793443044">"Άγνωστο"</string>
     <string name="dream_time_complication_12_hr_time_format" msgid="4691197486690291529">"ώ:λλ"</string>
-    <string name="dream_time_complication_24_hr_time_format" msgid="6248280719733640813">"kk:λλ"</string>
+    <string name="dream_time_complication_24_hr_time_format" msgid="6248280719733640813">"kk:mm"</string>
     <string name="log_access_confirmation_title" msgid="4843557604739943395">"Να επιτρέπεται στο <xliff:g id="LOG_ACCESS_APP_NAME">%s</xliff:g> η πρόσβαση σε όλα τα αρχεία καταγραφής συσκευής;"</string>
     <string name="log_access_confirmation_allow" msgid="752147861593202968">"Να επιτρέπεται η πρόσβαση για μία φορά"</string>
     <string name="log_access_confirmation_deny" msgid="2389461495803585795">"Να μην επιτρέπεται"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Προβολή πρόσφατων εφαρμογών"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Εναλλαγή μεταξύ εφαρμογών"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Τέλος"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Δοκιμάστε ξανά!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Επιστροφή"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Σύρετε προς τα αριστερά ή τα δεξιά με τρία δάχτυλα στην επιφάνεια αφής"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Για πρόσφατες εφαρμογές, σαρώστε προς τα πάνω με τρία δάχτυλα και κρατήστε τα στην επιφάνεια αφής"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Για να δείτε όλες τις εφαρμογές, πιέστε το πλήκτρο ενέργειας στο πληκτρολόγιό σας"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Αποκρύφτηκε"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Ξεκλείδωμα για προβολή"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Εκπαίδευση με βάση τα συμφραζόμενα"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Χρήση της επιφάνειας αφής για επιστροφή"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Σύρετε προς τα αριστερά ή τα δεξιά με τρία δάχτυλα. Πατήστε για να μάθετε περισσότερες κινήσεις."</string>
diff --git a/packages/SystemUI/res/values-el/tiles_states_strings.xml b/packages/SystemUI/res/values-el/tiles_states_strings.xml
index 398bf13..b649db4 100644
--- a/packages/SystemUI/res/values-el/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-el/tiles_states_strings.xml
@@ -47,7 +47,7 @@
     <item msgid="287997784730044767">"Ενεργό"</item>
   </string-array>
   <string-array name="tile_states_battery">
-    <item msgid="6311253873330062961">"Μη διαθέσιμο"</item>
+    <item msgid="6311253873330062961">"Μη διαθέσιμη"</item>
     <item msgid="7838121007534579872">"Ανενεργό"</item>
     <item msgid="1578872232501319194">"Ενεργό"</item>
   </string-array>
@@ -118,7 +118,7 @@
   </string-array>
   <string-array name="tile_states_night">
     <item msgid="7857498964264855466">"Μη διαθέσιμο"</item>
-    <item msgid="2744885441164350155">"Ανενεργό"</item>
+    <item msgid="2744885441164350155">"Ανενεργός"</item>
     <item msgid="151121227514952197">"Ενεργό"</item>
   </string-array>
   <string-array name="tile_states_screenrecord">
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Ανενεργό"</item>
     <item msgid="5908720590832378783">"Ενεργό"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Μη διαθέσιμο"</item>
+    <item msgid="6641673879029894995">"Ανενεργό"</item>
+    <item msgid="5806682401126108403">"Ενεργό"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index af0703c..1b36a7c 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth connected."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth device icon"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Click to configure device detail"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Click to see all devices"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Click to pair new device"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Battery percentage unknown."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connected to <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connected to <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Input"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Hearing aids"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Turning on…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Can\'t adjust brightness because it\'s being\n controlled by the top app"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Can\'t adjust brightness because it\'s being controlled by the top app"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Auto-rotate"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Auto-rotate screen"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Location"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> doesn’t support conversation features"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Dismiss"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Don\'t show as pinned"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Showing live updates"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Pinned notifications display live info from apps and always appear on the status bar and lock screen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Call notifications can\'t be modified."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multi-tasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Use split screen with app on the right"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Use split screen with app on the left"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Switch to full screen"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Switch to the app on the right or below while using split screen"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Switch to the app on the left or above while using split screen"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"During split screen: Replace an app from one to another"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Show low-priority notification icons"</string>
     <string name="other" msgid="429768510980739978">"Other"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"remove tile"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"add tile to the last position"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Move tile"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"View recent apps"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Switch apps"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Done"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Try again."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Go back"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Swipe left or right using three fingers on your touchpad"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"To view recent apps, swipe up and hold with three fingers on the touchpad"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"To view all your apps, press the action key on your keyboard"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Redacted"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Unlock to view"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Contextual education"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Use your touchpad to go back"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Swipe left or right using three fingers. Tap to learn more gestures."</string>
diff --git a/packages/SystemUI/res/values-en-rAU/tiles_states_strings.xml b/packages/SystemUI/res/values-en-rAU/tiles_states_strings.xml
index d62f2e5..e17eeb2 100644
--- a/packages/SystemUI/res/values-en-rAU/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Off"</item>
     <item msgid="5908720590832378783">"On"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Unavailable"</item>
+    <item msgid="6641673879029894995">"Off"</item>
+    <item msgid="5806682401126108403">"On"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-en-rCA/strings.xml b/packages/SystemUI/res/values-en-rCA/strings.xml
index f171a78..c6ba039 100644
--- a/packages/SystemUI/res/values-en-rCA/strings.xml
+++ b/packages/SystemUI/res/values-en-rCA/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth connected."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth device icon"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Click to configure device detail"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Click to see all devices"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Click to pair new device"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. Configure device detail"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"See all devices"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"Pair new device"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Battery percentage unknown."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connected to <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connected to <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Input"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Hearing aids"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Turning on…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Can\'t adjust brightness because it\'s being\n controlled by the top app"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Can\'t adjust brightness because it\'s being controlled by the top app"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Auto-rotate"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Auto-rotate screen"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Location"</string>
@@ -897,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Use split screen with app on the right"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Use split screen with app on the left"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Switch to full screen"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"Use full screen"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"Use desktop view"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Switch to app on right or below while using split screen"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Switch to app on left or above while using split screen"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"During split screen: replace an app from one to another"</string>
@@ -984,6 +986,7 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Show low-priority notification icons"</string>
     <string name="other" msgid="429768510980739978">"Other"</string>
+    <string name="accessibility_qs_edit_toggle_tile_size_action" msgid="1485194410119733586">"toggle the tile\'s size"</string>
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"remove tile"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"add tile to the last position"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Move tile"</string>
@@ -1498,6 +1501,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"View recent apps"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Switch apps"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Done"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"Next"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"Try again!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Go back"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Swipe left or right using three fingers on your touchpad"</string>
@@ -1535,7 +1539,8 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"To view recent apps, swipe up and hold with three fingers on the touchpad"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"To view all your apps, press the action key on your keyboard"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Redacted"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Unlock to view"</string>
+    <string name="public_notification_single_line_text" msgid="3576190291791654933">"Unlock to view"</string>
+    <string name="redacted_otp_notification_single_line_text" msgid="5179964116354454118">"Unlock to view code"</string>
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Contextual education"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Use your touchpad to go back"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Swipe left or right using three fingers. Tap to learn more gestures."</string>
diff --git a/packages/SystemUI/res/values-en-rCA/tiles_states_strings.xml b/packages/SystemUI/res/values-en-rCA/tiles_states_strings.xml
index d62f2e5..e17eeb2 100644
--- a/packages/SystemUI/res/values-en-rCA/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-en-rCA/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Off"</item>
     <item msgid="5908720590832378783">"On"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Unavailable"</item>
+    <item msgid="6641673879029894995">"Off"</item>
+    <item msgid="5806682401126108403">"On"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index af0703c..1b36a7c 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth connected."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth device icon"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Click to configure device detail"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Click to see all devices"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Click to pair new device"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Battery percentage unknown."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connected to <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connected to <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Input"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Hearing aids"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Turning on…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Can\'t adjust brightness because it\'s being\n controlled by the top app"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Can\'t adjust brightness because it\'s being controlled by the top app"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Auto-rotate"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Auto-rotate screen"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Location"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> doesn’t support conversation features"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Dismiss"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Don\'t show as pinned"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Showing live updates"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Pinned notifications display live info from apps and always appear on the status bar and lock screen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Call notifications can\'t be modified."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multi-tasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Use split screen with app on the right"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Use split screen with app on the left"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Switch to full screen"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Switch to the app on the right or below while using split screen"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Switch to the app on the left or above while using split screen"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"During split screen: Replace an app from one to another"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Show low-priority notification icons"</string>
     <string name="other" msgid="429768510980739978">"Other"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"remove tile"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"add tile to the last position"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Move tile"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"View recent apps"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Switch apps"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Done"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Try again."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Go back"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Swipe left or right using three fingers on your touchpad"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"To view recent apps, swipe up and hold with three fingers on the touchpad"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"To view all your apps, press the action key on your keyboard"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Redacted"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Unlock to view"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Contextual education"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Use your touchpad to go back"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Swipe left or right using three fingers. Tap to learn more gestures."</string>
diff --git a/packages/SystemUI/res/values-en-rGB/tiles_states_strings.xml b/packages/SystemUI/res/values-en-rGB/tiles_states_strings.xml
index d62f2e5..e17eeb2 100644
--- a/packages/SystemUI/res/values-en-rGB/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Off"</item>
     <item msgid="5908720590832378783">"On"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Unavailable"</item>
+    <item msgid="6641673879029894995">"Off"</item>
+    <item msgid="5806682401126108403">"On"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index af0703c..1b36a7c 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth connected."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth device icon"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Click to configure device detail"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Click to see all devices"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Click to pair new device"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Battery percentage unknown."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connected to <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connected to <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Input"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Hearing aids"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Turning on…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Can\'t adjust brightness because it\'s being\n controlled by the top app"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Can\'t adjust brightness because it\'s being controlled by the top app"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Auto-rotate"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Auto-rotate screen"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Location"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> doesn’t support conversation features"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Dismiss"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Don\'t show as pinned"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Showing live updates"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Pinned notifications display live info from apps and always appear on the status bar and lock screen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Call notifications can\'t be modified."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multi-tasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Use split screen with app on the right"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Use split screen with app on the left"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Switch to full screen"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Switch to the app on the right or below while using split screen"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Switch to the app on the left or above while using split screen"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"During split screen: Replace an app from one to another"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Show low-priority notification icons"</string>
     <string name="other" msgid="429768510980739978">"Other"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"remove tile"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"add tile to the last position"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Move tile"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"View recent apps"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Switch apps"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Done"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Try again."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Go back"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Swipe left or right using three fingers on your touchpad"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"To view recent apps, swipe up and hold with three fingers on the touchpad"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"To view all your apps, press the action key on your keyboard"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Redacted"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Unlock to view"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Contextual education"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Use your touchpad to go back"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Swipe left or right using three fingers. Tap to learn more gestures."</string>
diff --git a/packages/SystemUI/res/values-en-rIN/tiles_states_strings.xml b/packages/SystemUI/res/values-en-rIN/tiles_states_strings.xml
index d62f2e5..e17eeb2 100644
--- a/packages/SystemUI/res/values-en-rIN/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Off"</item>
     <item msgid="5908720590832378783">"On"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Unavailable"</item>
+    <item msgid="6641673879029894995">"Off"</item>
+    <item msgid="5806682401126108403">"On"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 0e15e45..fbf01b8 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth conectado"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ícono de dispositivo Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Haz clic para configurar los detalles del dispositivo"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Haz clic para ver todos los dispositivos"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Haz clic para vincular un dispositivo nuevo"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Se desconoce el porcentaje de la batería."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Conectado a <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -255,7 +259,7 @@
     <string name="accessibility_not_connected" msgid="4061305616351042142">"No conectado"</string>
     <string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
     <string name="cell_data_off" msgid="4886198950247099526">"Desactivados"</string>
-    <string name="accessibility_airplane_mode" msgid="1899529214045998505">"Modo de avión"</string>
+    <string name="accessibility_airplane_mode" msgid="1899529214045998505">"Modo avión."</string>
     <string name="accessibility_vpn_on" msgid="8037549696057288731">"VPN activada"</string>
     <string name="accessibility_battery_level" msgid="5143715405241138822">"Batería <xliff:g id="NUMBER">%d</xliff:g> por ciento"</string>
     <string name="accessibility_battery_level_with_estimate" msgid="6548654589315074529">"Batería: <xliff:g id="PERCENTAGE">%1$d</xliff:g> por ciento; <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Entrada"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Audífonos"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Activando…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"La app superior controla el brillo,\npor lo que no se puede ajustar"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"La app superior controla el brillo,por lo que no se puede ajustar"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Giro automático"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Girar la pantalla automáticamente"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Ubicación"</string>
@@ -754,7 +758,7 @@
     <string name="qr_code_scanner_title" msgid="1938155688725760702">"Escáner de código QR"</string>
     <string name="qr_code_scanner_updating_secondary_label" msgid="8344598017007876352">"Actualizando"</string>
     <string name="status_bar_work" msgid="5238641949837091056">"Perfil de trabajo"</string>
-    <string name="status_bar_airplane" msgid="4848702508684541009">"Modo de avión"</string>
+    <string name="status_bar_airplane" msgid="4848702508684541009">"Modo avión"</string>
     <string name="status_bar_supervision" msgid="6735015942701134125">"Controles parentales"</string>
     <string name="zen_alarm_warning" msgid="7844303238486849503">"No oirás la próxima alarma a la(s) <xliff:g id="WHEN">%1$s</xliff:g>"</string>
     <string name="alarm_template" msgid="2234991538018805736">"a la(s) <xliff:g id="WHEN">%1$s</xliff:g>"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> no admite funciones de conversación"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Comentarios"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Descartar"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"No mostrar como fijado"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Se muestran las novedades en tiempo real"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Las notificaciones fijadas muestran información en tiempo real de las apps y siempre aparecen en la barra de estado y la pantalla de bloqueo"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"No se pueden modificar estas notificaciones."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"No se pueden modificar las notificaciones de llamada."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"No se puede configurar aquí este grupo de notificaciones"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Tareas múltiples"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Usar la pantalla dividida con la app a la derecha"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Usar la pantalla dividida con la app a la izquierda"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Cambiar a pantalla completa"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Ubicar la app a la derecha o abajo cuando usas la pantalla dividida"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Ubicar la app a la izquierda o arriba cuando usas la pantalla dividida"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Durante pantalla dividida: Reemplaza una app con otra"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Mostrar íconos de notificaciones con prioridad baja"</string>
     <string name="other" msgid="429768510980739978">"Otros"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"quitar tarjeta"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"agregar tarjeta a la última posición"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Mover la tarjeta"</string>
@@ -1329,7 +1335,7 @@
     <string name="see_all_networks" msgid="3773666844913168122">"Ver todo"</string>
     <string name="to_switch_networks_disconnect_ethernet" msgid="6698111101156951955">"Para cambiar de red, desconéctate de Ethernet"</string>
     <string name="wifi_scan_notify_message" msgid="3753839537448621794">"Para mejorar la experiencia con el dispositivo, las apps y los servicios pueden seguir buscando redes Wi-Fi en cualquier momento, incluso cuando la conexión Wi-Fi esté desactivada. Puedes cambiar este parámetro en la configuración de búsqueda de Wi-Fi. "<annotation id="link">"Cambiar"</annotation></string>
-    <string name="turn_off_airplane_mode" msgid="8425587763226548579">"Desactivar el modo de avión"</string>
+    <string name="turn_off_airplane_mode" msgid="8425587763226548579">"Desactivar el modo avión"</string>
     <string name="qs_tile_request_dialog_text" msgid="3501359944139877694">"<xliff:g id="APPNAME">%1$s</xliff:g> quiere agregar la siguiente tarjeta a la Configuración rápida"</string>
     <string name="qs_tile_request_dialog_add" msgid="4888460910694986304">"Agregar tarjeta"</string>
     <string name="qs_tile_request_dialog_not_add" msgid="4168716573114067296">"No agregar tarjeta"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Ver apps recientes"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Cambiar de app"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Listo"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Vuelve a intentarlo"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Atrás"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Desliza hacia la izquierda o la derecha con tres dedos en el panel táctil"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Para ver las apps recientes, desliza hacia arriba con tres dedos y mantén presionado el panel táctil"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Para ver todas las apps, presiona la tecla de acción en el teclado"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Oculto"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Desbloquea el dispositivo para ver"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Educación contextual"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Usa el panel táctil para ir hacia atrás"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Desliza hacia la izquierda o la derecha con tres dedos. Presiona para aprender más gestos."</string>
diff --git a/packages/SystemUI/res/values-es-rUS/tiles_states_strings.xml b/packages/SystemUI/res/values-es-rUS/tiles_states_strings.xml
index d835483..91f5f88 100644
--- a/packages/SystemUI/res/values-es-rUS/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Desactivado"</item>
     <item msgid="5908720590832378783">"Activado"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"No disponible"</item>
+    <item msgid="6641673879029894995">"No"</item>
+    <item msgid="5806682401126108403">"Sí"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 1670ce6..0af9fbf 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth conectado"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Icono de dispositivo Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Haz clic para configurar la información del dispositivo"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Haz clic para ver todos los dispositivos"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Haz clic para emparejar un nuevo dispositivo"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Porcentaje de batería desconocido."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Conectado a <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Entrada"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Audífonos"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Activando…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"No se puede ajustar el brillo porque la aplicación superior lo está\n controlando"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"No se puede ajustar el brillo porque la aplicación superior lo está controlando"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Giro automático"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Girar pantalla automáticamente"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Ubicación"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> no admite funciones de conversación"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Comentarios"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Cerrar"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"No mostrar como fijadas"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Se mostrarán las novedades en directo"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Las notificaciones fijadas muestran información en tiempo real de las aplicaciones y aparecen siempre en la barra de estado y en la pantalla de bloqueo"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Estas notificaciones no se pueden modificar."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Las notificaciones de llamada no se pueden modificar."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Este grupo de notificaciones no se puede configurar aquí"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitarea"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Usar la pantalla dividida con la aplicación a la derecha"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Usar la pantalla dividida con la aplicación a la izquierda"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Cambiar a pantalla completa"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Cambiar a la aplicación de la derecha o de abajo en pantalla dividida"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Cambiar a la app de la izquierda o de arriba en pantalla dividida"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Con pantalla dividida: reemplazar una aplicación por otra"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Mostrar iconos de notificaciones con prioridad baja"</string>
     <string name="other" msgid="429768510980739978">"Otros"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"quitar recuadro"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"añadir el recuadro a la última posición"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Mover recuadro"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Ver aplicaciones recientes"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Cambiar de aplicación"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Hecho"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Vuelve a intentarlo."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Atrás"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Desliza hacia la izquierda o la derecha con tres dedos en el panel táctil"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Para ver las aplicaciones recientes, desliza hacia arriba y mantén pulsado el panel táctil con tres dedos"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Para ver todas tus aplicaciones, pulsa la tecla de acción de tu teclado"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Oculta"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Desbloquea para ver"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Educación contextual"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Usa el panel táctil para volver atrás"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Desliza hacia la izquierda o hacia la derecha con tres dedos. Toca para aprender a usar más gestos."</string>
diff --git a/packages/SystemUI/res/values-es/tiles_states_strings.xml b/packages/SystemUI/res/values-es/tiles_states_strings.xml
index ea75e52..c5b6c2e 100644
--- a/packages/SystemUI/res/values-es/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-es/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Desactivado"</item>
     <item msgid="5908720590832378783">"Activado"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"No disponible"</item>
+    <item msgid="6641673879029894995">"Desactivado"</item>
+    <item msgid="5806682401126108403">"Activado"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml
index 445b540..bb77e96 100644
--- a/packages/SystemUI/res/values-et/strings.xml
+++ b/packages/SystemUI/res/values-et/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth on ühendatud."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth-seadme ikoon"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Klõpsake seadme üksikasjade konfigureerimiseks"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Kõigi seadmete kuvamiseks klõpsake"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Uue seadme sidumiseks klõpsake"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Aku laetuse protsent on teadmata."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Ühendatud: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Ühendatud ülekandega <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Sisend"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Kuuldeaparaadid"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Sisselülitamine …"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Heledust ei saa reguleerida, kuna seda\n juhib ülemine rakendus"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Heledust ei saa reguleerida, kuna seda juhib ülemine rakendus"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Autom. pööramine"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Kuva automaatne pööramine"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Asukoht"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ei toeta vestlusfunktsioone"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Tagasiside"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Loobu"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ära kuva kinnitatuna"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Kuvatakse reaalajas värskendusi"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Kinnitatud märguanded näitavad rakendustest pärinevat reaalajas teavet ning kuvatakse alati olekuribal ja lukustuskuval"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Neid märguandeid ei saa muuta."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Kõnemärguandeid ei saa muuta."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Seda märguannete rühma ei saa siin seadistada"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitegumtöö"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Jagatud ekraanikuva kasutamine, rakendus kuvatakse paremal"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Jagatud ekraanikuva kasutamine, rakendus kuvatakse vasakul"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Täisekraanile lülitamine"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Paremale või alumisele rakendusele lülitamine jagatud ekraani ajal"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Vasakule või ülemisele rakendusele lülitamine jagatud ekraani ajal"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Ekraanikuva jagamise ajal: ühe rakenduse asendamine teisega"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Kuva madala prioriteediga märguande ikoonid"</string>
     <string name="other" msgid="429768510980739978">"Muu"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"paani eemaldamiseks"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"lisage paan viimasesse asukohta"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Teisalda paan"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Hiljutiste rakenduste vaatamine"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Rakenduste vahetamine"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Valmis"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Proovige uuesti!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Tagasi"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Pühkige puuteplaadil kolme sõrmega vasakule või paremale"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Hiljutiste rakenduste kuvamiseks pühkige puuteplaadil kolme sõrmega üles ja hoidke sõrmi puuteplaadil."</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Kõigi oma rakenduste kuvamiseks vajutage klaviatuuril toiminguklahvi"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Peidetud"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Vaatamiseks avage"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstipõhised õpetused"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Puuteplaadi kasutamine tagasiliikumiseks"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Pühkige kolme sõrmega vasakule või paremale. Puudutage liigutuste kohta lisateabe saamiseks."</string>
diff --git a/packages/SystemUI/res/values-et/tiles_states_strings.xml b/packages/SystemUI/res/values-et/tiles_states_strings.xml
index a9f0880..e9949bf 100644
--- a/packages/SystemUI/res/values-et/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-et/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Väljas"</item>
     <item msgid="5908720590832378783">"Sees"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Pole saadaval"</item>
+    <item msgid="6641673879029894995">"Väljas"</item>
+    <item msgid="5806682401126108403">"Sees"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml
index 1f7d697..cb8e034 100644
--- a/packages/SystemUI/res/values-eu/strings.xml
+++ b/packages/SystemUI/res/values-eu/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetootha konektatuta."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth bidezko gailuaren ikonoa"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Gailuaren xehetasuna konfiguratzeko, sakatu hau"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Egin klik gailu guztiak ikusteko"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Egin klik beste gailu bat parekatzeko"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Bateriaren ehunekoa ezezaguna da."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> gailura konektatuta."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Hona konektatuta: <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Sarrera"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Audifonoak"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Aktibatzen…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Ezin da doitu argitasuna,\ngaineko aplikazioak kontrolatzen duelako"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Ezin da doitu argitasuna,gaineko aplikazioak kontrolatzen duelako"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Biratze automatikoa"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Biratu pantaila automatikoki"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Kokapena"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioak ez ditu onartzen elkarrizketetarako eginbideak"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Iritzia"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Baztertu"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ez erakutsi ainguratutako gisa"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Zuzeneko informazioa dago ikusgai"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Ainguratutako jakinarazpenek istantean bistaratzen dute aplikazioetako informazioa, eta egoera-barran nahiz pantaila blokeatuan agertzen dira beti"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Jakinarazpen horiek ezin dira aldatu."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Deien jakinarazpenak ezin dira aldatu."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Jakinarazpen talde hau ezin da konfiguratu hemen"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Zeregin bat baino gehiago aldi berean exekutatzea"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Erabili pantaila zatitua eta ezarri aplikazio hau eskuinean"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Erabili pantaila zatitua eta ezarri aplikazio hau ezkerrean"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Aldatu pantaila osora"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Aldatu eskuineko edo beheko aplikaziora pantaila zatitua erabiltzean"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Aldatu ezkerreko edo goiko aplikaziora pantaila zatitua erabiltzean"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Pantaila zatituan zaudela, ordeztu aplikazio bat beste batekin"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Erakutsi lehentasun txikiko jakinarazpenen ikonoak"</string>
     <string name="other" msgid="429768510980739978">"Beste bat"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"kendu lauza"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"gehitu lauza azken posizioan"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Mugitu lauza"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Ikusi azkenaldiko aplikazioak"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Aldatu aplikazioa"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Eginda"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Saiatu berriro!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Egin atzera"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Pasatu 3 hatz ezkerrera edo eskuinera ukipen-panelean"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Azkenaldiko aplikazioak ikusteko, pasatu 3 hatz ukipen-panelean gora eta eduki sakatuta"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Aplikazio guztiak ikusteko, sakatu teklatuko ekintza-tekla"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Desitxuratuta"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Desblokeatu ikusteko"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Testuinguruaren araberako hezkuntza"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Erabili ukipen-panela atzera egiteko"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Pasatu 3 hatz ezkerrera edo eskuinera. Sakatu keinu gehiago ikasteko."</string>
diff --git a/packages/SystemUI/res/values-eu/tiles_states_strings.xml b/packages/SystemUI/res/values-eu/tiles_states_strings.xml
index 62bbc27..e47b658 100644
--- a/packages/SystemUI/res/values-eu/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-eu/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Desaktibatuta"</item>
     <item msgid="5908720590832378783">"Aktibatuta"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Ez dago erabilgarri"</item>
+    <item msgid="6641673879029894995">"Desaktibatuta"</item>
+    <item msgid="5806682401126108403">"Aktibatuta"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index c9392e3..7fd5551 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"بلوتوث متصل است."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"نماد دستگاه بلوتوث"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"برای پیکربندی جزئیات دستگاه کلیک کنید"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"برای دیدن همه دستگاه‌ها، کلیک کنید"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"برای جفت کردن دستگاه جدید، کلیک کنید"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"درصد شارژ باتری مشخص نیست."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"به <xliff:g id="BLUETOOTH">%s</xliff:g> متصل شد."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"به <xliff:g id="CAST">%s</xliff:g> متصل شد."</string>
@@ -306,7 +310,7 @@
     <string name="pair_new_bluetooth_devices" msgid="4601767620843349645">"جفت کردن دستگاه جدید"</string>
     <string name="see_all_bluetooth_devices" msgid="1761596816620200433">"دیدن همه"</string>
     <string name="turn_on_bluetooth" msgid="5681370462180289071">"استفاده از بلوتوث"</string>
-    <string name="quick_settings_bluetooth_device_connected" msgid="7884777006729260996">"متصل"</string>
+    <string name="quick_settings_bluetooth_device_connected" msgid="7884777006729260996">"وصل‌شده"</string>
     <string name="quick_settings_bluetooth_device_audio_sharing" msgid="1496358082943301670">"اشتراک صدا"</string>
     <string name="quick_settings_bluetooth_device_audio_sharing_or_switch_active" msgid="8680997711431098238">"از اشتراک صدا پشتیبانی می‌کند"</string>
     <string name="quick_settings_bluetooth_device_saved" msgid="7549938728928069477">"ذخیره‌شده"</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"ورودی"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"سمعک"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"روشن کردن…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"نمی‌توان روشنایی را تنظیم کرد زیرا\n برنامه بالایی آن را کنترل می‌کند"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"نمی‌توان روشنایی را تنظیم کرد زیرا برنامه بالایی آن را کنترل می‌کند"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"چرخش خودکار"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"چرخش خودکار صفحه‌نمایش"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"مکان"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> از ویژگی‌های مکالمه پشتیبانی نمی‌کند"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"بازخورد"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"بستن"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"سنجاق‌شده نشان داده نشود"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"نمایش «به‌روزرسانی‌های زنده»"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"اعلان‌های سنجاق‌شده اطلاعات زنده را از برنامه‌ها نمایش می‌دهند، و همیشه در نوار وضعیت و صفحه قفل نشان داده می‌شوند"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"این اعلان‌ها قابل اصلاح نیستند."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"این اعلان‌ها قابل‌اصلاح نیستند."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"نمی‌توانید این گروه اعلان‌ها را در اینجا پیکربندی کنید"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"چندوظیفگی"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"استفاده از صفحهٔ دونیمه با قرار گرفتن برنامه در سمت راست"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"استفاده از صفحهٔ دونیمه با قرار گرفتن برنامه در سمت چپ"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"رفتن به حالت تمام‌صفحه"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"رفتن به برنامه سمت راست یا پایین درحین استفاده از صفحهٔ دونیمه"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"رفتن به برنامه سمت چپ یا بالا درحین استفاده از صفحهٔ دونیمه"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"درحین صفحهٔ دونیمه: برنامه‌ای را با دیگری جابه‌جا می‌کند"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"نمایش نمادهای اعلان کم‌اهمیت"</string>
     <string name="other" msgid="429768510980739978">"موارد دیگر"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"برداشتن کاشی"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"افزودن کاشی به آخرین جایگاه"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"انتقال کاشی"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"مشاهده برنامه‌های اخیر"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"جابه‌جایی بین برنامه‌ها"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"تمام"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"دوباره امتحان کنید!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"برگشتن"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"با سه انگشت روی صفحه لمسی تند به چپ یا راست بکشید."</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"برای مشاهده برنامه‌های اخیر، در صفحه لمسی با سه انگشت تند به‌بالا بکشید و نگه دارید"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"برای مشاهده همه برنامه‌ها، دکمه کنش در صفحه‌کلید را فشار دهید"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"محوشده"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"برای مشاهده، قفل را باز کنید"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"آموزش زمینه‌ای"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"برای برگشتن از صفحه لمسی استفاده کنید"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"با سه انگشت تند به‌چپ یا راست بکشید. برای آشنایی با اشاره‌های بیشتر، تک‌ضرب بزنید."</string>
diff --git a/packages/SystemUI/res/values-fa/tiles_states_strings.xml b/packages/SystemUI/res/values-fa/tiles_states_strings.xml
index edc2d41..1025f3d 100644
--- a/packages/SystemUI/res/values-fa/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-fa/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"خاموش"</item>
     <item msgid="5908720590832378783">"روشن"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"دردسترس نیست"</item>
+    <item msgid="6641673879029894995">"خاموش"</item>
+    <item msgid="5806682401126108403">"روشن"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index 96162b2..647134f 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -247,8 +247,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth yhdistetty."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth-laitekuvake"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Määritä laitteen asetukset klikkaamalla"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Katso kaikki laitteet klikkaamalla"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Muodosta uusi laitepari klikkaamalla"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Akun varaustaso ei tiedossa."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Yhteys: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Yhdistetty kohteeseen <xliff:g id="CAST">%s</xliff:g>"</string>
@@ -330,7 +334,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Syöttölaite"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Kuulolaitteet"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Otetaan käyttöön…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Kirkkautta ei voi säätää, koska \n ensisijainen sovellus ohjaa sitä"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Kirkkautta ei voi säätää, koska ensisijainen sovellus ohjaa sitä"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Automaattinen kääntö"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Käännä näyttöä automaattisesti."</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Sijainti"</string>
@@ -810,12 +814,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ei tue keskusteluominaisuuksia"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Palaute"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Hylkää"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Älä näytä kiinnitettynä"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Näytetään livepäivitykset"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Kiinnitetyissä ilmoituksissa näytetään livetietoja sovelluksista, ja ilmoitukset näkyvät aina tilapalkissa ja lukitusnäytöllä"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Näitä ilmoituksia ei voi muokata"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Puheluilmoituksia ei voi muokata."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Tätä ilmoitusryhmää ei voi määrittää tässä"</string>
@@ -902,7 +903,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitaskaus"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Käytä jaettua näyttöä niin, että sovellus on oikealla"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Käytä jaettua näyttöä niin, että sovellus on vasemmalla"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Koko näytölle siirtyminen"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Vaihda sovellukseen oikealla tai alapuolella jaetussa näytössä"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Vaihda sovellukseen vasemmalla tai yläpuolella jaetussa näytössä"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Jaetun näytön aikana: korvaa sovellus toisella"</string>
@@ -989,6 +993,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Näytä vähemmän tärkeät ilmoituskuvakkeet"</string>
     <string name="other" msgid="429768510980739978">"Muu"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"poista kiekko"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"lisää laatta viimeiseen kohtaan"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Siirrä kiekkoa"</string>
@@ -1331,7 +1337,7 @@
     <string name="see_all_networks" msgid="3773666844913168122">"Näytä kaikki"</string>
     <string name="to_switch_networks_disconnect_ethernet" msgid="6698111101156951955">"Irrota Ethernet-johto, jos haluat vaihtaa verkkoa"</string>
     <string name="wifi_scan_notify_message" msgid="3753839537448621794">"Laitteen käyttökokemuksen parantamiseksi sovellukset ja palvelut voivat hakea Wi-Fi-verkkoja myös silloin, kun Wi-Fi on pois päältä. Voit muuttaa asetusta Wi-Fi-haun asetuksissa. "<annotation id="link">"Muuta"</annotation></string>
-    <string name="turn_off_airplane_mode" msgid="8425587763226548579">"Laita lentokonetila pois päältä"</string>
+    <string name="turn_off_airplane_mode" msgid="8425587763226548579">"Lentokonetila pois"</string>
     <string name="qs_tile_request_dialog_text" msgid="3501359944139877694">"<xliff:g id="APPNAME">%1$s</xliff:g> haluaa lisätä seuraavan laatan pika-asetuksiin"</string>
     <string name="qs_tile_request_dialog_add" msgid="4888460910694986304">"Lisää laatta"</string>
     <string name="qs_tile_request_dialog_not_add" msgid="4168716573114067296">"Älä lisää laattaa"</string>
@@ -1503,6 +1509,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Katso viimeisimmät sovellukset"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Vaihda sovellusta"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Valmis"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Yritä uudelleen."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Takaisin"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Pyyhkäise kosketuslevyllä vasemmalle tai oikealle kolmella sormella"</string>
@@ -1540,7 +1548,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Näet äskeiset sovellukset, kun pyyhkäiset ylös ja pidät kosketuslevyä painettuna kolmella sormella."</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Jos haluat nähdä kaikki sovellukset, paina näppäimistön toimintonäppäintä"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Sensuroitu"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Avaa lukitus ja katso tiedot"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstuaalinen koulutus"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Takaisin siirtyminen kosketuslevyn avulla"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Pyyhkäise vasemmalle tai oikealle kolmella sormella. Lue lisää eleistä napauttamalla."</string>
diff --git a/packages/SystemUI/res/values-fi/tiles_states_strings.xml b/packages/SystemUI/res/values-fi/tiles_states_strings.xml
index 6b1a8ed..5452f26 100644
--- a/packages/SystemUI/res/values-fi/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-fi/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Pois päältä"</item>
     <item msgid="5908720590832378783">"Päällä"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Ei saatavilla"</item>
+    <item msgid="6641673879029894995">"Pois päältä"</item>
+    <item msgid="5806682401126108403">"Päällä"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index 8fd2ed2..299f5a5 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth connecté"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Icône de l\'appareil Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Cliquez pour configurer les détails de l\'appareil"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Cliquez ici pour voir tous les appareils"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Cliquez ici pour associer un nouvel appareil"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Pourcentage de la pile inconnu."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connecté à : <xliff:g id="BLUETOOTH">%s</xliff:g>"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connecté à <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Entrée"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Prothèses auditives"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Activation en cours…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Impossible de régler la luminosité, car elle est\n contrôlée par l\'appli principale"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Impossible de régler la luminosité, car elle est contrôlée par l\'appli principale"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Rotation auto"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Rotation automatique de l\'écran"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Localisation"</string>
@@ -506,7 +510,7 @@
     <string name="communal_tutorial_indicator_text" msgid="4503010353591430123">"Balayer l\'écran vers la gauche pour démarrer le tutoriel communautaire"</string>
     <string name="cta_tile_button_to_open_widget_editor" msgid="3871562362382963878">"Personnaliser"</string>
     <string name="cta_tile_button_to_dismiss" msgid="3377597875997861754">"Fermer"</string>
-    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"Ajouter, retirer et réorganiser vos widgets dans cet espace"</string>
+    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"Ajouter, retirer et réorganiser vos widgets dans cet espace"</string>
     <string name="cta_label_to_open_widget_picker" msgid="3874946756976360699">"Ajouter plus de widgets"</string>
     <string name="popup_on_dismiss_cta_tile_text" msgid="8292501780996070019">"Appuyez longuement pour personnaliser les widgets"</string>
     <string name="button_to_configure_widgets_text" msgid="4191862850185256901">"Personnaliser les widgets"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ne prend pas en charge les fonctionnalités de conversation"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Commentaires"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Fermer"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ne pas afficher comme épinglé"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Affichage des mises à jour en direct"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Les notifications épinglées affichent des informations en direct des applis et apparaissent toujours sur la barre d\'état et l\'écran de verrouillage"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ces notifications ne peuvent pas être modifiées"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Les notifications d\'appel ne peuvent pas être modifiées."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ce groupe de notifications ne peut pas être configuré ici"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitâche"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Utiliser l\'Écran divisé avec l\'appli à droite"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Utiliser l\'Écran divisé avec l\'appli à gauche"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Passer au mode plein écran"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Passer à l\'appli à droite ou en dessous avec l\'Écran divisé"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Passer à l\'appli à gauche ou au-dessus avec l\'Écran divisé"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"En mode d\'écran divisé : remplacer une appli par une autre"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Afficher les icônes de notification de faible priorité"</string>
     <string name="other" msgid="429768510980739978">"Autre"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"retirer la tuile"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"Ajouter une tuile à la dernière position"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Déplacer la tuile"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Afficher les applis récentes"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Changer d\'appli"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"OK"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Réessayez!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Retour"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Balayez votre pavé tactile vers la gauche ou vers la droite avec trois doigts"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Pour afficher les applis récentes, balayez l\'écran vers le haut avec trois doigts sur le pavé tactile et maintenez-les en place"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Pour afficher toutes vos applis, appuyez sur la touche d\'action de votre clavier"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Supprimé"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Déverrouiller pour afficher"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Enseignement contextuel"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Utiliser votre pavé tactile pour revenir en arrière"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Balayez vers la gauche ou vers la droite avec trois doigts. Touchez pour apprendre d\'autres gestes."</string>
diff --git a/packages/SystemUI/res/values-fr-rCA/tiles_states_strings.xml b/packages/SystemUI/res/values-fr-rCA/tiles_states_strings.xml
index 4734d86..e9d3c48 100644
--- a/packages/SystemUI/res/values-fr-rCA/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Désactivée"</item>
     <item msgid="5908720590832378783">"Activée"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Non accessible"</item>
+    <item msgid="6641673879029894995">"Désactivé"</item>
+    <item msgid="5806682401126108403">"Activé"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 89002d4..a4fa4d0 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth connecté"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Icône de l\'appareil Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Cliquer pour configurer les détails de l\'appareil"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Cliquer pour afficher tous les appareils"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Cliquer pour associer un nouvel appareil"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. Configurez les détails de l\'appareil"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"Voir tous les appareils"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"Associer un nouvel appareil"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Pourcentage de la batterie inconnu."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connecté à : <xliff:g id="BLUETOOTH">%s</xliff:g>"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connecté à <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Entrée"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Appareils auditifs"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Activation…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Impossible d\'ajuster la luminosité, car celle-ci\n est contrôlée par l\'appli principale"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Impossible d\'ajuster la luminosité, car celle-ci est contrôlée par l\'appli principale"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Rotation auto"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Rotation automatique de l\'écran"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Localisation"</string>
@@ -354,7 +355,7 @@
     <string name="quick_settings_inversion_label" msgid="3501527749494755688">"Inversion des couleurs"</string>
     <string name="quick_settings_color_correction_label" msgid="5636617913560474664">"Correction des couleurs"</string>
     <string name="quick_settings_font_scaling_label" msgid="5289001009876936768">"Taille de la police"</string>
-    <string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Gérer utilisateurs"</string>
+    <string name="quick_settings_more_user_settings" msgid="7634653308485206306">"Gérer les utilisateurs"</string>
     <string name="quick_settings_done" msgid="2163641301648855793">"OK"</string>
     <string name="quick_settings_close_user_panel" msgid="5599724542275896849">"Fermer"</string>
     <string name="quick_settings_connected" msgid="3873605509184830379">"Connecté"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> n\'est pas compatible avec les fonctionnalités de conversation"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Commentaires"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Ignorer"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ne pas afficher comme épinglé"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Affichage des infos en direct"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Les notifications épinglées affichent des informations en direct provenant d\'applis et apparaissent toujours dans la barre d\'état et sur l\'écran de verrouillage"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Impossible de modifier ces notifications."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Impossible de modifier les notifications d\'appel."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Vous ne pouvez pas configurer ce groupe de notifications ici"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitâche"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Utiliser l\'écran partagé avec l\'appli sur la droite"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Utiliser l\'écran partagé avec l\'appli sur la gauche"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Passer en plein écran"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"Utiliser le mode plein écran"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"Utiliser l\'affichage sur ordinateur"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Passer à l\'appli à droite ou en dessous avec l\'écran partagé"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Passez à l\'appli à gauche ou au-dessus avec l\'écran partagé"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"En mode écran partagé : Remplacer une appli par une autre"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Afficher les icônes de notification à faible priorité"</string>
     <string name="other" msgid="429768510980739978">"Autre"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"supprimer le bloc"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"ajouter le bloc à la dernière position"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Déplacer le bloc"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Afficher les applis récentes"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Passer d\'une application à l\'autre"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"OK"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"Suivant"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"Essayez encore."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Retour"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Balayez vers la gauche ou la droite avec trois doigts sur le pavé tactile"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Pour afficher les applis récentes, balayez vers le haut avec trois doigts sur le pavé tactile et maintenez-les."</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Pour afficher toutes vos applis, appuyez sur la touche d\'action de votre clavier"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Masqué"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Déverrouiller pour afficher"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Éducation contextuelle"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Utilisez votre pavé tactile pour revenir en arrière"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Balayez vers la gauche ou la droite en utilisant trois doigts. Appuyez pour apprendre d\'autres gestes."</string>
diff --git a/packages/SystemUI/res/values-fr/tiles_states_strings.xml b/packages/SystemUI/res/values-fr/tiles_states_strings.xml
index cefc9a2..52c7c0c 100644
--- a/packages/SystemUI/res/values-fr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-fr/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Désactivé"</item>
     <item msgid="5908720590832378783">"Activé"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Indisponible"</item>
+    <item msgid="6641673879029894995">"Désactivé"</item>
+    <item msgid="5806682401126108403">"Activé"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml
index 4e801ee..82ba5dc 100644
--- a/packages/SystemUI/res/values-gl/strings.xml
+++ b/packages/SystemUI/res/values-gl/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth conectado"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Icona do dispositivo Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Facer clic para configurar os detalles do dispositivo"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Facer clic para ver todos os dispositivos"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Facer clic para vincular un novo dispositivo"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Descoñécese a porcentaxe da batería."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Dispositivo conectado: <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Entrada"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Audiófonos"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Activando…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Non se pode axustar o brillo\n porque o controla a aplicación principal"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Non se pode axustar o brillo porque o controla a aplicación principal"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Xirar automaticamente"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Xirar pantalla automaticamente"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Localización"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> non admite funcións de conversa"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Comentarios"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Pechar"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Non mostrar como fixadas"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Mostrando novidades en tempo real"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"As notificacións fixadas mostrarán a información en tempo real das aplicacións e aparecerán sempre na barra de estado e na pantalla de bloqueo"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Estas notificacións non se poden modificar."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"As notificacións de chamadas non se poden modificar."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Aquí non se pode configurar este grupo de notificacións"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitarefa"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Usar pantalla dividida coa aplicación na dereita"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Usar pantalla dividida coa aplicación na esquerda"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Cambiar a pantalla completa"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Cambiar á aplicación da dereita ou de abaixo coa pantalla dividida"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Cambiar á aplicación da esquerda ou de arriba coa pantalla dividida"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"En modo de pantalla dividida: Substituír unha aplicación por outra"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Mostrar iconas das notificacións que teñan baixa prioridade"</string>
     <string name="other" msgid="429768510980739978">"Outros"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"quitar tarxeta"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"engadir o atallo á última posición"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Mover tarxeta"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Consultar aplicacións recentes"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Cambiar de aplicación"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Feito"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Téntao de novo."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Volver"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Pasa tres dedos cara á esquerda ou cara á dereita no panel táctil"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Para ver as aplicacións recentes, pasa tres dedos cara arriba no panel táctil e mantenos premidos"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Para ver todas as aplicacións, preme a tecla de acción do teclado"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Contido ocultado"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Desbloquea o dispositivo para ver o contido"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Información contextual"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Usa o panel táctil para volver"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Pasa tres dedos cara á esquerda ou cara á dereita. Toca para obter máis información sobre os xestos."</string>
diff --git a/packages/SystemUI/res/values-gl/tiles_states_strings.xml b/packages/SystemUI/res/values-gl/tiles_states_strings.xml
index bfd6a12..7cf5f82 100644
--- a/packages/SystemUI/res/values-gl/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-gl/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Opción desactivada"</item>
     <item msgid="5908720590832378783">"Opción activada"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Non dispoñible"</item>
+    <item msgid="6641673879029894995">"Desactivado"</item>
+    <item msgid="5806682401126108403">"Activado"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml
index 08e1398..1fa46e6 100644
--- a/packages/SystemUI/res/values-gu/strings.xml
+++ b/packages/SystemUI/res/values-gu/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"બ્લૂટૂથ કનેક્ટ થયું."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"બ્લૂટૂથ ડિવાઇસનું આઇકન"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"ડિવાઇસની વિગત ગોઠવવા માટે ક્લિક કરો"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"બધા ડિવાઇસ જોવા માટે ક્લિક કરો"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"નવું ડિવાઇસ જોડવા માટે ક્લિક કરો"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"બૅટરીની ટકાવારી અજાણ છે."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> થી કનેક્ટ થયાં."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> થી કનેક્ટ કરેલ."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"ઇનપુટ"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"સાંભળવામાં મદદ આપતા યંત્રો"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ચાલુ કરી રહ્યાં છીએ…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"બ્રાઇટનેસ ગોઠવી શકતા નથી કારણ કે તે\n લોકપ્રિય ઍપ દ્વારા નિયંત્રિત કરવામાં આવી રહી છે"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"બ્રાઇટનેસ ગોઠવી શકતા નથી કારણ કે તે લોકપ્રિય ઍપ દ્વારા નિયંત્રિત કરવામાં આવી રહી છે"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"ઑટો રોટેટ"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"ઑટો રોટેટ સ્ક્રીન"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"લોકેશન"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> વાતચીતની સુવિધાઓને સપોર્ટ આપતી નથી"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"પ્રતિસાદ"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"છોડી દો"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"પિન કરેલા તરીકે બતાવશો નહીં"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"લાઇવ અપડેટ બતાવી રહ્યાં છીએ"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"પિન કરેલા નોટિફિકેશન ઍપમાંથી લાઇવ નોટિફિકેશન બતાવે છે અને હંમેશાં સ્ટેટસ બાર અને લૉક સ્ક્રીન પર દેખાય છે"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"આ નોટિફિકેશનમાં કોઈ ફેરફાર થઈ શકશે નહીં."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"કૉલના નોટિફિકેશનમાં કોઈ ફેરફાર કરી શકાતો નથી."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"નોટિફિકેશનના આ ગ્રૂપની ગોઠવણી અહીં કરી શકાશે નહીં"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"એકસાથે એકથી વધુ કાર્યો કરવા"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"હાલની ઍપને જમણી બાજુએ રાખીને વિભાજિત સ્ક્રીનનો ઉપયોગ કરો"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"હાલની ઍપને ડાબી બાજુએ રાખીને વિભાજિત સ્ક્રીનનો ઉપયોગ કરો"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"પૂર્ણ સ્ક્રીન પર સ્વિચ કરો"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"વિભાજિત સ્ક્રીનનો ઉપયોગ કરતી વખતે જમણી બાજુ કે નીચેની ઍપ પર સ્વિચ કરો"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"વિભાજિત સ્ક્રીનનો ઉપયોગ કરતી વખતે ડાબી બાજુની કે ઉપરની ઍપ પર સ્વિચ કરો"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"વિભાજિત સ્ક્રીન દરમિયાન: એક ઍપને બીજી ઍપમાં બદલો"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"ઓછી પ્રાધાન્યતાનું નોટિફિકેશન આઇકન બતાવો"</string>
     <string name="other" msgid="429768510980739978">"અન્ય"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ટાઇલ કાઢી નાખો"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"છેલ્લા સ્થાનમાં ટાઇલ ઉમેરો"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"ટાઇલ ખસેડો"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"તાજેતરની ઍપ જુઓ"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"ઍપ સ્વિચ કરો"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"થઈ ગયું"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"ફરી પ્રયાસ કરો!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"પાછા જાઓ"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"તમારા ટચપૅડ પર ત્રણ આંગળીનો ઉપયોગ કરીને ડાબે કે જમણે સ્વાઇપ કરો"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"તાજેતરની ઍપ જોવા માટે, ટચપૅડ પર ત્રણ આંગળીઓ વડે ઉપર સ્વાઇપ કરો અને દબાવી રાખો"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"તમારી બધી ઍપ જોવા માટે, તમારા કીબોર્ડ પર ઍક્શન કી દબાવો"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"બદલાવેલું"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"જોવા માટે અનલૉક કરો"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"સંદર્ભાત્મક શિક્ષણ"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"પાછા જવા માટે તમારા ટચપૅડનો ઉપયોગ કરો"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"ત્રણ આંગળીનો ઉપયોગ કરીને ડાબે અથવા જમણે સ્વાઇપ કરો. સંકેતો વિશે વધુ જાણવા માટે ટૅપ કરો."</string>
diff --git a/packages/SystemUI/res/values-gu/tiles_states_strings.xml b/packages/SystemUI/res/values-gu/tiles_states_strings.xml
index c6e204d..a003106 100644
--- a/packages/SystemUI/res/values-gu/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-gu/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"બંધ છે"</item>
     <item msgid="5908720590832378783">"ચાલુ"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"અનુપલબ્ધ"</item>
+    <item msgid="6641673879029894995">"બંધ"</item>
+    <item msgid="5806682401126108403">"ચાલુ"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index d781585..be1ca7d 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"ब्लूटूथ कनेक्ट किया गया."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"ब्लूटूथ डिवाइस का आइकॉन"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"डिवाइस की जानकारी कॉन्फ़िगर करने के लिए क्लिक करें"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"\'सभी डिवाइस देखें\' पर क्लिक करें"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"\'नया डिवाइस जोड़ें\' पर क्लिक करें"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. डिवाइस की जानकारी कॉन्फ़िगर करें"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"सभी डिवाइस देखें"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"नया डिवाइस जोड़ें"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"इस बारे में जानकारी नहीं है कि अभी बैटरी कितने प्रतिशत चार्ज है."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> से कनेक्ट किया गया."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> से कनेक्ट है."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"इनपुट"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"कान की मशीनें"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ब्लूटूथ चालू हो रहा है…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"स्क्रीन की रोशनी को एडजस्ट नहीं किया जा सकता, क्योंकि\n इसे टॉप ऐप्लिकेशन कंट्रोल कर रहा है"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"स्क्रीन की रोशनी को एडजस्ट नहीं किया जा सकता, क्योंकि इसे टॉप ऐप्लिकेशन कंट्रोल कर रहा है"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"ऑटो-रोटेट"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"स्क्रीन का अपने-आप दिशा बदलना (ऑटो-रोटेट)"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"जगह की जानकारी"</string>
@@ -536,7 +537,7 @@
     <string name="accessibility_action_label_expand_widget" msgid="9190524260912211759">"ऊंचाई बढ़ाएं"</string>
     <string name="accessibility_action_label_umo_show_next" msgid="8033581654789193281">"अगला दिखाएं"</string>
     <string name="accessibility_action_label_umo_show_previous" msgid="5935831384525173810">"पिछला दिखाएं"</string>
-    <string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"लॉक स्क्रीन विजेट"</string>
+    <string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"लॉक स्क्रीन के विजेट"</string>
     <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"किसी विजेट से कोई ऐप्लिकेशन खोलने के लिए, आपको अपनी पहचान की पुष्टि करनी होगी. ध्यान रखें कि आपके टैबलेट के लॉक होने पर भी, कोई व्यक्ति विजेट देख सकता है. ऐसा हो सकता है कि कुछ विजेट, लॉक स्क्रीन पर दिखाने के लिए न बने हों. इन्हें लॉक स्क्रीन पर जोड़ना असुरक्षित हो सकता है."</string>
     <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ठीक है"</string>
     <string name="accessibility_glanceable_hub_to_dream_button" msgid="7552776300297055307">"स्क्रीन सेवर दिखाने का बटन"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> पर बातचीत की सुविधाएं काम नहीं करतीं"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"सुझाव/राय दें या शिकायत करें"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"खारिज करें"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"पिन किए गए लाइव अपडेट न दिखाएं"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"लाइव अपडेट दिखाए जा रहे हैं"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"पिन की गई सूचनाएं, ऐप्लिकेशन से मिलने वाली जानकारी रीयल-टाइम में दिखाती हैं. ये सूचनाएं, स्टेटस बार और लॉक स्क्रीन पर दिखती हैं"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ये सूचनाएं नहीं बदली जा सकती हैं."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"कॉल से जुड़ी सूचनाओं को ब्लॉक नहीं किया जा सकता."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"सूचनाओं के इस समूह को यहां कॉन्फ़िगर नहीं किया जा सकता"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"मल्टीटास्किंग (एक साथ कई काम करना)"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"स्प्लिट स्क्रीन की सुविधा चालू करें और इस ऐप्लिकेशन को दाईं ओर दिखाएं"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"स्प्लिट स्क्रीन की सुविधा चालू करें और इस ऐप्लिकेशन को बाईं ओर दिखाएं"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"फ़ुल स्क्रीन पर स्विच करें"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"फ़ुल स्क्रीन मोड का इस्तेमाल करें"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"डेस्कटॉप व्यू मोड का इस्तेमाल करें"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"स्प्लिट स्क्रीन पर, दाईं ओर या नीचे के ऐप पर स्विच करने के लिए"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"स्प्लिट स्क्रीन पर, बाईं ओर या ऊपर के ऐप पर स्विच करने के लिए"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"स्प्लिट स्क्रीन के दौरान: एक ऐप्लिकेशन को दूसरे ऐप्लिकेशन से बदलें"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"कम प्राथमिकता वाली सूचना के आइकॉन दिखाएं"</string>
     <string name="other" msgid="429768510980739978">"अन्य"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"टाइल हटाएं"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"आखिरी जगह पर टाइल जोड़ें"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"टाइल को किसी और पोज़िशन पर ले जाएं"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"हाल ही में इस्तेमाल किए गए ऐप्लिकेशन देखें"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"ऐप्लिकेशन के बीच स्विच करें"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"हो गया"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"आगे बढ़ें"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"फिर से कोशिश करें!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"वापस जाएं"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"अपने टचपैड पर तीन उंगलियों से बाईं या दाईं ओर स्वाइप करें"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"हाल ही में इस्तेमाल हुए ऐप देखने के लिए, टचपैड पर तीन उंगलियों से ऊपर की ओर स्वाइप करके दबाकर रखें"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"सभी ऐप्लिकेशन देखने के लिए, कीबोर्ड पर ऐक्शन बटन दबाएं"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"जानकारी छिपाने के लिए सूचना में बदलाव किया गया"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"देखने के लिए डिवाइस अनलॉक करें"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"कॉन्टेक्स्ट के हिसाब से जानकारी"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"वापस जाने के लिए, अपने डिवाइस के टचपैड का इस्तेमाल करें"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"तीन उंगलियों से बाईं या दाईं ओर स्वाइप करें. ज़्यादा जेस्चर के बारे में जानने के लिए टैप करें."</string>
diff --git a/packages/SystemUI/res/values-hi/tiles_states_strings.xml b/packages/SystemUI/res/values-hi/tiles_states_strings.xml
index 65046cc..ae08316 100644
--- a/packages/SystemUI/res/values-hi/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-hi/tiles_states_strings.xml
@@ -152,7 +152,7 @@
     <item msgid="8998632451221157987">"चालू है"</item>
   </string-array>
   <string-array name="tile_states_controls">
-    <item msgid="8199009425335668294">"उपलब्ध नहीं है"</item>
+    <item msgid="8199009425335668294">"उपलब्ध नहीं हैं"</item>
     <item msgid="4544919905196727508">"बंद है"</item>
     <item msgid="3422023746567004609">"चालू है"</item>
   </string-array>
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"बंद है"</item>
     <item msgid="5908720590832378783">"चालू है"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"उपलब्ध नहीं है"</item>
+    <item msgid="6641673879029894995">"बंद है"</item>
+    <item msgid="5806682401126108403">"चालू है"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 3a985a9..5c7ee24 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth povezan."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ikona Bluetooth uređaja"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Kliknite da biste konfigurirali pojedinosti o uređaju"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Kliknite za prikaz svih uređaja"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Kliknite da biste uparili novi uređaj"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. Konfigurirajte pojedinosti o uređaju"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"Pogledajte sve uređaje"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"Upari novi uređaj"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Postotak baterije nije poznat."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Spojen na <xliff:g id="BLUETOOTH">%s</xliff:g> ."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Povezani ste sa sljedećim uređajem: <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Unos"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Slušna pomagala"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Uključivanje…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Svjetlina se ne može prilagoditi jer njome\n upravlja aplikacija pri vrhu"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Svjetlina se ne može prilagoditi jer njome upravlja aplikacija pri vrhu"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Automatsko zakretanje"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Automatsko zakretanje zaslona"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Lokacija"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> ne podržava značajke razgovora"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Povratne informacije"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Odbaci"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ne prikazuj kao prikvačeno"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Prikazivanje obavijesti uživo"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Prikvačene obavijesti prikazuju informacije uživo iz aplikacija i uvijek se prikazuju na traci statusa i zaključanom zaslonu"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Te se obavijesti ne mogu izmijeniti."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Obavijesti o pozivima ne mogu se izmijeniti."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ta se grupa obavijesti ne može konfigurirati ovdje"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Obavljanje više zadataka"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Upotreba podijeljenog zaslona s aplikacijom s desne strane"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Upotreba podijeljenog zaslona s aplikacijom s lijeve strane"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Prebacivanje na cijeli zaslon"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"Upotreba prikaza na cijelom zaslonu"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"Upotreba prikaza na računalu"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Prelazak na aplikaciju zdesna ili ispod uz podijeljeni zaslon"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Prelazak na aplikaciju slijeva ili iznad uz podijeljeni zaslon"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Tijekom podijeljenog zaslona: zamijeni aplikaciju drugom"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Prikaži ikone obavijesti niskog prioriteta"</string>
     <string name="other" msgid="429768510980739978">"Ostalo"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"uklanjanje kartice"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"dodavanje kartice na posljednji položaj"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Premještanje kartice"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Pregled nedavnih aplikacija"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Promjena aplikacije"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Gotovo"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"Dalje"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"Pokušajte ponovno!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Natrag"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Prijeđite ulijevo ili udesno trima prstima na dodirnoj podlozi"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Za prikaz nedavnih aplikacija prijeđite prema gore trima prstima i zadržite pritisak na dodirnoj podlozi"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Za prikaz svojih svih aplikacija pritisnite tipku za radnju na tipkovnici"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Redaktirano"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Otključajte za prikaz"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstualno obrazovanje"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Upotrijebite dodirnu podlogu za povratak"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Prijeđite ulijevo ili udesno trima prstima. Dodirnite da biste naučili više pokreta."</string>
diff --git a/packages/SystemUI/res/values-hr/tiles_states_strings.xml b/packages/SystemUI/res/values-hr/tiles_states_strings.xml
index 3b99019..51b667c 100644
--- a/packages/SystemUI/res/values-hr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-hr/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Isključeno"</item>
     <item msgid="5908720590832378783">"Uključeno"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Nedostupno"</item>
+    <item msgid="6641673879029894995">"Isključeno"</item>
+    <item msgid="5806682401126108403">"Uključeno"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 9b17567..421570c 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth csatlakoztatva."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth-eszköz ikon"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Kattintson az eszköz beállításainak megadásához"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Kattintson az összes eszköz megtekintéséhez"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Kattintson új eszköz párosításához"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Az akkumulátor töltöttségi szintje ismeretlen."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Csatlakoztatva a következőhöz: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Csatlakozva a következőhöz: <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Bevitel"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Hallókészülék"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Bekapcsolás…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Nem lehet módosítani a fényerőt, mert a felső alkalmazás\n vezérli"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Nem lehet módosítani a fényerőt, mert a felső alkalmazás vezérli"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Automatikus elforgatás"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Automatikus képernyőforgatás"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Tartózkodási hely"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> nem támogatja a beszélgetési funkciókat"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Visszajelzés"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Elvetés"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ne jelenjen meg kitűzöttként"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Friss hírek megjelenítése…"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"A kitűzött értesítések alkalmazásokból származó élő információkat jelenítenek meg, és mindig az állapotsoron és a lezárási képernyőn jelennek meg"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ezeket az értesítéseket nem lehet módosítani."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"A hívásértesítéseket nem lehet módosítani."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Az értesítések jelen csoportját itt nem lehet beállítani"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Osztott képernyő használata, az alkalmazás a jobb oldalon van"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Osztott képernyő használata, az alkalmazás a bal oldalon van"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Váltás teljes képernyőre"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Váltás a jobb oldalt, illetve lent lévő appra osztott képernyő esetén"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Váltás a bal oldalt, illetve fent lévő appra osztott képernyő esetén"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Osztott képernyőn: az egyik alkalmazás lecserélése egy másikra"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Alacsony prioritású értesítési ikonok mutatása"</string>
     <string name="other" msgid="429768510980739978">"Egyéb"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"mozaik eltávolításához"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"mozaik hozzáadása az utolsó pozícióhoz"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Mozaik áthelyezése"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Legutóbbi alkalmazások megtekintése"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Váltás az alkalmazások között"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Kész"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Próbálja újra"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Vissza"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Csúsztassa gyorsan három ujját balra vagy jobbra az érintőpadon."</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"A legutóbbi appokért csúsztasson lefelé három ujjal az érintőpadon, és tartsa lenyomva ujjait."</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Az összes alkalmazás megtekintéséhez nyomja meg a billentyűzet műveletbillentyűjét."</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Törölve"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Oldja fel a megtekintéshez"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontextusfüggő tájékoztató párbeszédpanel"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"A visszalépéshez használja az érintőpadot"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Csúsztatasson gyorsan három ujjal balra vagy jobbra. Koppintson a további kézmozdulatokért."</string>
diff --git a/packages/SystemUI/res/values-hu/tiles_states_strings.xml b/packages/SystemUI/res/values-hu/tiles_states_strings.xml
index 06bf4f2..c8f7b0f 100644
--- a/packages/SystemUI/res/values-hu/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-hu/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Ki"</item>
     <item msgid="5908720590832378783">"Be"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Nem áll rendelkezésre"</item>
+    <item msgid="6641673879029894995">"Ki"</item>
+    <item msgid="5806682401126108403">"Be"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml
index 2aa72cc..aaedf56 100644
--- a/packages/SystemUI/res/values-hy/strings.xml
+++ b/packages/SystemUI/res/values-hy/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth-ը միացված է:"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth սարքի պատկերակ"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Սեղմեք՝ սարքի մանրամասները կազմաձևելու համար"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Սեղմեք՝ բոլոր սարքերը տեսնելու համար"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Սեղմեք՝ նոր սարք զուգակցելու համար"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Մարտկոցի լիցքի մակարդակն անհայտ է։"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Միացված է <xliff:g id="BLUETOOTH">%s</xliff:g>-ին:"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Միացված է <xliff:g id="CAST">%s</xliff:g>-ին:"</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Մուտքագրում"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Լսողական սարք"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Միացում…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Հնարավոր չէ կարգավորել պայծառությունը, քանի որ այն\n կառավարվում է գլխավոր հավելվածի կողմից"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Հնարավոր չէ կարգավորել պայծառությունը, քանի որ այն կառավարվում է գլխավոր հավելվածի կողմից"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Ինքնապտտում"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Ավտոմատ պտտել էկրանը"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Տեղորոշում"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածը զրույցի գործառույթներ չի աջակցում"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Կարծիք հայտնել"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Փակել"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ցույց չտալ որպես ամրացված"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Ցուցադրվում են թարմացումներ իրական ժամանակում"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Ամրացված ծանուցումները ցուցադրում են հավելվածների ընթացիկ տեղեկությունները և միշտ հայտնվում են կարգավիճակի գոտում և կողպէկրանին"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Այս ծանուցումները չեն կարող փոփոխվել:"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Զանգերի մասին ծանուցումները հնարավոր չէ փոփոխել։"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ծանուցումների տվյալ խումբը հնարավոր չէ կարգավորել այստեղ"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Բազմա­խնդրու­թ­յուն"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Տրոհել էկրանը և տեղավորել այս հավելվածը աջ կողմում"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Տրոհել էկրանը և տեղավորել այս հավելվածը ձախ կողմում"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Անցնել լիաէկրան ռեժիմի"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Անցեք աջ կողմի կամ ներքևի հավելվածին տրոհված էկրանի միջոցով"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Անցեք աջ կողմի կամ վերևի հավելվածին տրոհված էկրանի միջոցով"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Տրոհված էկրանի ռեժիմում մեկ հավելվածը փոխարինել մյուսով"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Ցուցադրել ցածր առաջնահերթության ծանուցումների պատկերակները"</string>
     <string name="other" msgid="429768510980739978">"Այլ"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"հեռացնել սալիկը"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"ավելացնել սալիկը վերջին դիրքում"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Տեղափոխել սալիկը"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Դիտել վերջին հավելվածները"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Անցում մեկ հավելվածից մյուսին"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Պատրաստ է"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Նորից փորձեք։"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Հետ գնալ"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Հպահարթակի վրա երեք մատով սահեցրեք ձախ կամ աջ"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Վերջերս օգտագործված հավելվածները դիտելու համար երեք մատը սահեցրեք վերև և սեղմած պահեք"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Բոլոր հավելվածները դիտելու համար սեղմեք գործողության ստեղնը ստեղնաշարի վրա"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Կոդավորված"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Ապակողպել դիտելու համար"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Համատեքստային ուսուցում"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Օգտագործեք ձեր հպահարթակը՝ վերադառնալու համար"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Երեք մատը սահեցրեք ձախ կամ աջ։ Հպեք՝ ավելի շատ ժեստերի ծանոթանալու համար։"</string>
diff --git a/packages/SystemUI/res/values-hy/tiles_states_strings.xml b/packages/SystemUI/res/values-hy/tiles_states_strings.xml
index dc8bbb1..e7eee79 100644
--- a/packages/SystemUI/res/values-hy/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-hy/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Անջատված է"</item>
     <item msgid="5908720590832378783">"Միացված է"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Հասանելի չէ"</item>
+    <item msgid="6641673879029894995">"Անջատված է"</item>
+    <item msgid="5806682401126108403">"Միացված է"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index c57f40f..4990774 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth terhubung."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ikon perangkat Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Klik untuk mengonfigurasi detail perangkat"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Klik untuk melihat semua perangkat"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Klik untuk menyambungkan perangkat baru"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Persentase baterai tidak diketahui."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Terhubung ke <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Terhubung ke <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Input"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Alat bantu dengar"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Mengaktifkan…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Tidak dapat menyesuaikan kecerahan karena sedang\n dikontrol oleh aplikasi atas"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Tidak dapat menyesuaikan kecerahan karena sedang dikontrol oleh aplikasi atas"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Putar Otomatis"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Putar layar otomatis"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Lokasi"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> tidak mendukung fitur percakapan"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Masukan"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Tutup"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Jangan tampilkan sebagai tersemat"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Menampilkan Info Terbaru Langsung"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Notifikasi yang disematkan menampilkan info terbaru dari aplikasi, serta selalu muncul di status bar dan layar kunci"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Notifikasi ini tidak dapat diubah."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Notifikasi panggilan tidak dapat diubah."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Grup notifikasi ini tidak dapat dikonfigurasi di sini"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Gunakan layar terpisah dengan aplikasi di sebelah kanan"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Gunakan layar terpisah dengan aplikasi di sebelah kiri"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Beralih ke layar penuh"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Beralih ke aplikasi di bagian kanan atau bawah saat menggunakan layar terpisah"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Beralih ke aplikasi di bagian kiri atau atas saat menggunakan layar terpisah"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Dalam layar terpisah: ganti salah satu aplikasi dengan yang lain"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Tampilkan ikon notifikasi prioritas rendah"</string>
     <string name="other" msgid="429768510980739978">"Lainnya"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"menghapus kartu"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"menambahkan kartu ke posisi terakhir"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Pindahkan kartu"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Lihat aplikasi terbaru"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Beralih aplikasi"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Selesai"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Coba lagi"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Kembali"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Geser ke kiri atau kanan menggunakan tiga jari di touchpad"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Untuk melihat aplikasi terkini, geser ke atas dan tahan menggunakan tiga jari di touchpad"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Untuk melihat semua aplikasi, tekan tombol tindakan di keyboard"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Disamarkan"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Buka kunci untuk melihat"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Pendidikan kontekstual"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Gunakan touchpad untuk kembali"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Geser ke kiri atau kanan menggunakan tiga jari. Ketuk untuk mempelajari gestur lainnya."</string>
diff --git a/packages/SystemUI/res/values-in/tiles_states_strings.xml b/packages/SystemUI/res/values-in/tiles_states_strings.xml
index b48a587..182924d 100644
--- a/packages/SystemUI/res/values-in/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-in/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Nonaktif"</item>
     <item msgid="5908720590832378783">"Aktif"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Tidak tersedia"</item>
+    <item msgid="6641673879029894995">"Nonaktif"</item>
+    <item msgid="5806682401126108403">"Aktif"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml
index ec284c2..3f8492a 100644
--- a/packages/SystemUI/res/values-is/strings.xml
+++ b/packages/SystemUI/res/values-is/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth tengt."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Tákn Bluetooth-tækis"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Smelltu til að stilla tækjaupplýsingar"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Smelltu til að sjá öll tæki"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Smelltu til að para nýtt tæki"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Staða rafhlöðu óþekkt."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Tengt við <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Tengt við <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Inntak"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Heyrnartæki"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Kveikir…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Ekki er hægt að breyta birtustiginu vegna þess að \n efsta forritið stjórnar því"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Ekki er hægt að breyta birtustiginu vegna þess að efsta forritið stjórnar því"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Sjálfvirkur snúningur"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Snúa skjá sjálfkrafa"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Staðsetning"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> styður ekki samtalseiginleika"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Ábendingar"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Loka"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ekki sýna sem fest"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Sýna uppfærslur í beinni"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Festar tilkynningar sýna upplýsingar frá forritum í rauntíma og birtast ávallt á stöðustikunni og lásskjánum"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ekki er hægt að breyta þessum tilkynningum."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Ekki er hægt að breyta tilkynningum um símtöl."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ekki er hægt að stilla þessar tilkynningar hér"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Fjölvinnsla"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Notaðu skjáskiptingu fyrir forritið til hægri"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Notaðu skjáskiptingu fyrir forritið til vinstri"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Skipta yfir í allan skjáinn"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Skiptu í forrit til hægri eða fyrir neðan þegar skjáskipting er notuð"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Skiptu í forrit til vinstri eða fyrir ofan þegar skjáskipting er notuð"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Í skjáskiptingu: Skipta forriti út fyrir annað forrit"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Sýna tákn fyrir tilkynningar með litlum forgangi"</string>
     <string name="other" msgid="429768510980739978">"Annað"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"fjarlægja flís"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"bæta reit við síðustu stöðu"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Færa flís"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Sjá nýleg forrit"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Að skipta á milli forrita"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Lokið"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Reyndu aftur!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Til baka"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Strjúktu til hægri eða vinstri á snertifletinum með þremur fingrum"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Strjúktu upp og haltu með þremur fingrum á snertifletinum til að sjá nýleg forrit"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Ýttu á aðgerðalykilinn á lyklaborðinu til að sjá öll forritin þín"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Ritskoðað"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Taktu úr lás til að skoða"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Samhengismiðuð menntun"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Notaðu snertiflötinn til að fara til baka"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Strjúktu til vinstri eða hægri með þremur fingrum. Ýttu til að læra fleiri bendingar."</string>
diff --git a/packages/SystemUI/res/values-is/tiles_states_strings.xml b/packages/SystemUI/res/values-is/tiles_states_strings.xml
index 92f07b6..58ce0ae 100644
--- a/packages/SystemUI/res/values-is/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-is/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Slökkt"</item>
     <item msgid="5908720590832378783">"Kveikt"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Ekki tiltækt"</item>
+    <item msgid="6641673879029894995">"Slökkt"</item>
+    <item msgid="5806682401126108403">"Kveikt"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 2391fe2..bb7202b 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth collegato."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Icona del dispositivo Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Fai clic per configurare i dettagli del dispositivo"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Fai clic per vedere tutti i dispositivi"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Fai clic per accoppiare un nuovo dispositivo"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. Configura i dettagli del dispositivo"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"Visualizza tutti i dispositivi"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"Accoppia nuovo dispositivo"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Percentuale della batteria sconosciuta."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Connesso a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Connesso a: <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Ingresso"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Apparecchi acustici"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Attivazione…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Impossibile regolare la luminosità perché è\n controllata dall\'app in primo piano"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Impossibile regolare la luminosità perché è controllata dall\'app in primo piano"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Rotazione automatica"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Rotazione automatica dello schermo"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Posizione"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> non supporta le funzionalità delle conversazioni"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Ignora"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Non mostrare come fissata"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Visualizzare gli aggiornamenti in tempo reale"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Le notifiche fissate mostrano informazioni in tempo reale provenienti dalle app e vengono sempre visualizzate nella barra di stato e nella schermata di blocco"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Impossibile modificare queste notifiche."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Impossibile modificare gli avvisi di chiamata."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Qui non è possibile configurare questo gruppo di notifiche"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Utilizza lo schermo diviso con l\'app a destra"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Utilizza lo schermo diviso con l\'app a sinistra"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Passa alla modalità a schermo intero"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"Utilizza la modalità a schermo intero"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"Utilizza la visualizzazione desktop"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Passa all\'app a destra o sotto mentre usi lo schermo diviso"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Passa all\'app a sinistra o sopra mentre usi lo schermo diviso"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Con lo schermo diviso: sostituisci un\'app con un\'altra"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Mostra icone di notifiche con priorità bassa"</string>
     <string name="other" msgid="429768510980739978">"Altro"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"rimuovere il riquadro"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"aggiungere il riquadro all\'ultima posizione"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Sposta riquadro"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Visualizza app recenti"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Cambia app"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Fine"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"Avanti"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"Riprova."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Indietro"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Scorri verso sinistra o destra con tre dita sul touchpad"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Per visualizzare le app recenti, scorri verso l\'alto e tieni premuto con tre dita sul touchpad"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Per visualizzare tutte le tue app, premi il tasto azione sulla tastiera"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Oscurata"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Sblocca per visualizzare"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Istruzione contestuale"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Usa il touchpad per tornare indietro"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Scorri verso sinistra o destra con tre dita. Tocca per scoprire altri gesti."</string>
diff --git a/packages/SystemUI/res/values-it/tiles_states_strings.xml b/packages/SystemUI/res/values-it/tiles_states_strings.xml
index 7e11d0b..5c56d08 100644
--- a/packages/SystemUI/res/values-it/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-it/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Off"</item>
     <item msgid="5908720590832378783">"On"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Non disponibile"</item>
+    <item msgid="6641673879029894995">"Off"</item>
+    <item msgid="5806682401126108403">"On"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 0d7a620..92fc203 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"‏Bluetooth מחובר."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"‏סמל של מכשיר Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"יש ללחוץ כדי להגדיר את פרטי המכשיר"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"אפשר ללחוץ כדי לראות את כל המכשירים"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"צריך ללחוץ כדי להתאים מכשיר חדש"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"אחוז טעינת הסוללה לא ידוע."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"התבצע חיבור אל <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"מחובר אל <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"קלט"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"מכשירי שמיעה"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ההפעלה מתבצעת…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"לא ניתן להתאים את הבהירות כי היא\n נשלטת על ידי האפליקציה העליונה"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"לא ניתן להתאים את הבהירות כי היא נשלטת על ידי האפליקציה העליונה"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"סיבוב אוטומטי"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"סיבוב אוטומטי של המסך"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"מיקום"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"האפליקציה <xliff:g id="APP_NAME">%1$s</xliff:g> לא תומכת בתכונות השיחה"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"משוב"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"סגירה"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"לא להצמיד"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"מוצגים עדכונים בזמן אמת"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"בהתראות המוצמדות מוצג מידע בזמן אמת מאפליקציות, והן תמיד מופיעות בשורת הסטטוס ובמסך הנעילה"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"לא ניתן לשנות את ההתראות האלה."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"לא ניתן לשנות את התראות השיחה."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"לא ניתן להגדיר כאן את קבוצת ההתראות הזו"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"ריבוי משימות"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"שימוש במסך מפוצל כשהאפליקציה בצד ימין"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"שימוש במסך מפוצל כשהאפליקציה בצד שמאל"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"למסך מלא"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"מעבר לאפליקציה משמאל או למטה בזמן שימוש במסך מפוצל"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"מעבר לאפליקציה מימין או למעלה בזמן שימוש במסך מפוצל"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"כשהמסך מפוצל: החלפה בין אפליקציה אחת לאחרת"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"הצגת סמלי התראות בעדיפות נמוכה"</string>
     <string name="other" msgid="429768510980739978">"אחר"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"הסרת הלחצן"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"הוספת הלחצן במיקום האחרון"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"העברת הלחצן"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"הצגת האפליקציות האחרונות"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"מעבר בין אפליקציות"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"סיום"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"צריך לנסות שוב."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"חזרה"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"מחליקים שמאלה או ימינה עם שלוש אצבעות על לוח המגע"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"כדי לראות את האפליקציות האחרונות, מחליקים למעלה לוחצים לחיצה ארוכה עם שלוש אצבעות על לוח המגע"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"כדי לראות את כל האפליקציות, מקישים על מקש הפעולה במקלדת"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"מצונזר"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"צריך לבטל את הנעילה כדי לראות"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"חינוך בהתאם להקשר"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"אפשר להשתמש בלוח המגע כדי לחזור אחורה"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"מחליקים ימינה או שמאלה עם שלוש אצבעות. ניתן ללחוץ כדי לקבל מידע נוסף על התנועות."</string>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index 7867633..3512271 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetoothに接続済み。"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth デバイスのアイコン"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"クリックしてデバイスの詳細を設定します"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"クリックすると、すべてのデバイスが表示されます"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"クリックすると、新しいデバイスをペア設定できます"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>。デバイスの詳細を設定してください"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"すべてのデバイスを表示"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"新しいデバイスとペア設定"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"バッテリー残量は不明です。"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>に接続しました。"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g>に接続されています。"</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"入力"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"補聴器"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ON にしています…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"明るさはトップ アプリによって\n制御されているため、調整できません"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"明るさはトップ アプリによって制御されているため、調整できません"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"自動回転"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"画面を自動回転します"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"位置情報"</string>
@@ -530,7 +531,7 @@
     <string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"ウィジェットを削除"</string>
     <string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"選択したウィジェットを配置"</string>
     <string name="communal_widget_picker_title" msgid="1953369090475731663">"ロック画面ウィジェット"</string>
-    <string name="communal_widget_picker_description" msgid="490515450110487871">"タブレットがロックされていても、ロック画面のウィジェットは誰でも確認できます。"</string>
+    <string name="communal_widget_picker_description" msgid="490515450110487871">"タブレットがロックされていても、ロック画面のウィジェットは誰でも見ることができます。"</string>
     <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"ウィジェットの選択を解除する"</string>
     <string name="accessibility_action_label_shrink_widget" msgid="8259511040536438771">"高さを低くする"</string>
     <string name="accessibility_action_label_expand_widget" msgid="9190524260912211759">"高さを高くする"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>は会話機能に対応していません"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"フィードバック"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"閉じる"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"固定表示しない"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"ライブ情報が表示されます"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"固定した通知にアプリのライブ情報が表示され、常にステータスバーとロック画面に表示されます"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"これらの通知は変更できません。"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"着信通知は変更できません。"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"このグループの通知はここでは設定できません"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"マルチタスク"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"分割画面の使用（アプリを右側に表示）"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"分割画面の使用（アプリを左側に表示）"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"全画面表示に切り替える"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"全画面表示に切り替える"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"デスクトップ ビューを使用する"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"分割画面の使用時に右側または下部のアプリに切り替える"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"分割画面の使用時に左側または上部のアプリに切り替える"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"分割画面中: アプリを順に置換する"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"優先度の低い通知アイコンを表示"</string>
     <string name="other" msgid="429768510980739978">"その他"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"タイルを削除"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"タイルを最後の位置に追加する"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"タイルを移動"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"最近使ったアプリを表示する"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"アプリの切り替え"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"完了"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"次へ"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"もう一度お試しください。"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"戻る"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"タッチパッドを 3 本の指で左または右にスワイプします"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"最近使ったアプリを表示するには、3 本の指でタッチパッドを上にスワイプして長押しします"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"すべてのアプリを表示するには、キーボードのアクションキーを押してください"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"削除済み"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"表示するにはロックを解除してください"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"コンテキスト メニューに関する説明"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"タッチパッドを使用して、前の画面に戻る"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"3 本の指で左または右にスワイプします。ジェスチャーの詳細を確認するにはタップしてください。"</string>
diff --git a/packages/SystemUI/res/values-ja/tiles_states_strings.xml b/packages/SystemUI/res/values-ja/tiles_states_strings.xml
index 1282f57..cce5ceb 100644
--- a/packages/SystemUI/res/values-ja/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ja/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"OFF"</item>
     <item msgid="5908720590832378783">"ON"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"使用不可"</item>
+    <item msgid="6641673879029894995">"OFF"</item>
+    <item msgid="5806682401126108403">"ON"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml
index b599220..3877fe7 100644
--- a/packages/SystemUI/res/values-ka/strings.xml
+++ b/packages/SystemUI/res/values-ka/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth დაკავშირებულია."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth მოწყობილობის ხატულა"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"დააწკაპუნეთ მოწყობილობის დეტალების კონფიგურირებისთვის"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"დააწკაპუნეთ ყველა მოწყობილობის სანახავად"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"დააწკაპუნეთ ახალი მოწყობილობის დასაწყვილებლად"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. მოწყობილობის დეტალის კონფიგურაცია"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"ყველა მოწყობილობის ნახვა"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"ახალი მოწყობილობის დაწყვილება"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ბატარეის პროცენტული მაჩვენებელი უცნობია."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"დაკავშირებულია <xliff:g id="BLUETOOTH">%s</xliff:g>-თან."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"დაკავშირებულია მოწყობილობასთან: <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ს არ აქვს მიმოწერის ფუნქციების მხარდაჭერა"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"გამოხმაურება"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"დახურვა"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"არ გამოჩნდეს ჩამაგრებულად"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"აჩვენებს განახლებებს რეალურ დროში"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"ჩამაგრებული შეტყობინებები რეალურ დროში აჩვენებს ინფორმაციას აპებიდან და ყოველთვის ჩანს სტატუსის ზოლსა და ჩაკეტილ ეკრანზე"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ამ შეტყობინებების შეცვლა შეუძლებელია."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"ზარის შეტყობინებების შეცვლა შეუძლებელია."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"შეტყობინებების ამ ჯგუფის კონფიგურირება აქ შეუძლებელია"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"მრავალამოცანიანი რეჟიმი"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"ეკრანის გაყოფის გამოყენება აპზე მარჯვნივ"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"ეკრანის გაყოფის გამოყენება აპზე მარცხნივ"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"სრულ ეკრანზე გადართვა"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"სრული ეკრანის გამოყენება"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"დესკტოპის ხედის გამოყენება"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"ეკრანის გაყოფის გამოყენებისას აპზე მარჯვნივ ან ქვემოთ გადართვა"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"ეკრანის გაყოფის გამოყენებისას აპზე მარცხნივ ან ზემოთ გადართვა"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"ეკრანის გაყოფის დროს: ერთი აპის მეორით ჩანაცვლება"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"დაბალი პრიორიტეტის მქონე შეტყობინებების ხატულების ჩვენება"</string>
     <string name="other" msgid="429768510980739978">"სხვა"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"მოზაიკის ფილის წაშლა"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"მოზაიკის ფილის ბოლო პოზიციაზე დამატება"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"მოზაიკის გადატანა"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"ბოლო აპების ნახვა"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"აპების გადართვა"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"მზადაა"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"შემდეგი"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"ცადეთ ხელახლა!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"უკან დაბრუნება"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"თქვენს სენსორულ პანელზე სამი თითით გადაფურცლეთ მარცხნივ ან მარჯვნივ"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"ბოლო აპების სანახავად სენსორულ პანელზე სამი თითით გადაფურცლეთ ზემოთ და მოიცადეთ"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"ყველა აპის სანახავად დააჭირეთ მოქმედების კლავიშს თქვენს კლავიატურაზე"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"ტექსტს ადევს ცენზურა"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"განბლოკვა სანახავად"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"კონტექსტური განათლება"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"უკან დასაბრუნებლად გამოიყენეთ სენსორული პანელი"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"გადაფურცლეთ მარცხნივ ან მარჯვნივ სამი თითით. შეეხეთ მეტი ჟესტის შესასწავლად."</string>
diff --git a/packages/SystemUI/res/values-ka/tiles_states_strings.xml b/packages/SystemUI/res/values-ka/tiles_states_strings.xml
index 81fc54d..7a22981 100644
--- a/packages/SystemUI/res/values-ka/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ka/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"გამორთული"</item>
     <item msgid="5908720590832378783">"ჩართული"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"მიუწვდომელი"</item>
+    <item msgid="6641673879029894995">"გამორთული"</item>
+    <item msgid="5806682401126108403">"ჩართული"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml
index bf12aca..506ce8b 100644
--- a/packages/SystemUI/res/values-kk/strings.xml
+++ b/packages/SystemUI/res/values-kk/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth қосылған."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth құрылғысы белгішесі"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Құрылғы деректерін конфигурациялау үшін басыңыз."</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Барлық құрылғыны көру үшін басыңыз."</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Жаңа құрылғы жұптау үшін басыңыз."</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Батарея зарядының мөлшері белгісіз."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> қосылған."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> трансляциясына қосылды."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Кіріс"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Есту аппараттары"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Қосылып жатыр…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Жарықтықты реттеу мүмкін емес, себебі ол\n жетекші қолданба арқылы басқарылады."</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Жарықтықты реттеу мүмкін емес, себебі ол жетекші қолданба арқылы басқарылады."</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Автоматты түрде бұру"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Автоматты айналатын экран"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Локация"</string>
@@ -689,11 +693,11 @@
     <string name="screen_pinning_negative" msgid="6882816864569211666">"Жоқ, рақмет"</string>
     <string name="screen_pinning_start" msgid="7483998671383371313">"Қолданба бекітілді."</string>
     <string name="screen_pinning_exit" msgid="4553787518387346893">"Қолданба босатылды."</string>
-    <string name="stream_voice_call" msgid="7468348170702375660">"Қоңырау шалу"</string>
+    <string name="stream_voice_call" msgid="7468348170702375660">"Сөйлесу кезіндегі дыбыс"</string>
     <string name="stream_system" msgid="7663148785370565134">"Жүйе"</string>
-    <string name="stream_ring" msgid="7550670036738697526">"Шылдыр"</string>
+    <string name="stream_ring" msgid="7550670036738697526">"Қоңырау сигналы"</string>
     <string name="stream_music" msgid="2188224742361847580">"Мультимедиа"</string>
-    <string name="stream_alarm" msgid="16058075093011694">"Дабыл"</string>
+    <string name="stream_alarm" msgid="16058075093011694">"Оятқыш"</string>
     <string name="stream_notification" msgid="7930294049046243939">"Хабарландыру"</string>
     <string name="stream_bluetooth_sco" msgid="6234562365528664331">"Bluetooth"</string>
     <string name="stream_dtmf" msgid="7322536356554673067">"Қос үнді көп жиілік"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> әңгіме функцияларын қолдамайды."</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Пікір"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Жабу"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Бекітілген ретінде көрсетпеу"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Нақты уақыттағы жаңартуларды көрсету"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Бекітілген хабарландырулар қолданбалардың нақты уақыттағы ақпаратын көрсетеді және әрдайым күй жолағында және құлып экранында көрсетіледі."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Бұл хабарландыруларды өзгерту мүмкін емес."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Қоңырау туралы хабарландыруларды өзгерту мүмкін емес."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Мұндай хабарландырулар бұл жерде конфигурацияланбайды."</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Мультитаскинг"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Қолданбаны бөлінген экранның оң жағынан пайдалану"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Қолданбаны бөлінген экранның сол жағынан пайдалану"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Толық экранға ауысу"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Бөлінген экранда оң не төмен жақтағы қолданбаға ауысу"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Бөлінген экранда сол не жоғары жақтағы қолданбаға ауысу"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Экранды бөлу кезінде: бір қолданбаны басқасымен алмастыру"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Маңызды емес хабарландыру белгішелерін көрсету"</string>
     <string name="other" msgid="429768510980739978">"Басқа"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"бөлшекті өшіру"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"соңғы позицияға бөлшек қосу"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Бөлшекті жылжыту"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Соңғы қолданбаларды көру"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Қолданба ауыстыру"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Дайын"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Қайталап көріңіз"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Артқа"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Сенсорлық тақтада үш саусақпен оңға немесе солға сырғытыңыз."</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Сенсорлық тақтада үш саусақпен жоғары сырғытып, басып тұрсаңыз, соңғы ашылған қолданбаларды көресіз."</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Пернетақтада әрекет пернесін басып, барлық қолданбаны көре аласыз."</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Жасырылған"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Көру үшін құлыпты ашыңыз."</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Контекстік білім"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Артқа қайту үшін сенсорлық тақтаны қолданыңыз"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Үш саусақпен солға не оңға сырғытыңыз. Басқа қимылдарды үйрену үшін түртіңіз."</string>
diff --git a/packages/SystemUI/res/values-kk/tiles_states_strings.xml b/packages/SystemUI/res/values-kk/tiles_states_strings.xml
index 32562c6..2b839c8 100644
--- a/packages/SystemUI/res/values-kk/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-kk/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Өшірулі"</item>
     <item msgid="5908720590832378783">"Қосулы"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Қолжетімді емес"</item>
+    <item msgid="6641673879029894995">"Өшірулі"</item>
+    <item msgid="5806682401126108403">"Қосулы"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml
index e12fd13..1fa0acb 100644
--- a/packages/SystemUI/res/values-km/strings.xml
+++ b/packages/SystemUI/res/values-km/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"បាន​តភ្ជាប់​ប៊្លូធូស។"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"រូបឧបករណ៍​ប៊្លូធូស"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"ចុចដើម្បីកំណត់រចនាសម្ព័ន្ធព័ត៌មានលម្អិតអំពីឧបករណ៍"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"ចុច ដើម្បីមើលឃើញឧបករណ៍ទាំងអស់"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"ចុច ដើម្បីផ្គូផ្គងឧបករណ៍ថ្មី"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"មិនដឹងអំពី​ភាគរយថ្មទេ។"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"បាន​ភ្ជាប់​ទៅ <xliff:g id="BLUETOOTH">%s</xliff:g> ។"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"បានភ្ជាប់ទៅ <xliff:g id="CAST">%s</xliff:g>"</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"បញ្ចូល"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"ឧបករណ៍ជំនួយការស្ដាប់"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"កំពុង​បើក..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"មិនអាចកែតម្រូវកម្រិតពន្លឺបានទេ ដោយសារវាកំពុងស្ថិតក្រោម\nការគ្រប់គ្រងរបស់កម្មវិធីខាងលើគេ"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"មិនអាចកែតម្រូវកម្រិតពន្លឺបានទេ ដោយសារវាកំពុងស្ថិតក្រោមការគ្រប់គ្រងរបស់កម្មវិធីខាងលើគេ"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"បង្វិល​ស្វ័យ​ប្រវត្តិ"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"បង្វិលអេក្រង់ស្វ័យប្រវត្តិ"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"ទី​តាំង​"</string>
@@ -689,7 +693,7 @@
     <string name="screen_pinning_negative" msgid="6882816864569211666">"ទេ អរគុណ"</string>
     <string name="screen_pinning_start" msgid="7483998671383371313">"បានខ្ទាស់​កម្មវិធី"</string>
     <string name="screen_pinning_exit" msgid="4553787518387346893">"បានដកខ្ទាស់​កម្មវិធី"</string>
-    <string name="stream_voice_call" msgid="7468348170702375660">"ហៅ"</string>
+    <string name="stream_voice_call" msgid="7468348170702375660">"ការហៅទូរសព្ទ"</string>
     <string name="stream_system" msgid="7663148785370565134">"ប្រព័ន្ធ"</string>
     <string name="stream_ring" msgid="7550670036738697526">"រោទ៍"</string>
     <string name="stream_music" msgid="2188224742361847580">"មេឌៀ"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> មិនអាចប្រើ​មុខងារ​សន្ទនា​បានទេ"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"មតិកែលម្អ"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ច្រានចោល"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"កុំបង្ហាញដូចអ្វីដែលបានខ្ទាស់"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"ការបង្ហាញព័ត៌មាន​បន្តផ្ទាល់"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"ការជូនដំណឹងដែលបានខ្ទាស់បង្ហាញព័ត៌មានបន្តផ្ទាល់ពីកម្មវិធី និងតែងតែបង្ហាញនៅលើរបារ​ស្ថានភាព និងអេក្រង់ចាក់សោ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"មិនអាច​កែប្រែ​ការជូនដំណឹង​ទាំងនេះ​បានទេ។"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"មិនអាច​កែប្រែ​ការជូនដំណឹងអំពីការហៅទូរសព្ទបានទេ។"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"មិនអាច​កំណត់​រចនាសម្ព័ន្ធ​ក្រុមការជូនដំណឹងនេះ​នៅទីនេះ​បានទេ"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"ការដំណើរការបានច្រើន"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"ប្រើមុខងារបំបែកអេក្រង់ជាមួយកម្មវិធីនៅខាងស្ដាំ"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"ប្រើមុខងារបំបែកអេក្រង់ជាមួយកម្មវិធីនៅខាងឆ្វេង"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"ប្ដូរទៅ​អេក្រង់ពេញ"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"ប្ដូរទៅកម្មវិធីនៅខាងស្ដាំ ឬខាងក្រោម ពេលកំពុងប្រើមុខងារ​បំបែកអេក្រង់"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"ប្ដូរទៅកម្មវិធីនៅខាងឆ្វេង ឬខាងលើ ពេលកំពុងប្រើមុខងារ​បំបែកអេក្រង់"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"ក្នុងអំឡុងពេលប្រើមុខងារបំបែកអេក្រង់៖ ជំនួសកម្មវិធីពីមួយទៅមួយទៀត"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"បង្ហាញ​រូប​ការជូនដំណឹង​ដែលមានអាទិភាពទាប"</string>
     <string name="other" msgid="429768510980739978">"ផ្សេងៗ"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ដកប្រអប់ចេញ"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"បញ្ចូលប្រអប់ទៅទីតាំងចុងក្រោយ"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"ផ្លាស់ទី​ប្រអប់"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"មើលកម្មវិធីថ្មីៗ"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"ប្ដូរ​កម្មវិធី"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"រួចរាល់"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"សូមព្យាយាមម្ដងទៀត!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"ថយ​ក្រោយ"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"អូសទៅឆ្វេង ឬស្ដាំដោយប្រើ​ម្រាមដៃបីនៅលើផ្ទាំងប៉ះរបស់អ្នក"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"ដើម្បីមើលកម្មវិធីថ្មីៗ សូមអូសឡើងលើ ហើយសង្កត់ឱ្យជាប់ដោយប្រើម្រាមដៃបីនៅលើផ្ទាំងប៉ះ"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"ដើម្បីមើលកម្មវិធីទាំងអស់របស់អ្នក សូមចុចគ្រាប់ចុចសកម្មភាពនៅលើក្ដារចុចរបស់អ្នក"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"បាន​កែ​លម្អ​ពាក្យពេចន៍"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"ដោះសោដើម្បីមើល"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"ការអប់រំ​តាមបរិបទ"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"ប្រើផ្ទាំងប៉ះរបស់អ្នក ដើម្បីថយក្រោយ"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"អូសទៅឆ្វេង ឬស្ដាំដោយប្រើ​ម្រាមដៃបី។ ចុច ដើម្បីស្វែងយល់បន្ថែមអំពីចលនា។"</string>
diff --git a/packages/SystemUI/res/values-km/tiles_states_strings.xml b/packages/SystemUI/res/values-km/tiles_states_strings.xml
index 0e47250..7085509 100644
--- a/packages/SystemUI/res/values-km/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-km/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"បិទ"</item>
     <item msgid="5908720590832378783">"បើក"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"មិនមានទេ"</item>
+    <item msgid="6641673879029894995">"បិទ"</item>
+    <item msgid="5806682401126108403">"បើក"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml
index 3bb4e4d..5363c62 100644
--- a/packages/SystemUI/res/values-kn/strings.xml
+++ b/packages/SystemUI/res/values-kn/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"ಬ್ಲೂಟೂತ್‌‌ ಸಂಪರ್ಕಗೊಂಡಿದೆ."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"ಬ್ಲೂಟೂತ್ ಸಾಧನ ಐಕಾನ್"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"ಸಾಧನದ ವಿವರಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಕ್ಲಿಕ್ ಮಾಡಿ"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"ಎಲ್ಲಾ ಸಾಧನಗಳನ್ನು ನೋಡಲು ಕ್ಲಿಕ್ ಮಾಡಿ"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"ಹೊಸ ಸಾಧನವನ್ನು ಪೇರ್ ಮಾಡಲು ಕ್ಲಿಕ್ ಮಾಡಿ"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ಬ್ಯಾಟರಿ ಶೇಕಡಾವಾರು ತಿಳಿದಿಲ್ಲ."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> ಗೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> ಗೆ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"ಇನ್‌ಪುಟ್"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"ಶ್ರವಣ ಸಾಧನಗಳು"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ಆನ್ ಮಾಡಲಾಗುತ್ತಿದೆ..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ಬ್ರೈಟ್‌ನೆಸ್ ಅನ್ನು ಅಡ್ಜಸ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ,\n ಏಕೆಂದರೆ ಅದನ್ನು ಟಾಪ್ ಆ್ಯಪ್ ನಿಯಂತ್ರಿಸುತ್ತಿದೆ"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ಬ್ರೈಟ್‌ನೆಸ್ ಅನ್ನು ಅಡ್ಜಸ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ, ಏಕೆಂದರೆ ಅದನ್ನು ಟಾಪ್ ಆ್ಯಪ್ ನಿಯಂತ್ರಿಸುತ್ತಿದೆ"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"ಸ್ವಯಂ-ತಿರುಗುವಿಕೆ"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"ಪರದೆಯನ್ನು ಸ್ವಯಂ-ತಿರುಗಿಸಿ"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"ಸ್ಥಳ"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"ಸಂವಾದ ಫೀಚರ್‌ಗಳನ್ನು <xliff:g id="APP_NAME">%1$s</xliff:g> ಬೆಂಬಲಿಸುವುದಿಲ್ಲ"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ಫೀಡ್‌ಬ್ಯಾಕ್"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ವಜಾಗೊಳಿಸಿ"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"ಪಿನ್ ಮಾಡಿದ ಹಾಗೆ ತೋರಿಸಬೇಡಿ"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"ಲೈವ್ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"ಪಿನ್ ಮಾಡಲಾದ ನೋಟಿಫಿಕೇಶನ್‌ಗಳು ಆ್ಯಪ್‌ಗಳಿಂದ ಲೈವ್ ಮಾಹಿತಿಯನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತವೆ ಹಾಗೂ ಅವುಗಳು ಯಾವಾಗಲೂ ಸ್ಥಿತಿ ಪಟ್ಟಿ ಮತ್ತು ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ಈ ಅಧಿಸೂಚನೆಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"ಕರೆ ಅಧಿಸೂಚನೆಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ಈ ಗುಂಪಿನ ಅಧಿಸೂಚನೆಗಳನ್ನು ಇಲ್ಲಿ ಕಾನ್ಫಿಗರ್‌ ಮಾಡಲಾಗಿರುವುದಿಲ್ಲ"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"ಮಲ್ಟಿಟಾಸ್ಕಿಂಗ್"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"ಬಲಭಾಗದಲ್ಲಿ ಆ್ಯಪ್ ಮೂಲಕ ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್ ಬಳಸಿ"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"ಎಡಭಾಗದಲ್ಲಿ ಆ್ಯಪ್ ಮೂಲಕ ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್ ಬಳಸಿ"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"ಫುಲ್‌ಸ್ಕ್ರೀನ್ ಮೋಡ್‌ಗೆ ಬದಲಿಸಿ"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"ಸ್ಕ್ರೀನ್ ಬೇರ್ಪಡಿಸಿ ಮೋಡ್ ಬಳಸುವಾಗ ಬಲಭಾಗ ಅಥವಾ ಕೆಳಭಾಗದಲ್ಲಿರುವ ಆ್ಯಪ್‌ಗೆ ಬದಲಿಸಿ"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"ಸ್ಕ್ರೀನ್ ಬೇರ್ಪಡಿಸಿ ಮೋಡ್ ಬಳಸುವಾಗ ಎಡಭಾಗ ಅಥವಾ ಮೇಲ್ಭಾಗದಲ್ಲಿರುವ ಆ್ಯಪ್‌ಗೆ ಬದಲಿಸಿ"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"ಸ್ಕ್ರೀನ್ ಬೇರ್ಪಡಿಸುವ ಸಮಯದಲ್ಲಿ: ಒಂದು ಆ್ಯಪ್‌ನಿಂದ ಮತ್ತೊಂದು ಆ್ಯಪ್‌ಗೆ ಬದಲಿಸಿ"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"ಕಡಿಮೆ-ಆದ್ಯತೆ ಸೂಚನೆಯ ಐಕಾನ್‌ಗಳನ್ನು ತೋರಿಸಿ"</string>
     <string name="other" msgid="429768510980739978">"ಇತರ"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ಟೈಲ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"ಕೊನೆಯ ಸ್ಥಾನಕ್ಕೆ ಟೈಲ್ ಅನ್ನು ಸೇರಿಸಿ"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"ಟೈಲ್ ಸರಿಸಿ"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"ಇತ್ತೀಚಿನ ಆ್ಯಪ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"ಆ್ಯಪ್‌ಗಳನ್ನು ಬದಲಿಸಿ"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"ಮುಗಿದಿದೆ"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"ಪುನಃ ಪ್ರಯತ್ನಿಸಿ!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"ಹಿಂತಿರುಗಿ"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"ನಿಮ್ಮ ಟಚ್‌ಪ್ಯಾಡ್‌ನಲ್ಲಿ ಮೂರು ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಎಡ ಅಥವಾ ಬಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"ಇತ್ತೀಚಿನ ಆ್ಯಪ್‌ಗಳನ್ನು ನೋಡಲು, ಟಚ್‌ಪ್ಯಾಡ್‌ನಲ್ಲಿ ಮೂರು ಬೆರಳುಗಳಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಹಾಗೂ ಹೋಲ್ಡ್ ಮಾಡಿ"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"ನಿಮ್ಮ ಎಲ್ಲಾ ಆ್ಯಪ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ನಿಮ್ಮ ಕೀಬೋರ್ಡ್‌ನಲ್ಲಿರುವ ಆ್ಯಕ್ಷನ್‌ ಕೀಯನ್ನು ಒತ್ತಿರಿ"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"ಅರ್ಥಬದ್ಧವಾಗಿಸಲಾಗಿದೆ"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"ನೋಡಲು ಅನ್‌ಲಾಕ್ ಮಾಡಿ"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"ಸಂದರ್ಭೋಚಿತ ಶಿಕ್ಷಣ"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"ಹಿಂತಿರುಗಲು ನಿಮ್ಮ ಟಚ್‌ಪ್ಯಾಡ್ ಅನ್ನು ಬಳಸಿ"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"ಮೂರು ಬೆರಳುಗಳಿಂದ ಎಡಕ್ಕೆ ಅಥವಾ ಬಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ಇನ್ನಷ್ಟು ಗೆಸ್ಚರ್‌ಗಳನ್ನು ತಿಳಿಯಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
diff --git a/packages/SystemUI/res/values-kn/tiles_states_strings.xml b/packages/SystemUI/res/values-kn/tiles_states_strings.xml
index b3543f9..487be13 100644
--- a/packages/SystemUI/res/values-kn/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-kn/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"ಆಫ್ ಆಗಿದೆ"</item>
     <item msgid="5908720590832378783">"ಆನ್ ಆಗಿದೆ"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"ಲಭ್ಯವಿಲ್ಲ"</item>
+    <item msgid="6641673879029894995">"ಆಫ್ ಆಗಿದೆ"</item>
+    <item msgid="5806682401126108403">"ಆನ್ ಆಗಿದೆ"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 33f54b6..931daa0 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"블루투스가 연결되었습니다."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"블루투스 기기 아이콘"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"기기 세부정보를 구성하려면 클릭하세요."</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"모든 기기를 보려면 클릭하세요"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"새 기기를 페어링하려면 클릭하세요"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"배터리 잔량을 알 수 없습니다."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>에 연결되었습니다."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g>에 연결됨"</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"입력"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"보청기"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"켜는 중..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"상위 앱에서 밝기를 제어하고 있으므로\n 밝기를 조절할 수 없습니다."</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"상위 앱에서 밝기를 제어하고 있으므로 밝기를 조절할 수 없습니다."</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"자동 회전"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"화면 자동 회전"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"위치"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> 앱은 대화 기능을 지원하지 않습니다."</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"의견"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"닫기"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"고정된 것으로 표시 안함"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"실시간 소식 표시"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"고정된 알림은 앱의 실시간 정보를 표시하며, 항상 상태 표시줄과 잠금 화면에 표시됩니다."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"이 알림은 수정할 수 없습니다."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"전화 알림은 수정할 수 없습니다."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"이 알림 그룹은 여기에서 설정할 수 없습니다."</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"멀티태스킹"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"앱이 오른쪽에 오도록 화면 분할 사용"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"앱이 왼쪽에 오도록 화면 분할 사용"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"전체 화면으로 전환"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"화면 분할을 사용하는 중에 오른쪽 또는 아래쪽에 있는 앱으로 전환"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"화면 분할을 사용하는 중에 왼쪽 또는 위쪽에 있는 앱으로 전환하기"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"화면 분할 중: 다른 앱으로 바꾸기"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"우선순위가 낮은 알림 아이콘 표시"</string>
     <string name="other" msgid="429768510980739978">"기타"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"타일 삭제"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"마지막 위치에 타일 추가"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"타일 이동"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"최근 앱 보기"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"앱 전환"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"완료"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"다시 시도해 보세요"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"뒤로"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"세 손가락을 사용해 터치패드에서 왼쪽 또는 오른쪽으로 스와이프하세요."</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"최근 앱을 보려면 터치패드에서 세 손가락으로 위로 스와이프한 후 잠시 기다리세요"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"모든 앱을 보려면 키보드의 작업 키를 누르세요"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"수정됨"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"잠금 해제하여 보기"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"컨텍스트 교육"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"터치패드를 사용하여 돌아가기"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"세 손가락을 사용해 왼쪽 또는 오른쪽으로 스와이프하세요. 더 많은 동작을 알아보려면 탭하세요."</string>
diff --git a/packages/SystemUI/res/values-ko/tiles_states_strings.xml b/packages/SystemUI/res/values-ko/tiles_states_strings.xml
index c512435..dfdcefe 100644
--- a/packages/SystemUI/res/values-ko/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ko/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"사용 안함"</item>
     <item msgid="5908720590832378783">"사용"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"사용할 수 없음"</item>
+    <item msgid="6641673879029894995">"사용 안함"</item>
+    <item msgid="5806682401126108403">"사용"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml
index e764bad..f1c4eef 100644
--- a/packages/SystemUI/res/values-ky/strings.xml
+++ b/packages/SystemUI/res/values-ky/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth байланышта"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth түзмөгүнүн сүрөтчөсү"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Түзмөктүн чоо-жайын конфигурациялоо үчүн чыкылдатыңыз"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Бардык түзмөктөрдү көрүү үчүн чыкылдатыңыз"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Жаңы түзмөк кошуу үчүн чыкылдатыңыз"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Батареянын деңгээли белгисиз."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> менен туташкан."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> менен туташты."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Киргизүү"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Угуу аппараттары"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Күйгүзүлүүдө…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Жарыктыкты тууралоого болбойт, анткени аны\n жогорку колдонмо көзөмөлдөйт"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Жарыктыкты тууралоого болбойт, анткени аны жогорку колдонмо көзөмөлдөйт"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Авто буруу"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Экранды авто буруу"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Жайгашкан жер"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосунда оозеки сүйлөшкөнгө болбойт"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Пикир билдирүү"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Жабуу"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Билдирмелерди бошотуу"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Анык убакыттагы билдирмелерди көрсөтүү"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Кадалган билдирмелер ар дайым абал тилкесинде жана кулпуланган экранда көрсөтүлүп, колдонмолордогу маалыматты анык убакытта көрсөтөт"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Бул билдирмелерди өзгөртүүгө болбойт."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Чалуу билдирмелерин өзгөртүүгө болбойт."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Бул билдирмелердин тобун бул жерде конфигурациялоого болбойт"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Бир нече тапшырма аткаруу"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Колдонмону оңго жылдырып, экранды бөлүү"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Колдонмону солго жылдырып, экранды бөлүү"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Толук экранга которулуу"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Бөлүнгөн экранда сол же төмөн жактагы колдонмого которулуу"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Бөлүнгөн экранды колдонуп жатканда сол же жогору жактагы колдонмого которулуңуз"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Экранды бөлүү режиминде бир колдонмону экинчисине алмаштыруу"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Анча маанилүү эмес билдирменин сүрөтчөлөрүн көрсөтүү"</string>
     <string name="other" msgid="429768510980739978">"Башка"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ыкчам баскычты өчүрүү"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"аягына карта кошуу"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Ыкчам баскычты жылдыруу"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Акыркы колдонмолорду көрүү"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Колдонмолорду которуштуруу"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Бүттү"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Кайталап көрүңүз!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Артка кайтуу"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Сенсордук тактаны үч манжаңыз менен солго же оңго сүрүңүз"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Акыркы колдонмолорду көрүү үчүн сенсордук тактаны үч манжаңыз менен өйдө сүрүп, кармап туруңуз"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Бардык колдонмолоруңузду көрүү үчүн баскычтобуңуздагы аракет баскычын басыңыз"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Жашырылды"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Көрүү үчүн кулпусун ачыңыз"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Контексттик билим берүү"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Артка кайтуу үчүн сенсордук тактаны колдонуңуз"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Үч манжаңыз менен солго же оңго сүрүңүз. Башка жаңсоолорду үйрөнүү үчүн таптаңыз."</string>
diff --git a/packages/SystemUI/res/values-ky/tiles_states_strings.xml b/packages/SystemUI/res/values-ky/tiles_states_strings.xml
index 47e36da..6077f66 100644
--- a/packages/SystemUI/res/values-ky/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ky/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Өчүк"</item>
     <item msgid="5908720590832378783">"Күйүк"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Жеткиликсиз"</item>
+    <item msgid="6641673879029894995">"Өчүк"</item>
+    <item msgid="5806682401126108403">"Күйүк"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-land-television/dimens.xml b/packages/SystemUI/res/values-land-television/dimens.xml
index d3bafbc..b1a46a6 100644
--- a/packages/SystemUI/res/values-land-television/dimens.xml
+++ b/packages/SystemUI/res/values-land-television/dimens.xml
@@ -20,7 +20,7 @@
   <dimen name="volume_dialog_panel_width">48dp</dimen>
   <dimen name="volume_dialog_panel_width_half">24dp</dimen>
   <dimen name="volume_dialog_panel_transparent_padding">24dp</dimen>
-  <dimen name="volume_dialog_slider_width">4dp</dimen>
+  <dimen name="volume_dialog_slider_width_legacy">4dp</dimen>
   <dimen name="volume_dialog_slider_corner_radius">@dimen/volume_dialog_slider_width</dimen>
   <dimen name="volume_dialog_background_blur_radius">31dp</dimen>
   <dimen name="volume_tool_tip_right_margin">136dp</dimen>
diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml
index 3236b2e2..de9694a 100644
--- a/packages/SystemUI/res/values-lo/strings.xml
+++ b/packages/SystemUI/res/values-lo/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"ເຊື່ອມຕໍ່ Bluetooth ແລ້ວ."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"ໄອຄອນອຸປະກອນ Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"ຄລິກເພື່ອຕັ້ງຄ່າລາຍລະອຽດອຸປະກອນ"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"ຄລິກເພື່ອເບິ່ງອຸປະກອນທັງໝົດ"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"ຄລິກເພື່ອຈັບຄູ່ອຸປະກອນໃໝ່"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ບໍ່ຮູ້ເປີເຊັນແບັດເຕີຣີ."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"ເຊື່ອມ​ຕໍ່​ຫາ <xliff:g id="BLUETOOTH">%s</xliff:g> ແລ້ວ."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"ເຊື່ອມຕໍ່ຫາ <xliff:g id="CAST">%s</xliff:g> ແລ້ວ."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"ການປ້ອນຂໍ້ມູນ"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"ເຄື່ອງຊ່ວຍຟັງ"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ກຳລັງເປີດ..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ບໍ່ສາມາດປັບຄວາມແຈ້ງເນື່ອງຈາກມັນ\n ຖືກຄວບຄຸມໂດຍແອັບຍອດນິຍົມ"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ບໍ່ສາມາດປັບຄວາມແຈ້ງເນື່ອງຈາກມັນ ຖືກຄວບຄຸມໂດຍແອັບຍອດນິຍົມ"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"ໝຸນ​ອັດ​ຕະ​ໂນ​ມັດ"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"ໝຸນໜ້າຈໍອັດຕະໂນມັດ"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"ສະຖານທີ່"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ບໍ່ຮອງຮັບຄຸນສົມບັດການສົນທະນາ"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ຄຳຕິຊົມ"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ປິດໄວ້"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"ຢ່າສະແດງເປັນປັກໝຸດ"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"ກຳລັງສະແດງອັບເດດສົດ"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"ການແຈ້ງເຕືອນທີ່ປັກໝຸດໄວ້ຈະສະແດງຂໍ້ມູນສົດຈາກແອັບຕ່າງໆ ແລະ ຈະປາກົດຢູ່ແຖບສະຖານະ ແລະ ໜ້າຈໍລັອກສະເໝີ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ບໍ່ສາມາດແກ້ໄຂການແຈ້ງເຕືອນເຫຼົ່ານີ້ໄດ້."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"ບໍ່ສາມາດແກ້ໄຂການແຈ້ງເຕືອນການໂທໄດ້."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ບໍ່ສາມາດຕັ້ງຄ່າກຸ່ມການແຈ້ງເຕືອນນີ້ຢູ່ບ່ອນນີ້ໄດ້"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"ການເຮັດຫຼາຍໜ້າວຽກພ້ອມກັນ"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"ໃຊ້ໂໝດແບ່ງໜ້າຈໍໂດຍໃຫ້ແອັບຢູ່ເບື້ອງຂວາ"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"ໃຊ້ໂໝດແບ່ງໜ້າຈໍໂດຍໃຫ້ແອັບຢູ່ເບື້ອງຊ້າຍ"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"ສະຫຼັບໄປໃຊ້ໂໝດເຕັມຈໍ"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"ສະຫຼັບໄປໃຊ້ແອັບຢູ່ຂວາ ຫຼື ທາງລຸ່ມໃນຂະນະທີ່ໃຊ້ແບ່ງໜ້າຈໍ"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"ສະຫຼັບໄປໃຊ້ແອັບຢູ່ຊ້າຍ ຫຼື ທາງເທິງໃນຂະນະທີ່ໃຊ້ແບ່ງໜ້າຈໍ"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"ໃນລະຫວ່າງແບ່ງໜ້າຈໍ: ໃຫ້ປ່ຽນຈາກແອັບໜຶ່ງເປັນອີກແອັບໜຶ່ງ"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"ສະແດງໄອຄອນການແຈ້ງເຕືອນຄວາມສຳຄັນຕ່ຳ"</string>
     <string name="other" msgid="429768510980739978">"ອື່ນໆ"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ລຶບແຜ່ນອອກ"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"ເພີ່ມແຜ່ນໃສ່ຕຳແໜ່ງສຸດທ້າຍ"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"ຍ້າຍແຜ່ນ"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"ເບິ່ງແອັບຫຼ້າສຸດ"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"ສະຫຼັບແອັບ"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"ແລ້ວໆ"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"ກະລຸນາລອງໃໝ່!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"ກັບຄືນ"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"ປັດຊ້າຍ ຫຼື ຂວາໂດຍໃຊ້ມືສາມນິ້ວຢູ່ແຜ່ນສໍາຜັດຂອງທ່ານ"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"ເພື່ອເບິ່ງແອັບຫຼ້າສຸດ, ໃຫ້ໃຊ້ 3 ນິ້ວປັດຂຶ້ນ ແລ້ວຄ້າງໄວ້ເທິງແຜ່ນສໍາຜັດ"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"ເພື່ອເບິ່ງແອັບທັງໝົດຂອງທ່ານ, ໃຫ້ກົດປຸ່ມຄຳສັ່ງຢູ່ແປ້ນພິມຂອງທ່ານ"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"ປົກປິດໄວ້ແລ້ວ"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"ປົດລັອກເພື່ອເບິ່ງ"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"ການສຶກສາຕາມບໍລິບົດ"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"ໃຊ້ແຜ່ນສໍາຜັດຂອງທ່ານເພື່ອກັບຄືນ"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"ໃຊ້ 3 ນິ້ວປັດຊ້າຍ ຫຼື ຂວາ. ແຕະເພື່ອສຶກສາທ່າທາງເພີ່ມເຕີມ."</string>
diff --git a/packages/SystemUI/res/values-lo/tiles_states_strings.xml b/packages/SystemUI/res/values-lo/tiles_states_strings.xml
index 71e084a..294d6af 100644
--- a/packages/SystemUI/res/values-lo/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-lo/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"ປິດ"</item>
     <item msgid="5908720590832378783">"ເປີດ"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"ບໍ່ພ້ອມໃຫ້ນຳໃຊ້"</item>
+    <item msgid="6641673879029894995">"ປິດ"</item>
+    <item msgid="5806682401126108403">"ເປີດ"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index 25208b0..59f0ad34 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"„Bluetooth“ prijungtas."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"„Bluetooth“ įrenginio piktograma"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Spustelėkite, jei norite konfigūruoti išsamią įrenginio informaciją"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Spustelėkite, kad peržiūrėtumėte visus įrenginius"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Spustelėkite, kad susietumėte naują įrenginį"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"„<xliff:g id="DEVICE_NAME">%s</xliff:g>“. Konfigūruoti išsamią įrenginio informaciją"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"Žr. visus įrenginius"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"Susieti naują įrenginį"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Akumuliatoriaus energija procentais nežinoma."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Prisijungta prie „<xliff:g id="BLUETOOTH">%s</xliff:g>“."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Prisijungta prie <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Įvestis"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Klausos aparatai"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Įjungiama…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Negalima koreguoti ryškumo, nes jį valdo\n viršuje esanti programa"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Negalima koreguoti ryškumo, nes jį valdo viršuje esanti programa"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Automatinis pasukimas"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Automatiškai sukti ekraną"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Vietovė"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"Programa „<xliff:g id="APP_NAME">%1$s</xliff:g>“ nepalaiko pokalbių funkcijų"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Atsiliepimai"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Uždaryti"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Nerodyti kaip prisegtą"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Rodomos tiesioginės naujienos"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Prisegti pranešimai rodo tiesioginę informaciją iš programų ir visada rodomi būsenos juostoje bei užrakinimo ekrane"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Šių pranešimų keisti negalima."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Skambučių pranešimų keisti negalima."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Šios grupės pranešimai čia nekonfigūruojami"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Kelių užduočių atlikimas"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Naudokite išskaidyto ekrano režimą su programa dešinėje"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Naudokite išskaidyto ekrano režimą su programa kairėje"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Perjunkite į viso ekrano režimą"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"Naudoti viso ekrano režimą"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"Naudoti rodinio versiją staliniams kompiuteriams"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Perjunkite į programą dešinėje arba apačioje išskaidyto ekrano režimu"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Perjunkite į programą kairėje arba viršuje išskaidyto ekrano režimu"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Išskaidyto ekrano režimu: pakeisti iš vienos programos į kitą"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Rodyti mažo prioriteto pranešimų piktogramas"</string>
     <string name="other" msgid="429768510980739978">"Kita"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"pašalintumėte išklotinės elementą"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"pridėti išklotinės elementą paskutinėje pozicijoje"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Perkelti išklotinės elementą"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Peržiūrėti naujausias programas"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Perjungti programas"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Atlikta"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"Kitas"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"Bandykite dar kartą!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Grįžti"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Braukite kairėn arba dešinėn trimis pirštais bet kur jutiklinėje dalyje"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Peržiūrėkite naujausias programas, jutiklinėje dalyje perbraukę aukštyn trimis pirštais ir palaikę"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Jei norite peržiūrėti visas programas, paspauskite klaviatūros veiksmų klavišą"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Paslėpta"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Atrakinkite, kad peržiūrėtumėte"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstinis švietimas"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Naudokite klaviatūrą, kad grįžtumėte atgal"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Perbraukite į kairę ar dešinę trimis pirštais. Palieskite, kad sužinotumėte daugiau gestų."</string>
diff --git a/packages/SystemUI/res/values-lt/tiles_states_strings.xml b/packages/SystemUI/res/values-lt/tiles_states_strings.xml
index 893d6ae..46c6f69 100644
--- a/packages/SystemUI/res/values-lt/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-lt/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Išjungta"</item>
     <item msgid="5908720590832378783">"Įjungta"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Nepasiekiama"</item>
+    <item msgid="6641673879029894995">"Išjungta"</item>
+    <item msgid="5806682401126108403">"Įjungta"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index bf1ef96..9962226 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth savienojums ir izveidots."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth ierīces ikona"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Lai konfigurētu ierīces informāciju, noklikšķiniet"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Noklikšķiniet, lai skatītu visas ierīces"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Noklikšķiniet, lai savienotu pārī jaunu ierīci"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Akumulatora uzlādes līmenis procentos nav zināms."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Ir izveidots savienojum ar <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Savienots ar ierīci <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Ievade"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Dzirdes aparāti"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Notiek ieslēgšana…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Nevar mainīt spilgtumu, jo to kontrolē\n aktīvā lietotne."</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Nevar mainīt spilgtumu, jo to kontrolē aktīvā lietotne."</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Automātiska pagriešana"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Automātiska ekrāna pagriešana"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Atrašanās vieta"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"Lietotnē <xliff:g id="APP_NAME">%1$s</xliff:g> netiek atbalstītas sarunu funkcijas."</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Atsauksmes"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Nerādīt"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Nerādīt kā piespraustu"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Reāllaika jaunumu rādīšana"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Piespraustajos paziņojumos tiek rādīta reāllaika informācija no lietotnēm, un tie vienmēr tiek rādīti statusa joslā un bloķēšanas ekrānā."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Šos paziņojumus nevar modificēt."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Paziņojumus par zvaniem nevar modificēt."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Šeit nevar konfigurēt šo paziņojumu grupu."</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Vairākuzdevumu režīms"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Izmantot ekrāna sadalīšanu ar lietotni labajā pusē"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Izmantot ekrāna sadalīšanu ar lietotni kreisajā pusē"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Pārslēgšana pilnekrāna režīmā"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Pāriet uz lietotni pa labi/lejā, kamēr izmantojat sadalīto ekrānu."</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Pāriet uz lietotni pa kreisi/augšā, kamēr izmantojat sadalīto ekrānu."</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Ekrāna sadalīšanas režīmā: pārvietot lietotni no viena ekrāna uz otru"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Rādīt zemas prioritātes paziņojumu ikonas"</string>
     <string name="other" msgid="429768510980739978">"Citi"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"noņemt elementu"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"pievienotu elementu pēdējā pozīcijā"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Pārvietot elementu"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Skatīt nesen izmantotās lietotnes"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Pārslēgties starp lietotnēm"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Gatavs"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Mēģiniet vēlreiz."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Atpakaļ"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Skārienpaliktnī ar trīs pirkstiem velciet pa kreisi vai pa labi."</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Lai skatītu nesenās lietotnes, ar trīs pirkstiem uz skārienpaliktņa velciet augšup un turiet."</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Lai skatītu visas savas lietotnes, tastatūrā nospiediet darbību taustiņu."</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Rediģēts"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Lai skatītu, atbloķējiet"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstuāla pamācība"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Atgriešanās, izmantojot skārienpaliktni"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Ar trīs pirkstiem velciet pa kreisi vai pa labi. Lai apgūtu citus žestus, pieskarieties šeit."</string>
diff --git a/packages/SystemUI/res/values-lv/tiles_states_strings.xml b/packages/SystemUI/res/values-lv/tiles_states_strings.xml
index 7329751..8e9268a 100644
--- a/packages/SystemUI/res/values-lv/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-lv/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Izslēgts"</item>
     <item msgid="5908720590832378783">"Ieslēgts"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Nav pieejams"</item>
+    <item msgid="6641673879029894995">"Izslēgts"</item>
+    <item msgid="5806682401126108403">"Ieslēgts"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml
index e34d9d8..9d9c074 100644
--- a/packages/SystemUI/res/values-mk/strings.xml
+++ b/packages/SystemUI/res/values-mk/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth е поврзан."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Икона за уред со Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Кликнете за да ги конфигурирате деталите за уредот"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Кликнете за да се прикажат сите уреди"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Кликнете за да спарите нов уред"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Процентот на батеријата е непознат."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Поврзано со <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Поврзано со <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Влез"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Слушни помагала"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Се вклучува…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Не може да се приспособи осветленоста бидејќи е\n контролирана од горната апликација"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Не може да се приспособи осветленоста бидејќи е контролирана од горната апликација"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Автоматско ротирање"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Автоматско ротирање на екранот"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Локација"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не поддржува функции за разговор"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Повратни информации"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Отфрли"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Не прикажувај како закачено"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Прикажува новости во живо"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Закачените известувања прикажуваат информации во живо од апликациите и секогаш се појавуваат на статусната лента и на заклучениот екран"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Овие известувања не може да се изменат"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Известувањата за повици не може да се изменат."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Оваа група известувања не може да се конфигурира тука"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Мултитаскинг"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Користете поделен екран со апликацијата оддесно"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Користете поделен екран со апликацијата одлево"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Префрлете се на цел екран"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Префрлете се на апликацијата десно или долу при користењето поделен екран"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Префрлете се на апликацијата лево или горе при користењето поделен екран"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"При поделен екран: префрлете ги аплик. од едната на другата страна"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Прикажувај икони за известувања со низок приоритет"</string>
     <string name="other" msgid="429768510980739978">"Друго"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"отстранување на плочката"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"додајте плочка на последната позиција"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Преместување на плочката"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Прикажи ги неодамнешните апликации"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Сменете ги апликациите"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Готово"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Обидете се повторно!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Назад"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Повлечете налево или надесно со три прста на допирната подлога"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"За да ги видите скорешните апликации, повлечете нагоре и задржете со три прста на допирната подлога"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Притиснете го копчето за дејство на тастатурата за да ги видите сите апликации"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Редактирано"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Отклучете за приказ"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Контекстуално образование"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Користете ја допирната подлога за да се вратите назад"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Повлечете налево или надесно со три прста. Допрете за да научите повеќе движења."</string>
diff --git a/packages/SystemUI/res/values-mk/tiles_states_strings.xml b/packages/SystemUI/res/values-mk/tiles_states_strings.xml
index 67baf7c..752c386 100644
--- a/packages/SystemUI/res/values-mk/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-mk/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Исклучено"</item>
     <item msgid="5908720590832378783">"Вклучено"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Недостапно"</item>
+    <item msgid="6641673879029894995">"Исклучено"</item>
+    <item msgid="5806682401126108403">"Вклучено"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml
index 226822a..301c3da 100644
--- a/packages/SystemUI/res/values-ml/strings.xml
+++ b/packages/SystemUI/res/values-ml/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"ബ്ലൂടൂത്ത് കണക്‌റ്റുചെയ്തു."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth ഉപകരണ ഐക്കൺ"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"ഉപകരണത്തിന്റെ വിശദാംശങ്ങൾ കോൺഫിഗർ ചെയ്യാൻ ക്ലിക്ക് ചെയ്യുക"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"എല്ലാ ഉപകരണങ്ങളും കാണാൻ ക്ലിക്ക് ചെയ്യുക"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"പുതിയ ഉപകരണം ജോടിയാക്കാൻ ക്ലിക്ക് ചെയ്യുക"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ബാറ്ററി ശതമാനം അജ്ഞാതമാണ്."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> എന്നതിലേക്ക് കണക്‌റ്റുചെയ്‌തു."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> എന്നതിലേക്ക് കണക്റ്റുചെയ്തു."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"ഇൻപുട്ട്"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"ശ്രവണ സഹായികൾ"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ഓണാക്കുന്നു…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"തെളിച്ചം അഡ്‌ജസ്റ്റ് ചെയ്യാനാകില്ല, അത്\n നിയന്ത്രിക്കുന്നത് ഏറ്റവും മുകളിലുള്ള ആപ്പാണ്"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"തെളിച്ചം അഡ്‌ജസ്റ്റ് ചെയ്യാനാകില്ല, അത് നിയന്ത്രിക്കുന്നത് ഏറ്റവും മുകളിലുള്ള ആപ്പാണ്"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"സ്‌ക്രീൻ സ്വയമേവ തിരിയൽ"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"സ്‌ക്രീൻ സ്വയമേവ തിരിക്കുക"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"ലൊക്കേഷൻ"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"സംഭാഷണ ഫീച്ചറുകളെ <xliff:g id="APP_NAME">%1$s</xliff:g> പിന്തുണയ്‌ക്കുന്നില്ല"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ഫീഡ്ബാക്ക്"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ഡിസ്‌മിസ് ചെയ്യുക"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"പിൻ ചെയ്തതായി കാണിക്കരുത്"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"തത്സമയ അപ്‌ഡേറ്റുകൾ കാണിക്കുന്നു"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"പിൻ ചെയ്ത അറിയിപ്പുകൾ, ആപ്പുകളിൽ നിന്നുള്ള തത്സമയ വിവരങ്ങൾ പ്രദർശിപ്പിക്കും, അവ എപ്പോഴും സ്റ്റാറ്റസ് ബാറിലും ലോക്ക് സ്‌ക്രീനിലും ദൃശ്യമാകും"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ഈ അറിയിപ്പുകൾ പരിഷ്ക്കരിക്കാനാവില്ല."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"കോൾ അറിയിപ്പുകൾ പരിഷ്‌കരിക്കാനാകുന്നില്ല."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"അറിയിപ്പുകളുടെ ഈ ഗ്രൂപ്പ് ഇവിടെ കോണ്‍ഫിഗര്‍ ചെയ്യാൻ കഴിയില്ല"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"മൾട്ടിടാസ്‌കിംഗ്"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"വലതുവശത്തുള്ള ആപ്പിനൊപ്പം സ്‌ക്രീൻ വിഭജന മോഡ് ഉപയോഗിക്കുക"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"ഇടതുവശത്തുള്ള ആപ്പിനൊപ്പം സ്‌ക്രീൻ വിഭജന മോഡ് ഉപയോഗിക്കുക"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"പൂർണ്ണ സ്‌ക്രീനിലേക്ക് മാറുക"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"സ്ക്രീൻ വിഭജന മോഡ് ഉപയോഗിക്കുമ്പോൾ വലതുവശത്തെ/താഴത്തെ ആപ്പിലേക്ക് മാറുക"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"സ്ക്രീൻ വിഭജന മോഡ് ഉപയോഗിക്കുമ്പോൾ ഇടതുവശത്തെ/മുകളിലെ ആപ്പിലേക്ക് മാറൂ"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"സ്‌ക്രീൻ വിഭജന മോഡിൽ: ഒരു ആപ്പിൽ നിന്ന് മറ്റൊന്നിലേക്ക് മാറുക"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"പ്രാധാന്യം കുറഞ്ഞ അറിയിപ്പ് ചിഹ്‌നങ്ങൾ"</string>
     <string name="other" msgid="429768510980739978">"മറ്റുള്ളവ"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ടൈൽ നീക്കം ചെയ്യുക"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"അവസാന ഭാഗത്ത് ടൈൽ ചേർക്കുക"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"ടൈൽ നീക്കുക"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"അടുത്തിടെയുള്ള ആപ്പുകൾ കാണുക"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"ആപ്പുകൾ മാറുക"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"പൂർത്തിയായി"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"വീണ്ടും ശ്രമിക്കുക!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"മടങ്ങുക"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"ടച്ച്‌പാഡിൽ മൂന്ന് വിരലുകൾ കൊണ്ട് ഇടത്തേക്കോ വലത്തേക്കോ സ്വൈപ്പ് ചെയ്യുക"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"അടുത്തിടെ ഉപയോഗിച്ച ആപ്പുകൾ കാണാൻ, മൂന്ന് വിരലുകൾ ഉപയോഗിച്ച് ടച്ച്‌പാഡിൽ സ്വൈപ്പ് ചെയ്ത് പിടിക്കുക"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"എല്ലാ ആപ്പുകളും കാണാൻ, നിങ്ങളുടെ കീബോർഡിലെ ആക്‌ഷൻ കീ അമർത്തുക"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"മറച്ചത്"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"കാണാൻ, അൺലോക്ക് ചെയ്യുക"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"സന്ദർഭോചിത വിദ്യാഭ്യാസം"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"തിരികെ പോകാൻ നിങ്ങളുടെ ടച്ച്‌പാഡ് ഉപയോഗിക്കുക"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"മൂന്ന് വിരലുകൾ കൊണ്ട് ഇടത്തേക്കോ വലത്തേക്കോ സ്വൈപ്പ് ചെയ്യൂ. കൂടുതൽ ജെസ്ച്ചറുകളറിയാൻ ടാപ്പ് ചെയ്യൂ."</string>
diff --git a/packages/SystemUI/res/values-ml/tiles_states_strings.xml b/packages/SystemUI/res/values-ml/tiles_states_strings.xml
index 8639c10..e197c92 100644
--- a/packages/SystemUI/res/values-ml/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ml/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"ഓഫാണ്"</item>
     <item msgid="5908720590832378783">"ഓണാണ്"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"ലഭ്യമല്ല"</item>
+    <item msgid="6641673879029894995">"ഓഫാണ്"</item>
+    <item msgid="5806682401126108403">"ഓണാണ്"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml
index 06b62e9..7c2e69c 100644
--- a/packages/SystemUI/res/values-mn/strings.xml
+++ b/packages/SystemUI/res/values-mn/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth холбогдсон."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth төхөөрөмжийн дүрс тэмдэг"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Төхөөрөмжийн дэлгэрэнгүйг тохируулахын тулд товшино уу"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Бүх төхөөрөмжийг харахын тулд товшино уу"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Шинэ төхөөрөмж хослуулахын тулд товшино уу"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Батарейн хувь тодорхойгүй байна."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>-тай холбогдсон."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g>-д холбогдсон."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Оролт"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Сонсголын төхөөрөмж"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Асааж байна…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Гэрэлтүүлгийг\nдавуу эрхтэй аппаас хянаж байгаа тул тохируулах боломжгүй"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Гэрэлтүүлгийгдавуу эрхтэй аппаас хянаж байгаа тул тохируулах боломжгүй"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Автоматаар эргэх"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Дэлгэцийг автоматаар эргүүлэх"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Байршил"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> нь харилцан ярианы онцлогуудыг дэмждэггүй"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Санал хүсэлт"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Хаах"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Бэхэлсэн байдлаар бүү харуул"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Шууд шинэчлэлтийг харуулж байна"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Бэхэлсэн мэдэгдэл нь аппуудын шууд мэдээллийг харуулдаг бөгөөд статусын мөр, түгжээтэй дэлгэц дээр үргэлж харагдана"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Эдгээр мэдэгдлийг өөрчлөх боломжгүй."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Дуудлагын мэдэгдлийг өөрчлөх боломжгүй."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Энэ бүлэг мэдэгдлийг энд тохируулах боломжгүй байна"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Олон ажил зэрэг хийх"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Аппыг баруун талд байгаагаар дэлгэцийг хуваахыг ашиглах"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Аппыг зүүн талд байгаагаар дэлгэцийг хуваахыг ашиглах"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Бүтэн дэлгэц рүү сэлгэх"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Дэлгэц хуваахыг ашиглаж байхдаа баруун талд эсвэл доор байх апп руу сэлгэ"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Дэлгэц хуваахыг ашиглаж байхдаа зүүн талд эсвэл дээр байх апп руу сэлгэ"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Дэлгэц хуваах үеэр: аппыг нэгээс нөгөөгөөр солих"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Бага ач холбогдолтой мэдэгдлийн дүрс тэмдгийг харуулах"</string>
     <string name="other" msgid="429768510980739978">"Бусад"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"хавтанг хасна уу"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"хавтанг сүүлийн байрлалд нэмэх"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Хавтанг зөөх"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Саяхны аппуудыг харах"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Апп сэлгэх"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Болсон"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Дахин оролдоно уу!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Буцах"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Мэдрэгч самбар дээрээ гурван хуруугаа ашиглан зүүн эсвэл баруун тийш шударна уу"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Саяхны аппуудыг харахын тулд мэдрэгч самбар дээр гурван хуруугаараа дээш шудраад, удаан дарна уу"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Бүх аппаа харахын тулд гар дээр тань байх тусгай товчлуурыг дарна уу"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Хассан"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Харахын тулд түгжээг тайлна уу"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Хам сэдэвт боловсрол"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Буцахын тулд мэдрэгч самбараа ашиглах"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Гурван хуруугаараа зүүн эсвэл баруун тийш шударна уу. Илүү олон зангаа сурахын тулд товшино уу."</string>
diff --git a/packages/SystemUI/res/values-mn/tiles_states_strings.xml b/packages/SystemUI/res/values-mn/tiles_states_strings.xml
index 678033c..7ca88e9 100644
--- a/packages/SystemUI/res/values-mn/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-mn/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Унтраалттай"</item>
     <item msgid="5908720590832378783">"Асаалттай"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Боломжгүй"</item>
+    <item msgid="6641673879029894995">"Унтраалттай"</item>
+    <item msgid="5806682401126108403">"Асаалттай"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml
index 4c2fd29..6889179 100644
--- a/packages/SystemUI/res/values-mr/strings.xml
+++ b/packages/SystemUI/res/values-mr/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"ब्लूटूथ कनेक्‍ट केले."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"ब्लूटूथ डिव्‍हाइस आयकन"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"डिव्हाइसचे तपशील कॉन्फिगर करण्यासाठी क्लिक करा"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"सर्व डिव्हाइस पाहण्यासाठी क्लिक करा"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"नवीन डिव्हाइस पेअर करण्यासाठी क्लिक करा"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. डिव्हाइसचे तपशील कॉन्फिगर करा"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"सर्व डिव्हाइस पहा"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"नवीन डिव्हाइस पेअर करा"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"बॅटरीच्या चार्जिंगची टक्केवारी माहित नाही."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> शी कनेक्‍ट केले."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> शी कनेक्ट केले."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"इनपुट"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"श्रवणयंत्रे"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"सुरू करत आहे…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ब्राइटनेस ॲडजस्ट करू शकत नाही, कारण तो\n टॉप ॲपद्वारे नियंत्रित केला जात आहे"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ब्राइटनेस ॲडजस्ट करू शकत नाही, कारण तो टॉप ॲपद्वारे नियंत्रित केला जात आहे"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"ऑटो-रोटेट"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"ऑटो-रोटेट स्क्रीन"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"स्थान"</string>
@@ -417,7 +418,7 @@
     <string name="hearing_devices_presets_error" msgid="350363093458408536">"प्रीसेट अपडेट करता आले नाही"</string>
     <string name="hearing_devices_preset_label" msgid="7878267405046232358">"प्रीसेट"</string>
     <string name="hearing_devices_spinner_item_selected" msgid="3137083889662762383">"निवडला आहे"</string>
-    <string name="hearing_devices_ambient_label" msgid="629440938614895797">"जवळपासचे आवाज"</string>
+    <string name="hearing_devices_ambient_label" msgid="629440938614895797">"जवळपासचे"</string>
     <string name="hearing_devices_ambient_control_left" msgid="3586965448230412600">"डावे"</string>
     <string name="hearing_devices_ambient_control_right" msgid="6192137602448918383">"उजवे"</string>
     <string name="hearing_devices_ambient_expand_controls" msgid="2131816068187709200">"डाव्या आणि उजव्या स्वतंत्र नियंत्रणांचा विस्तार करा"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> हे संभाषण वैशिष्ट्यांना सपोर्ट करत नाही"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"फीडबॅक"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"डिसमिस करा"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"पिन केलेले म्हणून दाखवू नका"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"लाइव्ह अपडेट दाखवत आहे"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"पिन केलेली नोटिफिकेशन अ‍ॅप्समधील लाइव्ह माहिती दाखवतात आणि नेहमी स्टेटस बार व लॉक स्‍क्रीनवर दिसतात"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"या सूचनांमध्ये सुधारणा केली जाऊ शकत नाही."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"कॉलशी संबंधित सूचनांमध्ये फेरबदल केला जाऊ शकत नाही."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"या सूचनांचा संच येथे कॉन्फिगर केला जाऊ शकत नाही"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"मल्टिटास्किंग"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"ॲप उजवीकडे ठेवून स्प्लिट स्क्रीन वापरा"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"ॲप डावीकडे ठेवून स्प्लिट स्क्रीन वापरा"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"फुल स्क्रीनवर स्विच करणे"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"फुल स्क्रीन वापरा"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"डेस्कटॉप दृश्य पहा"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"स्प्लिट स्क्रीन वापरताना उजवीकडील किंवा खालील अ‍ॅपवर स्विच करा"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"स्प्लिट स्क्रीन वापरताना डावीकडील किंवा वरील अ‍ॅपवर स्विच करा"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"स्प्लिट स्क्रीनदरम्यान: एक अ‍ॅप दुसऱ्या अ‍ॅपने बदला"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"कमी प्राधान्य सूचना आयकन दर्शवा"</string>
     <string name="other" msgid="429768510980739978">"अन्य"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"टाइल काढून टाका"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"टाइल शेवटच्या स्थानावर जोडा"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"टाइल हलवा"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"अलीकडील अ‍ॅप्स पहा"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"अ‍ॅप्स स्विच करा"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"पूर्ण झाले"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"पुढील"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"पुन्हा प्रयत्न करा!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"मागे जा"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"तुमच्या टचपॅडवर तीन बोटांनी डावीकडे किंवा उजवीकडे स्‍वाइप करा"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"अलीकडील ॲप्स पाहण्यासाठी, टचपॅडवर तीन बोटांनी वरती स्वाइप करा आणि धरून ठेवा"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"तुमची सर्व ॲप्स पाहण्यासाठी, तुमच्या कीबोर्डवरील अ‍ॅक्शन की प्रेस करा"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"रिडॅक्ट केलेले"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"पाहण्यासाठी अनलॉक करा"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"संदर्भीय शिक्षण"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"मागे जाण्यासाठी तुमचा टचपॅड वापरा"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"तीन बोटांनी डावीकडे किंवा उजवीकडे स्वाइप करा. आणखी जेश्चर जाणून घेण्यासाठी टॅप करा."</string>
diff --git a/packages/SystemUI/res/values-mr/tiles_states_strings.xml b/packages/SystemUI/res/values-mr/tiles_states_strings.xml
index ec87659..58c4d06 100644
--- a/packages/SystemUI/res/values-mr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-mr/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"बंद आहे"</item>
     <item msgid="5908720590832378783">"सुरू आहे"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"उपलब्ध नाही"</item>
+    <item msgid="6641673879029894995">"बंद आहे"</item>
+    <item msgid="5806682401126108403">"सुरू आहे"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index 93f25ff..b7e3153 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth disambungkan."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ikon peranti Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Klik untuk mengkonfigurasi butiran peranti"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Klik untuk melihat semua peranti"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Klik untuk menggandingkan peranti baharu"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Peratusan kuasa bateri tidak diketahui."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Disambungkan kepada <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Disambungkan ke <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Input"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Alat bantu pendengaran"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Menghidupkan…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Tidak dapat melaraskan kecerahan kerana peranti\n dikawal oleh apl popular"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Tidak dapat melaraskan kecerahan kerana peranti dikawal oleh apl popular"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Autoputar"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Autoputar skrin"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Lokasi"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> tidak menyokong ciri perbualan"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Maklum balas"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Ketepikan"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Jangan papar sebagai disemat"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Menunjukkan Kemaskinian Langsung"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Pemberitahuan yang disematkan memaparkan maklumat langsung daripada apl dan sentiasa dipaparkan pada bar status dan skrin kunci"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Pemberitahuan ini tidak boleh diubah suai."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Pemberitahuan panggilan tidak boleh diubah suai."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Kumpulan pemberitahuan ini tidak boleh dikonfigurasikan di sini"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Berbilang tugas"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Gunakan skrin pisah dengan apl pada sebelah kanan"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Gunakan skrin pisah dengan apl pada sebelah kiri"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Beralih kepada skrin penuh"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Tukar kepada apl di sebelah kanan/bawah semasa menggunakan skrin pisah"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Tukar kepada apl di sebelah kiri/atas semasa menggunakan skrin pisah"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Semasa skrin pisah: gantikan apl daripada satu apl kepada apl lain"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Tunjukkan ikon pemberitahuan keutamaan rendah"</string>
     <string name="other" msgid="429768510980739978">"Lain-lain"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"alih keluar jubin"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"tambahkan jubin pada kedudukan terakhir"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Alihkan jubin"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Lihat apl terbaharu"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Tukar apl"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Selesai"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Cuba lagi!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Kembali"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Leret ke kiri atau ke kanan menggunakan tiga jari pada pad sentuh"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Untuk melihat apl terbaharu, leret ke atas dan tahan dengan tiga jari pada pad sentuh"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Untuk melihat semua apl, tekan kekunci tindakan pada papan kekunci"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Disunting"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Buka kunci untuk melihat"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Pendidikan kontekstual"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Gunakan pad sentuh anda untuk kembali"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Leret ke kiri atau ke kanan dengan tiga jari. Ketik dan ketahui lebih lanjut tentang gerak isyarat."</string>
diff --git a/packages/SystemUI/res/values-ms/tiles_states_strings.xml b/packages/SystemUI/res/values-ms/tiles_states_strings.xml
index 6dc9827..5a55b76 100644
--- a/packages/SystemUI/res/values-ms/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ms/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Mati"</item>
     <item msgid="5908720590832378783">"Hidup"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Tidak tersedia"</item>
+    <item msgid="6641673879029894995">"Mati"</item>
+    <item msgid="5806682401126108403">"Hidup"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml
index bed07ef..72f0369 100644
--- a/packages/SystemUI/res/values-my/strings.xml
+++ b/packages/SystemUI/res/values-my/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"ဘလူးတုသ်ချိတ်ဆက်ထားမှု"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"ဘလူးတုသ်သုံးစက် သင်္ကေတ"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"စက်အသေးစိတ်ကို စီစဉ်သတ်မှတ်ရန် နှိပ်ပါ"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"စက်အားလုံးကြည့်ရန် နှိပ်ပါ"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"စက်အသစ် တွဲချိတ်ရန် နှိပ်ပါ"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ဘက်ထရီရာခိုင်နှုန်းကို မသိပါ။"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>သို့ ချိတ်ဆက်ထား"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> သို့ချိတ်ဆက်ထားပါသည်။"</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"အဝင်"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"နားကြားကိရိယာ"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ဖွင့်နေသည်…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"၎င်းကို ထိပ်ဆုံးရှိအက်ပ်က\n ထိန်းချုပ်နေသဖြင့် တောက်ပမှုကို ပြင်ဆင်၍မရပါ"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"၎င်းကို ထိပ်ဆုံးရှိအက်ပ်က ထိန်းချုပ်နေသဖြင့် တောက်ပမှုကို ပြင်ဆင်၍မရပါ"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"အော်တို-လည်"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"မျက်နှာပြင်အား အလိုအလျောက်လှည့်ခြင်း"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"တည်နေရာ"</string>
@@ -530,7 +534,7 @@
     <string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"ဝိဂျက် ဖယ်ရှားရန်"</string>
     <string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"ရွေးချယ်ထားသော ဝိဂျက်ကို တင်ရန်"</string>
     <string name="communal_widget_picker_title" msgid="1953369090475731663">"လော့ခ်မျက်နှာပြင် ဝိဂျက်များ"</string>
-    <string name="communal_widget_picker_description" msgid="490515450110487871">"တက်ဘလက်လော့ခ်ချထားသော်လည်း မည်သူမဆို လော့ခ်မျက်နှာပြင်ဝိဂျက်ကို ကြည့်နိုင်သည်။"</string>
+    <string name="communal_widget_picker_description" msgid="490515450110487871">"တက်ဘလက်လော့ခ်ချထားစဉ် မည်သူမဆို လော့ခ်မျက်နှာပြင်ရှိ ဝိဂျက်များကို မြင်နိုင်သည်။"</string>
     <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"ဝိဂျက် ပြန်ဖြုတ်ရန်"</string>
     <string name="accessibility_action_label_shrink_widget" msgid="8259511040536438771">"အမြင့်ကို လျှော့ရန်"</string>
     <string name="accessibility_action_label_expand_widget" msgid="9190524260912211759">"အမြင့်ကို တိုးရန်"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> က စကားဝိုင်းဝန်ဆောင်မှုများကို မပံ့ပိုးပါ"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"အကြံပြုချက်"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ပယ်ရန်"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"ပင်ထိုးထားသည့်အတိုင်း မပြရ"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"တိုက်ရိုက် အပ်ဒိတ်များ ပြနေသည်"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"ပင်ထိုးထားသော အကြောင်းကြားချက်များသည် အက်ပ်များမှ တိုက်ရိုက်အချက်အလက်များကိုပြပြီး ၎င်းတို့ကို အခြေအနေပြဘားနှင့် လော့ခ်မျက်နှာပြင်တို့တွင် အမြဲမြင်ရသည်"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ဤအကြောင်းကြားချက်များကို ပြုပြင်၍ မရပါ။"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"ခေါ်ဆိုမှုအကြောင်းကြားချက်များကို ပြင်၍မရပါ။"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ဤအကြောင်းကြားချက်အုပ်စုကို ဤနေရာတွင် စီစဉ်သတ်မှတ်၍ မရပါ"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"တစ်ပြိုင်နက် များစွာလုပ်ခြင်း"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"အက်ပ်ကို ညာ၌ထားကာ မျက်နှာပြင် ခွဲ၍ပြသခြင်း သုံးရန်"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"အက်ပ်ကို ဘယ်၌ထားကာ မျက်နှာပြင် ခွဲ၍ပြသခြင်း သုံးရန်"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"ဖန်သားပြင်အပြည့် ပြောင်းရန်"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"မျက်နှာပြင်ခွဲ၍ပြသခြင်း သုံးစဉ် ညာ (သို့) အောက်ရှိအက်ပ်သို့ ပြောင်းရန်"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"မျက်နှာပြင် ခွဲ၍ပြသခြင်းသုံးစဉ် ဘယ် (သို့) အထက်ရှိအက်ပ်သို့ ပြောင်းရန်"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"မျက်နှာပြင် ခွဲ၍ပြသစဉ်- အက်ပ်တစ်ခုကို နောက်တစ်ခုနှင့် အစားထိုးရန်"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"အရေးမကြီးသော အကြောင်းကြားချက် သင်္ကေတများ ပြရန်"</string>
     <string name="other" msgid="429768510980739978">"အခြား"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"အကွက်ငယ်ကို ဖယ်ရှားရန်"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"နောက်ဆုံးနေရာတွင် အကွက်ငယ် ထည့်ရန်"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"အကွက်ငယ်ကို ရွှေ့ရန်"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"မကြာသေးမီကအက်ပ်များကို ကြည့်ရန်"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"အက်ပ်များကူးပြောင်းခြင်း"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"ပြီးပြီ"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"ထပ်စမ်းကြည့်ပါ။"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"ပြန်သွားရန်"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"သင့်တာ့ချ်ပက်တွင် လက်သုံးချောင်းဖြင့် ဘယ် (သို့) ညာသို့ ပွတ်ဆွဲပါ"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"လတ်တလောအက်ပ်များကို ကြည့်ရန် တာ့ချ်ပက်ပေါ်တွင် လက်သုံးချောင်းဖြင့် အပေါ်သို့ပွတ်ဆွဲပြီး ဖိထားပါ"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"သင့်အက်ပ်အားလုံးကြည့်ရန် ကီးဘုတ်ပေါ်ရှိ လုပ်ဆောင်ချက်ကီးကို နှိပ်ပါ"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"အစားထိုးထားသည်"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"ကြည့်ရန် ဖွင့်ပါ"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"အကြောင်းအရာအလိုက် ပညာရေး"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"နောက်ပြန်သွားရန် သင့်တာ့ချ်ပက်ကို သုံးပါ"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"လက်သုံးချောင်းဖြင့် ဘယ် (သို့) ညာသို့ ပွတ်ဆွဲပါ။ လက်ဟန်များ ပိုမိုလေ့လာရန် တို့ပါ။"</string>
diff --git a/packages/SystemUI/res/values-my/tiles_states_strings.xml b/packages/SystemUI/res/values-my/tiles_states_strings.xml
index 424b4b9..7789205 100644
--- a/packages/SystemUI/res/values-my/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-my/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"ပိတ်"</item>
     <item msgid="5908720590832378783">"ဖွင့်"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"မရနိုင်ပါ"</item>
+    <item msgid="6641673879029894995">"ပိတ်"</item>
+    <item msgid="5806682401126108403">"ဖွင့်"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 7e87efc..72d7956 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth er tilkoblet."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ikon for Bluetooth-enheter"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Klikk for å konfigurere enhetsdetaljer"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Klikk for å se alle enhetene"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Klikk for å koble sammen en ny enhet"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Batteriprosenten er ukjent."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Koblet til <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Koblet til <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Innenhet"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Høreapparater"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Slår på …"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Kan ikke justere lysstyrken, fordi den\n kontrolleres av appen på toppen"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Kan ikke justere lysstyrken, fordi den kontrolleres av appen på toppen"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Rotér automatisk"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Rotér skjermen automatisk"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Sted"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> støtter ikke samtalefunksjoner"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Tilbakemelding"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Lukk"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ikke vis som festet"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Viser direkteoppdateringer"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Festede varsler viser sanntidsinformasjon fra apper og vises alltid i statusfeltet og på låseskjermen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Disse varslene kan ikke endres."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Anropsvarsler kan ikke endres."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Denne varselgruppen kan ikke konfigureres her"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Bruk delt skjerm med appen til høyre"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Bruk delt skjerm med appen til venstre"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Bytt til fullskjerm"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Bytt til appen til høyre eller under mens du bruker delt skjerm"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Bytt til appen til venstre eller over mens du bruker delt skjerm"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"I delt skjerm: Bytt ut en app"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Vis ikoner for varsler med lav prioritet"</string>
     <string name="other" msgid="429768510980739978">"Annet"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"fjerne infobrikken"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"legge til en brikke på den siste posisjonen"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Flytt infobrikken"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Se nylige apper"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Bytt app"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Ferdig"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Prøv på nytt."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Gå tilbake"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Sveip til venstre eller høyre med tre fingre på styreflaten"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"For å se nylige apper, sveip opp og hold med tre fingre på styreflaten"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"For å se alle appene dine, trykk på handlingstasten på tastaturet"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Fjernet"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Lås opp for å se"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstuell opplæring"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Bruk styreflaten for å gå tilbake"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Sveip til venstre eller høyre med tre fingre. Trykk for å lære flere bevegelser."</string>
diff --git a/packages/SystemUI/res/values-nb/tiles_states_strings.xml b/packages/SystemUI/res/values-nb/tiles_states_strings.xml
index bbeafd8..25b2205 100644
--- a/packages/SystemUI/res/values-nb/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-nb/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Av"</item>
     <item msgid="5908720590832378783">"På"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Utilgjengelig"</item>
+    <item msgid="6641673879029894995">"Av"</item>
+    <item msgid="5806682401126108403">"På"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml
index cc07b7f..8e0ee77 100644
--- a/packages/SystemUI/res/values-ne/strings.xml
+++ b/packages/SystemUI/res/values-ne/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"ब्लुटुथ जडान भयो।"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"ब्लुटुथ डिभाइस जनाउने आइकन"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"डिभाइसको विवरण कन्फिगर गर्न क्लिक गर्नुहोस्"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"सबै डिभाइसहरू हेर्न क्लिक गर्नुहोस्"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"नयाँ डिभाइसमा कनेक्ट गर्न क्लिक गर्नुहोस्"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ब्याट्रीमा कति प्रतिशत चार्ज छ भन्ने कुराको जानाकरी छैन।"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> मा जडित।"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> मा कनेक्ट गरियो।"</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"इनपुट"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"हियरिङ डिभाइसहरू"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"सक्रिय गर्दै…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"टप एपले चमक नियन्त्रण गरिरहेकाले\n चमक मिलाउन मिल्दैन"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"टप एपले चमक नियन्त्रण गरिरहेकाले चमक मिलाउन मिल्दैन"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"अटो रोटेट"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"स्क्रिन स्वतःघुम्ने"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"लोकेसन"</string>
@@ -424,7 +428,7 @@
     <string name="hearing_devices_ambient_collapse_controls" msgid="2261097656446201581">"कोल्याप्स गरी एउटै कन्ट्रोल बनाउनुहोस्"</string>
     <string name="hearing_devices_ambient_mute" msgid="1836882837647429416">"वरपरका आवाज म्युट गर्नुहोस्"</string>
     <string name="hearing_devices_ambient_unmute" msgid="2187938085943876814">"वरपरका आवाज अनम्युट गर्नुहोस्"</string>
-    <string name="hearing_devices_tools_label" msgid="1929081464316074476">"टुल"</string>
+    <string name="hearing_devices_tools_label" msgid="1929081464316074476">"टुलहरू"</string>
     <string name="quick_settings_hearing_devices_live_caption_title" msgid="1054814050932225451">"लाइभ क्याप्सन"</string>
     <string name="quick_settings_notes_label" msgid="1028004078001002623">"नोट"</string>
     <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"डिभाइसको माइक्रोफोन अनब्लक गर्ने हो?"</string>
@@ -506,7 +510,7 @@
     <string name="communal_tutorial_indicator_text" msgid="4503010353591430123">"कम्युनल ट्युटोरियल सुरु गर्न बायाँतिर स्वाइप गर्नुहोस्"</string>
     <string name="cta_tile_button_to_open_widget_editor" msgid="3871562362382963878">"कस्टमाइज गर्नुहोस्"</string>
     <string name="cta_tile_button_to_dismiss" msgid="3377597875997861754">"खारेज गर्नुहोस्"</string>
-    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"यो स्पेसमा आफ्ना विजेटहरू हाल्नुहोस्, हटाउनुहोस् र तिनका क्रम फेरि मिलाउनुहोस्"</string>
+    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"यो स्पेसमा विजेटहरू हाल्नुहोस्, हटाउनुहोस् र तिनको क्रम मिलाउनुहोस्"</string>
     <string name="cta_label_to_open_widget_picker" msgid="3874946756976360699">"थप विजेटहरू हाल्नुहोस्"</string>
     <string name="popup_on_dismiss_cta_tile_text" msgid="8292501780996070019">"विजेटहरू कस्टमाइज गर्न केही बेरसम्म थिच्नुहोस्"</string>
     <string name="button_to_configure_widgets_text" msgid="4191862850185256901">"विजेटहरू कस्टमाइज गर्नुहोस्"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> मा वार्तालापसम्बन्धी सुविधा प्रयोग गर्न मिल्दैन"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"प्रतिक्रिया"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"हटाउनुहोस्"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"पिन गरिएका अपडेटका रूपमा नदेखाउनुहोस्"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"लाइभ अपडेटहरू देखाइँदै छन्"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"पिन गरिएका नोटिफिकेसनमा एपहरूबाट प्राप्त हालको जानकारी देखाइन्छ र ती नोटिफिकेसन सधैँ स्ट्याटस बार र लक स्क्रिनमा देखिन्छन्"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"यी सूचनाहरू परिमार्जन गर्न मिल्दैन।"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"कलसम्बन्धी सूचनाहरू परिमार्जन गर्न मिल्दैन।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"यहाँबाट सूचनाहरूको यो समूह कन्फिगर गर्न सकिँदैन"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"मल्टिटास्किङ"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"हालको एप दायाँ भागमा पारेर स्प्लिट स्क्रिन प्रयोग गर्नुहोस्"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"हालको एप बायाँ भागमा पारेर स्प्लिट स्क्रिन प्रयोग गर्नुहोस्"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"फुल स्क्रिन प्रयोग गर्नुहोस्"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"स्प्लिट स्क्रिन प्रयोग गर्दै गर्दा दायाँ वा तलको एप चलाउनुहोस्"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"स्प्लिट स्क्रिन प्रयोग गर्दै गर्दा बायाँ वा माथिको एप चलाउनुहोस्"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"स्प्लिट स्क्रिन प्रयोग गरिएका बेला: एउटा स्क्रिनमा भएको एप अर्कोमा लैजानुहोस्"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"कम प्राथमिकताका सूचना आइकनहरू देखाउनुहोस्"</string>
     <string name="other" msgid="429768510980739978">"अन्य"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"टाइल हटाउनुहोस्"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"अन्तिम स्थानमा टाइल हाल्नुहोस्"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"टाइल सार्नुहोस्"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"हालसालै चलाइएका एपहरू हेर्नुहोस्"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"एपहरू बदल्नुहोस्"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"सम्पन्न भयो"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"फेरि प्रयास गर्नुहोस्!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"पछाडि जानुहोस्"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"तीन वटा औँला प्रयोग गरी टचप्याडमा बायाँ वा दायाँतिर स्वाइप गर्नुहोस्"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"आफूले हालसालै चलाएका एपहरू हेर्न तीन वटा औँलाले टचप्याडमा माथितिर स्वाइप गर्नुहोस् र होल्ड गर्नुहोस्"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"आफ्ना सबै एपहरू हेर्न आफ्नो किबोर्डमा भएको एक्सन की थिच्नुहोस्"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"जानकारी लुकाउन सम्पादन गरिएको"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"हेर्नका लागि अनलक गर्नुहोस्"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"सान्दर्भिक शिक्षा"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"पछाडि जान आफ्नो टचप्याड प्रयोग गर्नुहोस्"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"तीन वटा औँला प्रयोग गरी बायाँ वा दायाँतिर स्वाइप गर्नुहोस्। थप जेस्चर प्रयोग गर्ने तरिका सिक्न ट्याप गर्नुहोस्।"</string>
diff --git a/packages/SystemUI/res/values-ne/tiles_states_strings.xml b/packages/SystemUI/res/values-ne/tiles_states_strings.xml
index de3baa0..fe812f8 100644
--- a/packages/SystemUI/res/values-ne/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ne/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"अफ छ"</item>
     <item msgid="5908720590832378783">"अन छ"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"उपलब्ध छैन"</item>
+    <item msgid="6641673879029894995">"अफ छ"</item>
+    <item msgid="5806682401126108403">"अन छ"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index b778cec..e789798 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth-verbinding ingesteld."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Icoon voor bluetooth-apparaat"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Klik om de apparaatgegevens in te stellen"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Klik om alle apparaten te bekijken"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Klik om nieuw apparaat te koppelen"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Batterijpercentage onbekend."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Verbonden met <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Verbonden met <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Invoer"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Hoortoestellen"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Aanzetten…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Kan de helderheid niet aanpassen omdat deze wordt\n beheerd door de bovenste app"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Kan de helderheid niet aanpassen omdat deze wordt beheerd door de bovenste app"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Automatisch draaien"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Scherm automatisch draaien"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Locatie"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ondersteunt geen gespreksfuncties"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Sluiten"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Niet tonen als vastgezet"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Live updates worden getoond"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Vastgezette meldingen tonen live informatie van apps en verschijnen altijd in de statusbalk en op het vergrendelscherm"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Deze meldingen kunnen niet worden aangepast."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Gespreksmeldingen kunnen niet worden aangepast."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Deze groep meldingen kan hier niet worden ingesteld"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasken"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Gesplitst scherm gebruiken met de app aan de rechterkant"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Gesplitst scherm gebruiken met de app aan de linkerkant"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Overschakelen naar volledig scherm"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Naar de app rechts of onderaan gaan als je een gesplitst scherm gebruikt"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Naar de app links of bovenaan gaan als je een gesplitst scherm gebruikt"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Tijdens gesplitst scherm: een app vervangen door een andere"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Iconen voor meldingen met lage prioriteit tonen"</string>
     <string name="other" msgid="429768510980739978">"Overig"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"tegel verwijderen"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"tegel toevoegen op de laatste positie"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Tegel verplaatsen"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Recente apps bekijken"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Wisselen tussen apps"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Klaar"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Probeer het nog eens."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Terug"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Swipe met 3 vingers naar links of rechts op de touchpad"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Als je recente apps wilt bekijken, swipe je met 3 vingers omhoog op de touchpad en houd je vast"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Als je alle apps wilt bekijken, druk je op de actietoets op je toetsenbord"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Verborgen"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Ontgrendelen om te bekijken"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Contextuele educatie"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Je touchpad gebruiken om terug te gaan"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Swipe met 3 vingers naar links of rechts. Tik voor meer gebaren."</string>
diff --git a/packages/SystemUI/res/values-nl/tiles_states_strings.xml b/packages/SystemUI/res/values-nl/tiles_states_strings.xml
index 90572b6..bb8fbe0 100644
--- a/packages/SystemUI/res/values-nl/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-nl/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Uit"</item>
     <item msgid="5908720590832378783">"Aan"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Niet beschikbaar"</item>
+    <item msgid="6641673879029894995">"Uit"</item>
+    <item msgid="5806682401126108403">"Aan"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-or/strings.xml b/packages/SystemUI/res/values-or/strings.xml
index 0ef622b..469ae28 100644
--- a/packages/SystemUI/res/values-or/strings.xml
+++ b/packages/SystemUI/res/values-or/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"ବ୍ଲୁଟୂଥ୍‍‌ ସଂଯୋଗ କରାଯାଇଛି।"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"ବ୍ଲୁଟୁଥ ଡିଭାଇସ ଆଇକନ"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"ଡିଭାଇସ ବିବରଣୀକୁ କନଫିଗର କରିବା ପାଇଁ କ୍ଲିକ କରନ୍ତୁ"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"ସମସ୍ତ ଡିଭାଇସ ଦେଖିବାକୁ କ୍ଲିକ କରନ୍ତୁ"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"ନୂଆ ଡିଭାଇସ ପେୟାର କରିବାକୁ କ୍ଲିକ କରନ୍ତୁ"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ବ୍ୟାଟେରୀ ଶତକଡ଼ା ଅଜଣା ଅଟେ।"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> ସହ ସଂଯୁକ୍ତ"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> ସହିତ ସଂଯୁକ୍ତ।"</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"ଇନପୁଟ୍"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"ଶ୍ରବଣ ଯନ୍ତ୍ର"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ଅନ୍ ହେଉଛି…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ଟପ ଆପ ଦ୍ୱାରା ଉଜ୍ଜ୍ୱଳତା ନିୟନ୍ତ୍ରିତ\nହେଉଥିବା ଯୋଗୁଁ ଏହାକୁ ଆଡଜଷ୍ଟ କରିପାରିବେ ନାହିଁ"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ଟପ ଆପ ଦ୍ୱାରା ଉଜ୍ଜ୍ୱଳତା ନିୟନ୍ତ୍ରିତହେଉଥିବା ଯୋଗୁଁ ଏହାକୁ ଆଡଜଷ୍ଟ କରିପାରିବେ ନାହିଁ"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"ଅଟୋ-ରୋଟେଟ"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"ଅଟୋ-ରୋଟେଟ ସ୍କ୍ରିନ"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"ଲୋକେସନ"</string>
@@ -354,7 +358,7 @@
     <string name="quick_settings_inversion_label" msgid="3501527749494755688">"କଲର ଇନଭର୍ସନ"</string>
     <string name="quick_settings_color_correction_label" msgid="5636617913560474664">"ରଙ୍ଗ ସଂଶୋଧନ"</string>
     <string name="quick_settings_font_scaling_label" msgid="5289001009876936768">"ଫଣ୍ଟର ଆକାର"</string>
-    <string name="quick_settings_more_user_settings" msgid="7634653308485206306">"ୟୁଜରମାନଙ୍କୁ ପରିଚାଳନା କରନ୍ତୁ"</string>
+    <string name="quick_settings_more_user_settings" msgid="7634653308485206306">"ୟୁଜରଙ୍କୁ ପରିଚାଳନା"</string>
     <string name="quick_settings_done" msgid="2163641301648855793">"ହୋଇଗଲା"</string>
     <string name="quick_settings_close_user_panel" msgid="5599724542275896849">"ବନ୍ଦ କରନ୍ତୁ"</string>
     <string name="quick_settings_connected" msgid="3873605509184830379">"ସଂଯୁକ୍ତ"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ବାର୍ତ୍ତାଳାପ ଫିଚରଗୁଡ଼ିକୁ ସମର୍ଥନ କରେ ନାହିଁ"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ମତାମତ"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ଖାରଜ କରନ୍ତୁ"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"ପିନ ଥିବା ଭାବେ ଦେଖାନ୍ତୁ ନାହିଁ"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"ଲାଇଭ ଅପଡେଟଗୁଡ଼ିକୁ ଦେଖାଉଛି"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"ପିନ କରାଯାଇଥିବା ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ଆପ୍ସରୁ ଲାଇଭ ସୂଚନା ଡିସପ୍ଲେ କରେ ଏବଂ ସର୍ବଦା ଷ୍ଟାଟସ ବାର ଓ ଲକ ସ୍କ୍ରିନରେ ଦେଖାଯାଏ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ଏହି ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ପରିବର୍ତ୍ତନ କରିହେବ ନାହିଁ।"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"କଲ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ପରିବର୍ତ୍ତନ କରାଯାଇପାରିବ ନାହିଁ।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ଏଠାରେ ଏହି ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକର ଗ୍ରୁପ୍ କନଫ୍ୟୁଗର୍ କରାଯାଇପାରିବ ନାହିଁ"</string>
@@ -835,7 +836,7 @@
     <string name="notification_menu_gear_description" msgid="6429668976593634862">"ବିଜ୍ଞପ୍ତି ନିୟନ୍ତ୍ରଣ"</string>
     <string name="notification_menu_snooze_description" msgid="4740133348901973244">"ବିଜ୍ଞପ୍ତି ସ୍ନୁଜ୍‍ ବିକଳ୍ପ"</string>
     <string name="notification_menu_snooze_action" msgid="5415729610393475019">"ମୋତେ ରିମାଇଣ୍ଡର୍ କରନ୍ତୁ"</string>
-    <string name="snooze_undo" msgid="2738844148845992103">"ପୂର୍ବବତ୍ କରନ୍ତୁ"</string>
+    <string name="snooze_undo" msgid="2738844148845992103">"ଅନଡୁ କରନ୍ତୁ"</string>
     <string name="snooze_undo_content_description" msgid="2711656788917580801">"ବିଜ୍ଞପ୍ତି ସ୍ନୁଜକୁ ପୂର୍ବବତ କରନ୍ତୁ"</string>
     <string name="snoozed_for_time" msgid="7586689374860469469">"<xliff:g id="TIME_AMOUNT">%1$s</xliff:g> ପାଇଁ ସ୍ନୁଜ୍‍ କରାଗଲା"</string>
     <string name="snoozeHourOptions" msgid="2332819756222425558">"{count,plural, =1{# ଘଣ୍ଟା}=2{# ଘଣ୍ଟା}other{# ଘଣ୍ଟା}}"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"ମଲ୍ଟିଟାସ୍କିଂ"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"ଡାହାଣରେ ଆପ ସହିତ ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନକୁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"ବାମରେ ଆପ ସହିତ ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନକୁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନକୁ ସୁଇଚ କରନ୍ତୁ"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନ ବ୍ୟବହାର କରିବା ସମୟରେ ଡାହାଣପଟର ବା ତଳର ଆପକୁ ସୁଇଚ କରନ୍ତୁ"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନ ବ୍ୟବହାର କରିବା ସମୟରେ ବାମପଟର ବା ଉପରର ଆପକୁ ସୁଇଚ କରନ୍ତୁ"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନ ସମୟରେ: କୌଣସି ଆପକୁ ଗୋଟିଏରୁ ଅନ୍ୟ ଏକ ଆପରେ ବଦଳାନ୍ତୁ"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"କମ୍‍-ଅଗ୍ରାଧିକାର ବିଜ୍ଞପ୍ତି ଆଇକନ୍‍ ଦେଖାନ୍ତୁ"</string>
     <string name="other" msgid="429768510980739978">"ଅନ୍ୟ"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ଟାଇଲ୍ କାଢ଼ି ଦିଅନ୍ତୁ"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"ଶେଷ ପୋଜିସନରେ ଟାଇଲ ଯୋଗ କରିବା"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"ଟାଇଲ୍ ମୁଭ୍ କରନ୍ତୁ"</string>
@@ -1132,7 +1138,7 @@
     <string name="accessibility_magnification_magnifier_window_settings" msgid="2834685072221468434">"ମ୍ୟାଗ୍ନିଫାୟର ୱିଣ୍ଡୋର ସେଟିଂସ"</string>
     <string name="accessibility_floating_button_migration_tooltip" msgid="5217151214439341902">"ଆକ୍ସେସିବିଲିଟୀ ଫିଚର ଖୋଲିବାକୁ ଟାପ କରନ୍ତୁ। ସେଟିଂସରେ ଏହି ବଟନକୁ କଷ୍ଟମାଇଜ କର କିମ୍ବା ବଦଳାଅ।\n\n"<annotation id="link">"ସେଟିଂସ ଦେଖନ୍ତୁ"</annotation></string>
     <string name="accessibility_floating_button_docking_tooltip" msgid="6814897496767461517">"ବଟନକୁ ଅସ୍ଥାୟୀ ଭାବେ ଲୁଚାଇବା ପାଇଁ ଏହାକୁ ଗୋଟିଏ ଧାରକୁ ମୁଭ୍ କରନ୍ତୁ"</string>
-    <string name="accessibility_floating_button_undo" msgid="511112888715708241">"ପୂର୍ବବତ୍ କରନ୍ତୁ"</string>
+    <string name="accessibility_floating_button_undo" msgid="511112888715708241">"ଅନଡୁ କରନ୍ତୁ"</string>
     <string name="accessibility_floating_button_hidden_notification_title" msgid="4115036997406994799">"ଆକ୍ସେସିବିଲିଟୀ ବଟନକୁ ଲୁଚାଯାଇଛି"</string>
     <string name="accessibility_floating_button_hidden_notification_text" msgid="1457021647040915658">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ ଦେଖାଇବାକୁ ଟାପ କରନ୍ତୁ"</string>
     <string name="accessibility_floating_button_undo_message_label_text" msgid="9017658016426242640">"<xliff:g id="FEATURE_NAME">%s</xliff:g> ସର୍ଟକଟକୁ କାଢ଼ି ଦିଆଯାଇଛି"</string>
@@ -1210,7 +1216,7 @@
     <string name="controls_media_smartspace_rec_item_description" msgid="2189271793070870883">"<xliff:g id="APP_LABEL">%3$s</xliff:g>ରୁ <xliff:g id="ARTIST_NAME">%2$s</xliff:g>ଙ୍କ <xliff:g id="SONG_NAME">%1$s</xliff:g> ଚଲାନ୍ତୁ"</string>
     <string name="controls_media_smartspace_rec_item_no_artist_description" msgid="8703614798636591077">"<xliff:g id="APP_LABEL">%2$s</xliff:g>ରୁ <xliff:g id="SONG_NAME">%1$s</xliff:g> ଚଲାନ୍ତୁ"</string>
     <string name="controls_media_smartspace_rec_header" msgid="5053461390357112834">"ଆପଣଙ୍କ ପାଇଁ"</string>
-    <string name="media_transfer_undo" msgid="1895606387620728736">"ପୂର୍ବବତ୍ କରନ୍ତୁ"</string>
+    <string name="media_transfer_undo" msgid="1895606387620728736">"ଅନଡୁ କରନ୍ତୁ"</string>
     <string name="media_move_closer_to_start_cast" msgid="2673104707465013176">"<xliff:g id="DEVICENAME">%1$s</xliff:g>ରେ ପ୍ଲେ କରିବା ପାଇଁ ପାଖକୁ ମୁଭ କରନ୍ତୁ"</string>
     <string name="media_move_closer_to_end_cast" msgid="7302555909119374738">"ଏଠାରେ ପ୍ଲେ କରିବା ପାଇଁ <xliff:g id="DEVICENAME">%1$s</xliff:g> ପାଖକୁ ମୁଭ କରନ୍ତୁ"</string>
     <string name="media_transfer_playing_different_device" msgid="7186806382609785610">"<xliff:g id="DEVICENAME">%1$s</xliff:g>ରେ ପ୍ଲେ ହେଉଛି"</string>
@@ -1356,7 +1362,7 @@
     <string name="clipboard_image_preview" msgid="2156475174343538128">"ଇମେଜ ପ୍ରିଭ୍ୟୁ"</string>
     <string name="clipboard_edit" msgid="4500155216174011640">"ଏଡିଟ କରନ୍ତୁ"</string>
     <string name="add" msgid="81036585205287996">"ଯୋଗ କରନ୍ତୁ"</string>
-    <string name="manage_users" msgid="1823875311934643849">"ୟୁଜରମାନଙ୍କୁ ପରିଚାଳନା କରନ୍ତୁ"</string>
+    <string name="manage_users" msgid="1823875311934643849">"ୟୁଜରଙ୍କୁ ପରିଚାଳନା"</string>
     <string name="drag_split_not_supported" msgid="7173481676120546121">"ଏହି ବିଜ୍ଞପ୍ତି ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନକୁ ଟାଣିବାକୁ ସମର୍ଥନ କରେ ନାହିଁ"</string>
     <string name="dream_overlay_location_active" msgid="6484763493158166618">"ଲୋକେସନ ସକ୍ରିୟ ଅଛି"</string>
     <string name="dream_overlay_status_bar_wifi_off" msgid="4497069245055003582">"ୱାଇ-ଫାଇ ଉପଲବ୍ଧ ନାହିଁ"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"ବର୍ତ୍ତମାନର ଆପ୍ସ ଭ୍ୟୁ କରନ୍ତୁ"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"ଆପ୍ସକୁ ସୁଇଚ କରନ୍ତୁ"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"ହୋଇଗଲା"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"ପଛକୁ ଫେରନ୍ତୁ"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"ଆପଣଙ୍କ ଟଚପେଡରେ ତିନୋଟି ଆଙ୍ଗୁଠି ବ୍ୟବହାର କରି ବାମ କିମ୍ବା ଡାହାଣକୁ ସ୍ୱାଇପ କରନ୍ତୁ"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"ବର୍ତ୍ତମାନର ଆପ୍ସ ଭ୍ୟୁ କରିବାକୁ, ଟଚପେଡରେ ତିନୋଟି ଆଙ୍ଗୁଠିରେ ଉପରକୁ ସ୍ୱାଇପ କରି ଧରି ରଖନ୍ତୁ"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"ଆପଣଙ୍କ ସମସ୍ତ ଆପ୍ସ ଭ୍ୟୁ କରିବା ପାଇଁ ଆପଣଙ୍କ କୀବୋର୍ଡରେ ଆକ୍ସନ କୀ\'କୁ ଦବାନ୍ତୁ"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"ଲୁଚା ଯାଇଥିବା"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"ଭ୍ୟୁ କରିବାକୁ ଅନଲକ କରନ୍ତୁ"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"ପ୍ରାସଙ୍ଗିକ ଶିକ୍ଷା"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"ପଛକୁ ଫେରିବା ପାଇଁ ଆପଣଙ୍କ ଟଚପେଡକୁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"ତିନୋଟି ଆଙ୍ଗୁଠିରେ ବାମ ବା ଡାହାଣକୁ ସ୍ୱାଇପ କରନ୍ତୁ। ଜେଶ୍ଚରଗୁଡ଼ିକ ବିଷୟରେ ଅଧିକ ଜାଣିବାକୁ ଟାପ କରନ୍ତୁ।"</string>
diff --git a/packages/SystemUI/res/values-or/tiles_states_strings.xml b/packages/SystemUI/res/values-or/tiles_states_strings.xml
index c9c3198..eae984b 100644
--- a/packages/SystemUI/res/values-or/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-or/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"ବନ୍ଦ ଅଛି"</item>
     <item msgid="5908720590832378783">"ଚାଲୁ ଅଛି"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"ଅନୁପଲବ୍ଧ"</item>
+    <item msgid="6641673879029894995">"ବନ୍ଦ ଅଛି"</item>
+    <item msgid="5806682401126108403">"ଚାଲୁ ଅଛି"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml
index 4be78a3..70d2497 100644
--- a/packages/SystemUI/res/values-pa/strings.xml
+++ b/packages/SystemUI/res/values-pa/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth ਕਨੈਕਟ ਕੀਤੀ।"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"ਬਲੂਟੁੱਥ ਡੀਵਾਈਸ ਦਾ ਪ੍ਰਤੀਕ"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"ਡੀਵਾਈਸ ਦੇ ਵੇਰਵੇ ਦਾ ਸੰਰੂਪਣ ਕਰਨ ਲਈ ਕਲਿੱਕ ਕਰੋ"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"\'ਸਾਰੇ ਡੀਵਾਈਸ ਦੇਖੋ\' \'ਤੇ ਕਲਿੱਕ ਕਰੋ"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"\'ਨਵਾਂ ਡੀਵਾਈਸ ਜੋੜਾਬੱਧ ਕਰੋ\' \'ਤੇ ਕਲਿੱਕ ਕਰੋ"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. ਡੀਵਾਈਸ ਦੇ ਵੇਰਵੇ ਦਾ ਸੰਰੂਪਣ ਕਰੋ"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"ਸਾਰੇ ਡੀਵਾਈਸ ਦੇਖੋ"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"ਨਵਾਂ ਡੀਵਾਈਸ ਜੋੜਾਬੱਧ ਕਰੋ"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ਬੈਟਰੀ ਪ੍ਰਤੀਸ਼ਤ ਅਗਿਆਤ ਹੈ।"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ।"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ।"</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"ਇਨਪੁੱਟ"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"ਸੁਣਨ ਦੇ ਸਾਧਨ"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ਚਾਲੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ਚਮਕ ਨੂੰ ਵਿਵਸਥਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਕਿਉਂਕਿ ਇਹ ਪਹਿਲਾਂ ਚੱਲ ਰਹੀ ਐਪ ਵੱਲੋਂ ਕੰਟਰੋਲ ਕਰਨ ਕਰਕੇ \n ਹੋ ਰਿਹਾ ਹੈ"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ਚਮਕ ਨੂੰ ਵਿਵਸਥਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਕਿਉਂਕਿ ਇਹ ਪਹਿਲਾਂ ਚੱਲ ਰਹੀ ਐਪ ਵੱਲੋਂ ਕੰਟਰੋਲ ਕਰਨ ਕਰਕੇ ਹੋ ਰਿਹਾ ਹੈ"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"ਸਵੈ-ਘੁਮਾਓ"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"ਸਕ੍ਰੀਨ ਨੂੰ ਆਪਣੇ ਆਪ ਘੁੰਮਾਓ"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"ਟਿਕਾਣਾ"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਐਪ ਗੱਲਬਾਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ਵਿਚਾਰ"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ਖਾਰਜ ਕਰੋ"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"ਪਿੰਨ ਕੀਤੇ ਵਜੋਂ ਨਾ ਦਿਖਾਓ"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"ਲਾਈਵ ਅੱਪਡੇਟ ਦਿਖਾਏ ਜਾ ਰਹੇ ਹਨ"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"ਪਿੰਨ ਕੀਤੀਆਂ ਸੂਚਨਾਵਾਂ ਐਪਾਂ ਤੋਂ ਲਾਈਵ ਜਾਣਕਾਰੀ ਦਿਖਾਉਂਦੀਆਂ ਹਨ ਅਤੇ ਇਹ ਜਾਣਕਾਰੀ ਹਮੇਸ਼ਾਂ ਸਥਿਤੀ ਪੱਟੀ ਅਤੇ ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਦਿਖਦੀ ਹੈ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ਇਹਨਾਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"ਕਾਲ ਸੰਬੰਧੀ ਸੂਚਨਾਵਾਂ ਨੂੰ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ਇਹ ਸੂਚਨਾਵਾਂ ਦਾ ਗਰੁੱਪ ਇੱਥੇ ਸੰਰੂਪਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"ਮਲਟੀਟਾਸਕਿੰਗ"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"ਸੱਜੇ ਪਾਸੇ ਵਾਲੀ ਐਪ ਨਾਲ ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"ਖੱਬੇ ਪਾਸੇ ਵਾਲੀ ਐਪ ਨਾਲ ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"ਪੂਰੀ-ਸਕ੍ਰੀਨ \'ਤੇ ਸਵਿੱਚ ਕਰੋ"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"ਪੂਰੀ ਸਕ੍ਰੀਨ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"ਡੈਸਕਟਾਪ ਦ੍ਰਿਸ਼ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵੇਲੇ ਸੱਜੇ ਜਾਂ ਹੇਠਾਂ ਮੌਜੂਦ ਐਪ \'ਤੇ ਸਵਿੱਚ ਕਰੋ"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵੇਲੇ ਖੱਬੇ ਜਾਂ ਉੱਪਰ ਮੌਜੂਦ ਐਪ \'ਤੇ ਸਵਿੱਚ ਕਰੋ"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਦੌਰਾਨ: ਇੱਕ ਐਪ ਨਾਲ ਦੂਜੀ ਐਪ ਨੂੰ ਬਦਲੋ"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"ਘੱਟ ਤਰਜੀਹ ਵਾਲੇ ਸੂਚਨਾ ਪ੍ਰਤੀਕਾਂ ਨੂੰ ਦਿਖਾਓ"</string>
     <string name="other" msgid="429768510980739978">"ਹੋਰ"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ਟਾਇਲ ਹਟਾਓ"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"ਪਿਛਲੀ ਸਥਿਤੀ \'ਤੇ ਟਾਇਲ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"ਟਾਇਲ ਨੂੰ ਲਿਜਾਓ"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"ਹਾਲੀਆ ਐਪਾਂ ਦੇਖੋ"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"ਐਪਾਂ ਵਿਚਕਾਰ ਸਵਿੱਚ ਕਰੋ"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"ਹੋ ਗਿਆ"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"ਅੱਗੇ"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"ਵਾਪਸ ਜਾਓ"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"ਆਪਣੇ ਟੱਚਪੈਡ \'ਤੇ ਤਿੰਨ ਉਂਗਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਕੇ ਖੱਬੇ ਜਾਂ ਸੱਜੇ ਪਾਸੇ ਵੱਲ ਸਵਾਈਪ ਕਰੋ"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"ਹਾਲੀਆ ਐਪਾਂ ਨੂੰ ਦੇਖਣ ਲਈ, ਟੱਚਪੈਡ \'ਤੇ ਤਿੰਨ ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰ ਕੇ ਦਬਾਈ ਰੱਖੋ"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"ਆਪਣੀਆਂ ਸਾਰੀਆਂ ਐਪਾਂ ਨੂੰ ਦੇਖਣ ਲਈ, ਆਪਣੇ ਕੀ-ਬੋਰਡ \'ਤੇ ਕਾਰਵਾਈ ਕੁੰਜੀ ਨੂੰ ਦਬਾਓ"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"ਅਸਪਸ਼ਟ ਬਣਾਇਆ ਗਿਆ"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"ਦੇਖਣ ਲਈ ਅਣਲਾਕ ਕਰੋ"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"ਸੰਦਰਭੀ ਸਿੱਖਿਆ"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"ਪਿੱਛੇ ਜਾਣ ਲਈ ਆਪਣੇ ਟੱਚਪੈਡ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"ਤਿੰਨ ਉਂਗਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਕੇ ਖੱਬੇ ਜਾਂ ਸੱਜੇ ਪਾਸੇ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਹੋਰ ਇਸ਼ਾਰਿਆਂ ਨੂੰ ਜਾਣਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
diff --git a/packages/SystemUI/res/values-pa/tiles_states_strings.xml b/packages/SystemUI/res/values-pa/tiles_states_strings.xml
index eeb9a5b..2baff30 100644
--- a/packages/SystemUI/res/values-pa/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pa/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"ਬੰਦ"</item>
     <item msgid="5908720590832378783">"ਚਾਲੂ"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"ਉਪਲਬਧ ਨਹੀਂ"</item>
+    <item msgid="6641673879029894995">"ਬੰਦ ਹੈ"</item>
+    <item msgid="5806682401126108403">"ਚਾਲੂ ਹੈ"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index d358b9f..6a4b3d5 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth połączony."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ikona urządzenia Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Kliknij, aby skonfigurować szczegóły urządzenia"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Kliknij, aby zobaczyć wszystkie urządzenia"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Kliknij, aby sparować nowe urządzenie"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Poziom naładowania baterii jest nieznany."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Połączono z <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Połączono z urządzeniem <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Wejście"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Aparaty słuchowe"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Włączam…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Nie można dostosować jasności, ponieważ jest ona\nkontrolowana przez aplikację na pierwszym planie"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Nie można dostosować jasności, ponieważ jest onakontrolowana przez aplikację na pierwszym planie"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Autoobracanie"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Autoobracanie ekranu"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Lokalizacja"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"Aplikacja <xliff:g id="APP_NAME">%1$s</xliff:g> nie obsługuje funkcji rozmów"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Opinia"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Zamknij"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Nie pokazuj jako przypiętych"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Wyświetlanie aktualizacji na żywo"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Przypięte powiadomienia wyświetlają na żywo informacje z aplikacji i zawsze pojawiają się na pasku stanu oraz na ekranie blokady"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Tych powiadomień nie można zmodyfikować."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Powiadomień o połączeniach nie można modyfikować."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Tej grupy powiadomień nie można tu skonfigurować"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Wielozadaniowość"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Podziel ekran z aplikacją widoczną po prawej"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Podziel ekran z aplikacją widoczną po lewej"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Włącz pełny ekran"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Przełącz się na aplikację po prawej lub poniżej na podzielonym ekranie"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Przełącz się na aplikację po lewej lub powyżej na podzielonym ekranie"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Podczas podzielonego ekranu: zastępowanie aplikacji"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Pokazuj ikony powiadomień o niskim priorytecie"</string>
     <string name="other" msgid="429768510980739978">"Inne"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"usunąć kartę"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"dodaj kafelek do ostatniej pozycji"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Przenieś kartę"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Wyświetlanie ostatnich aplikacji"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Przełączanie aplikacji"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Gotowe"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Spróbuj jeszcze raz"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Wróć"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Przesuń 3 palcami w prawo lub w lewo na touchpadzie"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Aby wyświetlić ostatnie aplikacje, przesuń w górę za pomocą 3 palców na touchpadzie i przytrzymaj."</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Aby wyświetlić wszystkie swoje aplikacje, naciśnij klawisz działania na klawiaturze"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Usunięto"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Odblokuj, aby zobaczyć"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Edukacja kontekstowa"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Przechodzenie wstecz za pomocą touchpada"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Przesuń trzema palcami w prawo lub lewo. Kliknij, aby poznać więcej gestów."</string>
diff --git a/packages/SystemUI/res/values-pl/tiles_states_strings.xml b/packages/SystemUI/res/values-pl/tiles_states_strings.xml
index bc59a90..bd3a828 100644
--- a/packages/SystemUI/res/values-pl/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pl/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Wyłączony"</item>
     <item msgid="5908720590832378783">"Włączony"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Niedostępne"</item>
+    <item msgid="6641673879029894995">"Wyłączone"</item>
+    <item msgid="5806682401126108403">"Włączone"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index 3a7d1f2..42ce3f4 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth conectado."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ícone de dispositivo Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Clique para configurar os detalhes do dispositivo"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Clique para conferir todos os dispositivos"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Clique para parear o novo dispositivo"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Porcentagem da bateria desconhecida."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Conectado a <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Entrada"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Aparelhos auditivos"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Ativando…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Não é possível ajustar o brilho, porque ele está sendo\n controlado pelo app principal"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Não é possível ajustar o brilho, porque ele está sendo controlado pelo app principal"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Giro automático"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Giro automático da tela"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Localização"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"O app <xliff:g id="APP_NAME">%1$s</xliff:g> não é compatível com recursos de conversa"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Enviar feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Dispensar"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Não mostrar como fixadas"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Mostrar atualizações em tempo real"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"As notificações fixadas mostram informações em tempo real dos apps e sempre aparecem na barra de status e na tela de bloqueio"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar essas notificações."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Não é possível modificar as notificações de chamada."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Não é possível configurar esse grupo de notificações aqui"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitarefas"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Usar a tela dividida com o app à direita"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Usar a tela dividida com o app à esquerda"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Mudar para tela cheia"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Mudar para o app à direita ou abaixo ao usar a tela dividida"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Mudar para o app à esquerda ou acima ao usar a tela dividida"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Com a tela dividida: substituir um app por outro"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Mostrar ícones de notificações de baixa prioridade"</string>
     <string name="other" msgid="429768510980739978">"Outros"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"remover o bloco"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"adicionar o bloco à última posição"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Mover bloco"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Ver os apps recentes"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Mudar de app"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Concluído"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Tente de novo"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Voltar"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Deslize para a esquerda ou direita com 3 dedos no touchpad"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Se quiser ver os apps recentes, deslize para cima e pressione o touchpad com três dedos"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Para ver todos os apps, pressione a tecla de ação no teclado"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Encoberto"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Desbloquear para visualizar"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Educação contextual"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Use o touchpad para voltar"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Deslize para a esquerda ou direita usando três dedos. Toque para aprender outros gestos."</string>
diff --git a/packages/SystemUI/res/values-pt-rBR/tiles_states_strings.xml b/packages/SystemUI/res/values-pt-rBR/tiles_states_strings.xml
index 3e75cdd..b16d6f2 100644
--- a/packages/SystemUI/res/values-pt-rBR/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Desativado"</item>
     <item msgid="5908720590832378783">"Ativado"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Indisponível"</item>
+    <item msgid="6641673879029894995">"Desativado"</item>
+    <item msgid="5806682401126108403">"Ativado"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index ff0ba36..37ec3da 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth ligado."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ícone de dispositivo Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Clique para configurar o detalhe do dispositivo"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Clique para ver todos os dispositivos"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Clique para sincronizar um novo dispositivo"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. Configure o detalhe do dispositivo"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"Veja todos os dispositivos"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"Sincronize um novo dispositivo"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Percentagem da bateria desconhecida."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Ligado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Ligado a <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Entrada"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Aparelhos auditivos"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"A ativar..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Não é possível ajustar o brilho porque está a ser\n controlado pela app principal"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Não é possível ajustar o brilho porque está a ser controlado pela app principal"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Rotação auto."</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Rodar o ecrã automaticamente"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Localização"</string>
@@ -506,7 +507,7 @@
     <string name="communal_tutorial_indicator_text" msgid="4503010353591430123">"Deslize rapidamente para a esquerda para iniciar o tutorial coletivo"</string>
     <string name="cta_tile_button_to_open_widget_editor" msgid="3871562362382963878">"Personalizar"</string>
     <string name="cta_tile_button_to_dismiss" msgid="3377597875997861754">"Ignorar"</string>
-    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"Adicionar, remover e reordenar widgets neste espaço"</string>
+    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"Adicione, remova e reordene widgets aqui"</string>
     <string name="cta_label_to_open_widget_picker" msgid="3874946756976360699">"Adicionar mais widgets"</string>
     <string name="popup_on_dismiss_cta_tile_text" msgid="8292501780996070019">"Mantenha pressionado para personalizar os widgets"</string>
     <string name="button_to_configure_widgets_text" msgid="4191862850185256901">"Personalizar widgets"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"A app <xliff:g id="APP_NAME">%1$s</xliff:g> não suporta funcionalidades de conversa."</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Ignorar"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Não mostrar como afixada"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"A mostrar atualizações em direto"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"As notificações afixadas apresentam informações em direto das apps e aparecem sempre na barra de estado e no ecrã de bloqueio"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar estas notificações."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Não é possível modificar as notificações de chamadas."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Não é possível configurar este grupo de notificações aqui."</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Execução de várias tarefas em simultâneo"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Use o ecrã dividido com a app à direita"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Use o ecrã dividido com a app à esquerda"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Mude para ecrã inteiro"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"Use o ecrã inteiro"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"Use a vista de computador"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Mudar para a app à direita ou abaixo enquanto usa o ecrã dividido"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Mude para a app à esquerda ou acima enquanto usa o ecrã dividido"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Durante o ecrã dividido: substituir uma app por outra"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Mostrar ícones de notificações de prioridade baixa"</string>
     <string name="other" msgid="429768510980739978">"Outro"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"remover o cartão"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"adicionar o mosaico à última posição"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Mover cartão"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Ver apps recentes"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Mudar de app"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Concluir"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"Seguinte"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"Tente novamente!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Voltar"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Deslize rapidamente para a esquerda ou direita com 3 dedos no touchpad"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Para ver as apps recentes, deslize rapidamente para cima e mantenha premido com 3 dedos no touchpad"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Para ver todas as suas apps, prima a tecla de ação no teclado"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Revisto"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Desbloqueie para ver"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Educação contextual"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Use o touchpad para retroceder"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Deslize rapidamente para a esquerda ou direita com 3 dedos. Toque para aprender mais gestos."</string>
diff --git a/packages/SystemUI/res/values-pt-rPT/tiles_states_strings.xml b/packages/SystemUI/res/values-pt-rPT/tiles_states_strings.xml
index 7e7e673..3beca27 100644
--- a/packages/SystemUI/res/values-pt-rPT/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Desativado"</item>
     <item msgid="5908720590832378783">"Ativado"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Indisponível"</item>
+    <item msgid="6641673879029894995">"Desativado"</item>
+    <item msgid="5806682401126108403">"Ativado"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 3a7d1f2..42ce3f4 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth conectado."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ícone de dispositivo Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Clique para configurar os detalhes do dispositivo"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Clique para conferir todos os dispositivos"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Clique para parear o novo dispositivo"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Porcentagem da bateria desconhecida."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Conectado a <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Entrada"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Aparelhos auditivos"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Ativando…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Não é possível ajustar o brilho, porque ele está sendo\n controlado pelo app principal"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Não é possível ajustar o brilho, porque ele está sendo controlado pelo app principal"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Giro automático"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Giro automático da tela"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Localização"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"O app <xliff:g id="APP_NAME">%1$s</xliff:g> não é compatível com recursos de conversa"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Enviar feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Dispensar"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Não mostrar como fixadas"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Mostrar atualizações em tempo real"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"As notificações fixadas mostram informações em tempo real dos apps e sempre aparecem na barra de status e na tela de bloqueio"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar essas notificações."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Não é possível modificar as notificações de chamada."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Não é possível configurar esse grupo de notificações aqui"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitarefas"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Usar a tela dividida com o app à direita"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Usar a tela dividida com o app à esquerda"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Mudar para tela cheia"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Mudar para o app à direita ou abaixo ao usar a tela dividida"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Mudar para o app à esquerda ou acima ao usar a tela dividida"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Com a tela dividida: substituir um app por outro"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Mostrar ícones de notificações de baixa prioridade"</string>
     <string name="other" msgid="429768510980739978">"Outros"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"remover o bloco"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"adicionar o bloco à última posição"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Mover bloco"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Ver os apps recentes"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Mudar de app"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Concluído"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Tente de novo"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Voltar"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Deslize para a esquerda ou direita com 3 dedos no touchpad"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Se quiser ver os apps recentes, deslize para cima e pressione o touchpad com três dedos"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Para ver todos os apps, pressione a tecla de ação no teclado"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Encoberto"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Desbloquear para visualizar"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Educação contextual"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Use o touchpad para voltar"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Deslize para a esquerda ou direita usando três dedos. Toque para aprender outros gestos."</string>
diff --git a/packages/SystemUI/res/values-pt/tiles_states_strings.xml b/packages/SystemUI/res/values-pt/tiles_states_strings.xml
index 3e75cdd..b16d6f2 100644
--- a/packages/SystemUI/res/values-pt/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pt/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Desativado"</item>
     <item msgid="5908720590832378783">"Ativado"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Indisponível"</item>
+    <item msgid="6641673879029894995">"Desativado"</item>
+    <item msgid="5806682401126108403">"Ativado"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index 2417c84..a23f95e 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Conectat prin Bluetooth."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Pictograma de dispozitiv Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Dă clic pentru a configura detaliile dispozitivului"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Dă clic pentru a vedea toate dispozitivele"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Dă clic pentru a asocia noul dispozitiv"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Procentajul bateriei este necunoscut."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectat la <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"S-a stabilit conexiunea la <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Intrare"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Aparate auditive"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Se activează..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Nu se poate ajusta luminozitatea deoarece este\n controlată de aplicația de top"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Nu se poate ajusta luminozitatea deoarece este controlată de aplicația de top"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Rotire automată"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Rotirea automată a ecranului"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Locație"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> nu acceptă funcții pentru conversații"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Închide"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Nu le afișa ca fixate"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Se afișează actualizări live"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Notificările fixate afișează informații live din aplicații și apar întotdeauna în bara de stare și pe ecranul de blocare"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Aceste notificări nu pot fi modificate."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Notificările pentru apeluri nu pot fi modificate."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Acest grup de notificări nu poate fi configurat aici"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Folosește ecranul împărțit cu aplicația în dreapta"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Folosește ecranul împărțit cu aplicația în stânga"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Treci la ecran complet"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Treci la aplicația din dreapta sau de mai jos cu ecranul împărțit"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Treci la aplicația din stânga sau de mai sus cu ecranul împărțit"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"În modul ecran împărțit: înlocuiește o aplicație cu alta"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Afișează pictogramele de notificare cu prioritate redusă"</string>
     <string name="other" msgid="429768510980739978">"Altele"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"elimină cardul"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"adaugă cardul în ultima poziție"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Mută cardul"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Vezi aplicațiile recente"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Comută între aplicații"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Gata"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Încearcă din nou!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Înapoi"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Glisează la stânga sau la dreapta cu trei degete pe touchpad"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Ca să vezi aplicațiile recente, glisează în sus și ține apăsat cu trei degete pe touchpad"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Ca să vezi toate aplicațiile, apasă tasta de acțiuni de pe tastatură"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Ascunsă"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Deblochează pentru a afișa"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Educație contextuală"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Folosește-ți touchpadul ca să revii"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Glisează la stânga sau la dreapta cu trei degete. Atinge ca să înveți mai multe gesturi."</string>
diff --git a/packages/SystemUI/res/values-ro/tiles_states_strings.xml b/packages/SystemUI/res/values-ro/tiles_states_strings.xml
index 6dcb0d3..b555987 100644
--- a/packages/SystemUI/res/values-ro/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ro/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Dezactivat"</item>
     <item msgid="5908720590832378783">"Activat"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Indisponibil"</item>
+    <item msgid="6641673879029894995">"Dezactivat"</item>
+    <item msgid="5806682401126108403">"Activat"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index f6968d5..1d40a6c 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth-соединение установлено."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Значок устройства Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Нажмите, чтобы изменить информацию об устройстве"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Нажмите, чтобы показать все устройства"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Нажмите, чтобы подключить устройство"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Уровень заряда батареи в процентах неизвестен."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>: подключено."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Подключено к: <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Устройство ввода"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Слуховые аппараты"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Включение…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Невозможно изменить яркость,\nтак как она регулируется общими настройками."</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Невозможно изменить яркость,так как она регулируется общими настройками."</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Автоповорот"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Автоповорот экрана"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Геолокация"</string>
@@ -471,7 +475,7 @@
     <string name="zen_silence_introduction" msgid="6117517737057344014">"В этом режиме будут отключены вибросигнал и все звуки (в том числе для будильника, музыкального проигрывателя, игр и видео)."</string>
     <string name="notification_tap_again" msgid="4477318164947497249">"Нажмите ещё раз, чтобы открыть"</string>
     <string name="tap_again" msgid="1315420114387908655">"Нажмите ещё раз"</string>
-    <string name="keyguard_unlock" msgid="8031975796351361601">"Проведите вверх, чтобы открыть"</string>
+    <string name="keyguard_unlock" msgid="8031975796351361601">"Проведите вверх, чтобы открыть."</string>
     <string name="keyguard_unlock_press" msgid="9140109453735019209">"Нажмите на значок разблокировки."</string>
     <string name="keyguard_face_successful_unlock_swipe" msgid="6180997591385846073">"Сканирование выполнено. Чтобы открыть, проведите вверх."</string>
     <string name="keyguard_face_successful_unlock_press" msgid="25520941264602588">"Сканирование выполнено. Нажмите на значок разблокировки."</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"Приложение \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" не поддерживает функции разговоров."</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Оставить отзыв"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Закрыть"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Открепить уведомления"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Показывать уведомления в реальном времени"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Закрепленные уведомления с текущей информацией из приложений всегда показываются в строке состояния и на заблокированном экране"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Эти уведомления нельзя изменить."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Уведомления о звонках нельзя изменить."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Эту группу уведомлений нельзя настроить здесь."</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Многозадачность"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Разделить экран и поместить открытое приложение справа"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Разделить экран и поместить открытое приложение слева"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Включить полноэкранный режим"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Перейти к приложению справа или внизу на разделенном экране"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Перейти к приложению слева или вверху на разделенном экране"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"В режиме разделения экрана заменить одно приложение другим"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Показывать значки уведомлений с низким приоритетом"</string>
     <string name="other" msgid="429768510980739978">"Другое"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"удалить панель"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"добавить параметр в конец"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Переместить панель"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Просмотр недавних приложений"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Переход в другое приложение"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Готово"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Попробуйте ещё раз"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Назад"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Проведите тремя пальцами влево или вправо по сенсорной панели."</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Чтобы увидеть недавние приложения, проведите по сенсорной панели тремя пальцами вверх и удерживайте."</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Чтобы открыть список всех своих приложений, нажмите клавишу действия."</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Скрыто"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Разблокируйте экран, чтобы посмотреть."</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Контекстные подсказки"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Используйте сенсорную панель, чтобы возвращаться назад"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Для этого проведите тремя пальцами влево или вправо. Чтобы посмотреть другие жесты, нажмите здесь."</string>
diff --git a/packages/SystemUI/res/values-ru/tiles_states_strings.xml b/packages/SystemUI/res/values-ru/tiles_states_strings.xml
index e7ff74d..8279183 100644
--- a/packages/SystemUI/res/values-ru/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ru/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Отключено"</item>
     <item msgid="5908720590832378783">"Включено"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Недоступно"</item>
+    <item msgid="6641673879029894995">"Отключено"</item>
+    <item msgid="5806682401126108403">"Включено"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml
index eb816b8..440b320 100644
--- a/packages/SystemUI/res/values-si/strings.xml
+++ b/packages/SystemUI/res/values-si/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"බ්ලූටූත් සම්බන්ධිතයි."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"බ්ලූටූත් උපාංග නිරූපකය"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"උපාංග විස්තර වින්‍යාස කිරීමට ක්ලික් කරන්න"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"සියලු උපාංග බැලීමට ක්ලික් කරන්න"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"නව උපාංගය යුගල කිරීමට ක්ලික් කරන්න"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"බැටරි ප්‍රතිශතය නොදනී."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> වෙත සම්බන්ධ කරන ලදි."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> වෙත සම්බන්ධ විය."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"ආදානය"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"ශ්‍රවණාධාරක"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ක්‍රියාත්මක කරමින්…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ඉහළ යෙදුම මඟින් එය පාලනය වන නිසා\nදීප්තිය ගැළපුම් කළ නොහැක"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ඉහළ යෙදුම මඟින් එය පාලනය වන නිසාදීප්තිය ගැළපුම් කළ නොහැක"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"ස්වයංක්‍රීය කරකැවීම"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"ස්වයංක්‍රීයව-භ්‍රමණය වන තිරය"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"ස්ථානය"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> සංවාද විශේෂාංගවලට සහාය නොදක්වයි"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ප්‍රතිපෝෂණය"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"අස් කරන්න"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"අමුණන ලද ලෙස නොපෙන්වන්න"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"සජීවී යාවත්කාලීන කිරීම් පෙන්වමින්"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"ඇමුණුම් කළ දැනුම්දීම් යෙදුම් වලින් සජීවී තතු පෙන්වන අතර, සෑම විට ම තත්ත්ව තීරුවේ සහ අගුළු තිරයේ දිස් වේ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"මෙම දැනුම්දීම් වෙනස් කළ නොහැක."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"ඇමතුම් දැනුම්දීම් වෙනස් කළ නොහැකිය."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"මෙම දැනුම්දීම් සමූහය මෙහි වින්‍යාස කළ නොහැක"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"බහුකාර්ය"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"දකුණේ යෙදුම සමග බෙදීම් තිරය භාවිතා කරන්න"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"වම් පැත්තේ යෙදුම සමග බෙදීම් තිරය භාවිතා කරන්න"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"සම්පූර්ණ තිරයට මාරු වන්න"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"බෙදුම් තිරය භාවිත කරන අතරතුර දකුණේ හෝ පහළින් ඇති යෙදුමට මාරු වන්න"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"බෙදුම් තිරය භාවිත කරන අතරතුර වමේ හෝ ඉහළ ඇති යෙදුමට මාරු වන්න"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"බෙදුම් තිරය අතරතුර: යෙදුමක් එකකින් තවත් එකක් ප්‍රතිස්ථාපනය කරන්න"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"අඩු ප්‍රමුඛතා දැනුම්දීම් අයිකන පෙන්වන්න"</string>
     <string name="other" msgid="429768510980739978">"වෙනත්"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ටයිල් ඉවත් කරන්න"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"ටයිල් එක අවසාන ස්ථානයට එක් කරන්න"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"ටයිල් ගෙන යන්න"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"මෑත යෙදුම් බලන්න"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"යෙදුම් මාරු කරන්න"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"නිමයි"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"නැවත උත්සාහ කරන්න!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"ආපස්සට යන්න"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"ඔබේ ස්පර්ශ පුවරුව මත ඇඟිලි තුනක් භාවිතයෙන් වමට හෝ දකුණට ස්වයිප් කරන්න"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"මෑත යෙදුම් බැලීමට, ඉහළට ස්වයිප් කර ස්පර්ශ පුවරුව මත ඇඟිලි තුනකින් අල්ලාගෙන සිටින්න"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"ඔබේ සියලුම යෙදුම් බැලීමට, ඔබේ යතුරුපුවරුවේ ක්‍රියාකාරී යතුර ඔබන්න"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"නැවත සකස් කරන ලද"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"බැලීමට අගුළු හරින්න"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"සන්දර්භීය අධ්‍යාපනය"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"ආපසු යාමට ඔබේ ස්පර්ශ පුවරුව භාවිත කරන්න"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"ඇඟිලි තුනක් භාවිතයෙන් වමට හෝ දකුණට ස්වයිප් කරන්න. තව ඉංගිත දැන ගැනීමට තට්ටු කරන්න."</string>
diff --git a/packages/SystemUI/res/values-si/tiles_states_strings.xml b/packages/SystemUI/res/values-si/tiles_states_strings.xml
index 710e9aa..9397ca7 100644
--- a/packages/SystemUI/res/values-si/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-si/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"ක්‍රියාවිරහිතයි"</item>
     <item msgid="5908720590832378783">"ක්‍රියාත්මකයි"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"නොමැත"</item>
+    <item msgid="6641673879029894995">"ක්‍රියාවිරහිතයි"</item>
+    <item msgid="5806682401126108403">"ක්‍රියාත්මකයි"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index fcb281d..274c46e 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth pripojené."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ikona zariadenia s rozhraním Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Kliknutím nakonfigurujte podrobnosti o zariadení"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Kliknutím zobrazíte všetky zariadenia"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Kliknutím spárujete nové zariadenie"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Percento batérie nie je známe."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Pripojené k zariadeniu <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Pripojené k zariadeniu <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Vstup"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Načúvadlá"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Zapína sa…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Jas sa nedá upraviť, pretože ho \n ovláda horná aplikácia"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Jas sa nedá upraviť, pretože ho ovláda horná aplikácia"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Automatické otáčanie"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Automatické otáčanie obrazovky"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Poloha"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> nepodporuje funkcie konverzácie"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Spätná väzba"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Zavrieť"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Nezobrazovať ako pripnuté"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Zobrazovanie aktualít naživo"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Pripnuté upozornenia zobrazujú aktuálne informácie z aplikácií a vždy sa zobrazujú v stavovom riadku a na uzamknutej obrazovke"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Tieto upozornenia sa nedajú upraviť."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Upozornenia na hovory sa nedajú upraviť."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Túto skupinu upozornení nejde na tomto mieste konfigurovať"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multitasking"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Rozdelenie obrazovky, aktuálna aplikácia vpravo"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Rozdelenie obrazovky, aktuálna aplikácia vľavo"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Prepnutie na celú obrazovku"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Prechod na aplikáciu vpravo alebo dole pri rozdelenej obrazovke"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Prechod na aplikáciu vľavo alebo hore pri rozdelenej obrazovke"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Počas rozdelenej obrazovky: nahradenie aplikácie inou"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Zobraziť ikony upozornení s nízkou prioritou"</string>
     <string name="other" msgid="429768510980739978">"Ďalšie"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"odstrániť kartu"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"pridáte kartu na poslednú pozíciu"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Presunúť kartu"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Zobraziť nedávne aplikácie"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Prepínanie aplikácií"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Hotovo"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Skúste to znova."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Späť"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Potiahnite troma prstami na touchpade doľava alebo doprava"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Ak si chcete zobraziť nedávne aplikácie, potiahnite po touchpade troma prstami nahor a pridržte ich."</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Ak si chcete zobraziť všetky aplikácie, stlačte na klávesnici akčný kláves"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Zamaskované"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Zobrazíte odomknutím"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontextová náuka"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Prechádzajte späť pomocou touchpadu"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Potiahnite troma prstami doľava alebo doprava. Viac o gestách sa dozviete klepnutím."</string>
diff --git a/packages/SystemUI/res/values-sk/tiles_states_strings.xml b/packages/SystemUI/res/values-sk/tiles_states_strings.xml
index 8323506..3e61884 100644
--- a/packages/SystemUI/res/values-sk/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sk/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Vypnuté"</item>
     <item msgid="5908720590832378783">"Zapnuté"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Nedostupné"</item>
+    <item msgid="6641673879029894995">"Vypnuté"</item>
+    <item msgid="5806682401126108403">"Zapnuté"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index e999065..eb1219a 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Povezava Bluetooth vzpostavljena."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ikona naprave Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Kliknite za konfiguriranje podrobnosti o napravi"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Kliknite za ogled vseh naprav"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Kliknite za seznanitev nove naprave"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. Konfiguriranje podrobnosti o napravi"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"Ogled vseh naprav"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"Seznanitev nove naprave"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Neznan odstotek napolnjenosti baterije."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Povezava vzpostavljena z: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Vzpostavljena povezava: <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Vhodna naprava"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Slušni aparati"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Vklapljanje …"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Svetlosti ni mogoče prilagoditi, ker jo\n nadzoruje aplikacija na vrhu"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Svetlosti ni mogoče prilagoditi, ker jo nadzoruje aplikacija na vrhu"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Samodejno sukanje"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Samodejno sukanje zaslona"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Lokacija"</string>
@@ -691,7 +692,7 @@
     <string name="screen_pinning_exit" msgid="4553787518387346893">"Aplikacija je odpeta."</string>
     <string name="stream_voice_call" msgid="7468348170702375660">"Klic"</string>
     <string name="stream_system" msgid="7663148785370565134">"Sistem"</string>
-    <string name="stream_ring" msgid="7550670036738697526">"Sprožitev zvonjenja"</string>
+    <string name="stream_ring" msgid="7550670036738697526">"Zvonjenje"</string>
     <string name="stream_music" msgid="2188224742361847580">"Predstavnost"</string>
     <string name="stream_alarm" msgid="16058075093011694">"Alarm"</string>
     <string name="stream_notification" msgid="7930294049046243939">"Obvestilo"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> ne podpira pogovornih funkcij."</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Povratne informacije"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Opusti"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ne prikaži kot pripeto"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Prikaz sprotnih obvestil"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Pripeta obvestila prikazujejo sprotne podatke iz aplikacij ter so vedno prikazana v vrstici stanja in na zaklenjenem zaslonu"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Za ta obvestila ni mogoče spremeniti nastavitev."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Obvestil o klicih ni mogoče spreminjati."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Te skupine obvestil ni mogoče konfigurirati tukaj"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Večopravilnost"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Uporaba razdeljenega zaslona z aplikacijo na desni"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Uporaba razdeljenega zaslona z aplikacijo na levi"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Preklop na celozaslonski način"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"Uporaba celozaslonskega načina"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"Uporaba pogleda za namizni računalnik"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Preklop na aplikacijo desno ali spodaj med uporabo razdeljenega zaslona"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Preklop na aplikacijo levo ali zgoraj med uporabo razdeljenega zaslona"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Pri razdeljenem zaslonu: medsebojna zamenjava aplikacij"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Pokaži ikone obvestil z nizko stopnjo prednosti"</string>
     <string name="other" msgid="429768510980739978">"Drugo"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"odstranitev ploščice"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"dodajanje ploščice na zadnji položaj"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Premik ploščice"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Ogled nedavnih aplikacij"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Preklop aplikacij"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Končano"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"Naprej"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"Poskusite znova"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Nazaj"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Na sledilni ploščici s tremi prsti povlecite levo ali desno"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Za ogled nedavnih aplikacij povlecite s tremi prsti navzgor po sledilni ploščici in pridržite"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Za ogled vseh aplikacij pritisnite tipko za dejanja na tipkovnici"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Zakrito"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Odklenite za ogled"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstualno izobraževanje"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Uporaba sledilne ploščice za pomik nazaj"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"S tremi prsti povlecite levo ali desno. Dotaknite se, če želite spoznati več potez."</string>
diff --git a/packages/SystemUI/res/values-sl/tiles_states_strings.xml b/packages/SystemUI/res/values-sl/tiles_states_strings.xml
index d644038..8146802 100644
--- a/packages/SystemUI/res/values-sl/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sl/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Izklopljeno"</item>
     <item msgid="5908720590832378783">"Vklopljeno"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Ni na voljo"</item>
+    <item msgid="6641673879029894995">"Izklopljeno"</item>
+    <item msgid="5806682401126108403">"Vklopljeno"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml
index 7e2b698..ea1f3aaf 100644
--- a/packages/SystemUI/res/values-sq/strings.xml
+++ b/packages/SystemUI/res/values-sq/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Pajisja është lidhur me \"bluetooth\"."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Ikona e pajisjes me Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Kliko për të konfiguruar detajet e pajisjes"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Kliko për të shikuar të gjitha pajisjet"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Kliko për të çiftuar një pajisje të re"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Përqindja e baterisë e panjohur."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Lidhur me <xliff:g id="BLUETOOTH">%s</xliff:g>"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Është lidhur me <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Hyrja"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Aparatet e dëgjimit"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Po aktivizohet…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Ndriçimi nuk mund të rregullohet pasi\n po kontrollohet nga aplikacioni i sipërm"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Ndriçimi nuk mund të rregullohet pasi po kontrollohet nga aplikacioni i sipërm"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Rrotullim automatik"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Rrotullimi automatik i ekranit"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Vendndodhja"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> nuk mbështet veçoritë e bisedës"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Koment"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Hiq"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Mos shfaq si të gozhduar"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Po shfaqen përditësimet drejtpërdrejt"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Njoftimet e gozhduara shfaqin informacione të drejtpërdrejta nga aplikacionet dhe shfaqen gjithmonë në shiritin e statusit dhe ekranin e kyçjes"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Këto njoftime nuk mund të modifikohen."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Njoftimet e telefonatave nuk mund të modifikohen."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ky grup njoftimesh nuk mund të konfigurohet këtu"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Kryerja e shumë detyrave"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Përdor ekranin e ndarë me aplikacionin në të djathtë"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Përdor ekranin e ndarë me aplikacionin në të majtë"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Kalo në ekran të plotë"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Kalo tek aplikacioni djathtas ose poshtë kur përdor ekranin e ndarë"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Kalo tek aplikacioni në të majtë ose sipër kur përdor ekranin e ndarë"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Gjatë ekranit të ndarë: zëvendëso një aplikacion me një tjetër"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Shfaq ikonat e njoftimeve me përparësi të ulët"</string>
     <string name="other" msgid="429768510980739978">"Të tjera"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"hiq pllakëzën"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"shtuar pllakëzën në pozicionin e fundit"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Zhvendos pllakëzën"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Shiko aplikacionet e fundit"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Ndërro aplikacionet"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"U krye"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Provo përsëri!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Kthehu prapa"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Rrëshqit shpejt majtas ose djathtas duke përdorur tre gishta në bllokun me prekje"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Për aplikacionet e fundit, rrëshqit shpejt lart dhe mbaj shtypur me tre gishta në bllokun me prekje"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Për të shikuar të gjitha aplikacionet, shtyp tastin e veprimit në tastierë"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Redaktuar"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Shkyçe për ta parë"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Edukimi kontekstual"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Përdor bllokun me prekje për t\'u kthyer prapa"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Rrëshqit shpejt majtas ose djathtas duke përdorur tre gishta. Trokit për të mësuar më shumë gjeste."</string>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index 1e44e0c..eac0712 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth је прикључен."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Икона Bluetooth уређаја"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Кликните да бисте конфигурисали детаље о уређају"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Кликните да бисте видели све уређаје"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Кликните да бисте упарили нов уређај"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>. Конфигуришите детаље о уређају"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"Погледајте све уређаје"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"Упарите нови уређај"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Проценат напуњености батерије није познат."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Повезани сте са <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Повезани смо са уређајем <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Унос"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Слушни апарати"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Укључује се..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Не можете да прилагодите осветљеност јер је\n контролише апликација у врху"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Не можете да прилагодите осветљеност јер је контролише апликација у врху"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Аутоматска ротација"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Аутоматско ротирање екрана"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Локација"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не подржава функције конверзације"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Повратне информације"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Одбаци"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Не приказуј као закачено"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Приказују се новости уживо"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Закачена обавештења приказују информације уживо из апликација и увек се појављују на статусној траци и закључаном екрану"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ова обавештења не могу да се мењају."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Обавештења о позивима не могу да се мењају."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ова група обавештења не може да се конфигурише овде"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Обављање више задатака истовремено"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Користи подељени екран са апликацијом с десне стране"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Користи подељени екран са апликацијом с леве стране"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Пређи на режим преко целог екрана"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"Користи приказ преко целог екрана"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"Користи приказ за рачунаре"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Пређи у апликацију здесна или испод док је подељен екран"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Пређите у апликацију слева или изнад док користите подељени екран"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"У режиму подељеног екрана: замена једне апликације другом"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Прикажи иконе обавештења ниског приоритета"</string>
     <string name="other" msgid="429768510980739978">"Друго"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"уклонили плочицу"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"додали плочицу на последњу позицију"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Преместите плочицу"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Прикажи недавно коришћене апликације"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Пређи на другу апликацију"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Готово"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"Даље"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"Пробајте поново."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Назад"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Превуците улево или удесно са три прста на тачпеду"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Да бисте прегледали недавне апликације, превуците нагоре и задржите са три прста на тачпеду"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Да бисте погледали све апликације, притисните тастер радњи на тастатури"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Редиговано"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Откључајте за приказ"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Контекстуално образовање"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Користите тачпед за враћање назад"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Превуците улево или удесно са три прста. Додирните да бисте видели више покрета."</string>
diff --git a/packages/SystemUI/res/values-sr/tiles_states_strings.xml b/packages/SystemUI/res/values-sr/tiles_states_strings.xml
index e1bd7b1..df9e574 100644
--- a/packages/SystemUI/res/values-sr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sr/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Искључено"</item>
     <item msgid="5908720590832378783">"Укључено"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Недоступно"</item>
+    <item msgid="6641673879029894995">"Искључено"</item>
+    <item msgid="5806682401126108403">"Укључено"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index d613922..dfb4e005 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth ansluten."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Enhetsikon för Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Klicka för att konfigurera enhetsinformation"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Klicka för att se alla enheter"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Klicka för att parkoppla en ny enhet"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Okänd batterinivå."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Ansluten till <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Ansluten till <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Ingång"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Hörapparater"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Aktiverar …"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Det går inte att justera ljusstyrkan eftersom den\n styrs av den översta appen"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Det går inte att justera ljusstyrkan eftersom den styrs av den översta appen"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Rotera automatiskt"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Rotera skärmen automatiskt"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Plats"</string>
@@ -506,7 +510,7 @@
     <string name="communal_tutorial_indicator_text" msgid="4503010353591430123">"Svep åt vänster för att börja med gruppguiden"</string>
     <string name="cta_tile_button_to_open_widget_editor" msgid="3871562362382963878">"Anpassa"</string>
     <string name="cta_tile_button_to_dismiss" msgid="3377597875997861754">"Ignorera"</string>
-    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"Lägg till, ta bort och ordna om dina widgetar i det här rummet"</string>
+    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"Lägg till, ta bort och ordna om dina widgetar här"</string>
     <string name="cta_label_to_open_widget_picker" msgid="3874946756976360699">"Lägg till fler widgetar"</string>
     <string name="popup_on_dismiss_cta_tile_text" msgid="8292501780996070019">"Tryck länge för att anpassa widgetar"</string>
     <string name="button_to_configure_widgets_text" msgid="4191862850185256901">"Anpassa widgetar"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> har inte stöd för konversationsfunktioner"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Stäng"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Visa inte som fäst"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Visar liveuppdateringar"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Fästa aviseringar visar liveinformation från appar och visas alltid i statusfältet och på låsskärmen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Det går inte att ändra de här aviseringarna."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Det går inte att ändra samtalsaviseringarna."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Den här aviseringsgruppen kan inte konfigureras här"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multikörning"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Använd delad skärm med appen till höger"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Använd delad skärm med appen till vänster"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Byt till helskärm"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Byt till appen till höger eller nedanför när du använder delad skärm"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Byt till appen till vänster eller ovanför när du använder delad skärm"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Med delad skärm: ersätt en app med en annan"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Visa ikoner för aviseringar med låg prioritet"</string>
     <string name="other" msgid="429768510980739978">"Annat"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ta bort ruta"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"lägg till en ruta på den sista platsen"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Flytta ruta"</string>
@@ -1377,7 +1383,7 @@
     <string name="bt_le_audio_broadcast_dialog_different_output" msgid="7885102097302562674">"Byt ljudutgång"</string>
     <string name="bt_le_audio_broadcast_dialog_unknown_name" msgid="3791472237793443044">"Okänt"</string>
     <string name="dream_time_complication_12_hr_time_format" msgid="4691197486690291529">"h.mm"</string>
-    <string name="dream_time_complication_24_hr_time_format" msgid="6248280719733640813">"kk.mm"</string>
+    <string name="dream_time_complication_24_hr_time_format" msgid="6248280719733640813">"kk:mm"</string>
     <string name="log_access_confirmation_title" msgid="4843557604739943395">"Vill du tillåta att <xliff:g id="LOG_ACCESS_APP_NAME">%s</xliff:g> får åtkomst till alla enhetsloggar?"</string>
     <string name="log_access_confirmation_allow" msgid="752147861593202968">"Tillåt engångsåtkomst"</string>
     <string name="log_access_confirmation_deny" msgid="2389461495803585795">"Tillåt inte"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Se de senaste apparna"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Byta app"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Klar"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Försök igen!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Tillbaka"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Svep åt vänster eller höger med tre fingrar på styrplattan"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Svep uppåt på styrplattan med tre fingrar och håll kvar för att se nyligen använda appar"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Tryck på åtgärdstangenten på tangentbordet för att se alla appar"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Anonymiserad"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Lås upp för att visa"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontextuell utbildning"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Använd styrplattan för att gå tillbaka"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Svep åt vänster eller höger med tre fingrar. Tryck för att lära dig fler rörelser."</string>
diff --git a/packages/SystemUI/res/values-sv/tiles_states_strings.xml b/packages/SystemUI/res/values-sv/tiles_states_strings.xml
index 37d757e..76822d0 100644
--- a/packages/SystemUI/res/values-sv/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sv/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Av"</item>
     <item msgid="5908720590832378783">"På"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Inte tillgänglig"</item>
+    <item msgid="6641673879029894995">"Av"</item>
+    <item msgid="5806682401126108403">"På"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 33d8511..c096e41 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth imeunganishwa."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Aikoni ya Kifaa chenye Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Bofya ili uweke mipangilio ya maelezo ya kifaa"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Bofya ili uone vifaa vyote"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Bofya ili uoanishe kifaa kipya"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Asilimia ya betri haijulikani."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Imeunganishwa kwenye <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Imeunganishwa kwenye <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Vifaa vya kuingiza sauti"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Visaidizi vya kusikia"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Inawasha..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Imeshindwa kurekebisha mwangaza kwa sababu\n inadhibitiwa na programu inayotumika"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Imeshindwa kurekebisha mwangaza kwa sababu inadhibitiwa na programu inayotumika"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Zungusha kiotomatiki"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Skrini ijizungushe kiotomatiki"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Mahali"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> haitumii vipengele vya mazungumzo"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Maoni"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Ondoa"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Usionyeshe kama zilizobandikwa"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Inaonyesha Taarifa za Moja kwa Moja"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Arifa zilizobandikwa zinaonyesha maelezo ya moja kwa moja kutoka kwenye programu na huonekana kwenye sehemu ya arifa na skrini iliyofungwa"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Arifa hizi haziwezi kubadilishwa."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Arifa za simu haziwezi kubadilishwa."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Kikundi hiki cha arifa hakiwezi kuwekewa mipangilio hapa"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Majukumu mengi"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Tumia hali ya kugawa skrini na programu ya sasa iwe upande wa kulia"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Tumia hali ya kugawa skrini na programu ya sasa iwe upande wa kushoto"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Badilisha utumie skrini nzima"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Badilisha ili uende kwenye programu iliyo kulia au chini unapotumia hali ya kugawa skrini"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Badilisha uende kwenye programu iliyo kushoto au juu unapotumia hali ya kugawa skrini"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Ukigawanya skrini: badilisha kutoka programu moja hadi nyingine"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Onyesha aikoni za arifa zisizo muhimu"</string>
     <string name="other" msgid="429768510980739978">"Nyingine"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ondoa kigae"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"weka kigae kwenye nafasi ya mwisho"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Hamisha kigae"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Angalia programu za hivi majuzi"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Badilisha programu"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Nimemaliza"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Jaribu tena!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Rudi nyuma"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Telezesha vidole vitatu kushoto au kulia kwenye padi yako ya kugusa"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Telezesha vidole vitatu juu na ushikilie kwenye padi ya kugusa ili uangalie programu za hivi majuzi"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Bonyeza kitufe cha vitendo kwenye kibodi yako ili uangalie programu zako zote"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Maandishi yameondolewa"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Fungua ili uone"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Elimu inayolingana na muktadha"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Kutumia padi yako ya kugusa ili kurudi nyuma"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Telezesha vidole vitatu kulia au kushoto. Gusa ili upate maelezo kuhusu miguso zaidi."</string>
diff --git a/packages/SystemUI/res/values-sw/tiles_states_strings.xml b/packages/SystemUI/res/values-sw/tiles_states_strings.xml
index fae42c3..4070260 100644
--- a/packages/SystemUI/res/values-sw/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sw/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Limezimwa"</item>
     <item msgid="5908720590832378783">"Limewashwa"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Hakipatikani"</item>
+    <item msgid="6641673879029894995">"Kimezimwa"</item>
+    <item msgid="5806682401126108403">"Kimewashwa"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml
index aa312c7..342798f 100644
--- a/packages/SystemUI/res/values-ta/strings.xml
+++ b/packages/SystemUI/res/values-ta/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"புளூடூத் இணைக்கப்பட்டது."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"புளூடூத் சாதன ஐகான்"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"சாதன விவரத்தை உள்ளமைக்க கிளிக் செய்யலாம்"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"அனைத்துச் சாதனங்களையும் பார்க்க கிளிக் செய்யவும்"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"புதிய சாதனத்தை இணைக்க கிளிக் செய்யவும்"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"பேட்டரி சதவீதம் தெரியவில்லை."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>க்கு இணைக்கப்பட்டது."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> உடன் இணைக்கப்பட்டுள்ளது."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"உள்ளீடு"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"செவித்துணைக் கருவி"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ஆன் செய்கிறது…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"சிறந்த ஆப்ஸால் ஒளிர்வு கட்டுப்படுத்தப்படுவதால்\n இதைச் சரிசெய்ய முடியவில்லை"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"சிறந்த ஆப்ஸால் ஒளிர்வு கட்டுப்படுத்தப்படுவதால் இதைச் சரிசெய்ய முடியவில்லை"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"தானாகச் சுழற்று"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"திரையைத் தானாகச் சுழற்று"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"இருப்பிடம்"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"உரையாடல் அம்சங்களை <xliff:g id="APP_NAME">%1$s</xliff:g> ஆதரிக்காது"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"கருத்து"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"மூடுக"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"பின் செய்யப்பட்டதாகக் காட்டாதே"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"நேரலை அறிவிப்புகளைக் காட்டுகிறது"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"பின் செய்யப்பட்ட அறிவிப்புகள் ஆப்ஸிலிருந்து நேரலைத் தகவல்களைக் காட்டும், அத்துடன் அவை எப்போதும் நிலைப் பட்டியிலும் பூட்டுத் திரையிலும் காட்டப்படும்"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"இந்த அறிவிப்புகளை மாற்ற இயலாது."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"அழைப்பு அறிவிப்புகளை மாற்ற முடியாது."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"இந்த அறிவுப்புக் குழுக்களை இங்கே உள்ளமைக்க இயலாது"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"பல வேலைகளைச் செய்தல்"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"ஆப்ஸ் வலதுபுறம் வரும்படி திரைப் பிரிப்பைப் பயன்படுத்துதல்"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"ஆப்ஸ் இடதுபுறம் வரும்படி திரைப் பிரிப்பைப் பயன்படுத்துதல்"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"முழுத்திரைக்கு மாற்றுதல்"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"திரைப் பிரிப்பைப் பயன்படுத்தும்போது வலது/கீழ் உள்ள ஆப்ஸுக்கு மாறுதல்"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"திரைப் பிரிப்பைப் பயன்படுத்தும்போது இடது/மேலே உள்ள ஆப்ஸுக்கு மாறுதல்"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"திரைப் பிரிப்பின்போது: ஓர் ஆப்ஸுக்குப் பதிலாக மற்றொன்றை மாற்றுதல்"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"குறைந்த முன்னுரிமை உள்ள அறிவிப்பு ஐகான்களைக் காட்டு"</string>
     <string name="other" msgid="429768510980739978">"மற்றவை"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"கட்டத்தை அகற்றும்"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"கடைசி இடத்தில் கட்டத்தைச் சேர்க்கலாம்"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"கட்டத்தை நகர்த்து"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"சமீபத்திய ஆப்ஸைக் காட்டுதல்"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"ஆப்ஸுக்கிடையில் மாறுங்கள்"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"முடிந்தது"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"மீண்டும் முயலவும்!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"பின்செல்"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"உங்கள் டச்பேடில் மூன்று விரல்களால் இடது அல்லது வலதுபுறம் ஸ்வைப் செய்யவும்"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"சமீபத்திய ஆப்ஸைப் பார்க்க, டச்பேடில் மூன்று விரல்களால் மேல்நோக்கி ஸ்வைப் செய்து பிடிக்கவும்"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"அனைத்து ஆப்ஸையும் பார்க்க, உங்கள் கீபோர்டில் உள்ள ஆக்ஷன் பட்டனை அழுத்தவும்"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"அர்த்தம் புரியாதபடி திருத்தப்பட்டது"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"பார்ப்பதற்கு அன்லாக் செய்யவும்"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"சூழல் சார்ந்த கல்வி"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"பின்செல்ல, உங்கள் டச்பேடைப் பயன்படுத்துங்கள்"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"மூன்று விரல்களால் இடது அல்லது வலதுபுறம் ஸ்வைப் செய்யவும். சைகைகள் குறித்து மேலும் அறிய தட்டவும்."</string>
diff --git a/packages/SystemUI/res/values-ta/tiles_states_strings.xml b/packages/SystemUI/res/values-ta/tiles_states_strings.xml
index b09b17f..dc1c514 100644
--- a/packages/SystemUI/res/values-ta/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ta/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"முடக்கப்பட்டுள்ளது"</item>
     <item msgid="5908720590832378783">"இயக்கப்பட்டுள்ளது"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"கிடைக்கவில்லை"</item>
+    <item msgid="6641673879029894995">"முடக்கப்பட்டுள்ளது"</item>
+    <item msgid="5806682401126108403">"இயக்கப்பட்டுள்ளது"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml
index fc5361b..6f4619f 100644
--- a/packages/SystemUI/res/values-te/strings.xml
+++ b/packages/SystemUI/res/values-te/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"బ్లూటూత్ కనెక్ట్ చేయబడింది."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"బ్లూటూత్ పరికర చిహ్నం"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"పరికర వివరాలను కాన్ఫిగర్ చేయడానికి క్లిక్ చేయండి"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"అన్ని పరికరాలను చూడటానికి క్లిక్ చేయండి"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"కొత్త పరికరాన్ని పెయిర్ చేయడానికి క్లిక్ చేయండి"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"బ్యాటరీ శాతం తెలియదు."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g>కి కనెక్ట్ చేయబడింది."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g>కి కనెక్ట్ చేయబడింది."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"ఇన్‌పుట్"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"వినికిడి పరికరాలు"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"ఆన్ చేస్తోంది…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ఇది టాప్ యాప్ ద్వారా\n కంట్రోల్ చేయబడుతున్నందున బ్రైట్‌నెస్‌ను సర్దుబాటు చేయడం సాధ్యం కాదు"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ఇది టాప్ యాప్ ద్వారా కంట్రోల్ చేయబడుతున్నందున బ్రైట్‌నెస్‌ను సర్దుబాటు చేయడం సాధ్యం కాదు"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"ఆటో-రొటేట్‌"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"స్క్రీన్ ఆటో-రొటేట్‌"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"లొకేషన్"</string>
@@ -506,7 +510,7 @@
     <string name="communal_tutorial_indicator_text" msgid="4503010353591430123">"కమ్యూనల్ ట్యుటోరియల్‌ను ప్రారంభించడానికి ఎడమ వైపునకు స్వైప్ చేయండి"</string>
     <string name="cta_tile_button_to_open_widget_editor" msgid="3871562362382963878">"అనుకూలంగా మార్చండి"</string>
     <string name="cta_tile_button_to_dismiss" msgid="3377597875997861754">"విస్మరించండి"</string>
-    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"ఈ స్పేస్‌లో మీ విడ్జెట్‌లను జోడించండి, తీసివేయండి, క్రమపద్ధతిలో అమర్చండి"</string>
+    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"ఈ స్పేస్‌లోని విడ్జెట్‌ల జోడింపు, తీసివేత, అమరిక"</string>
     <string name="cta_label_to_open_widget_picker" msgid="3874946756976360699">"మరిన్ని విడ్జెట్‌లను జోడించండి"</string>
     <string name="popup_on_dismiss_cta_tile_text" msgid="8292501780996070019">"విడ్జెట్‌లను అనుకూలీకరించడానికి, నొక్కి, ఉంచండి"</string>
     <string name="button_to_configure_widgets_text" msgid="4191862850185256901">"విడ్జెట్‌లను అనుకూలంగా మార్చండి"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> సంభాషణ ఫీచర్‌లను సపోర్ట్ చేయదు"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ఫీడ్‌బ్యాక్"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"విస్మరించండి"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"పిన్ చేసినట్లు చూపవద్దు"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"లైవ్ అప్‌డేట్‌లు చూపబడుతున్నాయి"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"పిన్ చేయబడిన నోటిఫికేషన్‌లు, యాప్‌ల నుండి ఎప్పటికప్పుడు తాజా సమాచారాన్ని చూపిస్తాయి, ఇంకా ఇవి ఎల్లప్పుడూ స్టేటస్ బార్, లాక్ స్క్రీన్‌లో కనిపిస్తాయి"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ఈ నోటిఫికేషన్‌లను ఎడిట్ చేయడం వీలుపడదు."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"కాల్ నోటిఫికేషన్‌లను ఎడిట్ చేయడం సాధ్యం కాదు."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ఈ నోటిఫికేషన్‌ల గ్రూప్‌ను ఇక్కడ కాన్ఫిగర్ చేయలేము"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"మల్టీ-టాస్కింగ్"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"కుడి వైపు ప్రస్తుత యాప్‌తో స్ప్లిట్ స్క్రీన్‌ను ఉపయోగించండి"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"ఎడమ వైపు ప్రస్తుత యాప్‌తో స్ప్లిట్ స్క్రీన్‌ను ఉపయోగించండి"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"ఫుల్ స్క్రీన్‌కు మారండి"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"స్ప్లిట్ స్క్రీన్ ఉపయోగిస్తున్నప్పుడు కుడి లేదా కింద యాప్‌నకు మారండి"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"స్ప్లిట్ స్క్రీన్ ఉపయోగిస్తున్నప్పుడు ఎడమ లేదా పైన యాప్‌నకు మారండి"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"స్ప్లిట్ స్క్రీన్ సమయంలో: ఒక దాన్నుండి మరో దానికి యాప్ రీప్లేస్ చేయండి"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"తక్కువ ప్రాధాన్యత నోటిఫికేషన్ చిహ్నాలను చూపించు"</string>
     <string name="other" msgid="429768510980739978">"ఇతరం"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"టైల్‌ను తీసివేయండి"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"చివరి పొజిషన్‌కు టైల్‌ను జోడించండి"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"టైల్‌ను తరలించండి"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"ఇటీవలి యాప్‌లను చూడండి"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"యాప్‌ల మధ్య మారండి"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"పూర్తయింది"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"మళ్లీ ట్రై చేయండి!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"వెనుకకు"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"మీ టచ్‌ప్యాడ్‌లో మూడు వేళ్లను ఉపయోగించి ఎడమ వైపునకు లేదా కుడి వైపునకు స్వైప్ చేయండి"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"ఇటీవలి యాప్‌లను చూడటానికి, టచ్‌ప్యాడ్‌లో మూడు వేళ్లతో పైకి స్వైప్ చేసి, హోల్డ్ చేయండి"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"మీ యాప్‌లన్నింటినీ చూడటానికి, మీ కీబోర్డ్‌లో యాక్షన్ కీని నొక్కండి"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"దాచిపెట్టినది"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"చూడటానికి అన్‌లాక్ చేయండి"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"సందర్భోచిత విద్య"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"వెనుకకు వెళ్లడానికి మీ టచ్‌ప్యాడ్‌ను ఉపయోగించండి"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"మూడు వేళ్లతో ఎడమ / కుడి వైపునకు స్వైప్ చేయండి. మరిన్ని సంజ్ఞల గురించి తెలుసుకోవడానికి ట్యాప్ చేయండి."</string>
diff --git a/packages/SystemUI/res/values-te/tiles_states_strings.xml b/packages/SystemUI/res/values-te/tiles_states_strings.xml
index 7562aae..d118429 100644
--- a/packages/SystemUI/res/values-te/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-te/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"ఆఫ్‌లో ఉంది"</item>
     <item msgid="5908720590832378783">"ఆన్‌లో ఉంది"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"అందుబాటులో లేదు"</item>
+    <item msgid="6641673879029894995">"ఆఫ్‌లో ఉంది"</item>
+    <item msgid="5806682401126108403">"ఆన్‌లో ఉంది"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index 873635d..0b314f4 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"เชื่อมต่อบลูทูธแล้ว"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"ไอคอนอุปกรณ์บลูทูธ"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"คลิกเพื่อกำหนดค่ารายละเอียดอุปกรณ์"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"คลิกเพื่อดูอุปกรณ์ทั้งหมด"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"คลิกเพื่อจับคู่อุปกรณ์ใหม่"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g> กำหนดค่ารายละเอียดอุปกรณ์"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"ดูอุปกรณ์ทั้งหมด"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"จับคู่อุปกรณ์ใหม่"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"ไม่ทราบเปอร์เซ็นต์แบตเตอรี่"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"เชื่อมต่อกับ <xliff:g id="BLUETOOTH">%s</xliff:g> แล้ว"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"เชื่อมต่อกับ <xliff:g id="CAST">%s</xliff:g>"</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"อินพุต"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"เครื่องช่วยฟัง"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"กำลังเปิด..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ปรับความสว่างไม่ได้เนื่องจาก\nควบคุมโดยแอปที่อยู่ด้านบน"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"ปรับความสว่างไม่ได้เนื่องจากควบคุมโดยแอปที่อยู่ด้านบน"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"หมุนอัตโนมัติ"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"หมุนหน้าจออัตโนมัติ"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"ตำแหน่ง"</string>
@@ -506,7 +507,7 @@
     <string name="communal_tutorial_indicator_text" msgid="4503010353591430123">"ปัดไปทางซ้ายเพื่อเริ่มบทแนะนำส่วนกลาง"</string>
     <string name="cta_tile_button_to_open_widget_editor" msgid="3871562362382963878">"ปรับแต่ง"</string>
     <string name="cta_tile_button_to_dismiss" msgid="3377597875997861754">"ปิด"</string>
-    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"เพิ่ม นำออก และจัดลำดับวิดเจ็ตในพื้นที่นี้ใหม่"</string>
+    <string name="cta_label_to_edit_widget" msgid="6496885074209203756">"เพิ่ม นำออก และจัดลำดับวิด⁠เจ็ตในพื้นที่นี้ใหม่"</string>
     <string name="cta_label_to_open_widget_picker" msgid="3874946756976360699">"เพิ่มวิดเจ็ตอีก"</string>
     <string name="popup_on_dismiss_cta_tile_text" msgid="8292501780996070019">"กดค้างเพื่อปรับแต่งวิดเจ็ต"</string>
     <string name="button_to_configure_widgets_text" msgid="4191862850185256901">"ปรับแต่งวิดเจ็ต"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ไม่รองรับฟีเจอร์การสนทนา"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"ความคิดเห็น"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"ปิด"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"ไม่แสดงเป็นรายการที่ปักหมุด"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"กำลังแสดงข้อมูลอัปเดตแบบเรียลไทม์"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"การแจ้งเตือนที่ปักหมุดไว้จะแสดงข้อมูลแบบเรียลไทม์จากแอป และจะปรากฏในแถบสถานะและหน้าจอล็อกเสมอ"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"แก้ไขการแจ้งเตือนเหล่านี้ไม่ได้"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"แก้ไขการแจ้งเตือนสายเรียกเข้าไม่ได้"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"การแจ้งเตือนกลุ่มนี้กำหนดค่าที่นี่ไม่ได้"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"การทํางานหลายอย่างพร้อมกัน"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"ใช้โหมดแยกหน้าจอโดยให้แอปอยู่ด้านขวา"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"ใช้โหมดแยกหน้าจอโดยให้แอปอยู่ด้านซ้าย"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"เปลี่ยนเป็นแบบเต็มหน้าจอ"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"ใช้โหมดเต็มหน้าจอ"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"ใช้มุมมองบนเดสก์ท็อป"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"เปลี่ยนไปใช้แอปทางด้านขวาหรือด้านล่างขณะใช้โหมดแยกหน้าจอ"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"เปลี่ยนไปใช้แอปทางด้านซ้ายหรือด้านบนขณะใช้โหมดแยกหน้าจอ"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"ระหว่างใช้โหมดแยกหน้าจอ: เปลี่ยนแอปหนึ่งเป็นอีกแอปหนึ่ง"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"แสดงไอคอนการแจ้งเตือนลำดับความสำคัญต่ำ"</string>
     <string name="other" msgid="429768510980739978">"อื่นๆ"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"นำชิ้นส่วนออก"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"เพิ่มการ์ดไปยังตำแหน่งสุดท้าย"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"ย้ายชิ้นส่วน"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"ดูแอปล่าสุด"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"เปลี่ยนแอป"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"เสร็จสิ้น"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"ถัดไป"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"ลองอีกครั้งนะ"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"ย้อนกลับ"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"ใช้ 3 นิ้วปัดไปทางซ้ายหรือขวาบนทัชแพด"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"หากต้องการดูแอปล่าสุด ให้ใช้ 3 นิ้วปัดขึ้นแล้วค้างไว้บนทัชแพด"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"หากต้องการดูแอปทั้งหมด ให้กดปุ่มดำเนินการบนแป้นพิมพ์"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"ปกปิดไว้"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"ปลดล็อกเพื่อดู"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"การศึกษาตามบริบท"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"ใช้ทัชแพดเพื่อย้อนกลับ"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"ใช้ 3 นิ้วปัดไปทางซ้ายหรือขวา แตะเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับท่าทางสัมผัสต่างๆ"</string>
diff --git a/packages/SystemUI/res/values-th/tiles_states_strings.xml b/packages/SystemUI/res/values-th/tiles_states_strings.xml
index 6d36036..9fba3bd 100644
--- a/packages/SystemUI/res/values-th/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-th/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"ปิด"</item>
     <item msgid="5908720590832378783">"เปิด"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"ไม่พร้อมใช้งาน"</item>
+    <item msgid="6641673879029894995">"ปิด"</item>
+    <item msgid="5806682401126108403">"เปิด"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index e6aa410..f5a7fde 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Nakakonekta ang Bluetooth."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Icon ng Bluetooth device"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"I-click para i-configure ang detalye ng device"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"I-click para tingnan ang lahat ng device"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"I-click para magpares ng bagong device"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Hindi alam ang porsyento ng baterya."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Nakakonekta sa <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Nakakonekta sa <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Input"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Mga hearing aid"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Ino-on…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Hindi ma-adjust ang liwanag dahil\n kinokontrol ito ng nangingibabaw na app"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Hindi ma-adjust ang liwanag dahil kinokontrol ito ng nangingibabaw na app"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"I-auto rotate"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Awtomatikong i-rotate ang screen"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Lokasyon"</string>
@@ -623,7 +627,7 @@
     <string name="quick_settings_disclosure_management" msgid="5515296598440684962">"Pagmamay-ari ng iyong organisasyon ang device na ito"</string>
     <string name="quick_settings_disclosure_named_management" msgid="3476472755775165827">"Pagmamay-ari ng <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> ang device na ito"</string>
     <string name="quick_settings_disclosure_management_vpns" msgid="929181757984262902">"Pag-aari ng organisasyon mo ang device na ito at nakakonekta ito sa internet sa pamamagitan ng VPN"</string>
-    <string name="quick_settings_disclosure_named_management_vpns" msgid="3312645578322079185">"Pagmamay-ari ng <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> ang device na ito at nakakoenekta ito sa internet sa pamamagitan ng mga VPN"</string>
+    <string name="quick_settings_disclosure_named_management_vpns" msgid="3312645578322079185">"Pagmamay-ari ng <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> ang device na ito at nakakonekta ito sa internet sa pamamagitan ng mga VPN"</string>
     <string name="quick_settings_disclosure_managed_profile_monitoring" msgid="1423899084754272514">"Maaaring sumubaybay ang iyong organisasyon ng trapiko sa network sa profile sa trabaho mo"</string>
     <string name="quick_settings_disclosure_named_managed_profile_monitoring" msgid="8321469176706219860">"Maaaring subaybayan ng <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> ang trapiko sa network sa iyong profile sa trabaho"</string>
     <string name="quick_settings_disclosure_managed_profile_network_activity" msgid="2636594621387832827">"Nakikita ng IT admin ang aktibidad sa network"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"Hindi sinusuportahan ng <xliff:g id="APP_NAME">%1$s</xliff:g> ang mga feature ng pag-uusap"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Feedback"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"I-dismiss"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Huwag ipakita bilang naka-pin"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Ipinapakita ang Mga Live na Update"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Nagpapakita ang mga naka-pin na notification ng live na impormasyon mula sa mga app, at palagi itong nasa status bar at lock screen"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Hindi puwedeng baguhin ang mga notification na ito."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Hindi mabago ang mga notification ng tawag."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Hindi mako-configure dito ang pangkat na ito ng mga notification"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Pag-multitask"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Gumamit ng split screen nang nasa kanan ang app"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Gumamit ng split screen nang nasa kaliwa ang app"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Lumipat sa full screen"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Lumipat sa app sa kanan o ibaba habang ginagamit ang split screen"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Lumipat sa app sa kaliwa o itaas habang ginagamit ang split screen"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Habang nasa split screen: magpalit-palit ng app"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Ipakita ang mga icon ng notification na may mababang priority"</string>
     <string name="other" msgid="429768510980739978">"Iba pa"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"alisin ang tile"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"magdagdag ng tile sa huling posisyon"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Ilipat ang tile"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Tingnan ang mga kamakailang app"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Lumipat ng app"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Tapos na"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Subukan ulit!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Bumalik"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Mag-swipe pakaliwa o pakanan gamit ang tatlong daliri sa iyong touchpad"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Para tingnan ang kamakailang app, mag-swipe pataas at i-hold gamit ang tatlong daliri sa touchpad"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Para tingnan ang lahat ng iyong app, pindutin ang action key sa keyboard mo"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Na-redact"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"I-unlock para tingnan"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Edukasyon ayon sa konteksto"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Gamitin ang iyong touchpad para bumalik"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Mag-swipe pakaliwa o pakanan gamit ang tatlong daliri. I-tap para matuto pa tungkol sa mga galaw."</string>
diff --git a/packages/SystemUI/res/values-tl/tiles_states_strings.xml b/packages/SystemUI/res/values-tl/tiles_states_strings.xml
index 112c0bf..03cca6d 100644
--- a/packages/SystemUI/res/values-tl/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-tl/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Naka-off"</item>
     <item msgid="5908720590832378783">"Naka-on"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Hindi available"</item>
+    <item msgid="6641673879029894995">"Naka-off"</item>
+    <item msgid="5806682401126108403">"Naka-on"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 05fc1f2..dca7381 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth bağlandı."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth cihaz simgesi"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Cihaz ayrıntılarını yapılandırmak için tıklayın"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Tüm cihazları görmek için tıklayın"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Yeni cihaz eşlemek için tıklayın"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Pil yüzdesi bilinmiyor."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> ile bağlı."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> bağlantısı kuruldu."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Giriş"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"İşitme cihazları"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Açılıyor…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Parlaklık ayarlanamıyor, çünkü bu özellik\n en üstteki uygulama tarafından kontrol ediliyor"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Parlaklık ayarlanamıyor, çünkü bu özellik en üstteki uygulama tarafından kontrol ediliyor"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Otomatik döndür"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Ekranı otomatik döndür"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Konum"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>, sohbet özelliklerini desteklemiyor"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Geri bildirim"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Kapat"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Sabitlenmiş olarak gösterme"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Canlı haberlerin gösterilmesi"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Sabitlenmiş bildirimler, uygulamalardan gelen canlı bilgileri gösterir ve durum çubuğu ile kilit ekranında her zaman görünür"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirimler değiştirilemez."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Arama bildirimleri değiştirilemez."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Bu bildirim grubu burada yapılandırılamaz"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Çoklu görev"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Sağdaki uygulamayla birlikte bölünmüş ekranı kullan"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Soldaki uygulamayla birlikte bölünmüş ekranı kullan"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Tam ekran moduna geç"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Bölünmüş ekran kullanırken sağdaki veya alttaki uygulamaya geçiş yap"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Bölünmüş ekran kullanırken soldaki veya üstteki uygulamaya geçiş yapın"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Bölünmüş ekran etkinken: Bir uygulamayı başkasıyla değiştir"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Düşük öncelikli bildirim simgelerini göster"</string>
     <string name="other" msgid="429768510980739978">"Diğer"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"Kutuyu kaldırmak için"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"kutuyu son konuma ekleyin"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Kutuyu taşı"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Son uygulamaları görüntüle"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Uygulamalar arasında geçiş yapma"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Bitti"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Tekrar deneyin."</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Geri dön"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Dokunmatik alanda üç parmağınızla sola veya sağa kaydırın"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Son uygulamaları görüntülemek için dokunmatik alanda üç parmağınızla yukarı kaydırıp basılı tutun"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Tüm uygulamalarınızı görüntülemek için klavyenizdeki eylem tuşuna basın"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Çıkartıldı"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Görüntülemek için kilidi açın"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Bağlama dayalı eğitim"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Geri dönmek için dokunmatik alanınızı kullanın"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Üç parmağınızla sola veya sağa kaydırın. Daha fazla hareket öğrenmek için dokunun."</string>
diff --git a/packages/SystemUI/res/values-tr/tiles_states_strings.xml b/packages/SystemUI/res/values-tr/tiles_states_strings.xml
index f3c51c0..7c17ace 100644
--- a/packages/SystemUI/res/values-tr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-tr/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Kapalı"</item>
     <item msgid="5908720590832378783">"Açık"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Yok"</item>
+    <item msgid="6641673879029894995">"Kapalı"</item>
+    <item msgid="5806682401126108403">"Açık"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 0b0d6dc..4f5c181 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth під’єднано."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Значок пристрою з Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Натисніть, щоб змінити налаштування пристрою"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Натисніть, щоб переглянути всі пристрої"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Натисніть, щоб підключити новий пристрій"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Відсоток заряду акумулятора невідомий."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Підключено до <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Під’єднано до пристрою <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Джерело сигналу"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Слухові апарати"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Увімкнення…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Не вдається змінити яскравість, оскільки\n нею керує основний додаток"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Не вдається змінити яскравість, оскільки нею керує основний додаток"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Автообертання"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Автоматично обертати екран"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Геодані"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не підтримує функції розмов"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Надіслати відгук"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Закрити"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Не показувати як закріплені"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Показ інформації в реальному часі"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Закріплені сповіщення з актуальною інформацією від додатків. Завжди показуються в рядку стану й на заблокованому екрані."</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ці сповіщення не можна змінити."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Сповіщення про виклик не можна змінити."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Цю групу сповіщень не можна налаштувати тут"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Багатозадачність"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Розділити екран і показувати додаток праворуч"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Розділити екран і показувати додаток ліворуч"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Перейти в повноекранний режим"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Перейти до додатка праворуч або внизу на розділеному екрані"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Під час розділення екрана перемикатися на додаток ліворуч або вгорі"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Під час розділення екрана: замінити додаток іншим"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Показувати значки сповіщень із низьким пріоритетом"</string>
     <string name="other" msgid="429768510980739978">"Інше"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"вилучити опцію"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"додати панель на останню позицію"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Перемістити опцію"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Переглянути нещодавні додатки"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Перемикання між додатками"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Готово"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Спробуйте ще"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Назад"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Проведіть трьома пальцями вліво чи вправо по сенсорній панелі"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Щоб переглянути останні додатки, проведіть трьома пальцями вгору по сенсорній панелі й утримуйте їх"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Щоб переглянути всі додатки, натисніть клавішу дії на клавіатурі"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Замасковано"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Розблокуйте, щоб переглянути"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Контекстне навчання"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Щоб повернутися, використовуйте сенсорну панель"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Проведіть трьома пальцями вліво чи вправо. Натисніть, щоб дізнатися про інші жести."</string>
diff --git a/packages/SystemUI/res/values-uk/tiles_states_strings.xml b/packages/SystemUI/res/values-uk/tiles_states_strings.xml
index 4fac740..8b50c085 100644
--- a/packages/SystemUI/res/values-uk/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-uk/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Вимкнено"</item>
     <item msgid="5908720590832378783">"Увімкнено"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Недоступно"</item>
+    <item msgid="6641673879029894995">"Вимкнено"</item>
+    <item msgid="5806682401126108403">"Увімкнено"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml
index ab4dd77..7cdb223 100644
--- a/packages/SystemUI/res/values-ur/strings.xml
+++ b/packages/SystemUI/res/values-ur/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"بلوٹوتھ مربوط ہے۔"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"بلوٹوتھ آلے کا آئیکن"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"آلہ کی تفصیل کو کنفیگر کرنے کے لیے کلک کریں"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"تمام آلات دیکھنے کے لیے کلک کریں"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"نئے آلے کا جوڑا بنانے کے لیے کلک کریں"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"‫<xliff:g id="DEVICE_NAME">%s</xliff:g>۔ آلہ کی تفصیل کنفیگر کریں"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"تمام آلات دیکھیں"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"نئے آلے کا جوڑا بنائیں"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"بیٹری کی فیصد نامعلوم ہے۔"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"<xliff:g id="BLUETOOTH">%s</xliff:g> سے منسلک ہیں۔"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"<xliff:g id="CAST">%s</xliff:g> سے منسلک ہے۔"</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"ان پٹ"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"سماعتی آلات"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"آن ہو رہا ہے…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"چمک کو ایڈجسٹ نہیں کیا جا سکتا کیونکہ اسے سرفہرست ایپ کے ذریعے \n کنٹرول کیا جا رہا ہے"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"چمک کو ایڈجسٹ نہیں کیا جا سکتا کیونکہ اسے سرفہرست ایپ کے ذریعے کنٹرول کیا جا رہا ہے"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"خود کار طور پر گھمائیں"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"اسکرین کو خود کار طور پر گھمائیں"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"مقام"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ایپ گفتگو کی خصوصیات کو سپورٹ نہیں کرتی ہے"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"تاثرات"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"برخاست کریں"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"پن کردہ کے طور پر نہ دکھائیں"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"لائیو اپ ڈیٹس کو دکھایا جا رہا ہے"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"پن کردہ اطلاعات ایپس سے لائیو معلومات ڈسپلے کرتی ہیں اور ہمیشہ اسٹیٹس بار اور مقفل اسکرین پر ظاہر ہوتی ہیں"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ان اطلاعات کی ترمیم نہیں کی جا سکتی۔"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"کال کی اطلاعات میں ترمیم نہیں کی جا سکتی۔"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"اطلاعات کے اس گروپ کو یہاں کنفیگر نہیں کیا جا سکتا"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"ملٹی ٹاسکنگ"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"بائیں جانب ایپ کے ساتھ اسپلٹ اسکرین کا استعمال کریں"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"دائیں جانب ایپ کے ساتھ اسپلٹ اسکرین کا استعمال کریں"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"فُل اسکرین پر سوئچ کریں"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"فُل اسکرین استعمال کریں"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"ڈیسک ٹاپ منظر استعمال کریں"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"اسپلٹ اسکرین کا استعمال کرتے ہوئے دائیں یا نیچے ایپ پر سوئچ کریں"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"اسپلٹ اسکرین کا استعمال کرتے ہوئے بائیں یا اوپر ایپ پر سوئچ کریں"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"اسپلٹ اسکرین کے دوران: ایک ایپ کو دوسرے سے تبدیل کریں"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"کم ترجیحی اطلاع کے آئیکنز دکھائیں"</string>
     <string name="other" msgid="429768510980739978">"دیگر"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"ٹائل ہٹائیں"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"ٹائل کو آخری پوزیشن پر شامل کریں"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"ٹائل منتقل کریں"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"حالیہ ایپس دیکھیں"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"ایپس سوئچ کریں"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"ہو گیا"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"اگلا"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"دوبارہ کوشش کریں!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"واپس جائیں"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"اپنے ٹچ پیڈ پر تین انگلیوں کا استعمال کرتے ہوئے دائیں یا بائیں طرف سوائپ کریں"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"حالیہ ایپس دیکھنے کے لیے، ٹچ پیڈ پر تین انگلیوں سے اوپر سوائپ کریں اور دبائے رکھیں"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"اپنی سبھی ایپس دیکھنے کے لیے، اپنے کی بورڈ پر ایکشن کلید دبائیں"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"چھپانے کیلئے تبدیل کردہ"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"دیکھنے کے لیے غیر مقفل کریں"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"سیاق و سباق کی تعلیم"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"واپس جانے کے لیے اپنے ٹچ پیڈ کا استعمال کریں"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"تین انگلیوں سے دائیں یا بائیں طرف سوائپ کریں۔ مزید اشارے جاننے کے لیے تھپتھپائیں۔"</string>
diff --git a/packages/SystemUI/res/values-ur/tiles_states_strings.xml b/packages/SystemUI/res/values-ur/tiles_states_strings.xml
index 06e213b..fea0533 100644
--- a/packages/SystemUI/res/values-ur/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ur/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"آف"</item>
     <item msgid="5908720590832378783">"آن"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"دستیاب نہیں ہے"</item>
+    <item msgid="6641673879029894995">"آف"</item>
+    <item msgid="5806682401126108403">"آن"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml
index 55caf25..037f83d 100644
--- a/packages/SystemUI/res/values-uz/strings.xml
+++ b/packages/SystemUI/res/values-uz/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth ulandi."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Bluetooth qurilma belgisi"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Qurilma haqida tafsilotlarni oʻzgartirish uchun bosing"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Barcha qurilmalarni koʻrish uchun bosing"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Yangi qurilmani ulash uchun bosing"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Batareya quvvati foizi nomaʼlum."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Ulangan: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Bunga ulangan: <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Kirish"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Eshitish moslamalari"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Yoqilmoqda…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Yorqinlik umumiy sozlamalar orqali boshqariladi.\nUni moslash imkonsiz"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Yorqinlik umumiy sozlamalar orqali boshqariladi.Uni moslash imkonsiz"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Avto-burilish"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Ekranning avtomatik burilishi"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Joylashuv"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasida suhbat funksiyalari ishlamaydi"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Fikr-mulohaza"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Yopish"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Qadalgan sifatida chiqmasin"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Jonli yangiliklar koʻrsatilmoqda"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Qadalgan bildirishnomalar ilovalardagi jonli efir maʼlumotlarini koʻrsatadi va har doim holat qatori va ekran qulfida chiqadi"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirishnomalarni tahrirlash imkonsiz."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Chaqiruv bildirishnomalarini tahrirlash imkonsiz."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ushbu bildirishnomalar guruhi bu yerda sozlanmaydi"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Multi-vazifalilik"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Ekranni ajratib, joriy ilovani oʻngga joylash"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Ekranni ajratib, joriy ilovani chapga joylash"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Butun ekran rejimiga kirish"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Ajratilgan ekranda oʻngdagi yoki pastdagi ilovaga almashish"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Ajratilgan ekranda chapdagi yoki yuqoridagi ilovaga almashish"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Ajratilgan rejimda ilovalarni oʻzaro almashtirish"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Muhim boʻlmagan bildirishnoma ikonkalarini koʻrsatish"</string>
     <string name="other" msgid="429768510980739978">"Boshqa"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"katakchani olib tashlash"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"kartochkani oxirgi oʻringa qoʻshish"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Katakchani boshqa joyga olish"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Oxirgi ilovalarni koʻrish"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Ilovalarni almashtirish"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Tayyor"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Qayta urining!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Orqaga qaytish"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Sensorli panelda uchta barmoq bilan chapga yoki oʻngga suring"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Oxirgi ilovalarni koʻrish uchun sensorli panelda uchta barmoq bilan tepaga surib, bosib turing"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Barcha ishoralarni koʻrish uchun klaviaturadagi amal tugmasini bosing"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Chiqarildi"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Koʻrish uchun qulfdan chiqaring"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Kontekstual taʼlim"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Sensorli panel orqali orqaga qaytish"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Uchta barmoq bilan chapga yoki oʻngga suring. Boshqa ishoralar bilan tanishish uchun bosing."</string>
diff --git a/packages/SystemUI/res/values-uz/tiles_states_strings.xml b/packages/SystemUI/res/values-uz/tiles_states_strings.xml
index f636bc6..9b8ca80 100644
--- a/packages/SystemUI/res/values-uz/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-uz/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Yoqilmagan"</item>
     <item msgid="5908720590832378783">"Yoniq"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Mavjud emas"</item>
+    <item msgid="6641673879029894995">"Yoqilmagan"</item>
+    <item msgid="5806682401126108403">"Yoniq"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index 35fe2f2..59e81bb 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Đã kết nối bluetooth."</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Biểu tượng thiết bị Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Nhấp để định cấu hình thông tin thiết bị"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Nhấp để xem tất cả các thiết bị"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Nhấp để ghép nối thiết bị mới"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Tỷ lệ phần trăm pin không xác định."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Đã kết nối với <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Đã kết nối với <xliff:g id="CAST">%s</xliff:g>."</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Thiết bị đầu vào"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Thiết bị trợ thính"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Đang bật…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Không điều chỉnh được độ sáng vì độ sáng đang được\n ứng dụng trên cùng điều khiển"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Không điều chỉnh được độ sáng vì độ sáng đang được ứng dụng trên cùng điều khiển"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Tự động xoay"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Tự động xoay màn hình"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Vị trí"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> không hỗ trợ các tính năng trò chuyện"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Phản hồi"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Đóng"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Không hiện dưới dạng đã ghim"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Đang hiện thông tin cập nhật trực tiếp"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Thông báo được ghim sẽ hiện thông tin trực tiếp từ ứng dụng và luôn xuất hiện trên thanh trạng thái cũng như màn hình khoá"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Không thể sửa đổi các thông báo này."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Không thể sửa đổi các thông báo cuộc gọi."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Không thể định cấu hình nhóm thông báo này tại đây"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Đa nhiệm"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Dùng tính năng chia đôi màn hình với ứng dụng ở bên phải"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Dùng tính năng chia đôi màn hình với ứng dụng ở bên trái"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Chuyển sang chế độ toàn màn hình"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Chuyển sang ứng dụng bên phải hoặc ở dưới khi đang chia đôi màn hình"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Chuyển sang ứng dụng bên trái hoặc ở trên khi đang chia đôi màn hình"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Trong chế độ chia đôi màn hình: thay một ứng dụng bằng ứng dụng khác"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Hiển thị biểu tượng thông báo có mức ưu tiên thấp"</string>
     <string name="other" msgid="429768510980739978">"Khác"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"xóa ô"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"thêm ô vào vị trí cuối cùng"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Di chuyển ô"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Xem các ứng dụng gần đây"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Chuyển đổi ứng dụng"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Xong"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Hãy thử lại!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Quay lại"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Dùng 3 ngón tay vuốt sang trái hoặc sang phải trên bàn di chuột"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Để xem các ứng dụng gần đây, hãy dùng 3 ngón tay vuốt lên và giữ trên bàn di chuột"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Để xem tất cả ứng dụng của bạn, hãy nhấn phím hành động trên bàn phím"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Bị loại bỏ"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Mở khoá để xem"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Hướng dẫn theo bối cảnh"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Dùng bàn di chuột để quay lại"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Dùng 3 ngón tay vuốt sang trái hoặc sang phải. Hãy nhấn để tìm hiểu các cử chỉ khác."</string>
diff --git a/packages/SystemUI/res/values-vi/tiles_states_strings.xml b/packages/SystemUI/res/values-vi/tiles_states_strings.xml
index d8e6887..afbf477 100644
--- a/packages/SystemUI/res/values-vi/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-vi/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Đang tắt"</item>
     <item msgid="5908720590832378783">"Đang bật"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Không có"</item>
+    <item msgid="6641673879029894995">"Đang tắt"</item>
+    <item msgid="5806682401126108403">"Đang bật"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 530017c..03c4cdf 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -245,8 +245,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"蓝牙已连接。"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"蓝牙设备图标"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"点击以配置设备详情"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"点击即可查看所有设备"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"点击即可配对新设备"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"电池电量百分比未知。"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"已连接到<xliff:g id="BLUETOOTH">%s</xliff:g>。"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"已连接到 <xliff:g id="CAST">%s</xliff:g>。"</string>
@@ -328,7 +332,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"输入"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"助听器"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"正在开启…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"亮度无法调整，因为它正在被\n顶层应用控制"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"亮度无法调整，因为它正在被顶层应用控制"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"自动屏幕旋转"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"自动旋转屏幕"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"位置信息"</string>
@@ -808,12 +812,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>不支持对话功能"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"反馈"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"关闭"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"请勿显示在固定的通知中"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"显示实时动态"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"固定的通知会显示应用的实时信息，并始终显示在状态栏和锁定屏幕上"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"无法修改这些通知。"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"无法修改来电通知。"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"您无法在此处配置这组通知"</string>
@@ -900,7 +901,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"多任务处理"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"使用分屏模式，并将应用置于右侧"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"使用分屏模式，并将应用置于左侧"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"切换到全屏模式"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"使用分屏模式时，切换到右侧或下方的应用"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"使用分屏模式时，切换到左侧或上方的应用"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"在分屏期间：将一个应用替换为另一个应用"</string>
@@ -987,6 +991,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"显示低优先级的通知图标"</string>
     <string name="other" msgid="429768510980739978">"其他"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"移除功能块"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"将功能块添加到最后一个位置"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"移动功能块"</string>
@@ -1501,6 +1507,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"查看最近用过的应用"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"切换应用"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"完成"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"再试一次！"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"返回"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"在触控板上用三根手指向左或向右滑动"</string>
@@ -1538,7 +1546,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"如要查看最近用过的应用，请用三根手指在触控板上向上滑动并按住"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"如要查看所有应用，请按下键盘上的快捷操作按键"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"已隐去"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"解锁即可查看"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"内容相关指导"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"使用触控板返回"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"用三根手指向左或向右滑动。点按即可了解更多手势。"</string>
diff --git a/packages/SystemUI/res/values-zh-rCN/tiles_states_strings.xml b/packages/SystemUI/res/values-zh-rCN/tiles_states_strings.xml
index 6f36065..a3922e5 100644
--- a/packages/SystemUI/res/values-zh-rCN/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"关闭"</item>
     <item msgid="5908720590832378783">"开启"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"不可用"</item>
+    <item msgid="6641673879029894995">"已关闭"</item>
+    <item msgid="5806682401126108403">"已开启"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 496cbdb..472f531 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"藍牙連線已建立。"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"藍牙裝置圖示"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"按一下即可設定裝置詳情"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"㩒一下就可以睇所有裝置"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"㩒一下就可以配對新裝置"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>。設定裝置詳細資料"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"查看所有裝置"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"配對新裝置"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"電量百分比不明。"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"已連線至<xliff:g id="BLUETOOTH">%s</xliff:g>。"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"已連接至 <xliff:g id="CAST">%s</xliff:g>。"</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"輸入"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"助聽器"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"正在開啟…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"無法調整亮度，因為\n目前是由上層應用程式控制亮度"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"無法調整亮度，因為目前是由上層應用程式控制亮度"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"自動旋轉"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"自動旋轉螢幕"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"位置"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」不支援對話功能"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"意見反映"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"關閉"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"不要置頂顯示"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"顯示即時消息"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"置頂通知顯示應用程式的即時資訊，並且一律在狀態列和上鎖畫面顯示"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"無法修改這些通知。"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"無法修改通話通知。"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"無法在此設定這組通知"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"多工處理"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"使用分割螢幕，並在右側顯示應用程式"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"使用分割螢幕，並在左側顯示應用程式"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"切換至全螢幕"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"使用全螢幕模式"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"使用電腦檢視畫面"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"使用分割螢幕時，切換至右邊或下方的應用程式"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"使用分割螢幕時，切換至左邊或上方的應用程式"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"使用分割螢幕期間：更換應用程式"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"顯示低優先順序通知圖示"</string>
     <string name="other" msgid="429768510980739978">"其他"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"移除圖塊"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"加圖塊去上一個位置"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"移動圖塊"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"查看最近使用的應用程式"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"切換應用程式"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"完成"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"繼續"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"請再試一次！"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"返回"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"在觸控板上用三隻手指向左或向右滑動"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"如要查看最近使用的應用程式，請用三隻手指在觸控板上向上滑動並按住"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"如要查看所有應用程式，請在鍵盤上按下快捷操作鍵"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"已剔除"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"解鎖即可查看"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"內容教學"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"使用觸控板返回"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"用三隻手指向左或向右滑動。輕按即可瞭解更多手勢。"</string>
diff --git a/packages/SystemUI/res/values-zh-rHK/tiles_states_strings.xml b/packages/SystemUI/res/values-zh-rHK/tiles_states_strings.xml
index 25548e2..26bec2c 100644
--- a/packages/SystemUI/res/values-zh-rHK/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"關閉"</item>
     <item msgid="5908720590832378783">"開啟"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"無法使用"</item>
+    <item msgid="6641673879029894995">"關閉"</item>
+    <item msgid="5806682401126108403">"開啟"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index c63473f..a56fc03 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -245,8 +245,9 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"藍牙連線已建立。"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"「藍牙裝置」圖示"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"按一下即可設定裝置詳細資料"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"按一下即可查看所有裝置"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"按一下即可配對新裝置"</string>
+    <string name="accessibility_bluetooth_device_settings_gear_with_name" msgid="114373701123165491">"<xliff:g id="DEVICE_NAME">%s</xliff:g>。設定裝置詳細資料"</string>
+    <string name="accessibility_bluetooth_device_settings_see_all" msgid="5260390270128256620">"查看所有裝置"</string>
+    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="7988547106800504256">"配對新裝置"</string>
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"電池電量不明。"</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"已連線至<xliff:g id="BLUETOOTH">%s</xliff:g>。"</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"已連線至 <xliff:g id="CAST">%s</xliff:g>。"</string>
@@ -328,7 +329,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"輸入"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"助聽器"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"開啟中…"</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"無法調整亮度，因為\n目前是由上層應用程式控制亮度"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"無法調整亮度，因為目前是由上層應用程式控制亮度"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"自動旋轉"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"自動旋轉螢幕"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"定位"</string>
@@ -808,12 +809,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」不支援對話功能"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"意見回饋"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"關閉"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"不要顯示在固定的通知中"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"顯示最新即時資訊"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"固定的通知會提供應用程式即時資訊，並一律顯示在狀態列和螢幕鎖定畫面上"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"無法修改這些通知。"</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"無法修改來電通知。"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"無法在這裡設定這個通知群組"</string>
@@ -900,7 +898,8 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"多工處理"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"使用分割畫面，並在右側顯示應用程式"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"使用分割畫面，並在左側顯示應用程式"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"切換至全螢幕模式"</string>
+    <string name="system_multitasking_full_screen" msgid="4221409316059910349">"使用全螢幕模式"</string>
+    <string name="system_multitasking_desktop_view" msgid="8829838918507805921">"使用電腦檢視畫面"</string>
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"使用分割畫面時，切換到右邊或上方的應用程式"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"使用分割畫面時，切換到左邊或上方的應用程式"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"使用分割畫面期間：更換應用程式"</string>
@@ -987,6 +986,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"顯示低優先順序通知圖示"</string>
     <string name="other" msgid="429768510980739978">"其他"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"移除圖塊"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"將設定方塊新增到最後一個位置"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"移動圖塊"</string>
@@ -1501,6 +1502,7 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"查看最近使用的應用程式"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"切換應用程式"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"完成"</string>
+    <string name="touchpad_tutorial_next_button" msgid="9169718126626806688">"繼續"</string>
     <string name="gesture_error_title" msgid="469064941635578511">"請再試一次！"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"返回"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"在觸控板上用三指向左或向右滑動"</string>
@@ -1538,7 +1540,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"如要查看最近使用的應用程式，請在觸控板上向上滑動並按住"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"如要查看所有應用程式，請按下鍵盤上的快捷操作鍵"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"已遮蓋"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"解鎖即可查看"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"內容教學"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"使用觸控板返回"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"用三指向左或向右滑動。輕觸即可進一步瞭解手勢。"</string>
diff --git a/packages/SystemUI/res/values-zh-rTW/tiles_states_strings.xml b/packages/SystemUI/res/values-zh-rTW/tiles_states_strings.xml
index 3a192ba..6e272f2 100644
--- a/packages/SystemUI/res/values-zh-rTW/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"關閉"</item>
     <item msgid="5908720590832378783">"開啟"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"無法使用"</item>
+    <item msgid="6641673879029894995">"已關閉"</item>
+    <item msgid="5806682401126108403">"已開啟"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 2aad788..20be43b 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -247,8 +247,12 @@
     <string name="accessibility_bluetooth_connected" msgid="4745196874551115205">"Bluetooth ixhunyiwe"</string>
     <string name="accessibility_bluetooth_device_icon" msgid="9163840051642587982">"Isithonjana sedivayisi ye-Bluetooth"</string>
     <string name="accessibility_bluetooth_device_settings_gear" msgid="3314916468105272540">"Chofoza ukuze ulungiselele imininingwane yedivayisi"</string>
-    <string name="accessibility_bluetooth_device_settings_see_all" msgid="9111952496905423543">"Chofoza ukuze ubone wonke amadivayisi"</string>
-    <string name="accessibility_bluetooth_device_settings_pair_new_device" msgid="2435184865793496966">"Chofoza ukuze ubhangqe idivayisi entsha"</string>
+    <!-- no translation found for accessibility_bluetooth_device_settings_gear_with_name (114373701123165491) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_see_all (5260390270128256620) -->
+    <skip />
+    <!-- no translation found for accessibility_bluetooth_device_settings_pair_new_device (7988547106800504256) -->
+    <skip />
     <string name="accessibility_battery_unknown" msgid="1807789554617976440">"Iphesenti lebhethri alaziwa."</string>
     <string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Xhuma ku-<xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
     <string name="accessibility_cast_name" msgid="7344437925388773685">"Ixhumeke ku-<xliff:g id="CAST">%s</xliff:g>."</string>
@@ -330,7 +334,7 @@
     <string name="quick_settings_bluetooth_secondary_label_input" msgid="3887552721233148132">"Okokufaka"</string>
     <string name="quick_settings_bluetooth_secondary_label_hearing_aids" msgid="5553051568867097111">"Imishini yendlebe"</string>
     <string name="quick_settings_bluetooth_secondary_label_transient" msgid="3882884317600669650">"Iyavula..."</string>
-    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Ayikwazi ukulungisa ukukhanya ngoba ilawulwa\n yi-app ephezulu"</string>
+    <string name="quick_settings_brightness_unable_adjust_msg" msgid="786478497970492300">"Ayikwazi ukulungisa ukukhanya ngoba ilawulwa yi-app ephezulu"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="2359922767950346112">"Ukuphenduka okuzenzakalelayo"</string>
     <string name="accessibility_quick_settings_rotation" msgid="4800050198392260738">"Phendula iskrini ngokuzenzakalela"</string>
     <string name="quick_settings_location_label" msgid="2621868789013389163">"Indawo"</string>
@@ -810,12 +814,9 @@
     <string name="no_shortcut" msgid="8257177117568230126">"I-<xliff:g id="APP_NAME">%1$s</xliff:g> ayisekeli izici zengxoxo"</string>
     <string name="notification_guts_bundle_feedback" msgid="7581587973879656500">"Impendulo"</string>
     <string name="notification_inline_dismiss" msgid="88423586921134258">"Chitha"</string>
-    <!-- no translation found for notification_inline_disable_promotion (3551682588314376921) -->
-    <skip />
-    <!-- no translation found for live_notifications_title (1586553354601345379) -->
-    <skip />
-    <!-- no translation found for live_notifications_desc (7470787001768372152) -->
-    <skip />
+    <string name="notification_inline_disable_promotion" msgid="3551682588314376921">"Ungabonisi njengophiniwe"</string>
+    <string name="live_notifications_title" msgid="1586553354601345379">"Ibonisa Izibuyekezo Ezibukhoma"</string>
+    <string name="live_notifications_desc" msgid="7470787001768372152">"Izaziso eziphiniwe zibonisa ulwazi olubukhoma oluvela kuma-app, futhi oluhlala luvela kubha yesimo nasekukhiyeni isikrini"</string>
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Lezi zaziso azikwazi ukushintshwa."</string>
     <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"Izaziso zekholi azikwazi ukushintshwa."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Leli qembu lezaziso alikwazi ukulungiselelwa lapha"</string>
@@ -902,7 +903,10 @@
     <string name="keyboard_shortcut_group_system_multitasking" msgid="6967816258924795558">"Ukwenza imisebenzi eminingi"</string>
     <string name="system_multitasking_rhs" msgid="8779289852395243004">"Sebenzisa ukuhlukanisa isikrini nge-app kwesokudla"</string>
     <string name="system_multitasking_lhs" msgid="7348595296208696452">"Sebenzisa ukuhlukanisa isikrini nge-app kwesokunxele"</string>
-    <string name="system_multitasking_full_screen" msgid="4940465971687159429">"Shintshela esikrinini esigcwele"</string>
+    <!-- no translation found for system_multitasking_full_screen (4221409316059910349) -->
+    <skip />
+    <!-- no translation found for system_multitasking_desktop_view (8829838918507805921) -->
+    <skip />
     <string name="system_multitasking_splitscreen_focus_rhs" msgid="3838578650313318508">"Shintshela ku-app ngakwesokudla noma ngezansi ngenkathi usebenzisa uhlukanisa isikrini"</string>
     <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Shintshela ku-app ngakwesokunxele noma ngaphezulu ngenkathi usebenzisa ukuhlukanisa isikrini"</string>
     <string name="system_multitasking_replace" msgid="7410071959803642125">"Ngesikhathi sokuhlukaniswa kwesikrini: shintsha i-app ngenye"</string>
@@ -989,6 +993,8 @@
   </string-array>
     <string name="tuner_low_priority" msgid="8412666814123009820">"Bonisa izithonjana zesaziso zokubaluleka okuncane"</string>
     <string name="other" msgid="429768510980739978">"Okunye"</string>
+    <!-- no translation found for accessibility_qs_edit_toggle_tile_size_action (1485194410119733586) -->
+    <skip />
     <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"susa ithayela"</string>
     <string name="accessibility_qs_edit_tile_add_action" msgid="8311378984458545661">"faka ithayela endaweni yokugcina"</string>
     <string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Hambisa ithayela"</string>
@@ -1503,6 +1509,8 @@
     <string name="touchpad_tutorial_recent_apps_gesture_button" msgid="8919227647650347359">"Buka ama-app akamuva"</string>
     <string name="touchpad_tutorial_switch_apps_gesture_button" msgid="7768255095423767779">"Shintsha ama-app"</string>
     <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Kwenziwe"</string>
+    <!-- no translation found for touchpad_tutorial_next_button (9169718126626806688) -->
+    <skip />
     <string name="gesture_error_title" msgid="469064941635578511">"Zama futhi!"</string>
     <string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Buyela emuva"</string>
     <string name="touchpad_back_gesture_guidance" msgid="5352221087725906542">"Swayiphela kwesokunxele noma kwesokudla usebenzisa iminwe emithathu kuphedi yokuthinta"</string>
@@ -1540,7 +1548,10 @@
     <string name="overview_edu_toast_content" msgid="5797030644017804518">"Ukuze ubuke ama-app akamuva, swayiphela phezulu bese ubambe ngeminwe emithathu ephedini yokuthinta"</string>
     <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Ukuze ubuke wonke ama-app wakho, cindezela inkinobho yokufinyelela kukhibhodi yakho"</string>
     <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Kwenziwe iredact"</string>
-    <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Vula ukuze ubuke"</string>
+    <!-- no translation found for public_notification_single_line_text (3576190291791654933) -->
+    <skip />
+    <!-- no translation found for redacted_otp_notification_single_line_text (5179964116354454118) -->
+    <skip />
     <string name="contextual_education_dialog_title" msgid="4630392552837487324">"Imfundo yokuqukethwe"</string>
     <string name="back_edu_notification_title" msgid="5624780717751357278">"Sebenzisa iphedi yokuthinta ukuze ubuyele emuva"</string>
     <string name="back_edu_notification_content" msgid="2497557451540954068">"Swayiphela kwesokunxele noma kwesokudla usebenzisa iminwe emithathu. Thepha ukuze ufunde kabanzi ngokunyakazisa umzimba."</string>
diff --git a/packages/SystemUI/res/values-zu/tiles_states_strings.xml b/packages/SystemUI/res/values-zu/tiles_states_strings.xml
index f9f27bd..13ffe04 100644
--- a/packages/SystemUI/res/values-zu/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-zu/tiles_states_strings.xml
@@ -196,7 +196,9 @@
     <item msgid="6419996398343291862">"Valiwe"</item>
     <item msgid="5908720590832378783">"Vuliwe"</item>
   </string-array>
-    <!-- no translation found for tile_states_desktopeffects:0 (6253480000354287321) -->
-    <!-- no translation found for tile_states_desktopeffects:1 (6641673879029894995) -->
-    <!-- no translation found for tile_states_desktopeffects:2 (5806682401126108403) -->
+  <string-array name="tile_states_desktopeffects">
+    <item msgid="6253480000354287321">"Ayitholakali"</item>
+    <item msgid="6641673879029894995">"Ivaliwe"</item>
+    <item msgid="5806682401126108403">"Ivuliwe"</item>
+  </string-array>
 </resources>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 8d10e39..4995858 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -501,7 +501,16 @@
     <!-- Smartspace trampoline activity that is used when the user taps smartspace. -->
     <string name="config_smartspaceTrampolineActivityComponent" translatable="false">com.google.android.apps.gsa.staticplugins.opa.smartspace.ExportedSmartspaceTrampolineActivity</string>
 
-    <!-- Screenshot editing default activity.  Must handle ACTION_EDIT image/png intents.
+    <!-- Screenshot editing default activity. Will only be used if the provided component exists and
+      is enabled.
+
+      Must handle ACTION_EDIT image/png intents.
+      Blank falls back to config_screenshotEditor.
+      This name is in the ComponentName flattened format (package/class)  -->
+    <string name="config_preferredScreenshotEditor" translatable="false"></string>
+
+    <!-- Screenshot editing activity used if config_preferredScreenshotEditor is not available.
+     Must handle ACTION_EDIT image/png intents.
          Blank sends the user to the Chooser first.
          This name is in the ComponentName flattened format (package/class)  -->
     <string name="config_screenshotEditor" translatable="false"></string>
@@ -1116,4 +1125,7 @@
 
     <!-- Configuration to swipe to open glanceable hub -->
     <bool name="config_swipeToOpenGlanceableHub">false</bool>
+
+    <!-- Whether or not to show the UMO on the glanceable hub when media is playing. -->
+    <bool name="config_showUmoOnHub">false</bool>
 </resources>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 17a89b3..7c370d3 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -390,6 +390,12 @@
     <!-- Extra space for guts bundle feedback button -->
     <dimen name="notification_guts_bundle_feedback_size">48dp</dimen>
 
+    <!-- Size of icon buttons in notification info. -->
+    <!-- 24dp for the icon itself + 16dp * 2 for top and bottom padding -->
+    <dimen name="notification_2025_guts_button_size">56dp</dimen>
+
+    <dimen name="notification_2025_min_tap_target_size">48dp</dimen>
+
     <dimen name="notification_importance_toggle_size">48dp</dimen>
     <dimen name="notification_importance_button_separation">8dp</dimen>
     <dimen name="notification_importance_drawable_padding">8dp</dimen>
@@ -402,6 +408,10 @@
     <dimen name="notification_importance_button_description_top_margin">12dp</dimen>
     <dimen name="rect_button_radius">8dp</dimen>
 
+    <!-- Padding for importance selection buttons in notification info, 2025 redesign version -->
+    <dimen name="notification_2025_importance_button_padding_vertical">12dp</dimen>
+    <dimen name="notification_2025_importance_button_padding_horizontal">16dp</dimen>
+
     <!-- The minimum height for the snackbar shown after the snooze option has been chosen. -->
     <dimen name="snooze_snackbar_min_height">56dp</dimen>
 
@@ -491,6 +501,9 @@
     <!-- some constraints use a negative margin. must be aligned with overlay_border_width, above;
          overlay_border_width_neg = overlay_border_width * -1 -->
     <dimen name="overlay_border_width_neg">-4dp</dimen>
+    <dimen name="overlay_shade_panel_shape_radius">
+        @dimen/aux_spacing_overlay_panel_shape_radius
+    </dimen>
 
     <dimen name="clipboard_preview_size">@dimen/overlay_x_scale</dimen>
     <dimen name="clipboard_overlay_min_font">10sp</dimen>
@@ -2215,4 +2228,8 @@
     <dimen name="rear_display_progress_width">231dp</dimen>
     <!-- Rear display mode end -->
 
+    <!-- Spacing attributes to overwrite -->
+    <dimen name="aux_spacing_overlay_panel_shape_radius">46dp</dimen>
+    <!-- Spacing attributes to overwrite end -->
+
 </resources>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 359bd2b..6ff1240 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -592,6 +592,12 @@
     <!-- Content description of the button to expand the group of devices. [CHAR LIMIT=NONE] -->
     <string name="accessibility_expand_group">Expand group.</string>
 
+    <!-- Content description of the button to add a device to a group. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_add_device_to_group">Add device to group.</string>
+
+    <!-- Content description of the button to remove a device from a group. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_remove_device_from_group">Remove device from group.</string>
+
     <!-- Content description of the button to open the application . [CHAR LIMIT=NONE] -->
     <string name="accessibility_open_application">Open application.</string>
 
@@ -802,7 +808,7 @@
     <!-- QuickSettings: Bluetooth secondary label shown when bluetooth is being enabled [CHAR LIMIT=NONE] -->
     <string name="quick_settings_bluetooth_secondary_label_transient">Turning on&#8230;</string>
     <!-- QuickSettings: Brightness [CHAR LIMIT=NONE] -->
-    <string name="quick_settings_brightness_unable_adjust_msg">Can\'t adjust brightness because it\'s being\n controlled by the top app</string>
+    <string name="quick_settings_brightness_unable_adjust_msg">Can\'t adjust brightness because it\'s being controlled by the top app</string>
     <!-- QuickSettings: Rotation Unlocked [CHAR LIMIT=NONE] -->
     <string name="quick_settings_rotation_unlocked_label">Auto-rotate</string>
     <!-- Accessibility label for Auto-ratate QuickSettings tile [CHAR LIMIT=NONE] -->
@@ -3170,8 +3176,8 @@
     <string name="controls_media_settings_button">Settings</string>
     <!-- Description for media control's playing media item, including information for the media's title, the artist, and source app [CHAR LIMIT=NONE]-->
     <string name="controls_media_playing_item_description"><xliff:g id="song_name" example="Daily mix">%1$s</xliff:g> by <xliff:g id="artist_name" example="Various artists">%2$s</xliff:g> is playing from <xliff:g id="app_label" example="Spotify">%3$s</xliff:g></string>
-    <!-- Content description for media controls progress bar [CHAR_LIMIT=NONE] -->
-    <string name="controls_media_seekbar_description"><xliff:g id="elapsed_time" example="1 hour 2 minutes 30 seconds">%1$s</xliff:g> of <xliff:g id="total_time" example="4 hours 5 seconds">%2$s</xliff:g></string>
+    <!-- Content description for media cotnrols progress bar [CHAR_LIMIT=NONE] -->
+    <string name="controls_media_seekbar_description"><xliff:g id="elapsed_time" example="1:30">%1$s</xliff:g> of <xliff:g id="total_time" example="3:00">%2$s</xliff:g></string>
     <!-- Placeholder title to inform user that an app has posted media controls [CHAR_LIMIT=NONE] -->
     <string name="controls_media_empty_title"><xliff:g id="app_name" example="Foo Music App">%1$s</xliff:g> is running</string>
 
@@ -4172,4 +4178,7 @@
     <string name="qs_edit_mode_reset_dialog_content">
         All Quick Settings tiles will reset to the device’s original settings
     </string>
+
+    <!-- Template that joins disabled message with the label for the voice over. [CHAR LIMIT=NONE] -->
+    <string name="volume_slider_disabled_message_template"><xliff:g example="Notification" id="stream_name">%1$s</xliff:g>, <xliff:g example="Disabled because ring is muted" id="disabled_message">%2$s</xliff:g></string>
 </resources>
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/Utilities.java b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/Utilities.java
index 9ebb15f..c822439 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/Utilities.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/Utilities.java
@@ -19,6 +19,7 @@
 import static android.app.StatusBarManager.NAVBAR_BACK_DISMISS_IME;
 import static android.app.StatusBarManager.NAVBAR_IME_SWITCHER_BUTTON_VISIBLE;
 import static android.app.StatusBarManager.NAVBAR_IME_VISIBLE;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
 
 import android.annotation.TargetApi;
 import android.app.StatusBarManager.NavbarFlags;
@@ -35,6 +36,8 @@
 import android.view.Surface;
 import android.view.WindowManager;
 
+import com.android.systemui.shared.recents.model.Task;
+
 /* Common code */
 public class Utilities {
 
@@ -165,4 +168,10 @@
         float densityRatio = (float) densityDpi / DisplayMetrics.DENSITY_DEFAULT;
         return (size / densityRatio);
     }
+
+    /** Whether a task is in freeform mode. */
+    public static boolean isFreeformTask(Task task) {
+        return task != null && task.getKey() != null
+                && task.getKey().windowingMode == WINDOWING_MODE_FREEFORM;
+    }
 }
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java
index 26d78bb..487d1ce 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java
@@ -338,4 +338,9 @@
         return info.configuration.windowConfiguration.getActivityType()
                 == WindowConfiguration.ACTIVITY_TYPE_HOME;
     }
+
+    public boolean isRunningInTestHarness() {
+        return ActivityManager.isRunningInTestHarness()
+                || ActivityManager.isRunningInUserTestHarness();
+    }
 }
diff --git a/packages/SystemUI/src/com/android/keyguard/EmergencyButtonController.java b/packages/SystemUI/src/com/android/keyguard/EmergencyButtonController.java
index 5e36539..a7bb11e 100644
--- a/packages/SystemUI/src/com/android/keyguard/EmergencyButtonController.java
+++ b/packages/SystemUI/src/com/android/keyguard/EmergencyButtonController.java
@@ -156,7 +156,7 @@
                 mMainExecutor.execute(() -> mView.updateEmergencyCallButton(
                         /* isInCall= */ isInCall,
                         /* hasTelephonyRadio= */ getContext().getPackageManager()
-                                .hasSystemFeature(PackageManager.FEATURE_TELEPHONY),
+                                .hasSystemFeature(PackageManager.FEATURE_TELEPHONY_CALLING),
                         /* simLocked= */ mKeyguardUpdateMonitor.isSimPinVoiceSecure(),
                         /* isSecure= */ isSecure));
             });
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index f6d0f4e..63101d4 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -156,7 +156,7 @@
 import com.android.systemui.res.R;
 import com.android.systemui.scene.domain.interactor.SceneInteractor;
 import com.android.systemui.scene.shared.flag.SceneContainerFlag;
-import com.android.systemui.scene.shared.model.Scenes;
+import com.android.systemui.scene.shared.model.Overlays;
 import com.android.systemui.settings.UserTracker;
 import com.android.systemui.shade.ShadeDisplayAware;
 import com.android.systemui.shared.system.TaskStackChangeListener;
@@ -2925,12 +2925,12 @@
     ) {
         SceneContainerFlag.assertInNewMode();
         return isPrimaryBouncerFullyShown(transitionState)
-                || transitionState.isTransitioning(null, Scenes.Bouncer);
+                || transitionState.isTransitioning(null, Overlays.Bouncer);
     }
 
     private boolean isPrimaryBouncerFullyShown(ObservableTransitionState transitionState) {
         SceneContainerFlag.assertInNewMode();
-        return transitionState.isIdle(Scenes.Bouncer);
+        return transitionState.isIdle(Overlays.Bouncer);
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContent.kt b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContent.kt
index c664456..8bdfd59 100644
--- a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContent.kt
+++ b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContent.kt
@@ -32,9 +32,9 @@
             val view =
                 LayoutInflater.from(context)
                     .inflate(R.layout.bluetooth_tile_dialog, /* root= */ null)
-            detailsContentViewModel.showDetailsContent(/* expandable= */ null, view)
+            detailsContentViewModel.bindDetailsView(view)
             view
         },
-        onRelease = { detailsContentViewModel.contentManager.releaseView() },
+        onRelease = { detailsContentViewModel.unbindDetailsView() },
     )
 }
diff --git a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModel.kt b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModel.kt
index 1c9cf8d..7ecd276 100644
--- a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModel.kt
@@ -44,6 +44,7 @@
 import com.android.systemui.dagger.qualifiers.Background
 import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.plugins.ActivityStarter
+import com.android.systemui.qs.flags.QsDetailedView
 import com.android.systemui.res.R
 import com.android.systemui.statusbar.phone.SystemUIDialog
 import javax.inject.Inject
@@ -52,6 +53,7 @@
 import kotlinx.coroutines.Job
 import kotlinx.coroutines.channels.awaitClose
 import kotlinx.coroutines.channels.produce
+import kotlinx.coroutines.coroutineScope
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.emptyFlow
 import kotlinx.coroutines.flow.filterNotNull
@@ -91,223 +93,228 @@
     private var job: Job? = null
 
     /**
-     * Shows the details content.
+     * Binds the bluetooth details view with BluetoothDetailsContentManager.
      *
-     * @param view The view from which the dialog is shown. If view is null, it should show the
-     *   bluetooth tile details view.
-     *
-     * TODO: b/378513956 Refactor this method into 2. One is called by the dialog to show the
-     *   dialog, another is called by the details view model to bind the view.
+     * @param view The view from which the bluetooth details content is shown.
      */
-    fun showDetailsContent(expandable: Expandable?, view: View?) {
+    fun bindDetailsView(view: View) {
+        // If `QsDetailedView` is not enabled, it should show the dialog.
+        QsDetailedView.assertInNewMode()
+
         cancelJob()
 
         job =
             coroutineScope.launch(context = mainDispatcher) {
-                var updateDeviceItemJob: Job?
-                var updateDialogUiJob: Job? = null
-                val dialog: SystemUIDialog?
-                val context: Context
-
-                if (view == null) {
-                    // Render with dialog
-                    val dialogDelegate = createBluetoothTileDialog()
-                    dialog = dialogDelegate.createDialog()
-                    context = dialog.context
-
-                    val controller =
-                        expandable?.dialogTransitionController(
-                            DialogCuj(
-                                InteractionJankMonitor.CUJ_SHADE_DIALOG_OPEN,
-                                INTERACTION_JANK_TAG,
-                            )
-                        )
-                    controller?.let {
-                        dialogTransitionAnimator.show(
-                            dialog,
-                            it,
-                            animateBackgroundBoundsChange = true,
-                        )
-                    } ?: dialog.show()
-                    // contentManager is created after dialog.show
-                    contentManager = dialogDelegate.contentManager
-                } else {
-                    // Render with tile details view
-                    dialog = null
-                    context = view.context
-                    contentManager = createContentManager()
-                    contentManager.bind(view)
-                    contentManager.start()
-                }
-
-                updateDeviceItemJob = launch {
-                    deviceItemInteractor.updateDeviceItems(context, DeviceFetchTrigger.FIRST_LOAD)
-                }
-
-                // deviceItemUpdate is emitted when device item list is done fetching, update UI and
-                // stop the progress bar.
-                combine(
-                        deviceItemInteractor.deviceItemUpdate,
-                        deviceItemInteractor.showSeeAllUpdate,
-                    ) { deviceItem, showSeeAll ->
-                        updateDialogUiJob?.cancel()
-                        updateDialogUiJob = launch {
-                            contentManager.apply {
-                                onDeviceItemUpdated(
-                                    deviceItem,
-                                    showSeeAll,
-                                    showPairNewDevice =
-                                        bluetoothStateInteractor.isBluetoothEnabled(),
-                                )
-                                animateProgressBar(false)
-                            }
-                        }
-                    }
-                    .launchIn(this)
-
-                // deviceItemUpdateRequest is emitted when a bluetooth callback is called, re-fetch
-                // the device item list and animate the progress bar.
-                merge(
-                        deviceItemInteractor.deviceItemUpdateRequest,
-                        audioModeInteractor.isOngoingCall,
-                        bluetoothDeviceMetadataInteractor.metadataUpdate,
-                        if (
-                            audioSharingInteractor.audioSharingAvailable() &&
-                                audioSharingInteractor.qsDialogImprovementAvailable()
-                        ) {
-                            audioSharingInteractor.audioSourceStateUpdate
-                        } else {
-                            emptyFlow()
-                        },
-                    )
-                    .onEach {
-                        contentManager.animateProgressBar(true)
-                        updateDeviceItemJob?.cancel()
-                        updateDeviceItemJob = launch {
-                            deviceItemInteractor.updateDeviceItems(
-                                context,
-                                DeviceFetchTrigger.BLUETOOTH_CALLBACK_RECEIVED,
-                            )
-                        }
-                    }
-                    .launchIn(this)
-
-                if (audioSharingInteractor.audioSharingAvailable()) {
-                    if (audioSharingInteractor.qsDialogImprovementAvailable()) {
-                        launch { audioSharingInteractor.handleAudioSourceWhenReady() }
-                    }
-
-                    audioSharingButtonViewModelFactory.create().run {
-                        audioSharingButtonStateUpdate
-                            .onEach {
-                                when (it) {
-                                    is AudioSharingButtonState.Visible -> {
-                                        contentManager.onAudioSharingButtonUpdated(
-                                            VISIBLE,
-                                            context.getString(it.resId),
-                                            it.isActive,
-                                        )
-                                    }
-                                    is AudioSharingButtonState.Gone -> {
-                                        contentManager.onAudioSharingButtonUpdated(
-                                            GONE,
-                                            label = null,
-                                            isActive = false,
-                                        )
-                                    }
-                                }
-                            }
-                            .launchIn(this@launch)
-                        launch { activate() }
-                    }
-                }
-
-                // bluetoothStateUpdate is emitted when bluetooth on/off state is changed, re-fetch
-                // the device item list.
-                bluetoothStateInteractor.bluetoothStateUpdate
-                    .onEach {
-                        contentManager.onBluetoothStateUpdated(
-                            it,
-                            UiProperties.build(it, isAutoOnToggleFeatureAvailable()),
-                        )
-                        updateDeviceItemJob?.cancel()
-                        updateDeviceItemJob = launch {
-                            deviceItemInteractor.updateDeviceItems(
-                                context,
-                                DeviceFetchTrigger.BLUETOOTH_STATE_CHANGE_RECEIVED,
-                            )
-                        }
-                    }
-                    .launchIn(this)
-
-                // bluetoothStateToggle is emitted when user toggles the bluetooth state switch,
-                // send the new value to the bluetoothStateInteractor and animate the progress bar.
-                contentManager.bluetoothStateToggle
-                    .filterNotNull()
-                    .onEach {
-                        contentManager.animateProgressBar(true)
-                        bluetoothStateInteractor.setBluetoothEnabled(it)
-                    }
-                    .launchIn(this)
-
-                // deviceItemClick is emitted when user clicked on a device item.
-                contentManager.deviceItemClick
-                    .filterNotNull()
-                    .onEach {
-                        when (it.target) {
-                            DeviceItemClick.Target.ENTIRE_ROW -> {
-                                deviceItemActionInteractor.onClick(it.deviceItem, dialog)
-                                logger.logDeviceClick(
-                                    it.deviceItem.cachedBluetoothDevice.address,
-                                    it.deviceItem.type,
-                                )
-                            }
-
-                            DeviceItemClick.Target.ACTION_ICON -> {
-                                deviceItemActionInteractor.onActionIconClick(it.deviceItem) { intent
-                                    ->
-                                    startSettingsActivity(intent, it.clickedView)
-                                }
-                            }
-                        }
-                    }
-                    .launchIn(this)
-
-                // contentHeight is emitted when the dialog is dismissed.
-                contentManager.contentHeight
-                    .filterNotNull()
-                    .onEach {
-                        withContext(backgroundDispatcher) {
-                            sharedPreferences.edit().putInt(CONTENT_HEIGHT_PREF_KEY, it).apply()
-                        }
-                    }
-                    .launchIn(this)
-
-                if (isAutoOnToggleFeatureAvailable()) {
-                    // bluetoothAutoOnUpdate is emitted when bluetooth auto on on/off state is
-                    // changed.
-                    bluetoothAutoOnInteractor.isEnabled
-                        .onEach {
-                            contentManager.onBluetoothAutoOnUpdated(
-                                it,
-                                if (it) R.string.turn_on_bluetooth_auto_info_enabled
-                                else R.string.turn_on_bluetooth_auto_info_disabled,
-                            )
-                        }
-                        .launchIn(this)
-
-                    // bluetoothAutoOnToggle is emitted when user toggles the bluetooth auto on
-                    // switch, send the new value to the bluetoothAutoOnInteractor.
-                    contentManager.bluetoothAutoOnToggle
-                        .filterNotNull()
-                        .onEach { bluetoothAutoOnInteractor.setEnabled(it) }
-                        .launchIn(this)
-                }
-
-                produce<Unit> { awaitClose { dialog?.cancel() } }
+                contentManager = createContentManager()
+                contentManager.bind(view)
+                contentManager.start()
+                updateDetailsUI(context = view.context, dialog = null)
             }
     }
 
+    /** Shows the bluetooth dialog. */
+    fun showDialog(expandable: Expandable?) {
+        // If `QsDetailedView` is enabled, it should show the details view.
+        QsDetailedView.assertInLegacyMode()
+
+        cancelJob()
+
+        job =
+            coroutineScope.launch(context = mainDispatcher) {
+                val dialogDelegate = createBluetoothTileDialog()
+                val dialog = dialogDelegate.createDialog()
+
+                val controller =
+                    expandable?.dialogTransitionController(
+                        DialogCuj(
+                            InteractionJankMonitor.CUJ_SHADE_DIALOG_OPEN,
+                            INTERACTION_JANK_TAG,
+                        )
+                    )
+                controller?.let {
+                    dialogTransitionAnimator.show(dialog, it, animateBackgroundBoundsChange = true)
+                } ?: dialog.show()
+                // contentManager is created after dialog.show
+                contentManager = dialogDelegate.contentManager
+                updateDetailsUI(dialog.context, dialog)
+            }
+    }
+
+    /** Unbinds the details view when it goes away. */
+    fun unbindDetailsView() {
+        cancelJob()
+        contentManager.releaseView()
+    }
+
+    private suspend fun updateDetailsUI(context: Context, dialog: SystemUIDialog?) {
+        coroutineScope {
+            var updateDeviceItemJob: Job?
+            var updateDialogUiJob: Job? = null
+
+            updateDeviceItemJob = launch {
+                deviceItemInteractor.updateDeviceItems(context, DeviceFetchTrigger.FIRST_LOAD)
+            }
+
+            // deviceItemUpdate is emitted when device item list is done fetching, update UI and
+            // stop the progress bar.
+            combine(deviceItemInteractor.deviceItemUpdate, deviceItemInteractor.showSeeAllUpdate) {
+                    deviceItem,
+                    showSeeAll ->
+                    updateDialogUiJob?.cancel()
+                    updateDialogUiJob = launch {
+                        contentManager.apply {
+                            onDeviceItemUpdated(
+                                deviceItem,
+                                showSeeAll,
+                                showPairNewDevice = bluetoothStateInteractor.isBluetoothEnabled(),
+                            )
+                            animateProgressBar(false)
+                        }
+                    }
+                }
+                .launchIn(this)
+
+            // deviceItemUpdateRequest is emitted when a bluetooth callback is called, re-fetch
+            // the device item list and animate the progress bar.
+            merge(
+                    deviceItemInteractor.deviceItemUpdateRequest,
+                    audioModeInteractor.isOngoingCall,
+                    bluetoothDeviceMetadataInteractor.metadataUpdate,
+                    if (
+                        audioSharingInteractor.audioSharingAvailable() &&
+                            audioSharingInteractor.qsDialogImprovementAvailable()
+                    ) {
+                        audioSharingInteractor.audioSourceStateUpdate
+                    } else {
+                        emptyFlow()
+                    },
+                )
+                .onEach {
+                    contentManager.animateProgressBar(true)
+                    updateDeviceItemJob?.cancel()
+                    updateDeviceItemJob = launch {
+                        deviceItemInteractor.updateDeviceItems(
+                            context,
+                            DeviceFetchTrigger.BLUETOOTH_CALLBACK_RECEIVED,
+                        )
+                    }
+                }
+                .launchIn(this)
+
+            if (audioSharingInteractor.audioSharingAvailable()) {
+                if (audioSharingInteractor.qsDialogImprovementAvailable()) {
+                    launch { audioSharingInteractor.handleAudioSourceWhenReady() }
+                }
+
+                audioSharingButtonViewModelFactory.create().run {
+                    audioSharingButtonStateUpdate
+                        .onEach {
+                            when (it) {
+                                is AudioSharingButtonState.Visible -> {
+                                    contentManager.onAudioSharingButtonUpdated(
+                                        VISIBLE,
+                                        context.getString(it.resId),
+                                        it.isActive,
+                                    )
+                                }
+                                is AudioSharingButtonState.Gone -> {
+                                    contentManager.onAudioSharingButtonUpdated(
+                                        GONE,
+                                        label = null,
+                                        isActive = false,
+                                    )
+                                }
+                            }
+                        }
+                        .launchIn(this@coroutineScope)
+                    launch { activate() }
+                }
+            }
+
+            // bluetoothStateUpdate is emitted when bluetooth on/off state is changed, re-fetch
+            // the device item list.
+            bluetoothStateInteractor.bluetoothStateUpdate
+                .onEach {
+                    contentManager.onBluetoothStateUpdated(
+                        it,
+                        UiProperties.build(it, isAutoOnToggleFeatureAvailable()),
+                    )
+                    updateDeviceItemJob?.cancel()
+                    updateDeviceItemJob = launch {
+                        deviceItemInteractor.updateDeviceItems(
+                            context,
+                            DeviceFetchTrigger.BLUETOOTH_STATE_CHANGE_RECEIVED,
+                        )
+                    }
+                }
+                .launchIn(this)
+
+            // bluetoothStateToggle is emitted when user toggles the bluetooth state switch,
+            // send the new value to the bluetoothStateInteractor and animate the progress bar.
+            contentManager.bluetoothStateToggle
+                .filterNotNull()
+                .onEach {
+                    contentManager.animateProgressBar(true)
+                    bluetoothStateInteractor.setBluetoothEnabled(it)
+                }
+                .launchIn(this)
+
+            // deviceItemClick is emitted when user clicked on a device item.
+            contentManager.deviceItemClick
+                .filterNotNull()
+                .onEach {
+                    when (it.target) {
+                        DeviceItemClick.Target.ENTIRE_ROW -> {
+                            deviceItemActionInteractor.onClick(it.deviceItem, dialog)
+                            logger.logDeviceClick(
+                                it.deviceItem.cachedBluetoothDevice.address,
+                                it.deviceItem.type,
+                            )
+                        }
+
+                        DeviceItemClick.Target.ACTION_ICON -> {
+                            deviceItemActionInteractor.onActionIconClick(it.deviceItem) { intent ->
+                                startSettingsActivity(intent, it.clickedView)
+                            }
+                        }
+                    }
+                }
+                .launchIn(this)
+
+            // contentHeight is emitted when the dialog is dismissed.
+            contentManager.contentHeight
+                .filterNotNull()
+                .onEach {
+                    withContext(backgroundDispatcher) {
+                        sharedPreferences.edit().putInt(CONTENT_HEIGHT_PREF_KEY, it).apply()
+                    }
+                }
+                .launchIn(this)
+
+            if (isAutoOnToggleFeatureAvailable()) {
+                // bluetoothAutoOnUpdate is emitted when bluetooth auto on on/off state is
+                // changed.
+                bluetoothAutoOnInteractor.isEnabled
+                    .onEach {
+                        contentManager.onBluetoothAutoOnUpdated(
+                            it,
+                            if (it) R.string.turn_on_bluetooth_auto_info_enabled
+                            else R.string.turn_on_bluetooth_auto_info_disabled,
+                        )
+                    }
+                    .launchIn(this)
+
+                // bluetoothAutoOnToggle is emitted when user toggles the bluetooth auto on
+                // switch, send the new value to the bluetoothAutoOnInteractor.
+                contentManager.bluetoothAutoOnToggle
+                    .filterNotNull()
+                    .onEach { bluetoothAutoOnInteractor.setEnabled(it) }
+                    .launchIn(this)
+            }
+            produce<Unit> { awaitClose { dialog?.cancel() } }
+        }
+    }
+
     private suspend fun createBluetoothTileDialog(): BluetoothTileDialogDelegate {
         return bluetoothDialogDelegateFactory.create(
             getUiProperties(),
diff --git a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegate.kt b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegate.kt
index c55f605..bac6854 100644
--- a/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegate.kt
+++ b/packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothTileDialogDelegate.kt
@@ -51,7 +51,7 @@
             initialUiProperties: BluetoothDetailsContentViewModel.UiProperties,
             cachedContentHeight: Int,
             dialogCallback: BluetoothTileDialogCallback,
-            dimissListener: Runnable,
+            dismissListener: Runnable,
         ): BluetoothTileDialogDelegate
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractor.kt b/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractor.kt
index 7039d5e..75503e8 100644
--- a/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractor.kt
@@ -147,9 +147,7 @@
 
     /** The scene to show when bouncer is dismissed. */
     val dismissDestination: Flow<SceneKey> =
-        sceneBackInteractor.backScene
-            .filter { it != Scenes.Bouncer }
-            .map { it ?: Scenes.Lockscreen }
+        sceneBackInteractor.backScene.map { it ?: Scenes.Lockscreen }
 
     /** Notifies that the user has places down a pointer, not necessarily dragging just yet. */
     fun onDown() {
diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/ui/binder/BouncerViewBinder.kt b/packages/SystemUI/src/com/android/systemui/bouncer/ui/binder/BouncerViewBinder.kt
index 116c941..7f26831 100644
--- a/packages/SystemUI/src/com/android/systemui/bouncer/ui/binder/BouncerViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/bouncer/ui/binder/BouncerViewBinder.kt
@@ -10,7 +10,7 @@
 import com.android.systemui.bouncer.shared.flag.ComposeBouncerFlags
 import com.android.systemui.bouncer.ui.BouncerDialogFactory
 import com.android.systemui.bouncer.ui.viewmodel.BouncerContainerViewModel
-import com.android.systemui.bouncer.ui.viewmodel.BouncerSceneContentViewModel
+import com.android.systemui.bouncer.ui.viewmodel.BouncerOverlayContentViewModel
 import com.android.systemui.bouncer.ui.viewmodel.KeyguardBouncerViewModel
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.dagger.qualifiers.Application
@@ -46,7 +46,7 @@
     val keyguardInteractor: KeyguardInteractor,
     val selectedUserInteractor: SelectedUserInteractor,
     val legacyInteractor: PrimaryBouncerInteractor,
-    val viewModelFactory: BouncerSceneContentViewModel.Factory,
+    val viewModelFactory: BouncerOverlayContentViewModel.Factory,
     val dialogFactory: BouncerDialogFactory,
     val bouncerContainerViewModelFactory: BouncerContainerViewModel.Factory,
 )
diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/ui/binder/ComposeBouncerViewBinder.kt b/packages/SystemUI/src/com/android/systemui/bouncer/ui/binder/ComposeBouncerViewBinder.kt
index 2dce284..33cebf7 100644
--- a/packages/SystemUI/src/com/android/systemui/bouncer/ui/binder/ComposeBouncerViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/bouncer/ui/binder/ComposeBouncerViewBinder.kt
@@ -6,11 +6,12 @@
 import androidx.activity.setViewTreeOnBackPressedDispatcherOwner
 import androidx.compose.ui.platform.ComposeView
 import androidx.lifecycle.Lifecycle
+import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor
 import com.android.systemui.bouncer.ui.BouncerDialogFactory
 import com.android.systemui.bouncer.ui.composable.BouncerContainer
 import com.android.systemui.bouncer.ui.viewmodel.BouncerContainerViewModel
-import com.android.systemui.bouncer.ui.viewmodel.BouncerSceneContentViewModel
+import com.android.systemui.bouncer.ui.viewmodel.BouncerOverlayContentViewModel
 import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
 import com.android.systemui.lifecycle.WindowLifecycleState
 import com.android.systemui.lifecycle.repeatWhenAttached
@@ -20,7 +21,6 @@
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Job
 import kotlinx.coroutines.awaitCancellation
-import com.android.app.tracing.coroutines.launchTraced as launch
 
 /** View binder responsible for binding the compose version of the bouncer. */
 object ComposeBouncerViewBinder {
@@ -32,7 +32,7 @@
         legacyInteractor: PrimaryBouncerInteractor,
         keyguardInteractor: KeyguardInteractor,
         selectedUserInteractor: SelectedUserInteractor,
-        viewModelFactory: BouncerSceneContentViewModel.Factory,
+        viewModelFactory: BouncerOverlayContentViewModel.Factory,
         dialogFactory: BouncerDialogFactory,
         bouncerContainerViewModelFactory: BouncerContainerViewModel.Factory,
     ) {
diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/ui/composable/BouncerContainer.kt b/packages/SystemUI/src/com/android/systemui/bouncer/ui/composable/BouncerContainer.kt
index c59c681..204eb3e 100644
--- a/packages/SystemUI/src/com/android/systemui/bouncer/ui/composable/BouncerContainer.kt
+++ b/packages/SystemUI/src/com/android/systemui/bouncer/ui/composable/BouncerContainer.kt
@@ -24,14 +24,14 @@
 import androidx.compose.ui.Modifier
 import com.android.compose.theme.PlatformTheme
 import com.android.systemui.bouncer.ui.BouncerDialogFactory
-import com.android.systemui.bouncer.ui.viewmodel.BouncerSceneContentViewModel
+import com.android.systemui.bouncer.ui.viewmodel.BouncerOverlayContentViewModel
 import com.android.systemui.compose.modifiers.sysuiResTag
 import com.android.systemui.lifecycle.rememberViewModel
 
 /** Container that includes the compose bouncer and is meant to be included in legacy keyguard. */
 @Composable
 fun BouncerContainer(
-    viewModelFactory: BouncerSceneContentViewModel.Factory,
+    viewModelFactory: BouncerOverlayContentViewModel.Factory,
     dialogFactory: BouncerDialogFactory,
 ) {
     PlatformTheme {
diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerSceneContentViewModel.kt b/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerOverlayContentViewModel.kt
similarity index 98%
rename from packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerSceneContentViewModel.kt
rename to packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerOverlayContentViewModel.kt
index 5deb751..b944d1a 100644
--- a/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerSceneContentViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerOverlayContentViewModel.kt
@@ -51,8 +51,8 @@
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.map
 
-/** Models UI state for the content of the bouncer scene. */
-class BouncerSceneContentViewModel
+/** Models UI state for the content of the bouncer overlay. */
+class BouncerOverlayContentViewModel
 @AssistedInject
 constructor(
     @Application private val applicationContext: Context,
@@ -445,6 +445,6 @@
 
     @AssistedFactory
     interface Factory {
-        fun create(): BouncerSceneContentViewModel
+        fun create(): BouncerOverlayContentViewModel
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerUserActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerUserActionsViewModel.kt
index f50a2ab..aafc0e1 100644
--- a/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerUserActionsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerUserActionsViewModel.kt
@@ -20,29 +20,24 @@
 import com.android.compose.animation.scene.Swipe
 import com.android.compose.animation.scene.UserAction
 import com.android.compose.animation.scene.UserActionResult
-import com.android.systemui.bouncer.domain.interactor.BouncerInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
-import kotlinx.coroutines.flow.map
 
 /**
  * Models UI state for user actions that can lead to navigation to other scenes when showing the
- * bouncer scene.
+ * bouncer overlay.
  */
-class BouncerUserActionsViewModel
-@AssistedInject
-constructor(private val bouncerInteractor: BouncerInteractor) : UserActionsViewModel() {
+class BouncerUserActionsViewModel @AssistedInject constructor() : UserActionsViewModel() {
 
     override suspend fun hydrateActions(setActions: (Map<UserAction, UserActionResult>) -> Unit) {
-        bouncerInteractor.dismissDestination
-            .map { prevScene ->
-                mapOf(
-                    Back to UserActionResult(prevScene),
-                    Swipe.Down to UserActionResult(prevScene),
-                )
-            }
-            .collect { actions -> setActions(actions) }
+        setActions(
+            mapOf(
+                Back to UserActionResult.HideOverlay(Overlays.Bouncer),
+                Swipe.Down to UserActionResult.HideOverlay(Overlays.Bouncer),
+            )
+        )
     }
 
     @AssistedFactory
diff --git a/packages/SystemUI/src/com/android/systemui/common/shared/colors/SurfaceEffectColors.kt b/packages/SystemUI/src/com/android/systemui/common/shared/colors/SurfaceEffectColors.kt
index 7c2fc7f..5e8c21f9 100644
--- a/packages/SystemUI/src/com/android/systemui/common/shared/colors/SurfaceEffectColors.kt
+++ b/packages/SystemUI/src/com/android/systemui/common/shared/colors/SurfaceEffectColors.kt
@@ -20,12 +20,19 @@
 
 object SurfaceEffectColors {
     @JvmStatic
-    fun Resources.surfaceEffect0(): Int {
-        return getColor(com.android.internal.R.color.surface_effect_0)
+    fun surfaceEffect0(r: Resources): Int {
+        return r.getColor(com.android.internal.R.color.surface_effect_0)
     }
-
     @JvmStatic
-    fun Resources.surfaceEffect1(): Int {
-        return getColor(com.android.internal.R.color.surface_effect_1)
+    fun surfaceEffect1(r: Resources): Int {
+        return r.getColor(com.android.internal.R.color.surface_effect_1)
+    }
+    @JvmStatic
+    fun surfaceEffect2(r: Resources): Int {
+        return r.getColor(com.android.internal.R.color.surface_effect_2)
+    }
+    @JvmStatic
+    fun surfaceEffect3(r: Resources): Int {
+        return r.getColor(com.android.internal.R.color.surface_effect_3)
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/CommunalOngoingContentStartable.kt b/packages/SystemUI/src/com/android/systemui/communal/CommunalOngoingContentStartable.kt
index 48a6d9d..7765d00 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/CommunalOngoingContentStartable.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/CommunalOngoingContentStartable.kt
@@ -16,7 +16,9 @@
 
 package com.android.systemui.communal
 
+import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.systemui.CoreStartable
+import com.android.systemui.communal.dagger.CommunalModule.Companion.SHOW_UMO
 import com.android.systemui.communal.data.repository.CommunalMediaRepository
 import com.android.systemui.communal.data.repository.CommunalSmartspaceRepository
 import com.android.systemui.communal.domain.interactor.CommunalInteractor
@@ -24,8 +26,8 @@
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.dagger.qualifiers.Background
 import javax.inject.Inject
+import javax.inject.Named
 import kotlinx.coroutines.CoroutineScope
-import com.android.app.tracing.coroutines.launchTraced as launch
 
 @SysUISingleton
 class CommunalOngoingContentStartable
@@ -36,6 +38,7 @@
     private val communalMediaRepository: CommunalMediaRepository,
     private val communalSettingsInteractor: CommunalSettingsInteractor,
     private val communalSmartspaceRepository: CommunalSmartspaceRepository,
+    @Named(SHOW_UMO) private val showUmoOnHub: Boolean,
 ) : CoreStartable {
 
     override fun start() {
@@ -46,10 +49,14 @@
         bgScope.launch {
             communalInteractor.isCommunalEnabled.collect { enabled ->
                 if (enabled) {
-                    communalMediaRepository.startListening()
+                    if (showUmoOnHub) {
+                        communalMediaRepository.startListening()
+                    }
                     communalSmartspaceRepository.startListening()
                 } else {
-                    communalMediaRepository.stopListening()
+                    if (showUmoOnHub) {
+                        communalMediaRepository.stopListening()
+                    }
                     communalSmartspaceRepository.stopListening()
                 }
             }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalModule.kt b/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalModule.kt
index ff74162..bb3be53 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalModule.kt
@@ -105,6 +105,7 @@
         const val LOGGABLE_PREFIXES = "loggable_prefixes"
         const val LAUNCHER_PACKAGE = "launcher_package"
         const val SWIPE_TO_HUB = "swipe_to_hub"
+        const val SHOW_UMO = "show_umo"
 
         @Provides
         @Communal
@@ -150,5 +151,11 @@
         fun provideSwipeToHub(@Main resources: Resources): Boolean {
             return resources.getBoolean(R.bool.config_swipeToOpenGlanceableHub)
         }
+
+        @Provides
+        @Named(SHOW_UMO)
+        fun provideShowUmo(@Main resources: Resources): Boolean {
+            return resources.getBoolean(R.bool.config_showUmoOnHub)
+        }
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalSettingsRepositoryModule.kt b/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalSettingsRepositoryModule.kt
index 0f25225..c6708d4 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalSettingsRepositoryModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalSettingsRepositoryModule.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.communal.data.repository
 
 import com.android.systemui.Flags.glanceableHubBlurredBackground
+import com.android.systemui.Flags.glanceableHubV2
 import com.android.systemui.communal.shared.model.CommunalBackgroundType
 import dagger.Binds
 import dagger.Module
@@ -35,6 +36,10 @@
                 return CommunalBackgroundType.BLUR
             }
 
+            if (glanceableHubV2()) {
+                return CommunalBackgroundType.SCRIM
+            }
+
             return CommunalBackgroundType.ANIMATED
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/shared/model/CommunalBackgroundType.kt b/packages/SystemUI/src/com/android/systemui/communal/shared/model/CommunalBackgroundType.kt
index e1128ed..a84fa79 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/shared/model/CommunalBackgroundType.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/shared/model/CommunalBackgroundType.kt
@@ -17,10 +17,11 @@
 package com.android.systemui.communal.shared.model
 
 /** Models the types of background that can be shown on the hub. */
-enum class CommunalBackgroundType(val value: Int) {
-    STATIC(0),
-    STATIC_GRADIENT(1),
-    ANIMATED(2),
-    NONE(3),
-    BLUR(4),
+enum class CommunalBackgroundType(val value: Int, val opaque: Boolean) {
+    STATIC(value = 0, opaque = true),
+    STATIC_GRADIENT(value = 1, opaque = true),
+    ANIMATED(value = 2, opaque = true),
+    NONE(value = 3, opaque = false),
+    BLUR(value = 4, opaque = false),
+    SCRIM(value = 5, opaque = false),
 }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt
index 59beb1e..c8280d7 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalEditModeViewModel.kt
@@ -113,7 +113,7 @@
     val canShowEditMode =
         allOf(
                 keyguardTransitionInteractor.isFinishedIn(
-                    scene = Scenes.Gone,
+                    content = Scenes.Gone,
                     stateWithoutSceneContainer = KeyguardState.GONE,
                 ),
                 communalInteractor.editModeOpen,
diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalTransitionViewModel.kt
index 0cbbfd4..db5c7eb 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalTransitionViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalTransitionViewModel.kt
@@ -19,6 +19,7 @@
 import android.graphics.Color
 import com.android.systemui.communal.domain.interactor.CommunalInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
+import com.android.systemui.communal.domain.interactor.CommunalSettingsInteractor
 import com.android.systemui.communal.shared.model.CommunalScenes
 import com.android.systemui.communal.util.CommunalColors
 import com.android.systemui.dagger.SysUISingleton
@@ -40,6 +41,7 @@
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.filter
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.map
@@ -60,6 +62,7 @@
     glanceableHubToDreamTransitionViewModel: GlanceableHubToDreamingTransitionViewModel,
     communalInteractor: CommunalInteractor,
     private val communalSceneInteractor: CommunalSceneInteractor,
+    communalSettingsInteractor: CommunalSettingsInteractor,
     keyguardTransitionInteractor: KeyguardTransitionInteractor,
 ) {
     /**
@@ -146,13 +149,16 @@
             }
 
     val recentsBackgroundColor: Flow<Color?> =
-        combine(showCommunalFromOccluded, communalColors.backgroundColor) {
-            showCommunalFromOccluded,
-            backgroundColor ->
-            if (showCommunalFromOccluded) {
-                backgroundColor
-            } else {
-                null
+        combine(
+                showCommunalFromOccluded,
+                communalColors.backgroundColor,
+                communalSettingsInteractor.communalBackground,
+            ) { showCommunalFromOccluded, backgroundColor, backgroundType ->
+                if (showCommunalFromOccluded && backgroundType.opaque) {
+                    backgroundColor
+                } else {
+                    null
+                }
             }
-        }
+            .distinctUntilChanged()
 }
diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt
index be1d005..a1ff552 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt
@@ -20,6 +20,7 @@
 import com.android.compose.animation.scene.UserAction
 import com.android.compose.animation.scene.UserActionResult
 import com.android.systemui.deviceentry.domain.interactor.DeviceUnlockedInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
@@ -55,9 +56,11 @@
                         shadeModeInteractor.shadeMode,
                     ) { isDeviceUnlocked, shadeMode ->
                         buildList {
-                                val bouncerOrGone =
-                                    if (isDeviceUnlocked) Scenes.Gone else Scenes.Bouncer
-                                add(Swipe.Up to bouncerOrGone)
+                                if (isDeviceUnlocked) {
+                                    add(Swipe.Up to Scenes.Gone)
+                                } else {
+                                    add(Swipe.Up to Overlays.Bouncer)
+                                }
 
                                 add(Swipe.End to Scenes.Lockscreen)
 
diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalViewModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalViewModel.kt
index 6473b1c..d7859c9 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalViewModel.kt
@@ -168,7 +168,7 @@
     override val isCommunalContentFlowFrozen: Flow<Boolean> =
         allOf(
                 keyguardTransitionInteractor.isFinishedIn(
-                    scene = Scenes.Communal,
+                    content = Scenes.Communal,
                     stateWithoutSceneContainer = KeyguardState.GLANCEABLE_HUB,
                 ),
                 keyguardInteractor.isKeyguardOccluded,
@@ -204,7 +204,7 @@
     override val isFocusable: Flow<Boolean> =
         combine(
                 keyguardTransitionInteractor.isFinishedIn(
-                    scene = Scenes.Communal,
+                    content = Scenes.Communal,
                     stateWithoutSceneContainer = KeyguardState.GLANCEABLE_HUB,
                 ),
                 communalInteractor.isIdleOnCommunal,
diff --git a/packages/SystemUI/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepository.kt b/packages/SystemUI/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepository.kt
index 514242b4..69378b4 100644
--- a/packages/SystemUI/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepository.kt
@@ -20,6 +20,7 @@
 import android.content.Context
 import android.hardware.face.FaceManager
 import android.os.CancellationSignal
+import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.internal.logging.InstanceId
 import com.android.internal.logging.UiEventLogger
 import com.android.systemui.Dumpable
@@ -59,8 +60,8 @@
 import com.android.systemui.power.domain.interactor.PowerInteractor
 import com.android.systemui.scene.domain.interactor.SceneInteractor
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
-import com.android.systemui.scene.shared.model.Scenes.Bouncer
 import com.android.systemui.statusbar.phone.KeyguardBypassController
 import com.android.systemui.user.data.model.SelectionStatus
 import com.android.systemui.user.data.repository.UserRepository
@@ -87,7 +88,6 @@
 import kotlinx.coroutines.flow.merge
 import kotlinx.coroutines.flow.onEach
 import kotlinx.coroutines.flow.stateIn
-import com.android.app.tracing.coroutines.launchTraced as launch
 import kotlinx.coroutines.withContext
 
 /**
@@ -138,7 +138,7 @@
 
 private data class AuthenticationRequest(
     val uiEvent: FaceAuthUiEvent,
-    val fallbackToDetection: Boolean
+    val fallbackToDetection: Boolean,
 )
 
 @SysUISingleton
@@ -248,11 +248,11 @@
                     Pair(isLockedOut.isFalse(), "isNotInLockOutState"),
                     Pair(
                         keyguardRepository.isKeyguardDismissible.isFalse(),
-                        "keyguardIsNotDismissible"
+                        "keyguardIsNotDismissible",
                     ),
                     Pair(
                         biometricSettingsRepository.isFaceAuthCurrentlyAllowed,
-                        "isFaceAuthCurrentlyAllowed"
+                        "isFaceAuthCurrentlyAllowed",
                     ),
                     Pair(isAuthenticated.isFalse(), "faceNotAuthenticated"),
                 )
@@ -273,15 +273,15 @@
                         biometricSettingsRepository.isFaceAuthCurrentlyAllowed
                             .isFalse()
                             .or(keyguardRepository.isKeyguardDismissible),
-                        "faceAuthIsNotCurrentlyAllowedOrCurrentUserIsTrusted"
+                        "faceAuthIsNotCurrentlyAllowedOrCurrentUserIsTrusted",
                     ),
                     // We don't want to run face detect if fingerprint can be used to unlock the
                     // device
                     // but it's not possible to authenticate with FP from the bouncer (UDFPS)
                     Pair(
                         and(isUdfps(), deviceEntryFingerprintAuthRepository.isRunning).isFalse(),
-                        "udfpsAuthIsNotPossibleAnymore"
-                    )
+                        "udfpsAuthIsNotPossibleAnymore",
+                    ),
                 )
                 .andAllFlows("canFaceDetectRun", faceDetectLog)
                 .flowOn(backgroundDispatcher)
@@ -318,7 +318,7 @@
                 powerInteractor.isAsleep,
                 combine(
                     keyguardTransitionInteractor.isFinishedIn(
-                        scene = Scenes.Gone,
+                        content = Scenes.Gone,
                         stateWithoutSceneContainer = KeyguardState.GONE,
                     ),
                     keyguardInteractor.statusBarState,
@@ -350,7 +350,7 @@
         faceAuthLogger.clearingPendingAuthRequest(
             loggingContext,
             pendingAuthenticateRequest.value?.uiEvent,
-            pendingAuthenticateRequest.value?.fallbackToDetection
+            pendingAuthenticateRequest.value?.fallbackToDetection,
         )
         pendingAuthenticateRequest.value = null
     }
@@ -387,7 +387,7 @@
             ),
             Pair(
                 biometricSettingsRepository.isFaceAuthEnrolledAndEnabled,
-                "isFaceAuthEnrolledAndEnabled"
+                "isFaceAuthEnrolledAndEnabled",
             ),
             Pair(
                 if (SceneContainerFlag.isEnabled) {
@@ -399,13 +399,13 @@
                 } else {
                     keyguardRepository.isKeyguardGoingAway.isFalse()
                 },
-                "keyguardNotGoingAway"
+                "keyguardNotGoingAway",
             ),
             Pair(
                 keyguardTransitionInteractor
                     .isInTransitionWhere(toStatePredicate = KeyguardState::deviceIsAsleepInState)
                     .isFalse(),
-                "deviceNotTransitioningToAsleepState"
+                "deviceNotTransitioningToAsleepState",
             ),
             Pair(
                 keyguardInteractor.isSecureCameraActive
@@ -413,29 +413,31 @@
                     .or(
                         alternateBouncerInteractor.isVisible.or(
                             if (SceneContainerFlag.isEnabled) {
-                                sceneInteractor.get().transitionState.map { it.isIdle(Bouncer) }
+                                sceneInteractor.get().transitionState.map {
+                                    it.isIdle(overlay = Overlays.Bouncer)
+                                }
                             } else {
                                 keyguardInteractor.primaryBouncerShowing
                             }
                         )
                     ),
-                "secureCameraNotActiveOrAnyBouncerIsShowing"
+                "secureCameraNotActiveOrAnyBouncerIsShowing",
             ),
             Pair(
                 biometricSettingsRepository.isFaceAuthSupportedInCurrentPosture,
-                "isFaceAuthSupportedInCurrentPosture"
+                "isFaceAuthSupportedInCurrentPosture",
             ),
             Pair(
                 biometricSettingsRepository.isCurrentUserInLockdown.isFalse(),
-                "userHasNotLockedDownDevice"
+                "userHasNotLockedDownDevice",
             ),
             Pair(keyguardRepository.isKeyguardShowing, "isKeyguardShowing"),
             Pair(
                 userRepository.selectedUser
                     .map { it.selectionStatus == SelectionStatus.SELECTION_IN_PROGRESS }
                     .isFalse(),
-                "userSwitchingInProgress"
-            )
+                "userSwitchingInProgress",
+            ),
         )
     }
 
@@ -486,7 +488,7 @@
                     errorCode,
                     errString,
                     errorStatus.isLockoutError(),
-                    errorStatus.isCancellationError()
+                    errorStatus.isCancellationError(),
                 )
                 onFaceAuthRequestCompleted()
             }
@@ -524,7 +526,7 @@
                         faceAuthLogger.attemptingRetryAfterHardwareError(retryCount)
                         requestAuthenticate(
                             FaceAuthUiEvent.FACE_AUTH_TRIGGERED_RETRY_AFTER_HW_UNAVAILABLE,
-                            fallbackToDetection = false
+                            fallbackToDetection = false,
                         )
                     }
                 }
@@ -551,7 +553,7 @@
         if (pendingAuthenticateRequest.value != null) {
             faceAuthLogger.ignoredFaceAuthTrigger(
                 pendingAuthenticateRequest.value?.uiEvent,
-                "Previously queued trigger skipped due to new request"
+                "Previously queued trigger skipped due to new request",
             )
         }
         faceAuthLogger.queueingRequest(uiEvent, fallbackToDetection)
@@ -574,7 +576,7 @@
                         pending?.uiEvent,
                         canRunAuth,
                         canRunDetect,
-                        cancelInProgress
+                        cancelInProgress,
                     )
                     return@combine null
                 } else {
@@ -613,7 +615,7 @@
                     0,
                     null,
                     keyguardSessionId,
-                    uiEvent.extraInfo
+                    uiEvent.extraInfo,
                 )
                 faceAuthLogger.authenticating(uiEvent)
                 faceManager?.authenticate(
@@ -624,28 +626,28 @@
                     SysUiFaceAuthenticateOptions(
                             currentUserId,
                             uiEvent,
-                            wakeReason = uiEvent.extraInfo
+                            wakeReason = uiEvent.extraInfo,
                         )
-                        .toFaceAuthenticateOptions()
+                        .toFaceAuthenticateOptions(),
                 )
             }
         } else if (canRunDetection.value) {
             if (fallbackToDetection) {
                 faceAuthLogger.ignoredFaceAuthTrigger(
                     uiEvent,
-                    "face auth gating check is false, falling back to detection."
+                    "face auth gating check is false, falling back to detection.",
                 )
                 detect(uiEvent)
             } else {
                 faceAuthLogger.ignoredFaceAuthTrigger(
                     uiEvent = uiEvent,
-                    "face auth gating check is false and fallback to detection is not requested"
+                    "face auth gating check is false and fallback to detection is not requested",
                 )
             }
         } else {
             faceAuthLogger.ignoredFaceAuthTrigger(
                 uiEvent,
-                "face auth & detect gating check is false"
+                "face auth & detect gating check is false",
             )
         }
     }
@@ -669,7 +671,7 @@
                     it,
                     detectionCallback,
                     SysUiFaceAuthenticateOptions(currentUserId, uiEvent, uiEvent.extraInfo)
-                        .toFaceAuthenticateOptions()
+                        .toFaceAuthenticateOptions(),
                 )
             }
         }
@@ -695,7 +697,7 @@
                     _isAuthRunning.value,
                     _isLockedOut.value,
                     cancellationInProgress.value,
-                    pendingAuthenticateRequest.value?.uiEvent
+                    pendingAuthenticateRequest.value?.uiEvent,
                 )
                 _authenticationStatus.value = ErrorFaceAuthenticationStatus.cancelNotReceivedError()
                 onFaceAuthRequestCompleted()
@@ -759,7 +761,7 @@
 
 private fun List<Pair<Flow<Boolean>, String>>.andAllFlows(
     combinedLoggingInfo: String,
-    tableLogBuffer: TableLogBuffer
+    tableLogBuffer: TableLogBuffer,
 ): Flow<Boolean> {
     return combine(this.map { it.first }) {
         val combinedValue =
diff --git a/packages/SystemUI/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntryInteractor.kt b/packages/SystemUI/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntryInteractor.kt
index 5fc924b1..58310e9 100644
--- a/packages/SystemUI/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntryInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntryInteractor.kt
@@ -30,6 +30,7 @@
 import com.android.systemui.scene.domain.SceneFrameworkTableLog
 import com.android.systemui.scene.domain.interactor.SceneBackInteractor
 import com.android.systemui.scene.domain.interactor.SceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.util.kotlin.pairwise
 import com.android.systemui.utils.coroutines.flow.mapLatestConflated
@@ -238,8 +239,8 @@
                 if (alternateBouncerInteractor.canShowAlternateBouncer.value) {
                     alternateBouncerInteractor.forceShow()
                 } else {
-                    sceneInteractor.changeScene(
-                        toScene = Scenes.Bouncer,
+                    sceneInteractor.showOverlay(
+                        overlay = Overlays.Bouncer,
                         loggingReason = "request to unlock device while authentication required",
                     )
                 }
diff --git a/packages/SystemUI/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntrySourceInteractor.kt b/packages/SystemUI/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntrySourceInteractor.kt
index eb82c7d..5de2ed2 100644
--- a/packages/SystemUI/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntrySourceInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/deviceentry/domain/interactor/DeviceEntrySourceInteractor.kt
@@ -33,6 +33,7 @@
 import com.android.systemui.scene.domain.interactor.SceneContainerOcclusionInteractor
 import com.android.systemui.scene.domain.interactor.SceneInteractor
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_DISMISS_BOUNCER
 import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_NONE
@@ -84,14 +85,14 @@
     sceneInteractor: SceneInteractor,
     dumpManager: DumpManager,
 ) : FlowDumperImpl(dumpManager) {
-    private val isShowingBouncerScene: Flow<Boolean> =
+    private val isShowingBouncerOverlay: Flow<Boolean> =
         sceneInteractor.transitionState
             .map { transitionState ->
-                transitionState.isIdle(Scenes.Bouncer) ||
-                    transitionState.isTransitioning(null, Scenes.Bouncer)
+                transitionState.isIdle(overlay = Overlays.Bouncer) ||
+                    transitionState.isTransitioning(null, Overlays.Bouncer)
             }
             .distinctUntilChanged()
-            .dumpWhileCollecting("isShowingBouncerScene")
+            .dumpWhileCollecting("isShowingBouncerOverlay")
 
     private val isUnlockedWithStrongFaceUnlock =
         deviceEntryFaceAuthInteractor.authenticationStatus
@@ -115,14 +116,14 @@
                 isUnlockedWithStrongFaceUnlock,
                 sceneContainerOcclusionInteractor.isOccludingActivityShown,
                 sceneInteractor.currentScene,
-                isShowingBouncerScene,
+                isShowingBouncerOverlay,
             ) {
                 isAlternateBouncerVisible,
                 isBypassAvailable,
                 isFaceStrongBiometric,
                 isOccluded,
                 currentScene,
-                isShowingBouncerScene ->
+                isShowingBouncerOverlay ->
                 val isUnlockingAllowed =
                     keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(isFaceStrongBiometric)
                 val bypass = isBypassAvailable || authController.isUdfpsFingerDown()
@@ -140,7 +141,7 @@
 
                     isUnlockingAllowed && isOccluded -> MODE_UNLOCK_COLLAPSING
 
-                    (isShowingBouncerScene || isAlternateBouncerVisible) && isUnlockingAllowed ->
+                    (isShowingBouncerOverlay || isAlternateBouncerVisible) && isUnlockingAllowed ->
                         MODE_DISMISS_BOUNCER
 
                     isUnlockingAllowed && bypass -> MODE_UNLOCK_COLLAPSING
@@ -158,14 +159,16 @@
                 alternateBouncerInteractor.isVisible,
                 authenticationInteractor.authenticationMethod,
                 sceneInteractor.currentScene,
+                sceneInteractor.currentOverlays,
                 isUnlockedWithStrongFingerprintUnlock,
-                isShowingBouncerScene,
+                isShowingBouncerOverlay,
             ) {
                 alternateBouncerVisible,
                 authenticationMethod,
                 currentScene,
+                currentOverlays,
                 isFingerprintStrongBiometric,
-                isShowingBouncerScene ->
+                isShowingBouncerOverlay ->
                 val unlockingAllowed =
                     keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(
                         isFingerprintStrongBiometric
@@ -185,11 +188,12 @@
                     unlockingAllowed && currentScene == Scenes.Dream ->
                         MODE_WAKE_AND_UNLOCK_FROM_DREAM
 
-                    isShowingBouncerScene && unlockingAllowed -> MODE_DISMISS_BOUNCER
+                    isShowingBouncerOverlay && unlockingAllowed -> MODE_DISMISS_BOUNCER
 
                     unlockingAllowed -> MODE_UNLOCK_COLLAPSING
 
-                    currentScene != Scenes.Bouncer && !alternateBouncerVisible -> MODE_SHOW_BOUNCER
+                    Overlays.Bouncer !in currentOverlays && !alternateBouncerVisible ->
+                        MODE_SHOW_BOUNCER
 
                     else -> MODE_NONE
                 }
diff --git a/packages/SystemUI/src/com/android/systemui/deviceentry/domain/interactor/SystemUIDeviceEntryFaceAuthInteractor.kt b/packages/SystemUI/src/com/android/systemui/deviceentry/domain/interactor/SystemUIDeviceEntryFaceAuthInteractor.kt
index 4b90e1d..0d01054 100644
--- a/packages/SystemUI/src/com/android/systemui/deviceentry/domain/interactor/SystemUIDeviceEntryFaceAuthInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/deviceentry/domain/interactor/SystemUIDeviceEntryFaceAuthInteractor.kt
@@ -50,6 +50,7 @@
 import com.android.systemui.res.R
 import com.android.systemui.scene.domain.interactor.SceneInteractor
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.user.data.model.SelectionStatus
 import com.android.systemui.user.data.repository.UserRepository
@@ -237,7 +238,7 @@
 
     private val isBouncerVisible: Flow<Boolean> by lazy {
         if (SceneContainerFlag.isEnabled) {
-            sceneInteractor.get().transitionState.map { it.isIdle(Scenes.Bouncer) }
+            sceneInteractor.get().transitionState.map { it.isIdle(Overlays.Bouncer) }
         } else {
             primaryBouncerInteractor.get().isShowing
         }
diff --git a/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayContainerViewController.java b/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayContainerViewController.java
index 3dd2561..599c945 100644
--- a/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayContainerViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayContainerViewController.java
@@ -51,7 +51,7 @@
 import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor;
 import com.android.systemui.keyguard.shared.model.KeyguardState;
 import com.android.systemui.res.R;
-import com.android.systemui.scene.shared.model.Scenes;
+import com.android.systemui.scene.shared.model.Overlays;
 import com.android.systemui.shade.ShadeExpansionChangeEvent;
 import com.android.systemui.shade.domain.interactor.ShadeInteractor;
 import com.android.systemui.statusbar.BlurUtils;
@@ -281,7 +281,7 @@
                     mView,
                     FlowKt.distinctUntilChanged(combineFlows(
                             mKeyguardTransitionInteractor.isFinishedIn(
-                                    Scenes.Bouncer, KeyguardState.PRIMARY_BOUNCER),
+                                    Overlays.Bouncer, KeyguardState.PRIMARY_BOUNCER),
                             mKeyguardTransitionInteractor.isFinishedIn(
                                     KeyguardState.ALTERNATE_BOUNCER),
                             mShadeInteractor.isAnyExpanded(),
diff --git a/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayService.java b/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayService.java
index 3132ec2..a2bcb98 100644
--- a/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayService.java
+++ b/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayService.java
@@ -47,7 +47,7 @@
 import androidx.lifecycle.ViewModelStore;
 
 import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
-import com.android.compose.animation.scene.SceneKey;
+import com.android.compose.animation.scene.OverlayKey;
 import com.android.internal.logging.UiEvent;
 import com.android.internal.logging.UiEventLogger;
 import com.android.internal.policy.PhoneWindow;
@@ -72,6 +72,7 @@
 import com.android.systemui.navigationbar.gestural.domain.TaskMatcher;
 import com.android.systemui.scene.domain.interactor.SceneInteractor;
 import com.android.systemui.scene.shared.flag.SceneContainerFlag;
+import com.android.systemui.scene.shared.model.Overlays;
 import com.android.systemui.scene.shared.model.Scenes;
 import com.android.systemui.shade.ShadeExpansionChangeEvent;
 import com.android.systemui.touch.TouchInsetManager;
@@ -82,6 +83,7 @@
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.concurrent.CancellationException;
 import java.util.function.Consumer;
 
@@ -221,10 +223,11 @@
         }
     };
 
-    private final Consumer<SceneKey> mCurrentSceneConsumer = new Consumer<>() {
+    private final Consumer<Set<OverlayKey>> mCurrentOverlaysConsumer = new Consumer<>() {
         @Override
-        public void accept(SceneKey currentScene) {
-            mExecutor.execute(() -> updateBouncerShowingLocked(currentScene == Scenes.Bouncer));
+        public void accept(Set<OverlayKey> currentOverlays) {
+            mExecutor.execute(() ->
+                    updateBouncerShowingLocked(currentOverlays.contains(Overlays.Bouncer)));
         }
     };
 
@@ -430,8 +433,8 @@
         mFlows.add(collectFlow(getLifecycle(), communalInteractor.isCommunalVisible(),
                 mCommunalVisibleConsumer));
         if (SceneContainerFlag.isEnabled()) {
-            mFlows.add(collectFlow(getLifecycle(), sceneInteractor.getCurrentScene(),
-                    mCurrentSceneConsumer));
+            mFlows.add(collectFlow(getLifecycle(), sceneInteractor.getCurrentOverlays(),
+                    mCurrentOverlaysConsumer));
         } else {
             mFlows.add(collectFlow(getLifecycle(), keyguardInteractor.primaryBouncerShowing,
                     mBouncerShowingConsumer));
diff --git a/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt
index 7437d3e..de86996 100644
--- a/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt
@@ -20,6 +20,7 @@
 import com.android.compose.animation.scene.UserAction
 import com.android.compose.animation.scene.UserActionResult
 import com.android.systemui.deviceentry.domain.interactor.DeviceUnlockedInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
@@ -55,9 +56,11 @@
                         shadeModeInteractor.shadeMode,
                     ) { isDeviceUnlocked, shadeMode ->
                         buildList {
-                                val bouncerOrGone =
-                                    if (isDeviceUnlocked) Scenes.Gone else Scenes.Bouncer
-                                add(Swipe.Up to bouncerOrGone)
+                                if (isDeviceUnlocked) {
+                                    add(Swipe.Up to Scenes.Gone)
+                                } else {
+                                    add(Swipe.Up to Overlays.Bouncer)
+                                }
 
                                 addAll(
                                     when (shadeMode) {
diff --git a/packages/SystemUI/src/com/android/systemui/flags/FlagDependencies.kt b/packages/SystemUI/src/com/android/systemui/flags/FlagDependencies.kt
index 2650159..15a4722 100644
--- a/packages/SystemUI/src/com/android/systemui/flags/FlagDependencies.kt
+++ b/packages/SystemUI/src/com/android/systemui/flags/FlagDependencies.kt
@@ -29,8 +29,6 @@
 import com.android.systemui.statusbar.notification.collection.SortBySectionTimeFlag
 import com.android.systemui.statusbar.notification.emptyshade.shared.ModesEmptyShadeFix
 import com.android.systemui.statusbar.notification.interruption.VisualInterruptionRefactor
-import com.android.systemui.statusbar.notification.promoted.PromotedNotificationUi
-import com.android.systemui.statusbar.notification.promoted.PromotedNotificationUiAod
 import com.android.systemui.statusbar.notification.shared.NotificationAvalancheSuppression
 import com.android.systemui.statusbar.notification.shared.NotificationMinimalism
 import com.android.systemui.statusbar.notification.shared.NotificationThrottleHun
@@ -52,8 +50,6 @@
         NotificationMinimalism.token dependsOn NotificationThrottleHun.token
         ModesEmptyShadeFix.token dependsOn modesUi
 
-        PromotedNotificationUiAod.token dependsOn PromotedNotificationUi.token
-
         // SceneContainer dependencies
         SceneContainerFlag.getFlagDependencies().forEach { (alpha, beta) -> alpha dependsOn beta }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/TouchpadTutorialScreensProvider.kt b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/TouchpadTutorialScreensProvider.kt
index 7d2492a..bea79fd 100644
--- a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/TouchpadTutorialScreensProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/TouchpadTutorialScreensProvider.kt
@@ -21,8 +21,16 @@
 interface TouchpadTutorialScreensProvider {
 
     @Composable
-    fun BackGesture(onDoneButtonClicked: () -> Unit, onBack: () -> Unit, isAutoProceed: Boolean)
+    fun BackGesture(
+        onDoneButtonClicked: () -> Unit,
+        onBack: () -> Unit,
+        onAutoProceed: (suspend () -> Unit)?,
+    )
 
     @Composable
-    fun HomeGesture(onDoneButtonClicked: () -> Unit, onBack: () -> Unit, isAutoProceed: Boolean)
+    fun HomeGesture(
+        onDoneButtonClicked: () -> Unit,
+        onBack: () -> Unit,
+        onAutoProceed: (suspend () -> Unit)?,
+    )
 }
diff --git a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/ActionTutorialContent.kt b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/ActionTutorialContent.kt
index ee875c4..8e4e4c0 100644
--- a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/ActionTutorialContent.kt
+++ b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/ActionTutorialContent.kt
@@ -108,6 +108,7 @@
     actionState: TutorialActionState,
     onDoneButtonClicked: () -> Unit,
     config: TutorialScreenConfig,
+    onAutoProceed: (suspend () -> Unit)? = null,
 ) {
     Column(
         verticalArrangement = Arrangement.Center,
@@ -137,9 +138,12 @@
             onDoneButtonClicked = onDoneButtonClicked,
             modifier = Modifier.padding(horizontal = 60.dp).graphicsLayer { alpha = buttonAlpha },
             enabled = actionState is Finished,
-            isNext = config.hasNextButton,
+            isNext = onAutoProceed != null,
         )
     }
+    if (actionState is Finished) {
+        LaunchedEffect(Unit) { onAutoProceed?.invoke() }
+    }
 }
 
 @Composable
diff --git a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/TutorialScreenConfig.kt b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/TutorialScreenConfig.kt
index 65adc14..eda23a5 100644
--- a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/TutorialScreenConfig.kt
+++ b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/composable/TutorialScreenConfig.kt
@@ -28,7 +28,6 @@
     val colors: Colors,
     val strings: Strings,
     val animations: Animations,
-    val hasNextButton: Boolean = false,
 ) {
 
     data class Colors(
diff --git a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/view/KeyboardTouchpadTutorialActivity.kt b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/view/KeyboardTouchpadTutorialActivity.kt
index 086705f..8cc1865 100644
--- a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/view/KeyboardTouchpadTutorialActivity.kt
+++ b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/view/KeyboardTouchpadTutorialActivity.kt
@@ -147,7 +147,7 @@
                 .BackGesture(
                     onDoneButtonClicked = vm::onDoneButtonClicked,
                     onBack = vm::onBack,
-                    isAutoProceed = isAutoProceed,
+                    onAutoProceed = if (isAutoProceed) vm::onAutoProceed else null,
                 )
         HOME_GESTURE ->
             touchpadScreens
@@ -155,7 +155,7 @@
                 .HomeGesture(
                     onDoneButtonClicked = vm::onDoneButtonClicked,
                     onBack = vm::onBack,
-                    isAutoProceed = isScopeAll,
+                    onAutoProceed = if (isScopeAll) vm::onAutoProceed else null,
                 )
         ACTION_KEY ->
             ActionKeyTutorialScreen(
diff --git a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/viewmodel/KeyboardTouchpadTutorialViewModel.kt b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/viewmodel/KeyboardTouchpadTutorialViewModel.kt
index eeb4b69..90e3af4 100644
--- a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/viewmodel/KeyboardTouchpadTutorialViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/ui/viewmodel/KeyboardTouchpadTutorialViewModel.kt
@@ -42,6 +42,8 @@
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
 import java.util.Optional
+import kotlin.time.Duration.Companion.seconds
+import kotlinx.coroutines.delay
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.StateFlow
@@ -49,6 +51,7 @@
 import kotlinx.coroutines.flow.filterNot
 import kotlinx.coroutines.flow.runningFold
 
+@OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class)
 class KeyboardTouchpadTutorialViewModel(
     private val gesturesInteractor: Optional<TouchpadGesturesInteractor>,
     private val keyboardTouchpadConnectionInteractor: KeyboardTouchpadConnectionInteractor,
@@ -149,7 +152,16 @@
         clearDeviceStateForScreen(_screen.value)
     }
 
+    suspend fun onAutoProceed() {
+        delay(AUTO_PROCEED_DELAY)
+        progressToNextScreen()
+    }
+
     fun onDoneButtonClicked() {
+        progressToNextScreen()
+    }
+
+    private fun progressToNextScreen() {
         var nextScreen = screenSequence.nextScreen(_screen.value)
         while (nextScreen != null) {
             if (requiredHardwarePresent(nextScreen)) {
@@ -250,6 +262,10 @@
     private object SingleScreenOnly : ScreenSequence {
         override fun nextScreen(current: Screen): Screen? = null
     }
+
+    companion object {
+        private val AUTO_PROCEED_DELAY = 3.seconds
+    }
 }
 
 enum class RequiredHardware {
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ResourceTrimmer.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ResourceTrimmer.kt
index b3027ed..b8ee20b 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ResourceTrimmer.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ResourceTrimmer.kt
@@ -19,6 +19,7 @@
 import android.annotation.WorkerThread
 import android.content.ComponentCallbacks2
 import android.util.Log
+import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.systemui.CoreStartable
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.dagger.qualifiers.Application
@@ -31,7 +32,6 @@
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.filter
-import com.android.app.tracing.coroutines.launchTraced as launch
 
 /**
  * Releases cached resources on allocated by keyguard.
@@ -54,7 +54,7 @@
         Log.d(LOG_TAG, "Resource trimmer registered.")
         applicationScope.launch(context = bgDispatcher) {
             keyguardTransitionInteractor
-                .isFinishedIn(scene = Scenes.Gone, stateWithoutSceneContainer = GONE)
+                .isFinishedIn(content = Scenes.Gone, stateWithoutSceneContainer = GONE)
                 .filter { isOnGone -> isOnGone }
                 .collect { onKeyguardGone() }
         }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java b/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java
index 97ad2d7..6b1248b 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java
@@ -247,14 +247,13 @@
     @Provides
     @SysUISingleton
     static BlurConfig provideBlurConfig(@Main Resources resources) {
-        int minBlurRadius = resources.getDimensionPixelSize(R.dimen.min_window_blur_radius);
         int maxBlurRadius =
                 Flags.notificationShadeBlur() || Flags.bouncerUiRevamp()
                         || Flags.glanceableHubBlurredBackground()
                         ? resources.getDimensionPixelSize(R.dimen.max_shade_window_blur_radius)
                         : resources.getDimensionPixelSize(R.dimen.max_window_blur_radius);
 
-        return new BlurConfig(minBlurRadius, maxBlurRadius);
+        return new BlurConfig(0.0f, maxBlurRadius);
     }
 
     /** */
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/DeviceEntrySideFpsOverlayInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/DeviceEntrySideFpsOverlayInteractor.kt
index 6367b5c..65ea673 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/DeviceEntrySideFpsOverlayInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/DeviceEntrySideFpsOverlayInteractor.kt
@@ -22,12 +22,11 @@
 import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor
 import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor
 import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.dagger.qualifiers.Application
 import com.android.systemui.keyguard.data.repository.DeviceEntryFingerprintAuthRepository
 import com.android.systemui.res.R
 import com.android.systemui.scene.domain.interactor.SceneInteractor
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.shade.ShadeDisplayAware
 import javax.inject.Inject
 import kotlinx.coroutines.flow.Flow
@@ -59,9 +58,9 @@
     private val isSideFpsIndicatorOnPrimaryBouncerEnabled: Boolean
         get() = context.resources.getBoolean(R.bool.config_show_sidefps_hint_on_bouncer)
 
-    private val isBouncerSceneActive: Flow<Boolean> =
+    private val isBouncerOverlayActive: Flow<Boolean> =
         if (SceneContainerFlag.isEnabled) {
-            sceneInteractor.currentScene.map { it == Scenes.Bouncer }.distinctUntilChanged()
+            sceneInteractor.currentOverlays.map { Overlays.Bouncer in it }.distinctUntilChanged()
         } else {
             flowOf(false)
         }
@@ -73,7 +72,7 @@
                 primaryBouncerInteractor.startingToHide,
                 primaryBouncerInteractor.startingDisappearAnimation.filterNotNull(),
                 // Bouncer scene visibility changes.
-                isBouncerSceneActive,
+                isBouncerOverlayActive,
                 deviceEntryFingerprintAuthRepository.shouldUpdateIndicatorVisibility.filter { it },
             )
             .map {
@@ -105,7 +104,7 @@
 
     private fun isBouncerActive(): Boolean {
         if (SceneContainerFlag.isEnabled) {
-            return sceneInteractor.currentScene.value == Scenes.Bouncer
+            return Overlays.Bouncer in sceneInteractor.currentOverlays.value
         }
         return primaryBouncerInteractor.isBouncerShowing() &&
             !primaryBouncerInteractor.isAnimatingAway()
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromDozingTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromDozingTransitionInteractor.kt
index 0700ec6..6f5f662 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromDozingTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromDozingTransitionInteractor.kt
@@ -159,7 +159,6 @@
                     val isKeyguardOccludedLegacy = keyguardInteractor.isKeyguardOccluded.value
                     val primaryBouncerShowing = keyguardInteractor.primaryBouncerShowing.value
                     val isKeyguardGoingAway = keyguardInteractor.isKeyguardGoingAway.value
-                    val canStartDreaming = dreamManager.canStartDreaming(false)
 
                     if (!deviceEntryInteractor.isLockscreenEnabled()) {
                         if (!SceneContainerFlag.isEnabled) {
@@ -192,13 +191,6 @@
                         if (!SceneContainerFlag.isEnabled) {
                             transitionToGlanceableHub()
                         }
-                    } else if (canStartDreaming) {
-                        // If we're waking up to dream, transition directly to dreaming without
-                        // showing the lockscreen.
-                        startTransitionTo(
-                            KeyguardState.DREAMING,
-                            ownerReason = "moving from doze to dream",
-                        )
                     } else {
                         startTransitionTo(KeyguardState.LOCKSCREEN)
                     }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBypassInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBypassInteractor.kt
index d793064..762403d 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBypassInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBypassInteractor.kt
@@ -21,6 +21,7 @@
 import com.android.systemui.dump.DumpManager
 import com.android.systemui.keyguard.data.repository.KeyguardBypassRepository
 import com.android.systemui.scene.domain.interactor.SceneInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import com.android.systemui.util.kotlin.FlowDumperImpl
@@ -61,7 +62,9 @@
             .flatMapLatest { isBypassAvailable ->
                 if (isBypassAvailable) {
                     combine(
-                        sceneInteractor.currentScene.map { scene -> scene == Scenes.Bouncer },
+                        sceneInteractor.currentOverlays.map { overlays ->
+                            Overlays.Bouncer in overlays
+                        },
                         alternateBouncerInteractor.isVisible,
                         sceneInteractor.currentScene.map { scene -> scene == Scenes.Lockscreen },
                         keyguardQuickAffordanceInteractor.launchingAffordance,
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt
index d8c707f..4c238f4 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt
@@ -101,7 +101,7 @@
                 .map {}
         } else {
             transitionInteractor
-                .isFinishedIn(scene = Scenes.Gone, stateWithoutSceneContainer = GONE)
+                .isFinishedIn(content = Scenes.Gone, stateWithoutSceneContainer = GONE)
                 .filter { it }
                 .map {}
         }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt
index f84d29f..7977000 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt
@@ -248,7 +248,7 @@
     val topClippingBounds: Flow<Int?> by lazy {
         combineTransform(
                 keyguardTransitionInteractor
-                    .transitionValue(scene = Scenes.Gone, stateWithoutSceneContainer = GONE)
+                    .transitionValue(content = Scenes.Gone, stateWithoutSceneContainer = GONE)
                     .map { it == 1f }
                     .onStart { emit(false) }
                     .distinctUntilChanged(),
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardOcclusionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardOcclusionInteractor.kt
index 278a98f..f2d7d91 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardOcclusionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardOcclusionInteractor.kt
@@ -97,7 +97,7 @@
                 powerInteractor.detailedWakefulness
                     .sample(
                         transitionInteractor.isFinishedIn(
-                            scene = Scenes.Gone,
+                            content = Scenes.Gone,
                             stateWithoutSceneContainer = KeyguardState.GONE,
                         ),
                         ::Pair,
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractor.kt
index b9784f1..8e0cb84 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractor.kt
@@ -63,7 +63,7 @@
                     edgeWithoutSceneContainer = Edge.create(to = KeyguardState.GONE),
                 ),
                 transitionInteractor.isFinishedIn(
-                    scene = Scenes.Gone,
+                    content = Scenes.Gone,
                     stateWithoutSceneContainer = KeyguardState.GONE,
                 ),
                 notificationLaunchInteractor.isLaunchAnimationRunning,
@@ -74,18 +74,14 @@
                         // If the notification launch animation is running, leave the alpha at 0f.
                         // The ActivityLaunchAnimator will morph it from the notification at the
                         // appropriate time.
-                        return@combine KeyguardSurfaceBehindModel(
-                            alpha = 0f,
-                        )
+                        return@combine KeyguardSurfaceBehindModel(alpha = 0f)
                     } else if (
                         inWindowLauncherUnlockAnimationInteractor.get().isLauncherUnderneath()
                     ) {
                         // The Launcher icons have their own translation/alpha animations during the
                         // in-window animation. We'll just make the surface visible and let Launcher
                         // do its thing.
-                        return@combine KeyguardSurfaceBehindModel(
-                            alpha = 1f,
-                        )
+                        return@combine KeyguardSurfaceBehindModel(alpha = 1f)
                     } else {
                         // Otherwise, animate a surface in via alpha/translation, and apply the
                         // swipe velocity (if available) to the translation spring.
@@ -113,10 +109,10 @@
         notificationLaunchInteractor.isLaunchAnimationRunning
             .sample(
                 transitionInteractor.isFinishedIn(
-                    scene = Scenes.Gone,
+                    content = Scenes.Gone,
                     stateWithoutSceneContainer = KeyguardState.GONE,
                 ),
-                ::Pair
+                ::Pair,
             )
             .map { (animationRunning, isOnGone) -> animationRunning && !isOnGone }
             .onStart { emit(false) }
@@ -126,10 +122,9 @@
      * means we're going to animate the surface, even if animators aren't yet running).
      */
     val isAnimatingSurface =
-        combine(
-            repository.isAnimatingSurface,
-            isNotificationLaunchAnimationRunningOnKeyguard,
-        ) { animatingSurface, animatingLaunch ->
+        combine(repository.isAnimatingSurface, isNotificationLaunchAnimationRunningOnKeyguard) {
+            animatingSurface,
+            animatingLaunch ->
             animatingSurface || animatingLaunch
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt
index 3b4a148..af58d10 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt
@@ -23,6 +23,7 @@
 import com.android.app.tracing.coroutines.flow.traceAs
 import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.app.tracing.coroutines.traceCoroutine
+import com.android.compose.animation.scene.ContentKey
 import com.android.compose.animation.scene.ObservableTransitionState
 import com.android.compose.animation.scene.SceneKey
 import com.android.systemui.Flags.keyguardTransitionForceFinishOnScreenOff
@@ -236,28 +237,28 @@
         if (!SceneContainerFlag.isEnabled) {
             return flow
         }
-        if (edge.isSceneWildcardEdge()) {
+        if (edge.isContentWildcardEdge()) {
             return simulateTransitionStepsForSceneTransitions(edge)
         }
         return flow.filterTraced("stl-filter") { step ->
-            val fromScene =
+            val fromContent =
                 when (edge) {
-                    is Edge.StateToState -> edge.from?.mapToSceneContainerScene()
-                    is Edge.StateToScene -> edge.from?.mapToSceneContainerScene()
-                    is Edge.SceneToState -> edge.from
+                    is Edge.StateToState -> edge.from?.mapToSceneContainerContent()
+                    is Edge.StateToContent -> edge.from?.mapToSceneContainerContent()
+                    is Edge.ContentToState -> edge.from
                 }
 
-            val toScene =
+            val toContent =
                 when (edge) {
-                    is Edge.StateToState -> edge.to?.mapToSceneContainerScene()
-                    is Edge.StateToScene -> edge.to
-                    is Edge.SceneToState -> edge.to?.mapToSceneContainerScene()
+                    is Edge.StateToState -> edge.to?.mapToSceneContainerContent()
+                    is Edge.StateToContent -> edge.to
+                    is Edge.ContentToState -> edge.to?.mapToSceneContainerContent()
                 }
 
             val isTransitioningBetweenLockscreenStates =
-                fromScene.isLockscreenOrNull() && toScene.isLockscreenOrNull()
+                fromContent.isLockscreenOrNull() && toContent.isLockscreenOrNull()
             val isTransitioningBetweenDesiredScenes =
-                sceneInteractor.transitionState.value.isTransitioning(fromScene, toScene)
+                sceneInteractor.transitionState.value.isTransitioning(fromContent, toContent)
 
             // When in STL A -> B settles in A we can't do the same in KTF as KTF requires us to
             // start B -> A to get back to A. [LockscreenSceneTransitionInteractor] will emit these
@@ -266,8 +267,8 @@
             // this condition to not filter out the STARTED and FINISHED step of the "artificially"
             // reversed B -> A transition.
             val belongsToInstantReversedTransition =
-                sceneInteractor.transitionState.value.isIdle(toScene) &&
-                    sceneTransitionPair.value.previousValue.isTransitioning(toScene, fromScene)
+                sceneInteractor.topmostContent.value == toContent &&
+                    sceneTransitionPair.value.previousValue.isTransitioning(toContent, fromContent)
 
             // We can't compare the terminal step with the current sceneTransition because
             // a) STL has no guarantee that it will settle in Idle() when finished/canceled
@@ -276,7 +277,7 @@
             val terminalStepBelongsToPreviousTransition =
                 (step.transitionState == TransitionState.FINISHED ||
                     step.transitionState == TransitionState.CANCELED) &&
-                    sceneTransitionPair.value.previousValue.isTransitioning(fromScene, toScene)
+                    sceneTransitionPair.value.previousValue.isTransitioning(fromContent, toContent)
 
             return@filterTraced isTransitioningBetweenLockscreenStates ||
                 isTransitioningBetweenDesiredScenes ||
@@ -285,7 +286,7 @@
         }
     }
 
-    private fun SceneKey?.isLockscreenOrNull() = this == Scenes.Lockscreen || this == null
+    private fun ContentKey?.isLockscreenOrNull() = this == Scenes.Lockscreen || this == null
 
     /**
      * This function will return a flow that simulates TransitionSteps based on STL movements
@@ -317,8 +318,8 @@
                         when (edge) {
                             is Edge.StateToState ->
                                 throw IllegalStateException("Should not be reachable.")
-                            is Edge.SceneToState -> it.isTransitioning(from = edge.from)
-                            is Edge.StateToScene -> it.isTransitioning(to = edge.to)
+                            is Edge.ContentToState -> it.isTransitioning(from = edge.from)
+                            is Edge.StateToContent -> it.isTransitioning(to = edge.to)
                         }
                     if (!isMatchingTransition) {
                         return@flatMapLatestWithFinished flowOf()
@@ -361,41 +362,43 @@
      */
     private fun <T> Flow<T>.flatMapLatestWithFinished(
         transform: suspend (T) -> Flow<TransitionStep>
-    ): Flow<TransitionStep> = channelFlow {
-        var job: Job? = null
-        var startedEmitted = false
+    ): Flow<TransitionStep> =
+        channelFlow {
+                var job: Job? = null
+                var startedEmitted = false
 
-        coroutineScope {
-            collect { value ->
-                traceCoroutine("cancelAndJoin") { job?.cancelAndJoin() }
+                coroutineScope {
+                    collect { value ->
+                        traceCoroutine("cancelAndJoin") { job?.cancelAndJoin() }
 
-                job = launch("inner") {
-                    val innerFlow = transform(value)
-                    try {
-                        innerFlow.collect { step ->
-                            if (step.transitionState == TransitionState.STARTED) {
-                                startedEmitted = true
+                        job =
+                            launch("inner") {
+                                val innerFlow = transform(value)
+                                try {
+                                    innerFlow.collect { step ->
+                                        if (step.transitionState == TransitionState.STARTED) {
+                                            startedEmitted = true
+                                        }
+                                        traceCoroutine("send($step)") { send(step) }
+                                    }
+                                } finally {
+                                    if (startedEmitted) {
+                                        val step =
+                                            TransitionStep(
+                                                from = UNDEFINED,
+                                                to = UNDEFINED,
+                                                value = 1f,
+                                                transitionState = TransitionState.FINISHED,
+                                            )
+                                        traceCoroutine("send($step)") { send(step) }
+                                        startedEmitted = false
+                                    }
+                                }
                             }
-                            traceCoroutine("send($step)") { send(step) }
-                        }
-                    } finally {
-                        if (startedEmitted) {
-                            val step =
-                                TransitionStep(
-                                    from = UNDEFINED,
-                                    to = UNDEFINED,
-                                    value = 1f,
-                                    transitionState = TransitionState.FINISHED,
-                                )
-                            traceCoroutine("send($step)") { send(step) }
-                            startedEmitted = false
-                        }
                     }
                 }
             }
-        }
-    }
-    .traceAs("flatMapLatestWithFinished")
+            .traceAs("flatMapLatestWithFinished")
 
     /**
      * Converts old KTF states to UNDEFINED when [SceneContainerFlag] is enabled.
@@ -414,17 +417,17 @@
                     from = edge.from?.mapToSceneContainerState(),
                     to = edge.to?.mapToSceneContainerState(),
                 )
-            is Edge.SceneToState -> Edge.create(UNDEFINED, edge.to)
-            is Edge.StateToScene -> Edge.create(edge.from, UNDEFINED)
+            is Edge.ContentToState -> Edge.create(UNDEFINED, edge.to)
+            is Edge.StateToContent -> Edge.create(edge.from, UNDEFINED)
         }
     }
 
     fun transitionValue(
-        scene: SceneKey? = null,
+        content: ContentKey? = null,
         stateWithoutSceneContainer: KeyguardState,
     ): Flow<Float> {
-        return if (SceneContainerFlag.isEnabled && scene != null) {
-            sceneInteractor.transitionProgress(scene)
+        return if (SceneContainerFlag.isEnabled && content != null) {
+            sceneInteractor.transitionProgress(content)
         } else {
             transitionValue(stateWithoutSceneContainer)
         }
@@ -439,7 +442,7 @@
     fun transitionValue(state: KeyguardState): Flow<Float> {
         if (SceneContainerFlag.isEnabled && state != state.mapToSceneContainerState()) {
             Log.e(TAG, "SceneContainer is enabled but a deprecated state $state is used.")
-            return transitionValue(state.mapToSceneContainerScene()!!, state)
+            return transitionValue(state.mapToSceneContainerContent()!!, state)
         }
         return getTransitionValueFlow(state)
     }
@@ -533,13 +536,13 @@
      */
     fun isInTransition(edge: Edge, edgeWithoutSceneContainer: Edge? = null): Flow<Boolean> {
         return if (SceneContainerFlag.isEnabled) {
-                if (edge.isSceneWildcardEdge()) {
+                if (edge.isContentWildcardEdge()) {
                     sceneInteractor.transitionState.map {
                         when (edge) {
                             is Edge.StateToState ->
                                 throw IllegalStateException("Should not be reachable.")
-                            is Edge.SceneToState -> it.isTransitioning(from = edge.from)
-                            is Edge.StateToScene -> it.isTransitioning(to = edge.to)
+                            is Edge.ContentToState -> it.isTransitioning(from = edge.from)
+                            is Edge.StateToContent -> it.isTransitioning(to = edge.to)
                         }
                     }
                 } else {
@@ -581,10 +584,15 @@
         return finishedKeyguardState.map { stateMatcher(it) }.distinctUntilChanged()
     }
 
-    fun isFinishedIn(scene: SceneKey, stateWithoutSceneContainer: KeyguardState): Flow<Boolean> {
+    fun isFinishedIn(
+        content: ContentKey,
+        stateWithoutSceneContainer: KeyguardState,
+    ): Flow<Boolean> {
         return if (SceneContainerFlag.isEnabled) {
-                sceneInteractor.transitionState.map {
-                    it.isIdle(scene) || it.isTransitioning(from = scene)
+                combine(sceneInteractor.topmostContent, sceneInteractor.transitionState) {
+                    topmostContent,
+                    state ->
+                    topmostContent == content || state.isTransitioning(from = content)
                 }
             } else {
                 isFinishedIn(stateWithoutSceneContainer)
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt
index 61cf2cd..68d595e 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt
@@ -61,7 +61,7 @@
     private val defaultSurfaceBehindVisibility =
         combine(
             transitionInteractor.isFinishedIn(
-                scene = Scenes.Gone,
+                content = Scenes.Gone,
                 stateWithoutSceneContainer = KeyguardState.GONE,
             ),
             wakeToGoneInteractor.canWakeDirectlyToGone,
@@ -121,7 +121,7 @@
                     when {
                         state.isTransitioning(from = Scenes.Lockscreen, to = Scenes.Gone) ->
                             isDeviceEnteredDirectly
-                        state.isTransitioning(from = Scenes.Bouncer, to = Scenes.Gone) ->
+                        state.isTransitioning(from = Overlays.Bouncer, to = Scenes.Gone) ->
                             (state as Transition).progress.map { progress ->
                                 progress >
                                     FromPrimaryBouncerTransitionInteractor
@@ -179,7 +179,7 @@
                         edgeWithoutSceneContainer = Edge.create(to = KeyguardState.GONE),
                     ),
                     transitionInteractor.isFinishedIn(
-                        scene = Scenes.Gone,
+                        content = Scenes.Gone,
                         stateWithoutSceneContainer = KeyguardState.GONE,
                     ),
                     surfaceBehindInteractor.isAnimatingSurface,
@@ -202,21 +202,23 @@
                     when (it) {
                         is Idle -> {
                             when (it.currentScene) {
-                                in keyguardScenes -> flowOf(true)
-                                in nonKeyguardScenes -> flowOf(false)
-                                in keyguardAgnosticScenes -> isDeviceNotEnteredDirectly
+                                in keyguardContent -> flowOf(true)
+                                in nonKeyguardContent -> flowOf(false)
+                                in keyguardAgnosticContent -> isDeviceNotEnteredDirectly
                                 else ->
                                     throw IllegalStateException("Unknown scene: ${it.currentScene}")
                             }
                         }
                         is Transition -> {
                             when {
-                                it.isTransitioningSets(from = keyguardScenes) -> flowOf(true)
-                                it.isTransitioningSets(from = nonKeyguardScenes) -> flowOf(false)
-                                it.isTransitioningSets(from = keyguardAgnosticScenes) ->
+                                it.isTransitioningSets(from = keyguardContent) -> flowOf(true)
+                                it.isTransitioningSets(from = nonKeyguardContent) -> flowOf(false)
+                                it.isTransitioningSets(from = keyguardAgnosticContent) ->
                                     isDeviceNotEnteredDirectly
                                 else ->
-                                    throw IllegalStateException("Unknown scene: ${it.fromContent}")
+                                    throw IllegalStateException(
+                                        "Unknown content: ${it.fromContent}"
+                                    )
                             }
                         }
                     }
@@ -330,22 +332,23 @@
 
     companion object {
         /**
-         * Scenes that are part of the keyguard and are shown when the device is locked or when the
+         * Content that is part of the keyguard and are shown when the device is locked or when the
          * keyguard still needs to be dismissed.
          */
-        val keyguardScenes = setOf(Scenes.Lockscreen, Scenes.Bouncer, Scenes.Communal, Scenes.Dream)
+        val keyguardContent =
+            setOf(Scenes.Lockscreen, Overlays.Bouncer, Scenes.Communal, Scenes.Dream)
 
         /**
-         * Scenes that don't belong in the keyguard family and cannot show when the device is locked
-         * or when the keyguard still needs to be dismissed.
+         * Content that doesn't belong in the keyguard family and cannot show when the device is
+         * locked or when the keyguard still needs to be dismissed.
          */
-        private val nonKeyguardScenes = setOf(Scenes.Gone)
+        private val nonKeyguardContent = setOf(Scenes.Gone)
 
         /**
-         * Scenes that can show regardless of device lock or keyguard dismissal states. Other
+         * Content that can show regardless of device lock or keyguard dismissal states. Other
          * sources of state need to be consulted to know whether the device has been entered or not.
          */
-        private val keyguardAgnosticScenes =
+        private val keyguardAgnosticContent =
             setOf(
                 Scenes.Shade,
                 Scenes.QuickSettings,
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/Edge.kt b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/Edge.kt
index 1306b26..4cc4d27 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/Edge.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/Edge.kt
@@ -16,7 +16,7 @@
 package com.android.systemui.keyguard.shared.model
 
 import android.util.Log
-import com.android.compose.animation.scene.SceneKey
+import com.android.compose.animation.scene.ContentKey
 import com.android.systemui.keyguard.shared.model.KeyguardState.UNDEFINED
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
 
@@ -29,8 +29,8 @@
     fun verifyValidKeyguardStates() {
         when (this) {
             is StateToState -> verifyValidKeyguardStates(from, to)
-            is SceneToState -> verifyValidKeyguardStates(null, to)
-            is StateToScene -> verifyValidKeyguardStates(from, null)
+            is ContentToState -> verifyValidKeyguardStates(null, to)
+            is StateToContent -> verifyValidKeyguardStates(from, null)
         }
     }
 
@@ -66,19 +66,16 @@
             }
         } else {
             if (from == UNDEFINED || to == UNDEFINED) {
-                Log.e(
-                    TAG,
-                    "UNDEFINED should not be used when scene container is disabled",
-                )
+                Log.e(TAG, "UNDEFINED should not be used when scene container is disabled")
             }
         }
     }
 
-    fun isSceneWildcardEdge(): Boolean {
+    fun isContentWildcardEdge(): Boolean {
         return when (this) {
             is StateToState -> false
-            is SceneToState -> to == null
-            is StateToScene -> from == null
+            is ContentToState -> to == null
+            is StateToContent -> from == null
         }
     }
 
@@ -89,9 +86,9 @@
         }
     }
 
-    data class StateToScene(val from: KeyguardState? = null, val to: SceneKey) : Edge()
+    data class StateToContent(val from: KeyguardState? = null, val to: ContentKey) : Edge()
 
-    data class SceneToState(val from: SceneKey, val to: KeyguardState? = null) : Edge()
+    data class ContentToState(val from: ContentKey, val to: KeyguardState? = null) : Edge()
 
     companion object {
         private const val TAG = "Edge"
@@ -102,11 +99,11 @@
 
         @JvmStatic
         @JvmOverloads
-        fun create(from: KeyguardState? = null, to: SceneKey) = StateToScene(from, to)
+        fun create(from: KeyguardState? = null, to: ContentKey) = StateToContent(from, to)
 
         @JvmStatic
         @JvmOverloads
-        fun create(from: SceneKey, to: KeyguardState? = null) = SceneToState(from, to)
+        fun create(from: ContentKey, to: KeyguardState? = null) = ContentToState(from, to)
 
         /**
          * This edge is a placeholder for when an edge needs to be passed but there is no edge for
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardState.kt b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardState.kt
index f0e79b8..21bfb5f 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardState.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardState.kt
@@ -16,8 +16,9 @@
 package com.android.systemui.keyguard.shared.model
 
 import android.util.Log
-import com.android.compose.animation.scene.SceneKey
+import com.android.compose.animation.scene.ContentKey
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 
 /** List of all possible states to transition to/from */
@@ -130,7 +131,7 @@
         }
     }
 
-    fun mapToSceneContainerScene(): SceneKey? {
+    fun mapToSceneContainerContent(): ContentKey? {
         return when (this) {
             OFF,
             DOZING,
@@ -140,7 +141,7 @@
             OCCLUDED,
             LOCKSCREEN -> Scenes.Lockscreen
             GLANCEABLE_HUB -> Scenes.Communal
-            PRIMARY_BOUNCER -> Scenes.Bouncer
+            PRIMARY_BOUNCER -> Overlays.Bouncer
             GONE -> Scenes.Gone
             UNDEFINED -> null
         }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardPreviewClockViewBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardPreviewClockViewBinder.kt
index d3b76a5..a42682b 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardPreviewClockViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardPreviewClockViewBinder.kt
@@ -36,6 +36,7 @@
 import com.android.systemui.plugins.clocks.ClockController
 import com.android.systemui.plugins.clocks.ClockPreviewConfig
 import com.android.systemui.shared.clocks.ClockRegistry
+import kotlinx.coroutines.flow.combine
 
 /** Binder for the small clock view, large clock view. */
 object KeyguardPreviewClockViewBinder {
@@ -76,38 +77,39 @@
             repeatOnLifecycle(Lifecycle.State.STARTED) {
                 var lastClock: ClockController? = null
                 launch("$TAG#viewModel.previewClock") {
-                        viewModel.previewClock.collect { currentClock ->
-                            lastClock?.let { clock ->
-                                (clock.largeClock.layout.views + clock.smallClock.layout.views)
-                                    .forEach { rootView.removeView(it) }
-                            }
-                            lastClock = currentClock
-                            updateClockAppearance(
-                                currentClock,
-                                clockPreviewConfig.context.resources,
-                            )
+                        combine(viewModel.previewClock, viewModel.selectedClockSize, ::Pair)
+                            .collect { (currentClock, clockSize) ->
+                                lastClock?.let { clock ->
+                                    (clock.largeClock.layout.views + clock.smallClock.layout.views)
+                                        .forEach { rootView.removeView(it) }
+                                }
+                                lastClock = currentClock
+                                updateClockAppearance(
+                                    currentClock,
+                                    clockPreviewConfig.context.resources,
+                                )
 
-                            if (viewModel.shouldHighlightSelectedAffordance) {
-                                (currentClock.largeClock.layout.views +
-                                        currentClock.smallClock.layout.views)
-                                    .forEach { it.alpha = KeyguardPreviewRenderer.DIM_ALPHA }
-                            }
-                            currentClock.largeClock.layout.views.forEach {
-                                (it.parent as? ViewGroup)?.removeView(it)
-                                rootView.addView(it)
-                            }
+                                if (viewModel.shouldHighlightSelectedAffordance) {
+                                    (currentClock.largeClock.layout.views +
+                                            currentClock.smallClock.layout.views)
+                                        .forEach { it.alpha = KeyguardPreviewRenderer.DIM_ALPHA }
+                                }
+                                currentClock.largeClock.layout.views.forEach {
+                                    (it.parent as? ViewGroup)?.removeView(it)
+                                    rootView.addView(it)
+                                }
 
-                            currentClock.smallClock.layout.views.forEach {
-                                (it.parent as? ViewGroup)?.removeView(it)
-                                rootView.addView(it)
+                                currentClock.smallClock.layout.views.forEach {
+                                    (it.parent as? ViewGroup)?.removeView(it)
+                                    rootView.addView(it)
+                                }
+                                applyPreviewConstraints(
+                                    clockPreviewConfig,
+                                    rootView,
+                                    currentClock,
+                                    clockSize,
+                                )
                             }
-                            applyPreviewConstraints(
-                                clockPreviewConfig,
-                                rootView,
-                                currentClock,
-                                viewModel,
-                            )
-                        }
                     }
                     .invokeOnCompletion {
                         // recover seed color especially for Transit clock
@@ -133,7 +135,7 @@
         clockPreviewConfig: ClockPreviewConfig,
         rootView: ConstraintLayout,
         previewClock: ClockController,
-        viewModel: KeyguardPreviewClockViewModel,
+        clockSize: ClockSizeSetting?,
     ) {
         val cs = ConstraintSet().apply { clone(rootView) }
 
@@ -147,16 +149,15 @@
         previewClock.largeClock.layout.applyPreviewConstraints(configWithUpdatedLockId, cs)
         previewClock.smallClock.layout.applyPreviewConstraints(configWithUpdatedLockId, cs)
 
-        // When selectedClockSize is the initial value, make both clocks invisible to avoid
-        // flickering
+        // When selectedClockSize is the initial value, make both clocks invisible to avoid flicker
         val largeClockVisibility =
-            when (viewModel.selectedClockSize.value) {
+            when (clockSize) {
                 ClockSizeSetting.DYNAMIC -> VISIBLE
                 ClockSizeSetting.SMALL -> INVISIBLE
                 null -> INVISIBLE
             }
         val smallClockVisibility =
-            when (viewModel.selectedClockSize.value) {
+            when (clockSize) {
                 ClockSizeSetting.DYNAMIC -> INVISIBLE
                 ClockSizeSetting.SMALL -> VISIBLE
                 null -> INVISIBLE
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerToPrimaryBouncerTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerToPrimaryBouncerTransitionViewModel.kt
index 43cce4b..74d471c 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerToPrimaryBouncerTransitionViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerToPrimaryBouncerTransitionViewModel.kt
@@ -27,7 +27,7 @@
 import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition
 import com.android.systemui.keyguard.ui.transitions.PrimaryBouncerTransition
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.ui.composable.transitions.TO_BOUNCER_FADE_FRACTION
 import javax.inject.Inject
 import kotlinx.coroutines.flow.Flow
@@ -49,7 +49,7 @@
         animationFlow
             .setup(
                 duration = FromAlternateBouncerTransitionInteractor.TO_PRIMARY_BOUNCER_DURATION,
-                edge = Edge.create(from = ALTERNATE_BOUNCER, to = Scenes.Bouncer),
+                edge = Edge.create(from = ALTERNATE_BOUNCER, to = Overlays.Bouncer),
             )
             .setupWithoutSceneContainer(
                 edge = Edge.create(from = ALTERNATE_BOUNCER, to = PRIMARY_BOUNCER)
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AodToPrimaryBouncerTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AodToPrimaryBouncerTransitionViewModel.kt
index 8b5e3b9..a22d21a 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AodToPrimaryBouncerTransitionViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/AodToPrimaryBouncerTransitionViewModel.kt
@@ -26,7 +26,7 @@
 import com.android.systemui.keyguard.ui.transitions.BlurConfig
 import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition
 import com.android.systemui.keyguard.ui.transitions.PrimaryBouncerTransition
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import javax.inject.Inject
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.emptyFlow
@@ -44,7 +44,7 @@
         animationFlow
             .setup(
                 duration = FromAodTransitionInteractor.TO_PRIMARY_BOUNCER_DURATION,
-                edge = Edge.create(from = AOD, to = Scenes.Bouncer),
+                edge = Edge.create(from = AOD, to = Overlays.Bouncer),
             )
             .setupWithoutSceneContainer(edge = Edge.create(from = AOD, to = PRIMARY_BOUNCER))
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/DozingToDreamingTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/DozingToDreamingTransitionViewModel.kt
index 9018c58..e6a85c6 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/DozingToDreamingTransitionViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/DozingToDreamingTransitionViewModel.kt
@@ -39,6 +39,4 @@
         )
 
     val lockscreenAlpha: Flow<Float> = transitionAnimation.immediatelyTransitionTo(0f)
-    // Notifications should not be shown while transitioning to dream.
-    val notificationAlpha = transitionAnimation.immediatelyTransitionTo(0f)
 }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/DozingToPrimaryBouncerTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/DozingToPrimaryBouncerTransitionViewModel.kt
index ff96e03..2c712d1 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/DozingToPrimaryBouncerTransitionViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/DozingToPrimaryBouncerTransitionViewModel.kt
@@ -26,7 +26,7 @@
 import com.android.systemui.keyguard.ui.transitions.BlurConfig
 import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition
 import com.android.systemui.keyguard.ui.transitions.PrimaryBouncerTransition
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import javax.inject.Inject
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.emptyFlow
@@ -45,7 +45,7 @@
         animationFlow
             .setup(
                 duration = TO_PRIMARY_BOUNCER_DURATION,
-                edge = Edge.create(from = DOZING, to = Scenes.Bouncer),
+                edge = Edge.create(from = DOZING, to = Overlays.Bouncer),
             )
             .setupWithoutSceneContainer(edge = Edge.create(from = DOZING, to = PRIMARY_BOUNCER))
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt
index def87a8..d4676bc 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt
@@ -40,6 +40,7 @@
 import com.android.systemui.keyguard.shared.model.TransitionState.RUNNING
 import com.android.systemui.keyguard.shared.model.TransitionState.STARTED
 import com.android.systemui.keyguard.ui.StateToValue
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import com.android.systemui.shade.ui.viewmodel.NotificationShadeWindowModel
@@ -182,7 +183,7 @@
                         edgeWithoutSceneContainer = Edge.create(from = LOCKSCREEN, to = GONE),
                     ),
                     keyguardTransitionInteractor.isInTransition(
-                        edge = Edge.create(from = Scenes.Bouncer, to = LOCKSCREEN),
+                        edge = Edge.create(from = Overlays.Bouncer, to = LOCKSCREEN),
                         edgeWithoutSceneContainer =
                             Edge.create(from = PRIMARY_BOUNCER, to = LOCKSCREEN),
                     ),
@@ -226,7 +227,7 @@
                 .map { it > 1f - offToLockscreenTransitionViewModel.alphaStartAt }
                 .onStart { emit(false) },
             keyguardTransitionInteractor
-                .transitionValue(scene = Scenes.Gone, stateWithoutSceneContainer = GONE)
+                .transitionValue(content = Scenes.Gone, stateWithoutSceneContainer = GONE)
                 .map { it == 1f }
                 .onStart { emit(false) },
         )
@@ -361,7 +362,7 @@
                     .map { it > 0f }
                     .onStart { emit(false) },
                 keyguardTransitionInteractor.isFinishedIn(
-                    scene = Scenes.Gone,
+                    content = Scenes.Gone,
                     stateWithoutSceneContainer = GONE,
                 ),
                 deviceEntryInteractor.isBypassEnabled,
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToPrimaryBouncerTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToPrimaryBouncerTransitionViewModel.kt
index b96c879..3758afa 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToPrimaryBouncerTransitionViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToPrimaryBouncerTransitionViewModel.kt
@@ -27,7 +27,7 @@
 import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition
 import com.android.systemui.keyguard.ui.transitions.PrimaryBouncerTransition
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.ui.composable.transitions.TO_BOUNCER_FADE_FRACTION
 import javax.inject.Inject
 import kotlin.time.Duration.Companion.milliseconds
@@ -50,7 +50,7 @@
         animationFlow
             .setup(
                 duration = FromLockscreenTransitionInteractor.TO_PRIMARY_BOUNCER_DURATION,
-                edge = Edge.create(from = LOCKSCREEN, to = Scenes.Bouncer),
+                edge = Edge.create(from = LOCKSCREEN, to = Overlays.Bouncer),
             )
             .setupWithoutSceneContainer(edge = Edge.create(from = LOCKSCREEN, to = PRIMARY_BOUNCER))
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt
index 06c27d3..0eeb6c6 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt
@@ -21,6 +21,7 @@
 import com.android.compose.animation.scene.UserActionResult
 import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor
 import com.android.systemui.scene.domain.interactor.SceneContainerOcclusionInteractor
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
@@ -60,7 +61,11 @@
                     occlusionInteractor.isOccludingActivityShown,
                 ) { isDeviceUnlocked, shadeMode, isOccluded ->
                     buildList {
-                            add(Swipe.Up to if (isDeviceUnlocked) Scenes.Gone else Scenes.Bouncer)
+                            if (isDeviceUnlocked) {
+                                add(Swipe.Up to Scenes.Gone)
+                            } else {
+                                add(Swipe.Up to Overlays.Bouncer)
+                            }
 
                             addAll(
                                 when (shadeMode) {
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToAodTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToAodTransitionViewModel.kt
index dc75829..32bad8e 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToAodTransitionViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToAodTransitionViewModel.kt
@@ -26,7 +26,7 @@
 import com.android.systemui.keyguard.ui.transitions.BlurConfig
 import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition
 import com.android.systemui.keyguard.ui.transitions.PrimaryBouncerTransition
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import javax.inject.Inject
 import kotlin.time.Duration.Companion.milliseconds
 import kotlinx.coroutines.flow.Flow
@@ -49,7 +49,7 @@
         animationFlow
             .setup(
                 duration = FromPrimaryBouncerTransitionInteractor.TO_AOD_DURATION,
-                edge = Edge.create(from = Scenes.Bouncer, to = AOD),
+                edge = Edge.create(from = Overlays.Bouncer, to = AOD),
             )
             .setupWithoutSceneContainer(edge = Edge.create(from = PRIMARY_BOUNCER, to = AOD))
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToDozingTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToDozingTransitionViewModel.kt
index 7f431bc..1b53344 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToDozingTransitionViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToDozingTransitionViewModel.kt
@@ -26,7 +26,7 @@
 import com.android.systemui.keyguard.ui.transitions.BlurConfig
 import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition
 import com.android.systemui.keyguard.ui.transitions.PrimaryBouncerTransition
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import javax.inject.Inject
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.emptyFlow
@@ -49,7 +49,7 @@
         animationFlow
             .setup(
                 duration = TO_DOZING_DURATION,
-                edge = Edge.create(from = Scenes.Bouncer, to = DOZING),
+                edge = Edge.create(from = Overlays.Bouncer, to = DOZING),
             )
             .setupWithoutSceneContainer(edge = Edge.create(from = PRIMARY_BOUNCER, to = DOZING))
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToLockscreenTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToLockscreenTransitionViewModel.kt
index 9cb0387..5a111aa 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToLockscreenTransitionViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToLockscreenTransitionViewModel.kt
@@ -28,7 +28,7 @@
 import com.android.systemui.keyguard.ui.transitions.BlurConfig
 import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition
 import com.android.systemui.keyguard.ui.transitions.PrimaryBouncerTransition
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import javax.inject.Inject
 import kotlin.time.Duration.Companion.milliseconds
 import kotlinx.coroutines.flow.Flow
@@ -50,7 +50,7 @@
         animationFlow
             .setup(
                 duration = FromPrimaryBouncerTransitionInteractor.TO_LOCKSCREEN_DURATION,
-                edge = Edge.create(from = Scenes.Bouncer, to = LOCKSCREEN),
+                edge = Edge.create(from = Overlays.Bouncer, to = LOCKSCREEN),
             )
             .setupWithoutSceneContainer(edge = Edge.create(from = PRIMARY_BOUNCER, to = LOCKSCREEN))
 
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/data/repository/MediaFilterRepository.kt b/packages/SystemUI/src/com/android/systemui/media/controls/data/repository/MediaFilterRepository.kt
index 1b39d55..8ce901a 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/data/repository/MediaFilterRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/data/repository/MediaFilterRepository.kt
@@ -16,22 +16,15 @@
 
 package com.android.systemui.media.controls.data.repository
 
-import android.content.Context
 import com.android.internal.logging.InstanceId
 import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.dagger.qualifiers.Application
 import com.android.systemui.media.controls.data.model.MediaSortKeyModel
 import com.android.systemui.media.controls.shared.model.MediaCommonModel
 import com.android.systemui.media.controls.shared.model.MediaData
 import com.android.systemui.media.controls.shared.model.MediaDataLoadingModel
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaData
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaLoadingModel
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger.Companion.SMARTSPACE_CARD_DISMISS_EVENT
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger.Companion.SMARTSPACE_CARD_SEEN_EVENT
-import com.android.systemui.media.controls.util.SmallHash
 import com.android.systemui.util.time.SystemClock
-import java.util.Locale
 import java.util.TreeMap
 import javax.inject.Inject
 import kotlinx.coroutines.flow.MutableStateFlow
@@ -40,13 +33,7 @@
 
 /** A repository that holds the state of filtered media data on the device. */
 @SysUISingleton
-class MediaFilterRepository
-@Inject
-constructor(
-    @Application private val applicationContext: Context,
-    private val systemClock: SystemClock,
-    private val smartspaceLogger: MediaSmartspaceLogger,
-) {
+class MediaFilterRepository @Inject constructor(private val systemClock: SystemClock) {
 
     /** Instance id of media control that recommendations card reactivated. */
     private val _reactivatedId: MutableStateFlow<InstanceId?> = MutableStateFlow(null)
@@ -86,7 +73,6 @@
 
     private var sortedMedia = TreeMap<MediaSortKeyModel, MediaCommonModel>(comparator)
     private var mediaFromRecPackageName: String? = null
-    private var locale: Locale = applicationContext.resources.configuration.locales.get(0)
 
     fun addMediaEntry(key: String, data: MediaData) {
         val entries = LinkedHashMap<String, MediaData>(_allUserEntries.value)
@@ -224,21 +210,6 @@
                 }
 
                 sortedMedia = sortedMap
-
-                if (!isUpdate) {
-                    val rank = sortedMedia.values.indexOf(newCommonModel)
-                    if (isSmartspaceLoggingEnabled(newCommonModel, rank)) {
-                        smartspaceLogger.logSmartspaceCardReceived(
-                            it.smartspaceId,
-                            it.appUid,
-                            cardinality = _currentMedia.value.size,
-                            isSsReactivated = mediaDataLoadingModel.isSsReactivated,
-                            rank = rank,
-                        )
-                    }
-                } else if (mediaDataLoadingModel.receivedSmartspaceCardLatency != 0) {
-                    logSmartspaceAllMediaCards(mediaDataLoadingModel.receivedSmartspaceCardLatency)
-                }
             }
         }
 
@@ -278,30 +249,6 @@
                 sortedMap[sortKey] = newCommonModel
                 _currentMedia.value = sortedMap.values.toList()
                 sortedMedia = sortedMap
-
-                if (isRecommendationActive()) {
-                    val hasActivatedExistedResumeMedia =
-                        !hasActiveMedia() &&
-                            hasAnyMedia() &&
-                            smartspaceMediaLoadingModel.isPrioritized
-                    if (hasActivatedExistedResumeMedia) {
-                        // Log resume card received if resumable media card is reactivated and
-                        // recommendation card is valid and ranked first
-                        logSmartspaceAllMediaCards(
-                            (systemClock.currentTimeMillis() -
-                                    _smartspaceMediaData.value.headphoneConnectionTimeMillis)
-                                .toInt()
-                        )
-                    }
-
-                    smartspaceLogger.logSmartspaceCardReceived(
-                        SmallHash.hash(_smartspaceMediaData.value.targetId),
-                        _smartspaceMediaData.value.getUid(applicationContext),
-                        cardinality = _currentMedia.value.size,
-                        isRecommendationCard = true,
-                        rank = _currentMedia.value.indexOf(newCommonModel),
-                    )
-                }
             }
             is SmartspaceMediaLoadingModel.Removed -> {
                 _currentMedia.value =
@@ -339,108 +286,6 @@
         return _smartspaceMediaData.value.isActive
     }
 
-    /** Log visible card given [visibleIndex]. */
-    fun logSmartspaceCardSeen(surface: Int, visibleIndex: Int, isMediaCardUpdate: Boolean) {
-        if (_currentMedia.value.size <= visibleIndex) return
-
-        when (val mediaCommonModel = _currentMedia.value[visibleIndex]) {
-            is MediaCommonModel.MediaControl -> {
-                if (
-                    !isMediaCardUpdate ||
-                        mediaCommonModel.mediaLoadedModel.receivedSmartspaceCardLatency != 0
-                ) {
-                    logSmartspaceMediaCardUserEvent(
-                        mediaCommonModel.mediaLoadedModel.instanceId,
-                        visibleIndex,
-                        SMARTSPACE_CARD_SEEN_EVENT,
-                        surface,
-                        mediaCommonModel.mediaLoadedModel.isSsReactivated,
-                    )
-                }
-            }
-            is MediaCommonModel.MediaRecommendations -> {
-                if (isRecommendationActive()) {
-                    logSmarspaceRecommendationCardUserEvent(
-                        SMARTSPACE_CARD_SEEN_EVENT,
-                        surface,
-                        visibleIndex,
-                    )
-                }
-            }
-        }
-    }
-
-    /** Log user event on media card if smartspace logging is enabled. */
-    fun logSmartspaceCardUserEvent(
-        eventId: Int,
-        surface: Int,
-        interactedSubCardRank: Int = 0,
-        interactedSubCardCardinality: Int = 0,
-        instanceId: InstanceId? = null,
-        isRec: Boolean = false,
-    ) {
-        _currentMedia.value.forEachIndexed { index, mediaCommonModel ->
-            when (mediaCommonModel) {
-                is MediaCommonModel.MediaControl -> {
-                    if (mediaCommonModel.mediaLoadedModel.instanceId == instanceId) {
-                        if (isSmartspaceLoggingEnabled(mediaCommonModel, index)) {
-                            logSmartspaceMediaCardUserEvent(
-                                instanceId,
-                                index,
-                                eventId,
-                                surface,
-                                mediaCommonModel.mediaLoadedModel.isSsReactivated,
-                                interactedSubCardRank,
-                                interactedSubCardCardinality,
-                            )
-                        }
-                        return
-                    }
-                }
-                is MediaCommonModel.MediaRecommendations -> {
-                    if (isRec) {
-                        if (isSmartspaceLoggingEnabled(mediaCommonModel, index)) {
-                            logSmarspaceRecommendationCardUserEvent(
-                                eventId,
-                                surface,
-                                index,
-                                interactedSubCardRank,
-                                interactedSubCardCardinality,
-                            )
-                        }
-                        return
-                    }
-                }
-            }
-        }
-    }
-
-    /** Log media and recommendation cards dismissal if smartspace logging is enabled for each. */
-    fun logSmartspaceCardsOnSwipeToDismiss(surface: Int) {
-        _currentMedia.value.forEachIndexed { index, mediaCommonModel ->
-            if (isSmartspaceLoggingEnabled(mediaCommonModel, index)) {
-                when (mediaCommonModel) {
-                    is MediaCommonModel.MediaControl ->
-                        logSmartspaceMediaCardUserEvent(
-                            mediaCommonModel.mediaLoadedModel.instanceId,
-                            index,
-                            SMARTSPACE_CARD_DISMISS_EVENT,
-                            surface,
-                            mediaCommonModel.mediaLoadedModel.isSsReactivated,
-                            isSwipeToDismiss = true,
-                        )
-                    is MediaCommonModel.MediaRecommendations ->
-                        logSmarspaceRecommendationCardUserEvent(
-                            SMARTSPACE_CARD_DISMISS_EVENT,
-                            surface,
-                            index,
-                            isSwipeToDismiss = true,
-                        )
-                }
-            }
-        }
-    }
-
     private fun canBeRemoved(data: MediaData): Boolean {
         return data.isPlaying?.let { !it } ?: data.isClearable && !data.active
     }
@@ -448,83 +293,4 @@
     private fun isMediaFromRec(data: MediaData): Boolean {
         return data.isPlaying == true && mediaFromRecPackageName == data.packageName
     }
-
-    /** Log all media cards if smartspace logging is enabled for each. */
-    private fun logSmartspaceAllMediaCards(receivedSmartspaceCardLatency: Int) {
-        sortedMedia.values.forEachIndexed { index, mediaCommonModel ->
-            if (mediaCommonModel is MediaCommonModel.MediaControl) {
-                _selectedUserEntries.value[mediaCommonModel.mediaLoadedModel.instanceId]?.let {
-                    it.smartspaceId =
-                        SmallHash.hash(it.appUid + systemClock.currentTimeMillis().toInt())
-                    it.isImpressed = false
-
-                    if (isSmartspaceLoggingEnabled(mediaCommonModel, index)) {
-                        smartspaceLogger.logSmartspaceCardReceived(
-                            it.smartspaceId,
-                            it.appUid,
-                            cardinality = _currentMedia.value.size,
-                            isSsReactivated = mediaCommonModel.mediaLoadedModel.isSsReactivated,
-                            rank = index,
-                            receivedLatencyMillis = receivedSmartspaceCardLatency,
-                        )
-                    }
-                }
-            }
-        }
-    }
-
-    private fun logSmartspaceMediaCardUserEvent(
-        instanceId: InstanceId,
-        index: Int,
-        eventId: Int,
-        surface: Int,
-        isReactivated: Boolean,
-        interactedSubCardRank: Int = 0,
-        interactedSubCardCardinality: Int = 0,
-        isSwipeToDismiss: Boolean = false,
-    ) {
-        _selectedUserEntries.value[instanceId]?.let {
-            smartspaceLogger.logSmartspaceCardUIEvent(
-                eventId,
-                it.smartspaceId,
-                it.appUid,
-                surface,
-                _currentMedia.value.size,
-                isSsReactivated = isReactivated,
-                interactedSubcardRank = interactedSubCardRank,
-                interactedSubcardCardinality = interactedSubCardCardinality,
-                rank = index,
-                isSwipeToDismiss = isSwipeToDismiss,
-            )
-        }
-    }
-
-    private fun logSmarspaceRecommendationCardUserEvent(
-        eventId: Int,
-        surface: Int,
-        index: Int,
-        interactedSubCardRank: Int = 0,
-        interactedSubCardCardinality: Int = 0,
-        isSwipeToDismiss: Boolean = false,
-    ) {
-        smartspaceLogger.logSmartspaceCardUIEvent(
-            eventId,
-            SmallHash.hash(_smartspaceMediaData.value.targetId),
-            _smartspaceMediaData.value.getUid(applicationContext),
-            surface,
-            _currentMedia.value.size,
-            isRecommendationCard = true,
-            interactedSubcardRank = interactedSubCardRank,
-            interactedSubcardCardinality = interactedSubCardCardinality,
-            rank = index,
-            isSwipeToDismiss = isSwipeToDismiss,
-        )
-    }
-
-    private fun isSmartspaceLoggingEnabled(commonModel: MediaCommonModel, index: Int): Boolean {
-        return sortedMedia.size > index &&
-            (_smartspaceMediaData.value.expiryTimeMs != 0L ||
-                isRecommendationActive() ||
-                commonModel is MediaCommonModel.MediaRecommendations)
-    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt
index ea5f81c..46cf0a6 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt
@@ -82,7 +82,6 @@
 import com.android.systemui.media.controls.util.MediaDataUtils
 import com.android.systemui.media.controls.util.MediaFlags
 import com.android.systemui.media.controls.util.MediaUiEventLogger
-import com.android.systemui.media.controls.util.SmallHash
 import com.android.systemui.res.R
 import com.android.systemui.statusbar.NotificationMediaManager.isPlayingState
 import com.android.systemui.statusbar.notification.row.HybridGroupManager
@@ -1085,7 +1084,6 @@
                 instanceId = instanceId,
                 appUid = appUid,
                 isExplicit = isExplicit,
-                smartspaceId = SmallHash.hash(appUid + systemClock.currentTimeMillis().toInt()),
             )
 
         if (isSameMediaData(context, mediaController, mediaData, currentEntry)) {
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImpl.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImpl.kt
index 4c0312f..2cd5016 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImpl.kt
@@ -33,7 +33,6 @@
 import com.android.systemui.media.controls.shared.model.MediaDataLoadingModel
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaData
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaLoadingModel
-import com.android.systemui.media.controls.util.MediaFlags
 import com.android.systemui.media.controls.util.MediaUiEventLogger
 import com.android.systemui.settings.UserTracker
 import com.android.systemui.statusbar.NotificationLockscreenUserManager
@@ -69,7 +68,6 @@
     @Main private val executor: Executor,
     private val systemClock: SystemClock,
     private val logger: MediaUiEventLogger,
-    private val mediaFlags: MediaFlags,
     private val mediaFilterRepository: MediaFilterRepository,
     private val mediaLogger: MediaLogger,
 ) : MediaDataManager.Listener {
@@ -328,9 +326,8 @@
     }
 
     /** Invoked when the user has dismissed the media carousel */
-    fun onSwipeToDismiss(surface: Int) {
+    fun onSwipeToDismiss() {
         if (DEBUG) Log.d(TAG, "Media carousel swiped away")
-        mediaFilterRepository.logSmartspaceCardsOnSwipeToDismiss(surface)
         val mediaEntries = mediaFilterRepository.allUserEntries.value.entries
         mediaEntries.forEach { (key, data) ->
             if (mediaFilterRepository.selectedUserEntries.value.containsKey(data.instanceId)) {
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt
index 59f98d8..fe852ce 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt
@@ -83,7 +83,6 @@
 import com.android.systemui.media.controls.util.MediaDataUtils
 import com.android.systemui.media.controls.util.MediaFlags
 import com.android.systemui.media.controls.util.MediaUiEventLogger
-import com.android.systemui.media.controls.util.SmallHash
 import com.android.systemui.res.R
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.statusbar.NotificationMediaManager.isPlayingState
@@ -758,7 +757,6 @@
                     appUid = appUid,
                     isExplicit = isExplicit,
                     resumeProgress = progress,
-                    smartspaceId = SmallHash.hash(appUid + systemClock.currentTimeMillis().toInt()),
                 ),
             )
         }
@@ -1010,7 +1008,6 @@
                 instanceId = instanceId,
                 appUid = appUid,
                 isExplicit = isExplicit,
-                smartspaceId = SmallHash.hash(appUid + systemClock.currentTimeMillis().toInt()),
             )
 
         if (isSameMediaData(context, mediaController, mediaData, oldEntry)) {
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaCarouselInteractor.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaCarouselInteractor.kt
index 891b852..cd51a4b 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaCarouselInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaCarouselInteractor.kt
@@ -35,8 +35,6 @@
 import com.android.systemui.media.controls.domain.pipeline.MediaTimeoutListener
 import com.android.systemui.media.controls.domain.resume.MediaResumeListener
 import com.android.systemui.media.controls.shared.model.MediaCommonModel
-import com.android.systemui.media.controls.util.MediaFlags
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import java.io.PrintWriter
 import javax.inject.Inject
@@ -60,7 +58,6 @@
     private val mediaDataCombineLatest: MediaDataCombineLatest,
     private val mediaDataFilter: MediaDataFilterImpl,
     private val mediaFilterRepository: MediaFilterRepository,
-    private val mediaFlags: MediaFlags,
 ) : MediaDataManager, CoreStartable {
 
     /** Are there any media notifications active, including the recommendations? */
@@ -197,10 +194,8 @@
         mediaDataProcessor.setMediaResumptionEnabled(isEnabled)
     }
 
-    override fun onSwipeToDismiss() = unsupported
-
-    fun onSwipeToDismiss(location: Int) {
-        mediaDataFilter.onSwipeToDismiss(MediaSmartspaceLogger.getSurface(location))
+    override fun onSwipeToDismiss() {
+        mediaDataFilter.onSwipeToDismiss()
     }
 
     override fun hasActiveMediaOrRecommendation() =
@@ -218,14 +213,6 @@
         mediaFilterRepository.setOrderedMedia()
     }
 
-    fun logSmartspaceSeenCard(visibleIndex: Int, location: Int, isMediaCardUpdate: Boolean) {
-        mediaFilterRepository.logSmartspaceCardSeen(
-            MediaSmartspaceLogger.getSurface(location),
-            visibleIndex,
-            isMediaCardUpdate,
-        )
-    }
-
     /** Add a listener for internal events. */
     private fun addInternalListener(listener: MediaDataManager.Listener) =
         mediaDataProcessor.addInternalListener(listener)
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaControlInteractor.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaControlInteractor.kt
index 09aa85b..f830a56 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaControlInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaControlInteractor.kt
@@ -36,7 +36,6 @@
 import com.android.systemui.media.controls.shared.MediaLogger
 import com.android.systemui.media.controls.shared.model.MediaControlModel
 import com.android.systemui.media.controls.shared.model.MediaData
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger
 import com.android.systemui.media.dialog.MediaOutputDialogManager
 import com.android.systemui.plugins.ActivityStarter
 import com.android.systemui.statusbar.NotificationLockscreenUserManager
@@ -72,10 +71,7 @@
         token: MediaSession.Token?,
         instanceId: InstanceId,
         delayMs: Long,
-        eventId: Int,
-        location: Int,
     ): Boolean {
-        logSmartspaceUserEvent(eventId, location)
         val dismissed =
             mediaDataProcessor.dismissMediaData(instanceId, delayMs, userInitiated = true)
         if (!dismissed) {
@@ -116,13 +112,7 @@
         activityStarter.startActivity(SETTINGS_INTENT, /* dismissShade= */ true)
     }
 
-    fun startClickIntent(
-        expandable: Expandable,
-        clickIntent: PendingIntent,
-        eventId: Int,
-        location: Int,
-    ) {
-        logSmartspaceUserEvent(eventId, location)
+    fun startClickIntent(expandable: Expandable, clickIntent: PendingIntent) {
         if (!launchOverLockscreen(expandable, clickIntent)) {
             activityStarter.postStartActivityDismissingKeyguard(
                 clickIntent,
@@ -197,14 +187,6 @@
         )
     }
 
-    fun logSmartspaceUserEvent(eventId: Int, location: Int) {
-        repository.logSmartspaceCardUserEvent(
-            eventId,
-            MediaSmartspaceLogger.getSurface(location),
-            instanceId = instanceId,
-        )
-    }
-
     fun logMediaControlIsBound(artistName: CharSequence, songName: CharSequence) {
         mediaLogger.logMediaControlIsBound(instanceId, artistName, songName)
     }
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaRecommendationsInteractor.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaRecommendationsInteractor.kt
index 48ed391..0cb36ed 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaRecommendationsInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaRecommendationsInteractor.kt
@@ -31,7 +31,6 @@
 import com.android.systemui.media.controls.shared.model.MediaRecModel
 import com.android.systemui.media.controls.shared.model.MediaRecommendationsModel
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaData
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger
 import com.android.systemui.plugins.ActivityStarter
 import java.net.URISyntaxException
 import javax.inject.Inject
@@ -66,14 +65,7 @@
             .distinctUntilChanged()
             .stateIn(applicationScope, SharingStarted.WhileSubscribed(), false)
 
-    fun removeMediaRecommendations(
-        key: String,
-        dismissIntent: Intent?,
-        delayMs: Long,
-        eventId: Int,
-        location: Int,
-    ) {
-        logSmartspaceCardUserEvent(eventId, location)
+    fun removeMediaRecommendations(key: String, dismissIntent: Intent?, delayMs: Long) {
         mediaDataProcessor.dismissSmartspaceRecommendation(key, delayMs)
         if (dismissIntent == null) {
             Log.w(TAG, "Cannot create dismiss action click action: extras missing dismiss_intent.")
@@ -93,25 +85,7 @@
         activityStarter.startActivity(SETTINGS_INTENT, /* dismissShade= */ true)
     }
 
-    fun startClickIntent(
-        expandable: Expandable,
-        intent: Intent,
-        eventId: Int,
-        location: Int,
-        interactedSubCardRank: Int,
-        interactedSubCardCardinality: Int,
-    ) {
-        if (interactedSubCardRank == -1) {
-            logSmartspaceCardUserEvent(eventId, MediaSmartspaceLogger.getSurface(location))
-        } else {
-            repository.logSmartspaceCardUserEvent(
-                eventId,
-                MediaSmartspaceLogger.getSurface(location),
-                interactedSubCardRank = interactedSubCardRank,
-                interactedSubCardCardinality = interactedSubCardCardinality,
-                isRec = true,
-            )
-        }
+    fun startClickIntent(expandable: Expandable, intent: Intent) {
         if (shouldActivityOpenInForeground(intent)) {
             // Request to unlock the device if the activity needs to be opened in foreground.
             activityStarter.postStartActivityDismissingKeyguard(
@@ -127,14 +101,6 @@
         }
     }
 
-    private fun logSmartspaceCardUserEvent(eventId: Int, location: Int) {
-        repository.logSmartspaceCardUserEvent(
-            eventId,
-            MediaSmartspaceLogger.getSurface(location),
-            isRec = true,
-        )
-    }
-
     /** Returns if the action will open the activity in foreground. */
     private fun shouldActivityOpenInForeground(intent: Intent): Boolean {
         val intentString = intent.extras?.getString(EXTRAS_SMARTSPACE_INTENT) ?: return false
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/shared/model/MediaData.kt b/packages/SystemUI/src/com/android/systemui/media/controls/shared/model/MediaData.kt
index aed8609..90fa6fd 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/shared/model/MediaData.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/shared/model/MediaData.kt
@@ -99,12 +99,6 @@
 
     /** Track progress (0 - 1) to display for players where [resumption] is true */
     val resumeProgress: Double? = null,
-
-    /** Smartspace Id, used for logging. */
-    var smartspaceId: Int = -1,
-
-    /** If media card was visible to user, used for logging. */
-    var isImpressed: Boolean = false,
 ) {
     companion object {
         /** Media is playing on the local device */
@@ -135,7 +129,7 @@
     /** Whether to reserve the empty space when the nextOrCustom is null */
     val reserveNext: Boolean = false,
     /** Whether to reserve the empty space when the prevOrCustom is null */
-    val reservePrev: Boolean = false
+    val reservePrev: Boolean = false,
 ) {
     fun getActionById(id: Int): MediaAction? {
         return when (id) {
@@ -159,7 +153,7 @@
     // Rebind Id is used to detect identical rebinds and ignore them. It is intended
     // to prevent continuously looping animations from restarting due to the arrival
     // of repeated media notifications that are visually identical.
-    val rebindId: Int? = null
+    val rebindId: Int? = null,
 )
 
 /** State of a media action from notification. */
@@ -167,7 +161,7 @@
     val isAuthenticationRequired: Boolean,
     val actionIntent: PendingIntent?,
     val icon: Drawable?,
-    val contentDescription: CharSequence?
+    val contentDescription: CharSequence?,
 )
 
 /** State of the media device. */
@@ -190,7 +184,7 @@
     val id: String? = null,
 
     /** Whether or not to show the broadcast button */
-    val showBroadcastButton: Boolean
+    val showBroadcastButton: Boolean,
 ) {
     /**
      * Check whether [MediaDeviceData] objects are equal in all fields except the icon. The icon is
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/shared/model/SmartspaceMediaData.kt b/packages/SystemUI/src/com/android/systemui/media/controls/shared/model/SmartspaceMediaData.kt
index 96c3fa8..c0e1d95 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/shared/model/SmartspaceMediaData.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/shared/model/SmartspaceMediaData.kt
@@ -48,8 +48,6 @@
     val instanceId: InstanceId? = null,
     /** The timestamp in milliseconds indicating when the card should be removed */
     val expiryTimeMs: Long = 0L,
-    /** If recommendation card was visible to user, used for logging. */
-    var isImpressed: Boolean = false,
 ) {
     /**
      * Indicates if all the data is valid.
@@ -81,7 +79,7 @@
         Log.w(
             TAG,
             "Package $packageName does not have a main launcher activity. " +
-                "Fallback to full app name"
+                "Fallback to full app name",
         )
         return try {
             val applicationInfo = packageManager.getApplicationInfo(packageName, /* flags= */ 0)
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/binder/SeekBarObserver.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/binder/SeekBarObserver.kt
index c9716be..34f7c4d 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/binder/SeekBarObserver.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/binder/SeekBarObserver.kt
@@ -18,9 +18,6 @@
 
 import android.animation.Animator
 import android.animation.ObjectAnimator
-import android.icu.text.MeasureFormat
-import android.icu.util.Measure
-import android.icu.util.MeasureUnit
 import android.text.format.DateUtils
 import androidx.annotation.UiThread
 import androidx.lifecycle.Observer
@@ -31,11 +28,8 @@
 import com.android.systemui.media.controls.ui.view.MediaViewHolder
 import com.android.systemui.media.controls.ui.viewmodel.SeekBarViewModel
 import com.android.systemui.res.R
-import java.util.Locale
 
 private const val TAG = "SeekBarObserver"
-private const val MIN_IN_SEC = 60
-private const val HOUR_IN_SEC = MIN_IN_SEC * 60
 
 /**
  * Observer for changes from SeekBarViewModel.
@@ -133,9 +127,10 @@
         }
 
         holder.seekBar.setMax(data.duration)
-        val totalTimeDescription = formatTimeContentDescription(data.duration)
+        val totalTimeString =
+            DateUtils.formatElapsedTime(data.duration / DateUtils.SECOND_IN_MILLIS)
         if (data.scrubbing) {
-            holder.scrubbingTotalTimeView.text = formatTimeLabel(data.duration)
+            holder.scrubbingTotalTimeView.text = totalTimeString
         }
 
         data.elapsedTime?.let {
@@ -153,62 +148,20 @@
                 }
             }
 
-            val elapsedTimeDescription = formatTimeContentDescription(it)
+            val elapsedTimeString = DateUtils.formatElapsedTime(it / DateUtils.SECOND_IN_MILLIS)
             if (data.scrubbing) {
-                holder.scrubbingElapsedTimeView.text = formatTimeLabel(it)
+                holder.scrubbingElapsedTimeView.text = elapsedTimeString
             }
 
             holder.seekBar.contentDescription =
                 holder.seekBar.context.getString(
                     R.string.controls_media_seekbar_description,
-                    elapsedTimeDescription,
-                    totalTimeDescription,
+                    elapsedTimeString,
+                    totalTimeString
                 )
         }
     }
 
-    /** Returns a time string suitable for display, e.g. "12:34" */
-    private fun formatTimeLabel(milliseconds: Int): CharSequence {
-        return DateUtils.formatElapsedTime(milliseconds / DateUtils.SECOND_IN_MILLIS)
-    }
-
-    /**
-     * Returns a time string suitable for content description, e.g. "12 minutes 34 seconds"
-     *
-     * Follows same logic as Chronometer#formatDuration
-     */
-    private fun formatTimeContentDescription(milliseconds: Int): CharSequence {
-        var seconds = milliseconds / DateUtils.SECOND_IN_MILLIS
-
-        val hours =
-            if (seconds >= HOUR_IN_SEC) {
-                seconds / HOUR_IN_SEC
-            } else {
-                0
-            }
-        seconds -= hours * HOUR_IN_SEC
-
-        val minutes =
-            if (seconds >= MIN_IN_SEC) {
-                seconds / MIN_IN_SEC
-            } else {
-                0
-            }
-        seconds -= minutes * MIN_IN_SEC
-
-        val measures = arrayListOf<Measure>()
-        if (hours > 0) {
-            measures.add(Measure(hours, MeasureUnit.HOUR))
-        }
-        if (minutes > 0) {
-            measures.add(Measure(minutes, MeasureUnit.MINUTE))
-        }
-        measures.add(Measure(seconds, MeasureUnit.SECOND))
-
-        return MeasureFormat.getInstance(Locale.getDefault(), MeasureFormat.FormatWidth.WIDE)
-            .formatMeasures(*measures.toTypedArray())
-    }
-
     @VisibleForTesting
     open fun buildResetAnimator(targetTime: Int): Animator {
         val animator =
@@ -216,7 +169,7 @@
                 holder.seekBar,
                 "progress",
                 holder.seekBar.progress,
-                targetTime + RESET_ANIMATION_DURATION_MS,
+                targetTime + RESET_ANIMATION_DURATION_MS
             )
         animator.setAutoCancel(true)
         animator.duration = RESET_ANIMATION_DURATION_MS.toLong()
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaCarouselController.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaCarouselController.kt
index 55d8b8c..7b1ae57e 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaCarouselController.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaCarouselController.kt
@@ -62,7 +62,6 @@
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaData
 import com.android.systemui.media.controls.ui.binder.MediaControlViewBinder
 import com.android.systemui.media.controls.ui.binder.MediaRecommendationsViewBinder
-import com.android.systemui.media.controls.ui.controller.MediaControlPanel.SMARTSPACE_CARD_DISMISS_EVENT
 import com.android.systemui.media.controls.ui.util.MediaViewModelCallback
 import com.android.systemui.media.controls.ui.util.MediaViewModelListUpdateCallback
 import com.android.systemui.media.controls.ui.view.MediaCarouselScrollHandler
@@ -72,21 +71,13 @@
 import com.android.systemui.media.controls.ui.view.RecommendationViewHolder
 import com.android.systemui.media.controls.ui.viewmodel.MediaCarouselViewModel
 import com.android.systemui.media.controls.ui.viewmodel.MediaCommonViewModel
-import com.android.systemui.media.controls.util.MediaFlags
 import com.android.systemui.media.controls.util.MediaUiEventLogger
-import com.android.systemui.media.controls.util.SmallHash
 import com.android.systemui.plugins.ActivityStarter
 import com.android.systemui.plugins.FalsingManager
 import com.android.systemui.qs.PageIndicator
 import com.android.systemui.res.R
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.scene.shared.model.Scenes
-import com.android.systemui.shared.system.SysUiStatsLog
-import com.android.systemui.shared.system.SysUiStatsLog.SMARTSPACE_CARD_REPORTED
-import com.android.systemui.shared.system.SysUiStatsLog.SMART_SPACE_CARD_REPORTED__CARD_TYPE__UNKNOWN_CARD
-import com.android.systemui.shared.system.SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__DREAM_OVERLAY as SSPACE_CARD_REPORTED__DREAM_OVERLAY
-import com.android.systemui.shared.system.SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__LOCKSCREEN as SSPACE_CARD_REPORTED__LOCKSCREEN
-import com.android.systemui.shared.system.SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__SHADE
 import com.android.systemui.statusbar.featurepods.media.domain.interactor.MediaControlChipInteractor
 import com.android.systemui.statusbar.notification.collection.provider.OnReorderingAllowedListener
 import com.android.systemui.statusbar.notification.collection.provider.VisualStabilityProvider
@@ -148,7 +139,6 @@
     dumpManager: DumpManager,
     private val logger: MediaUiEventLogger,
     private val debugLogger: MediaCarouselControllerLogger,
-    private val mediaFlags: MediaFlags,
     private val keyguardUpdateMonitor: KeyguardUpdateMonitor,
     private val keyguardTransitionInteractor: KeyguardTransitionInteractor,
     private val globalSettings: GlobalSettings,
@@ -359,7 +349,6 @@
                 this::updateSeekbarListening,
                 this::closeGuts,
                 falsingManager,
-                this::logSmartspaceImpression,
                 logger,
             )
         carouselLocale = context.resources.configuration.locales.get(0)
@@ -471,64 +460,7 @@
                         } else {
                             null
                         }
-                    if (addOrUpdatePlayer(key, oldKey, data, isSsReactivated, onUiExecutionEnd)) {
-                        // Log card received if a new resumable media card is added
-                        MediaPlayerData.getMediaPlayer(key)?.let {
-                            logSmartspaceCardReported(
-                                759, // SMARTSPACE_CARD_RECEIVED
-                                it.mSmartspaceId,
-                                it.mUid,
-                                surfaces =
-                                    intArrayOf(
-                                        SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__SHADE,
-                                        SSPACE_CARD_REPORTED__LOCKSCREEN,
-                                        SSPACE_CARD_REPORTED__DREAM_OVERLAY,
-                                    ),
-                                rank = MediaPlayerData.getMediaPlayerIndex(key),
-                            )
-                        }
-                        if (
-                            mediaCarouselScrollHandler.visibleToUser &&
-                                mediaCarouselScrollHandler.visibleMediaIndex ==
-                                    MediaPlayerData.getMediaPlayerIndex(key)
-                        ) {
-                            logSmartspaceImpression(mediaCarouselScrollHandler.qsExpanded)
-                        }
-                    } else if (receivedSmartspaceCardLatency != 0) {
-                        // Log resume card received if resumable media card is reactivated and
-                        // resume card is ranked first
-                        MediaPlayerData.players().forEachIndexed { index, it ->
-                            if (it.recommendationViewHolder == null) {
-                                it.mSmartspaceId =
-                                    SmallHash.hash(
-                                        it.mUid + systemClock.currentTimeMillis().toInt()
-                                    )
-                                it.mIsImpressed = false
-
-                                logSmartspaceCardReported(
-                                    759, // SMARTSPACE_CARD_RECEIVED
-                                    it.mSmartspaceId,
-                                    it.mUid,
-                                    surfaces =
-                                        intArrayOf(
-                                            SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__SHADE,
-                                            SSPACE_CARD_REPORTED__LOCKSCREEN,
-                                            SSPACE_CARD_REPORTED__DREAM_OVERLAY,
-                                        ),
-                                    rank = index,
-                                    receivedLatencyMillis = receivedSmartspaceCardLatency,
-                                )
-                            }
-                        }
-                        // If media container area already visible to the user, log impression for
-                        // reactivated card.
-                        if (
-                            mediaCarouselScrollHandler.visibleToUser &&
-                                !mediaCarouselScrollHandler.qsExpanded
-                        ) {
-                            logSmartspaceImpression(mediaCarouselScrollHandler.qsExpanded)
-                        }
-                    }
+                    addOrUpdatePlayer(key, oldKey, data, isSsReactivated, onUiExecutionEnd)
 
                     val canRemove = data.isPlaying?.let { !it } ?: data.isClearable && !data.active
                     if (canRemove && !Utils.useMediaResumption(context)) {
@@ -555,66 +487,7 @@
                     // Log the case where the hidden media carousel with the existed inactive resume
                     // media is shown by the Smartspace signal.
                     if (data.isActive) {
-                        val hasActivatedExistedResumeMedia =
-                            !mediaManager.hasActiveMedia() &&
-                                mediaManager.hasAnyMedia() &&
-                                shouldPrioritize
-                        if (hasActivatedExistedResumeMedia) {
-                            // Log resume card received if resumable media card is reactivated and
-                            // recommendation card is valid and ranked first
-                            MediaPlayerData.players().forEachIndexed { index, it ->
-                                if (it.recommendationViewHolder == null) {
-                                    it.mSmartspaceId =
-                                        SmallHash.hash(
-                                            it.mUid + systemClock.currentTimeMillis().toInt()
-                                        )
-                                    it.mIsImpressed = false
-
-                                    logSmartspaceCardReported(
-                                        759, // SMARTSPACE_CARD_RECEIVED
-                                        it.mSmartspaceId,
-                                        it.mUid,
-                                        surfaces =
-                                            intArrayOf(
-                                                SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__SHADE,
-                                                SSPACE_CARD_REPORTED__LOCKSCREEN,
-                                                SSPACE_CARD_REPORTED__DREAM_OVERLAY,
-                                            ),
-                                        rank = index,
-                                        receivedLatencyMillis =
-                                            (systemClock.currentTimeMillis() -
-                                                    data.headphoneConnectionTimeMillis)
-                                                .toInt(),
-                                    )
-                                }
-                            }
-                        }
                         addSmartspaceMediaRecommendations(key, data, shouldPrioritize)
-                        MediaPlayerData.getMediaPlayer(key)?.let {
-                            logSmartspaceCardReported(
-                                759, // SMARTSPACE_CARD_RECEIVED
-                                it.mSmartspaceId,
-                                it.mUid,
-                                surfaces =
-                                    intArrayOf(
-                                        SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__SHADE,
-                                        SSPACE_CARD_REPORTED__LOCKSCREEN,
-                                        SSPACE_CARD_REPORTED__DREAM_OVERLAY,
-                                    ),
-                                rank = MediaPlayerData.getMediaPlayerIndex(key),
-                                receivedLatencyMillis =
-                                    (systemClock.currentTimeMillis() -
-                                            data.headphoneConnectionTimeMillis)
-                                        .toInt(),
-                            )
-                        }
-                        if (
-                            mediaCarouselScrollHandler.visibleToUser &&
-                                mediaCarouselScrollHandler.visibleMediaIndex ==
-                                    MediaPlayerData.getMediaPlayerIndex(key)
-                        ) {
-                            logSmartspaceImpression(mediaCarouselScrollHandler.qsExpanded)
-                        }
                     } else {
                         // Handle update to inactive as a removal
                         onSmartspaceMediaDataRemoved(data.targetId, immediately = true)
@@ -683,7 +556,7 @@
     internal fun listenForAnyStateToGoneKeyguardTransition(scope: CoroutineScope): Job {
         return scope.launch {
             keyguardTransitionInteractor
-                .isFinishedIn(scene = Scenes.Gone, stateWithoutSceneContainer = GONE)
+                .isFinishedIn(content = Scenes.Gone, stateWithoutSceneContainer = GONE)
                 .filter { it }
                 .collect {
                     showMediaCarousel()
@@ -799,7 +672,6 @@
                 controllerById[commonViewModel.key] = viewController
             }
         }
-        onAddOrUpdateVisibleToUserCard(position, isMediaCardUpdate = false)
         viewController.setListening(mediaCarouselScrollHandler.visibleToUser && currentlyExpanded)
         updateViewControllerToState(viewController, noAnimation = true)
         updatePageIndicator()
@@ -820,10 +692,6 @@
         commonViewModel.onUpdated(commonViewModel)
         updatePageIndicator()
         mediaCarouselScrollHandler.onPlayersChanged()
-        onAddOrUpdateVisibleToUserCard(
-            position,
-            commonViewModel is MediaCommonViewModel.MediaControl,
-        )
     }
 
     private fun onRemoved(commonViewModel: MediaCommonViewModel) {
@@ -870,20 +738,6 @@
         mediaCarouselScrollHandler.onPlayersChanged()
     }
 
-    private fun onAddOrUpdateVisibleToUserCard(position: Int, isMediaCardUpdate: Boolean) {
-        if (
-            mediaCarouselScrollHandler.visibleToUser &&
-                mediaCarouselScrollHandler.visibleMediaIndex == position
-        ) {
-            mediaCarouselViewModel.onCardVisibleToUser(
-                mediaCarouselScrollHandler.qsExpanded,
-                mediaCarouselScrollHandler.visibleMediaIndex,
-                currentEndLocation,
-                isMediaCardUpdate,
-            )
-        }
-    }
-
     private fun setNewViewModelsList(viewModels: List<MediaCommonViewModel>) {
         commonViewModels.clear()
         commonViewModels.addAll(viewModels)
@@ -978,8 +832,7 @@
             // In RTL, Scroll to the first player as it is the rightmost player in media carousel.
             mediaCarouselScrollHandler.scrollToPlayer(destIndex = 0)
         }
-        // Check postcondition: mediaContent should have the same number of children as there
-        // are
+        // Check postcondition: mediaContent should have the same number of children as there are
         // elements in mediaPlayers.
         if (MediaPlayerData.players().size != mediaContent.childCount) {
             Log.e(
@@ -1177,8 +1030,7 @@
             updatePageIndicator()
             mediaFrame.requiresRemeasuring = true
             // Check postcondition: mediaContent should have the same number of children as there
-            // are
-            // elements in mediaPlayers.
+            // are elements in mediaPlayers.
             if (MediaPlayerData.players().size != mediaContent.childCount) {
                 Log.e(
                     TAG,
@@ -1588,145 +1440,12 @@
         }
     }
 
-    /** Log the user impression for media card at visibleMediaIndex. */
-    fun logSmartspaceImpression(qsExpanded: Boolean) {
-        if (SceneContainerFlag.isEnabled) {
-            mediaCarouselViewModel.onCardVisibleToUser(
-                qsExpanded,
-                mediaCarouselScrollHandler.visibleMediaIndex,
-                currentEndLocation,
-            )
-            return
-        }
-        val visibleMediaIndex = mediaCarouselScrollHandler.visibleMediaIndex
-        if (MediaPlayerData.players().size > visibleMediaIndex) {
-            val mediaControlPanel = MediaPlayerData.getMediaControlPanel(visibleMediaIndex)
-            val hasActiveMediaOrRecommendationCard =
-                MediaPlayerData.hasActiveMediaOrRecommendationCard()
-            if (!hasActiveMediaOrRecommendationCard && !qsExpanded) {
-                // Skip logging if on LS or QQS, and there is no active media card
-                return
-            }
-            mediaControlPanel?.let {
-                logSmartspaceCardReported(
-                    800, // SMARTSPACE_CARD_SEEN
-                    it.mSmartspaceId,
-                    it.mUid,
-                    intArrayOf(it.surfaceForSmartspaceLogging),
-                )
-                it.mIsImpressed = true
-            }
-        }
-    }
-
-    /**
-     * Log Smartspace events
-     *
-     * @param eventId UI event id (e.g. 800 for SMARTSPACE_CARD_SEEN)
-     * @param instanceId id to uniquely identify a card, e.g. each headphone generates a new
-     *   instanceId
-     * @param uid uid for the application that media comes from
-     * @param surfaces list of display surfaces the media card is on (e.g. lockscreen, shade) when
-     *   the event happened
-     * @param interactedSubcardRank the rank for interacted media item for recommendation card, -1
-     *   for tapping on card but not on any media item, 0 for first media item, 1 for second, etc.
-     * @param interactedSubcardCardinality how many media items were shown to the user when there is
-     *   user interaction
-     * @param rank the rank for media card in the media carousel, starting from 0
-     * @param receivedLatencyMillis latency in milliseconds for card received events. E.g. latency
-     *   between headphone connection to sysUI displays media recommendation card
-     * @param isSwipeToDismiss whether is to log swipe-to-dismiss event
-     */
-    @JvmOverloads
-    fun logSmartspaceCardReported(
-        eventId: Int,
-        instanceId: Int,
-        uid: Int,
-        surfaces: IntArray,
-        interactedSubcardRank: Int = 0,
-        interactedSubcardCardinality: Int = 0,
-        rank: Int = mediaCarouselScrollHandler.visibleMediaIndex,
-        receivedLatencyMillis: Int = 0,
-        isSwipeToDismiss: Boolean = false,
-    ) {
-        if (MediaPlayerData.players().size <= rank) {
-            return
-        }
-
-        val mediaControlKey = MediaPlayerData.visiblePlayerKeys().elementAt(rank)
-        // Only log media resume card when Smartspace data is available
-        if (
-            !mediaControlKey.isSsMediaRec &&
-                !mediaManager.isRecommendationActive() &&
-                MediaPlayerData.smartspaceMediaData == null
-        ) {
-            return
-        }
-
-        val cardinality = mediaContent.getChildCount()
-        surfaces.forEach { surface ->
-            SysUiStatsLog.write(
-                SMARTSPACE_CARD_REPORTED,
-                eventId,
-                instanceId,
-                // Deprecated, replaced with AiAi feature type so we don't need to create logging
-                // card type for each new feature.
-                SMART_SPACE_CARD_REPORTED__CARD_TYPE__UNKNOWN_CARD,
-                surface,
-                // Use -1 as rank value to indicate user swipe to dismiss the card
-                if (isSwipeToDismiss) -1 else rank,
-                cardinality,
-                if (mediaControlKey.isSsMediaRec) {
-                    15 // MEDIA_RECOMMENDATION
-                } else if (mediaControlKey.isSsReactivated) {
-                    43 // MEDIA_RESUME_SS_ACTIVATED
-                } else {
-                    31
-                }, // MEDIA_RESUME
-                uid,
-                interactedSubcardRank,
-                interactedSubcardCardinality,
-                receivedLatencyMillis,
-                null, // Media cards cannot have subcards.
-                null, // Media cards don't have dimensions today.
-            )
-
-            if (DEBUG) {
-                Log.d(
-                    TAG,
-                    "Log Smartspace card event id: $eventId instance id: $instanceId" +
-                        " surface: $surface rank: $rank cardinality: $cardinality " +
-                        "isRecommendationCard: ${mediaControlKey.isSsMediaRec} " +
-                        "isSsReactivated: ${mediaControlKey.isSsReactivated}" +
-                        "uid: $uid " +
-                        "interactedSubcardRank: $interactedSubcardRank " +
-                        "interactedSubcardCardinality: $interactedSubcardCardinality " +
-                        "received_latency_millis: $receivedLatencyMillis",
-                )
-            }
-        }
-    }
-
     @VisibleForTesting
     fun onSwipeToDismiss() {
         if (SceneContainerFlag.isEnabled) {
-            mediaCarouselViewModel.onSwipeToDismiss(currentEndLocation)
+            mediaCarouselViewModel.onSwipeToDismiss()
             return
         }
-        MediaPlayerData.players().forEachIndexed { index, it ->
-            if (it.mIsImpressed) {
-                logSmartspaceCardReported(
-                    SMARTSPACE_CARD_DISMISS_EVENT,
-                    it.mSmartspaceId,
-                    it.mUid,
-                    intArrayOf(it.surfaceForSmartspaceLogging),
-                    rank = index,
-                    isSwipeToDismiss = true,
-                )
-                // Reset card impressed state when swipe to dismissed
-                it.mIsImpressed = false
-            }
-        }
         MediaPlayerData.isSwipedAway = true
         logger.logSwipeDismiss()
         mediaManager.onSwipeToDismiss()
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java
index 694a4c7..a6bf5f4 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java
@@ -117,7 +117,6 @@
 import com.android.systemui.media.controls.ui.viewmodel.SeekBarViewModel;
 import com.android.systemui.media.controls.util.MediaDataUtils;
 import com.android.systemui.media.controls.util.MediaUiEventLogger;
-import com.android.systemui.media.controls.util.SmallHash;
 import com.android.systemui.media.dialog.MediaOutputDialogManager;
 import com.android.systemui.monet.ColorScheme;
 import com.android.systemui.monet.Style;
@@ -125,7 +124,6 @@
 import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.res.R;
 import com.android.systemui.scene.shared.flag.SceneContainerFlag;
-import com.android.systemui.shared.system.SysUiStatsLog;
 import com.android.systemui.statusbar.NotificationLockscreenUserManager;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
 import com.android.systemui.surfaceeffects.PaintDrawCallback;
@@ -174,10 +172,6 @@
     private static final String KEY_SMARTSPACE_ARTIST_NAME = "artist_name";
     private static final String KEY_SMARTSPACE_OPEN_IN_FOREGROUND = "KEY_OPEN_IN_FOREGROUND";
 
-    // Event types logged by smartspace
-    private static final int SMARTSPACE_CARD_CLICK_EVENT = 760;
-    protected static final int SMARTSPACE_CARD_DISMISS_EVENT = 761;
-
     private static final float REC_MEDIA_COVER_SCALE_FACTOR = 1.25f;
     private static final float MEDIA_REC_SCRIM_START_ALPHA = 0.15f;
     private static final float MEDIA_REC_SCRIM_END_ALPHA = 1.0f;
@@ -247,11 +241,9 @@
     private final NotificationLockscreenUserManager mLockscreenUserManager;
 
     // Used for logging.
-    protected boolean mIsImpressed = false;
     private SystemClock mSystemClock;
     private MediaUiEventLogger mLogger;
     private InstanceId mInstanceId;
-    protected int mSmartspaceId = -1;
     private String mPackageName;
 
     private boolean mIsScrubbing = false;
@@ -350,7 +342,6 @@
             if (mPackageName != null && mInstanceId != null) {
                 mLogger.logSeek(mUid, mPackageName, mInstanceId);
             }
-            logSmartspaceCardReported(SMARTSPACE_CARD_CLICK_EVENT);
             return Unit.INSTANCE;
         });
 
@@ -565,10 +556,6 @@
         MediaSession.Token token = data.getToken();
         mPackageName = data.getPackageName();
         mUid = data.getAppUid();
-        // Only assigns instance id if it's unassigned.
-        if (mSmartspaceId == -1) {
-            mSmartspaceId = SmallHash.hash(mUid + (int) mSystemClock.currentTimeMillis());
-        }
         mInstanceId = data.getInstanceId();
 
         if (mToken == null || !mToken.equals(token)) {
@@ -588,7 +575,6 @@
                 if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) return;
                 if (mMediaViewController.isGutsVisible()) return;
                 mLogger.logTapContentView(mUid, mPackageName, mInstanceId);
-                logSmartspaceCardReported(SMARTSPACE_CARD_CLICK_EVENT);
 
                 boolean showOverLockscreen = mKeyguardStateController.isShowing()
                         && mActivityIntentHelper.wouldPendingShowOverLockscreen(clickIntent,
@@ -1289,7 +1275,6 @@
                 button.setOnClickListener(v -> {
                     if (!mFalsingManager.isFalseTap(FalsingManager.MODERATE_PENALTY)) {
                         mLogger.logTapAction(button.getId(), mUid, mPackageName, mInstanceId);
-                        logSmartspaceCardReported(SMARTSPACE_CARD_CLICK_EVENT);
                         // Used to determine whether to play turbulence noise.
                         mWasPlaying = isPlaying();
                         mButtonClicked = true;
@@ -1497,7 +1482,6 @@
         }
 
         mRecommendationData = data;
-        mSmartspaceId = SmallHash.hash(data.getTargetId());
         mPackageName = data.getPackageName();
         mInstanceId = data.getInstanceId();
 
@@ -1752,7 +1736,6 @@
         gutsViewHolder.getDismiss().setEnabled(isDismissible);
         gutsViewHolder.getDismiss().setOnClickListener(v -> {
             if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) return;
-            logSmartspaceCardReported(SMARTSPACE_CARD_DISMISS_EVENT);
             mLogger.logLongPressDismiss(mUid, mPackageName, mInstanceId);
 
             onDismissClickedRunnable.run();
@@ -1932,9 +1915,6 @@
             } else {
                 mLogger.logRecommendationItemTap(mPackageName, mInstanceId, interactedSubcardRank);
             }
-            logSmartspaceCardReported(SMARTSPACE_CARD_CLICK_EVENT,
-                    interactedSubcardRank,
-                    mSmartspaceMediaItemsCount);
 
             if (shouldSmartspaceRecItemOpenInForeground(action)) {
                 // Request to unlock the device if the activity needs to be opened in foreground.
@@ -1975,39 +1955,5 @@
 
         return false;
     }
-
-    /**
-     * Get the surface given the current end location for MediaViewController
-     *
-     * @return surface used for Smartspace logging
-     */
-    protected int getSurfaceForSmartspaceLogging() {
-        int currentEndLocation = mMediaViewController.getCurrentEndLocation();
-        if (currentEndLocation == MediaHierarchyManager.LOCATION_QQS
-                || currentEndLocation == MediaHierarchyManager.LOCATION_QS) {
-            return SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__SHADE;
-        } else if (currentEndLocation == MediaHierarchyManager.LOCATION_LOCKSCREEN) {
-            return SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__LOCKSCREEN;
-        } else if (currentEndLocation == MediaHierarchyManager.LOCATION_DREAM_OVERLAY) {
-            return SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__DREAM_OVERLAY;
-        }
-        return SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__DEFAULT_SURFACE;
-    }
-
-    private void logSmartspaceCardReported(int eventId) {
-        logSmartspaceCardReported(eventId,
-                /* interactedSubcardRank */ 0,
-                /* interactedSubcardCardinality */ 0);
-    }
-
-    private void logSmartspaceCardReported(int eventId,
-            int interactedSubcardRank, int interactedSubcardCardinality) {
-        mMediaCarouselController.logSmartspaceCardReported(eventId,
-                mSmartspaceId,
-                mUid,
-                new int[]{getSurfaceForSmartspaceLogging()},
-                interactedSubcardRank,
-                interactedSubcardCardinality);
-    }
 }
 
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManager.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManager.kt
index b64cb3d..c689408 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManager.kt
@@ -58,6 +58,7 @@
 import com.android.systemui.statusbar.CrossFadeHelper
 import com.android.systemui.statusbar.StatusBarState
 import com.android.systemui.statusbar.SysuiStatusBarStateController
+import com.android.systemui.statusbar.featurepods.popups.StatusBarPopupChips
 import com.android.systemui.statusbar.notification.stack.StackStateAnimator
 import com.android.systemui.statusbar.phone.KeyguardBypassController
 import com.android.systemui.statusbar.policy.ConfigurationController
@@ -229,7 +230,7 @@
         else result.setIntersect(animationStartClipping, targetClipping)
     }
 
-    private val mediaHosts = arrayOfNulls<MediaHost>(LOCATION_COMMUNAL_HUB + 1)
+    private val mediaHosts = arrayOfNulls<MediaHost>(LOCATION_STATUS_BAR_POPUP + 1)
 
     /**
      * The last location where this view was at before going to the desired location. This is useful
@@ -285,10 +286,6 @@
                 field = value
                 mediaCarouselController.mediaCarouselScrollHandler.qsExpanded = value
             }
-            // qs is expanded on LS shade and HS shade
-            if (value && (isLockScreenShadeVisibleToUser() || isHomeScreenShadeVisibleToUser())) {
-                mediaCarouselController.logSmartspaceImpression(value)
-            }
             updateUserVisibility()
         }
 
@@ -374,6 +371,15 @@
             }
         }
 
+    /** Is the Media Control StatusBarPopup showing */
+    var isMediaControlPopupShowing: Boolean = false
+        set(value) {
+            if (field != value && StatusBarPopupChips.isEnabled) {
+                field = value
+                updateDesiredLocation(forceNoAnimation = true)
+            }
+        }
+
     /** Are location changes currently blocked? */
     private val blockLocationChanges: Boolean
         get() {
@@ -510,12 +516,6 @@
 
                 override fun onStateChanged(newState: Int) {
                     updateTargetState()
-                    // Enters shade from lock screen
-                    if (
-                        newState == StatusBarState.SHADE_LOCKED && isLockScreenShadeVisibleToUser()
-                    ) {
-                        mediaCarouselController.logSmartspaceImpression(qsExpanded)
-                    }
                     updateUserVisibility()
                 }
 
@@ -526,10 +526,6 @@
                 override fun onDozingChanged(isDozing: Boolean) {
                     if (!isDozing) {
                         dozeAnimationRunning = false
-                        // Enters lock screen from screen off
-                        if (isLockScreenVisibleToUser()) {
-                            mediaCarouselController.logSmartspaceImpression(qsExpanded)
-                        }
                     } else {
                         updateDesiredLocation()
                         qsExpanded = false
@@ -539,10 +535,6 @@
                 }
 
                 override fun onExpandedChanged(isExpanded: Boolean) {
-                    // Enters shade from home screen
-                    if (isHomeScreenShadeVisibleToUser()) {
-                        mediaCarouselController.logSmartspaceImpression(qsExpanded)
-                    }
                     updateUserVisibility()
                 }
             }
@@ -1225,6 +1217,7 @@
             // Keep the current location until we're allowed to again
             return desiredLocation
         }
+
         val onLockscreen =
             (!bypassController.bypassEnabled && (statusbarState == StatusBarState.KEYGUARD))
 
@@ -1234,6 +1227,8 @@
             (onCommunalNotDreaming && qsExpansion == 0.0f) || onCommunalDreamingAndShadeExpanding
         val location =
             when {
+                isMediaControlPopupShowing && StatusBarPopupChips.isEnabled ->
+                    LOCATION_STATUS_BAR_POPUP
                 dreamOverlayActive && dreamMediaComplicationActive -> LOCATION_DREAM_OVERLAY
                 onCommunal -> LOCATION_COMMUNAL_HUB
                 (qsExpansion > 0.0f || inSplitShade) && !onLockscreen -> LOCATION_QS
@@ -1377,6 +1372,9 @@
         /** Attached to a view in the communal UI grid */
         const val LOCATION_COMMUNAL_HUB = 4
 
+        /** Attached to a popup that is shown with a media control chip in the status bar */
+        const val LOCATION_STATUS_BAR_POPUP = 5
+
         /** Attached at the root of the hierarchy in an overlay */
         const val IN_OVERLAY = -1000
 
@@ -1422,6 +1420,7 @@
             MediaHierarchyManager.LOCATION_LOCKSCREEN,
             MediaHierarchyManager.LOCATION_DREAM_OVERLAY,
             MediaHierarchyManager.LOCATION_COMMUNAL_HUB,
+            MediaHierarchyManager.LOCATION_STATUS_BAR_POPUP,
             MediaHierarchyManager.LOCATION_UNKNOWN,
         ],
 )
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandler.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandler.kt
index 0107a52..9cf4a7b 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandler.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/view/MediaCarouselScrollHandler.kt
@@ -64,7 +64,6 @@
     private var seekBarUpdateListener: (visibleToUser: Boolean) -> Unit,
     private val closeGuts: (immediate: Boolean) -> Unit,
     private val falsingManager: FalsingManager,
-    private val logSmartspaceImpression: (Boolean) -> Unit,
     private val logger: MediaUiEventLogger,
 ) {
     /** Trace state logger for media carousel visibility */
@@ -480,7 +479,6 @@
             val oldIndex = visibleMediaIndex
             visibleMediaIndex = newIndex
             if (oldIndex != visibleMediaIndex && visibleToUser) {
-                logSmartspaceImpression(qsExpanded)
                 logger.logMediaCarouselPage(newIndex)
             }
             closeGuts(false)
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModel.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModel.kt
index 4bdcfea6..e5f1766 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModel.kt
@@ -25,7 +25,6 @@
 import com.android.systemui.media.controls.domain.pipeline.interactor.factory.MediaControlInteractorFactory
 import com.android.systemui.media.controls.shared.MediaLogger
 import com.android.systemui.media.controls.shared.model.MediaCommonModel
-import com.android.systemui.media.controls.util.MediaFlags
 import com.android.systemui.media.controls.util.MediaUiEventLogger
 import com.android.systemui.statusbar.notification.collection.provider.VisualStabilityProvider
 import com.android.systemui.util.Utils
@@ -52,7 +51,6 @@
     private val controlInteractorFactory: MediaControlInteractorFactory,
     private val recommendationsViewModel: MediaRecommendationsViewModel,
     private val logger: MediaUiEventLogger,
-    private val mediaFlags: MediaFlags,
     private val mediaLogger: MediaLogger,
 ) {
 
@@ -103,9 +101,9 @@
 
     private var allowReorder = false
 
-    fun onSwipeToDismiss(location: Int) {
+    fun onSwipeToDismiss() {
         logger.logSwipeDismiss()
-        interactor.onSwipeToDismiss(location)
+        interactor.onSwipeToDismiss()
     }
 
     fun onReorderingAllowed() {
@@ -113,17 +111,6 @@
         interactor.reorderMedia()
     }
 
-    fun onCardVisibleToUser(
-        qsExpanded: Boolean,
-        visibleIndex: Int,
-        location: Int,
-        isUpdate: Boolean = false,
-    ) {
-        // Skip logging if on LS or QQS, and there is no active media card
-        if (!qsExpanded && !interactor.hasActiveMediaOrRecommendation()) return
-        interactor.logSmartspaceSeenCard(visibleIndex, location, isUpdate)
-    }
-
     private fun toViewModel(
         commonModel: MediaCommonModel.MediaControl
     ): MediaCommonViewModel.MediaControl {
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaControlViewModel.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaControlViewModel.kt
index bcda485..015274a 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaControlViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaControlViewModel.kt
@@ -35,8 +35,6 @@
 import com.android.systemui.media.controls.shared.model.MediaControlModel
 import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
 import com.android.systemui.media.controls.ui.controller.MediaLocation
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger.Companion.SMARTSPACE_CARD_CLICK_EVENT
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger.Companion.SMARTSPACE_CARD_DISMISS_EVENT
 import com.android.systemui.media.controls.util.MediaUiEventLogger
 import com.android.systemui.res.R
 import java.util.concurrent.Executor
@@ -90,13 +88,7 @@
         instanceId: InstanceId,
     ) {
         logger.logLongPressDismiss(uid, packageName, instanceId)
-        interactor.removeMediaControl(
-            token,
-            instanceId,
-            MEDIA_PLAYER_ANIMATION_DELAY,
-            SMARTSPACE_CARD_DISMISS_EVENT,
-            location,
-        )
+        interactor.removeMediaControl(token, instanceId, MEDIA_PLAYER_ANIMATION_DELAY)
     }
 
     private fun toViewModel(model: MediaControlModel): MediaPlayerViewModel {
@@ -141,21 +133,13 @@
             onClicked = { expandable ->
                 model.clickIntent?.let { clickIntent ->
                     logger.logTapContentView(model.uid, model.packageName, model.instanceId)
-                    interactor.startClickIntent(
-                        expandable,
-                        clickIntent,
-                        SMARTSPACE_CARD_CLICK_EVENT,
-                        location,
-                    )
+                    interactor.startClickIntent(expandable, clickIntent)
                 }
             },
             onLongClicked = {
                 logger.logLongPressOpen(model.uid, model.packageName, model.instanceId)
             },
-            onSeek = {
-                logger.logSeek(model.uid, model.packageName, model.instanceId)
-                interactor.logSmartspaceUserEvent(SMARTSPACE_CARD_CLICK_EVENT, location)
-            },
+            onSeek = { logger.logSeek(model.uid, model.packageName, model.instanceId) },
             onBindSeekbar = { seekBarViewModel ->
                 if (model.isResume && model.resumeProgress != null) {
                     seekBarViewModel.updateStaticProgress(model.resumeProgress)
@@ -366,7 +350,6 @@
         action: Runnable,
     ) {
         logger.logTapAction(id, uid, packageName, instanceId)
-        interactor.logSmartspaceUserEvent(SMARTSPACE_CARD_CLICK_EVENT, location)
         isAnyButtonClicked = true
         action.run()
     }
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaRecommendationsViewModel.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaRecommendationsViewModel.kt
index 88cfbaf..90313dd 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaRecommendationsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/viewmodel/MediaRecommendationsViewModel.kt
@@ -30,13 +30,10 @@
 import com.android.systemui.media.controls.domain.pipeline.interactor.MediaRecommendationsInteractor
 import com.android.systemui.media.controls.shared.model.MediaRecModel
 import com.android.systemui.media.controls.shared.model.MediaRecommendationsModel
-import com.android.systemui.media.controls.shared.model.NUM_REQUIRED_RECOMMENDATIONS
 import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
 import com.android.systemui.media.controls.ui.controller.MediaLocation
 import com.android.systemui.media.controls.ui.controller.MediaViewController.Companion.GUTS_ANIMATION_DURATION
 import com.android.systemui.media.controls.util.MediaDataUtils
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger.Companion.SMARTSPACE_CARD_CLICK_EVENT
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger.Companion.SMARTSPACE_CARD_DISMISS_EVENT
 import com.android.systemui.media.controls.util.MediaUiEventLogger
 import com.android.systemui.res.R
 import javax.inject.Inject
@@ -77,13 +74,7 @@
         instanceId: InstanceId?,
     ) {
         logger.logLongPressDismiss(uid, packageName, instanceId)
-        interactor.removeMediaRecommendations(
-            key,
-            dismissIntent,
-            GUTS_DISMISS_DELAY_MS_DURATION,
-            SMARTSPACE_CARD_DISMISS_EVENT,
-            location,
-        )
+        interactor.removeMediaRecommendations(key, dismissIntent, GUTS_DISMISS_DELAY_MS_DURATION)
     }
 
     private fun onClicked(
@@ -107,14 +98,7 @@
         // set the package name of the player added by recommendation once the media is loaded.
         interactor.switchToMediaControl(packageName)
 
-        interactor.startClickIntent(
-            expandable,
-            intent,
-            SMARTSPACE_CARD_CLICK_EVENT,
-            location,
-            index,
-            NUM_REQUIRED_RECOMMENDATIONS,
-        )
+        interactor.startClickIntent(expandable, intent)
     }
 
     private suspend fun toRecsViewModel(model: MediaRecommendationsModel): MediaRecsCardViewModel? {
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaSmartspaceLogger.kt b/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaSmartspaceLogger.kt
deleted file mode 100644
index 9c59aa2..0000000
--- a/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaSmartspaceLogger.kt
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright (C) 2024 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.media.controls.util
-
-import android.util.Log
-import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
-import com.android.systemui.scene.shared.flag.SceneContainerFlag
-import com.android.systemui.shared.system.SysUiStatsLog
-import javax.inject.Inject
-
-/** Logger class for Smartspace logging events. */
-@SysUISingleton
-class MediaSmartspaceLogger @Inject constructor() {
-    /**
-     * Log Smartspace card received event
-     *
-     * @param instanceId id to uniquely identify a card.
-     * @param uid uid for the application that media comes from.
-     * @param cardinality number of card in carousel.
-     * @param isRecommendationCard whether media card being logged is a recommendations card.
-     * @param isSsReactivated indicates resume media card is reactivated by Smartspace
-     *   recommendation signal
-     * @param rank the rank for media card in the media carousel, starting from 0
-     * @param receivedLatencyMillis latency in milliseconds for card received events.
-     */
-    fun logSmartspaceCardReceived(
-        instanceId: Int,
-        uid: Int,
-        cardinality: Int,
-        isRecommendationCard: Boolean = false,
-        isSsReactivated: Boolean = false,
-        rank: Int = 0,
-        receivedLatencyMillis: Int = 0,
-    ) {
-        logSmartspaceCardReported(
-            SMARTSPACE_CARD_RECEIVED_EVENT,
-            instanceId,
-            uid,
-            surfaces =
-                intArrayOf(
-                    SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__SHADE,
-                    SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__LOCKSCREEN,
-                    SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__DREAM_OVERLAY,
-                ),
-            cardinality,
-            isRecommendationCard,
-            isSsReactivated,
-            rank = rank,
-            receivedLatencyMillis = receivedLatencyMillis,
-        )
-    }
-
-    /**
-     * Log Smartspace card UI event
-     *
-     * @param eventId id of the event. eg: dismiss, click, or seen.
-     * @param instanceId id to uniquely identify a card.
-     * @param uid uid for the application that media comes from.
-     * @param surface location of media carousel holding media card.
-     * @param cardinality number of card in carousel.
-     * @param isRecommendationCard whether media card being logged is a recommendations card.
-     * @param isSsReactivated indicates resume media card is reactivated by Smartspace
-     *   recommendation signal
-     * @param rank the rank for media card in the media carousel, starting from 0
-     * @param isSwipeToDismiss whether is to log swipe-to-dismiss event
-     */
-    fun logSmartspaceCardUIEvent(
-        eventId: Int,
-        instanceId: Int,
-        uid: Int,
-        surface: Int,
-        cardinality: Int,
-        isRecommendationCard: Boolean = false,
-        isSsReactivated: Boolean = false,
-        interactedSubcardRank: Int = 0,
-        interactedSubcardCardinality: Int = 0,
-        rank: Int = 0,
-        isSwipeToDismiss: Boolean = false,
-    ) {
-        logSmartspaceCardReported(
-            eventId,
-            instanceId,
-            uid,
-            surfaces = intArrayOf(surface),
-            cardinality,
-            isRecommendationCard,
-            isSsReactivated,
-            interactedSubcardRank,
-            interactedSubcardCardinality,
-            rank = rank,
-            isSwipeToDismiss = isSwipeToDismiss,
-        )
-    }
-
-    /**
-     * Log Smartspace events
-     *
-     * @param eventId UI event id (e.g. 800 for SMARTSPACE_CARD_SEEN)
-     * @param instanceId id to uniquely identify a card, e.g. each headphone generates a new
-     *   instanceId
-     * @param uid uid for the application that media comes from
-     * @param surfaces list of display surfaces the media card is on (e.g. lockscreen, shade) when
-     *   the event happened
-     * @param cardinality number of card in carousel.
-     * @param isRecommendationCard whether media card being logged is a recommendations card.
-     * @param isSsReactivated indicates resume media card is reactivated by Smartspace
-     *   recommendation signal
-     * @param interactedSubcardRank the rank for interacted media item for recommendation card, -1
-     *   for tapping on card but not on any media item, 0 for first media item, 1 for second, etc.
-     * @param interactedSubcardCardinality how many media items were shown to the user when there is
-     *   user interaction
-     * @param rank the rank for media card in the media carousel, starting from 0
-     * @param receivedLatencyMillis latency in milliseconds for card received events. E.g. latency
-     *   between headphone connection to sysUI displays media recommendation card
-     * @param isSwipeToDismiss whether is to log swipe-to-dismiss event
-     */
-    private fun logSmartspaceCardReported(
-        eventId: Int,
-        instanceId: Int,
-        uid: Int,
-        surfaces: IntArray,
-        cardinality: Int,
-        isRecommendationCard: Boolean,
-        isSsReactivated: Boolean,
-        interactedSubcardRank: Int = 0,
-        interactedSubcardCardinality: Int = 0,
-        rank: Int = 0,
-        receivedLatencyMillis: Int = 0,
-        isSwipeToDismiss: Boolean = false,
-    ) {
-        surfaces.forEach { surface ->
-            SysUiStatsLog.write(
-                SysUiStatsLog.SMARTSPACE_CARD_REPORTED,
-                eventId,
-                instanceId,
-                // Deprecated, replaced with AiAi feature type so we don't need to create logging
-                // card type for each new feature.
-                SysUiStatsLog.SMART_SPACE_CARD_REPORTED__CARD_TYPE__UNKNOWN_CARD,
-                surface,
-                // Use -1 as rank value to indicate user swipe to dismiss the card
-                if (isSwipeToDismiss) -1 else rank,
-                cardinality,
-                if (isRecommendationCard) {
-                    15 // MEDIA_RECOMMENDATION
-                } else if (isSsReactivated) {
-                    43 // MEDIA_RESUME_SS_ACTIVATED
-                } else {
-                    31 // MEDIA_RESUME
-                },
-                uid,
-                interactedSubcardRank,
-                interactedSubcardCardinality,
-                receivedLatencyMillis,
-                null, // Media cards cannot have subcards.
-                null // Media cards don't have dimensions today.
-            )
-
-            if (DEBUG) {
-                Log.d(
-                    TAG,
-                    "Log Smartspace card event id: $eventId instance id: $instanceId" +
-                        " surface: $surface rank: $rank cardinality: $cardinality " +
-                        "isRecommendationCard: $isRecommendationCard " +
-                        "isSsReactivated: $isSsReactivated" +
-                        "uid: $uid " +
-                        "interactedSubcardRank: $interactedSubcardRank " +
-                        "interactedSubcardCardinality: $interactedSubcardCardinality " +
-                        "received_latency_millis: $receivedLatencyMillis"
-                )
-            }
-        }
-    }
-
-    companion object {
-        private const val TAG = "MediaSmartspaceLogger"
-        private val DEBUG = Log.isLoggable(TAG, Log.DEBUG)
-        private const val SMARTSPACE_CARD_RECEIVED_EVENT = 759
-        const val SMARTSPACE_CARD_CLICK_EVENT = 760
-        const val SMARTSPACE_CARD_DISMISS_EVENT = 761
-        const val SMARTSPACE_CARD_SEEN_EVENT = 800
-
-        /**
-         * Get the location of media view given [currentEndLocation]
-         *
-         * @return location used for Smartspace logging
-         */
-        fun getSurface(location: Int): Int {
-            SceneContainerFlag.isUnexpectedlyInLegacyMode()
-            return when (location) {
-                MediaHierarchyManager.LOCATION_QQS,
-                MediaHierarchyManager.LOCATION_QS -> {
-                    SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__SHADE
-                }
-                MediaHierarchyManager.LOCATION_LOCKSCREEN -> {
-                    SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__LOCKSCREEN
-                }
-                MediaHierarchyManager.LOCATION_DREAM_OVERLAY -> {
-                    SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__DREAM_OVERLAY
-                }
-                else -> SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__DEFAULT_SURFACE
-            }
-        }
-    }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaUiEventLogger.kt b/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaUiEventLogger.kt
index 09f973c..f0da226 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaUiEventLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaUiEventLogger.kt
@@ -45,7 +45,7 @@
         uid: Int,
         packageName: String,
         instanceId: InstanceId,
-        playbackLocation: Int
+        playbackLocation: Int,
     ) {
         val event =
             when (playbackLocation) {
@@ -61,7 +61,7 @@
         uid: Int,
         packageName: String,
         instanceId: InstanceId,
-        playbackLocation: Int
+        playbackLocation: Int,
     ) {
         val event =
             when (playbackLocation) {
@@ -112,7 +112,7 @@
             MediaUiEvent.OPEN_SETTINGS_LONG_PRESS,
             uid,
             packageName,
-            instanceId
+            instanceId,
         )
     }
 
@@ -156,6 +156,8 @@
                     MediaUiEvent.MEDIA_CAROUSEL_LOCATION_DREAM
                 MediaHierarchyManager.LOCATION_COMMUNAL_HUB ->
                     MediaUiEvent.MEDIA_CAROUSEL_LOCATION_COMMUNAL
+                MediaHierarchyManager.LOCATION_STATUS_BAR_POPUP ->
+                    MediaUiEvent.MEDIA_CAROUSEL_LOCATION_STATUS_BAR_POPUP
                 else -> throw IllegalArgumentException("Unknown media carousel location $location")
             }
         logger.log(event)
@@ -166,7 +168,7 @@
             MediaUiEvent.MEDIA_RECOMMENDATION_ADDED,
             0,
             packageName,
-            instanceId
+            instanceId,
         )
     }
 
@@ -175,7 +177,7 @@
             MediaUiEvent.MEDIA_RECOMMENDATION_REMOVED,
             0,
             packageName,
-            instanceId
+            instanceId,
         )
     }
 
@@ -184,7 +186,7 @@
             MediaUiEvent.MEDIA_RECOMMENDATION_ACTIVATED,
             uid,
             packageName,
-            instanceId
+            instanceId,
         )
     }
 
@@ -194,7 +196,7 @@
             0,
             packageName,
             instanceId,
-            position
+            position,
         )
     }
 
@@ -203,7 +205,7 @@
             MediaUiEvent.MEDIA_RECOMMENDATION_CARD_TAP,
             0,
             packageName,
-            instanceId
+            instanceId,
         )
     }
 
@@ -212,7 +214,7 @@
             MediaUiEvent.MEDIA_OPEN_BROADCAST_DIALOG,
             uid,
             packageName,
-            instanceId
+            instanceId,
         )
     }
 
@@ -221,7 +223,7 @@
             MediaUiEvent.MEDIA_CAROUSEL_SINGLE_PLAYER,
             uid,
             packageName,
-            instanceId
+            instanceId,
         )
     }
 
@@ -230,7 +232,7 @@
             MediaUiEvent.MEDIA_CAROUSEL_MULTIPLE_PLAYERS,
             uid,
             packageName,
-            instanceId
+            instanceId,
         )
     }
 }
@@ -280,6 +282,8 @@
     MEDIA_CAROUSEL_LOCATION_DREAM(1040),
     @UiEvent(doc = "The media carousel moved to the communal hub UI")
     MEDIA_CAROUSEL_LOCATION_COMMUNAL(1520),
+    @UiEvent(doc = "The media carousel moved to the status bar popup")
+    MEDIA_CAROUSEL_LOCATION_STATUS_BAR_POPUP(2170),
     @UiEvent(doc = "A media recommendation card was added to the media carousel")
     MEDIA_RECOMMENDATION_ADDED(1041),
     @UiEvent(doc = "A media recommendation card was removed from the media carousel")
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/util/SmallHash.java b/packages/SystemUI/src/com/android/systemui/media/controls/util/SmallHash.java
deleted file mode 100644
index 97483a6..0000000
--- a/packages/SystemUI/src/com/android/systemui/media/controls/util/SmallHash.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2021 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.media.controls.util;
-
-import java.util.Objects;
-
-/**
- * A simple hash function for use in privacy-sensitive logging.
- */
-public final class SmallHash {
-    // Hashes will be in the range [0, MAX_HASH).
-    public static final int MAX_HASH = (1 << 13);
-
-    /** Return Small hash of the string, if non-null, or 0 otherwise. */
-    public static int hash(String in) {
-        return hash(Objects.hashCode(in));
-    }
-
-    /**
-     * Maps in to the range [0, MAX_HASH), keeping similar values distinct.
-     *
-     * @param in An arbitrary integer.
-     * @return in mod MAX_HASH, signs chosen to stay in the range [0, MAX_HASH).
-     */
-    public static int hash(int in) {
-        return Math.abs(Math.floorMod(in, MAX_HASH));
-    }
-
-    private SmallHash() {}
-}
diff --git a/packages/SystemUI/src/com/android/systemui/media/dagger/MediaModule.java b/packages/SystemUI/src/com/android/systemui/media/dagger/MediaModule.java
index 45a3a8c..662a9c7 100644
--- a/packages/SystemUI/src/com/android/systemui/media/dagger/MediaModule.java
+++ b/packages/SystemUI/src/com/android/systemui/media/dagger/MediaModule.java
@@ -49,6 +49,7 @@
     String KEYGUARD = "media_keyguard";
     String DREAM = "dream";
     String COMMUNAL_HUB = "communal_Hub";
+    String POPUP = "popup";
 
     /** */
     @Provides
@@ -102,7 +103,26 @@
     @Provides
     @SysUISingleton
     @Named(COMMUNAL_HUB)
-    static MediaHost providesCommunalMediaHost(MediaHost.MediaHostStateHolder stateHolder,
+    static MediaHost providesCommunalMediaHost(
+            MediaHost.MediaHostStateHolder stateHolder,
+            MediaHierarchyManager hierarchyManager,
+            MediaDataManager dataManager,
+            MediaHostStatesManager statesManager,
+            MediaCarouselController carouselController,
+            MediaCarouselControllerLogger logger) {
+        return new MediaHost(
+                stateHolder,
+                hierarchyManager,
+                dataManager,
+                statesManager,
+                carouselController,
+                logger);
+    }
+
+    @Provides
+    @SysUISingleton
+    @Named(POPUP)
+    static MediaHost providesPopupMediaHost(MediaHost.MediaHostStateHolder stateHolder,
             MediaHierarchyManager hierarchyManager, MediaDataManager dataManager,
             MediaHostStatesManager statesManager, MediaCarouselController carouselController,
             MediaCarouselControllerLogger logger) {
diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapterLegacy.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapterLegacy.java
index ea44184..f8e57ef 100644
--- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapterLegacy.java
+++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputAdapterLegacy.java
@@ -36,6 +36,7 @@
 import android.view.animation.LinearInterpolator;
 import android.widget.CheckBox;
 import android.widget.FrameLayout;
+import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.ProgressBar;
 import android.widget.SeekBar;
@@ -44,7 +45,6 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
-import androidx.core.widget.CompoundButtonCompat;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.media.flags.Flags;
@@ -130,6 +130,7 @@
         final ViewGroup mContainerLayout;
         final FrameLayout mItemLayout;
         final FrameLayout mIconAreaLayout;
+        final ViewGroup mTextContent;
         final TextView mTitleText;
         final TextView mSubTitleText;
         final TextView mVolumeValueText;
@@ -138,7 +139,7 @@
         final ImageView mStatusIcon;
         final CheckBox mCheckBox;
         final ViewGroup mEndTouchArea;
-        final ImageView mEndClickIcon;
+        final ImageButton mEndClickIcon;
         @VisibleForTesting
         MediaOutputSeekbar mSeekBar;
         private final float mInactiveRadius;
@@ -152,6 +153,7 @@
             super(view, context);
             mContainerLayout = view.requireViewById(R.id.device_container);
             mItemLayout = view.requireViewById(R.id.item_layout);
+            mTextContent = view.requireViewById(R.id.text_content);
             mTitleText = view.requireViewById(R.id.title);
             mSubTitleText = view.requireViewById(R.id.subtitle);
             mTitleIcon = view.requireViewById(R.id.title_icon);
@@ -160,7 +162,7 @@
             mStatusIcon = view.requireViewById(R.id.media_output_item_status);
             mCheckBox = view.requireViewById(R.id.check_box);
             mEndTouchArea = view.requireViewById(R.id.end_action_area);
-            mEndClickIcon = view.requireViewById(R.id.media_output_item_end_click_icon);
+            mEndClickIcon = view.requireViewById(R.id.end_area_image_button);
             mVolumeValueText = view.requireViewById(R.id.volume_value);
             mIconAreaLayout = view.requireViewById(R.id.icon_area);
             mInactiveRadius = mContext.getResources().getDimension(
@@ -178,9 +180,7 @@
             mStatusIcon.setVisibility(View.GONE);
             mEndTouchArea.setVisibility(View.GONE);
             mEndClickIcon.setVisibility(View.GONE);
-            mEndTouchArea.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
             mContainerLayout.setOnClickListener(null);
-            mContainerLayout.setContentDescription(null);
             mTitleText.setTextColor(mController.getColorItemContent());
             mSubTitleText.setTextColor(mController.getColorItemContent());
             mVolumeValueText.setTextColor(mController.getColorItemContent());
@@ -188,7 +188,7 @@
             updateIconAreaClickListener(null);
             mSeekBar.setProgressTintList(
                     ColorStateList.valueOf(mController.getColorSeekbarProgress()));
-            enableFocusPropertyForView(mContainerLayout);
+            updateContainerContentA11yImportance(true  /* isImportant */);
             renderItem(mediaItem, position);
         }
 
@@ -256,10 +256,10 @@
             mSeekBar.setVisibility(showSeekBar ? View.VISIBLE : View.GONE);
             if (showSeekBar) {
                 initSeekbar(device, isCurrentSeekbarInvisible);
-                disableFocusPropertyForView(mContainerLayout);
+                updateContainerContentA11yImportance(false /* isImportant */);
                 mSeekBar.setContentDescription(contentDescription);
             } else {
-                enableFocusPropertyForView(mContainerLayout);
+                updateContainerContentA11yImportance(true /* isImportant */);
             }
         }
 
@@ -268,18 +268,22 @@
             boolean isCurrentSeekbarInvisible = mSeekBar.getVisibility() == View.GONE;
             mSeekBar.setVisibility(View.VISIBLE);
             initGroupSeekbar(isCurrentSeekbarInvisible);
-            disableFocusPropertyForView(mContainerLayout);
+            updateContainerContentA11yImportance(false /* isImportant */);
             mSeekBar.setContentDescription(contentDescription);
         }
 
-        private void disableFocusPropertyForView(View view) {
-            view.setFocusable(false);
-            view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
-        }
-
-        private void enableFocusPropertyForView(View view) {
-            view.setFocusable(true);
-            view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_AUTO);
+        /**
+         * Sets the a11y importance for the device container and it's text content. Making the
+         * container not important for a11y is required when the seekbar is visible.
+         */
+        private void updateContainerContentA11yImportance(boolean isImportant) {
+            mContainerLayout.setFocusable(isImportant);
+            mContainerLayout.setImportantForAccessibility(
+                    isImportant ? View.IMPORTANT_FOR_ACCESSIBILITY_YES
+                            : View.IMPORTANT_FOR_ACCESSIBILITY_NO);
+            mTextContent.setImportantForAccessibility(
+                    isImportant ? View.IMPORTANT_FOR_ACCESSIBILITY_YES
+                            : View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
         }
 
         void updateSubtitle(@Nullable String subtitle) {
@@ -576,26 +580,22 @@
             mEndClickIcon.setImageTintList(
                     ColorStateList.valueOf(mController.getColorItemContent()));
             mEndClickIcon.setOnClickListener(clickListener);
-            mEndTouchArea.setOnClickListener(v -> mEndClickIcon.performClick());
             Drawable drawable = mContext.getDrawable(iconDrawableId);
             mEndClickIcon.setImageDrawable(drawable);
             if (drawable instanceof AnimatedVectorDrawable) {
                 ((AnimatedVectorDrawable) drawable).start();
             }
-            if (Flags.enableOutputSwitcherDeviceGrouping()) {
-                mEndClickIcon.setContentDescription(mContext.getString(accessibilityStringId));
-            }
+            mEndClickIcon.setContentDescription(mContext.getString(accessibilityStringId));
         }
 
         private void updateEndAreaForGroupCheckBox(@NonNull MediaDevice device,
                 @NonNull GroupStatus groupStatus) {
             boolean isEnabled = isGroupCheckboxEnabled(groupStatus);
-            mEndTouchArea.setOnClickListener(
-                    isEnabled ? (v) -> mCheckBox.performClick() : null);
-            mEndTouchArea.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
             updateEndAreaColor(groupStatus.selected() ? mController.getColorSeekbarProgress()
                     : mController.getColorItemBackground());
-            mEndTouchArea.setContentDescription(getDeviceItemContentDescription(device));
+            mCheckBox.setContentDescription(mContext.getString(
+                    groupStatus.selected() ? R.string.accessibility_remove_device_from_group
+                            : R.string.accessibility_add_device_to_group));
             mCheckBox.setOnCheckedChangeListener(null);
             mCheckBox.setChecked(groupStatus.selected());
             mCheckBox.setOnCheckedChangeListener(
@@ -606,10 +606,7 @@
         }
 
         private void setCheckBoxColor(CheckBox checkBox, int color) {
-            int[][] states = {{android.R.attr.state_checked}, {}};
-            int[] colors = {color, color};
-            CompoundButtonCompat.setButtonTintList(checkBox, new
-                    ColorStateList(states, colors));
+            checkBox.setForegroundTintList(ColorStateList.valueOf(color));
         }
 
         private boolean shouldShowGroupCheckbox(@NonNull GroupStatus groupStatus) {
diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaSwitchingController.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaSwitchingController.java
index 9d37580..1f2f571 100644
--- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaSwitchingController.java
+++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaSwitchingController.java
@@ -648,6 +648,10 @@
             final MediaDevice connectedMediaDevice =
                     needToHandleMutingExpectedDevice ? null
                             : getCurrentConnectedMediaDevice();
+
+            Set<String> selectedDevicesIds = getSelectedMediaDevice().stream()
+                    .map(MediaDevice::getId)
+                    .collect(Collectors.toSet());
             if (oldMediaItems.isEmpty()) {
                 if (connectedMediaDevice == null) {
                     if (DEBUG) {
@@ -656,12 +660,14 @@
                     return categorizeMediaItemsLocked(
                             /* connectedMediaDevice */ null,
                             devices,
+                            selectedDevicesIds,
                             needToHandleMutingExpectedDevice);
                 } else {
                     // selected device exist
                     return categorizeMediaItemsLocked(
                             connectedMediaDevice,
                             devices,
+                            selectedDevicesIds,
                             /* needToHandleMutingExpectedDevice */ false);
                 }
             }
@@ -695,9 +701,20 @@
                 devices.removeAll(targetMediaDevices);
                 targetMediaDevices.addAll(devices);
             }
-            List<MediaItem> finalMediaItems = targetMediaDevices.stream()
-                    .map(MediaItem::createDeviceMediaItem)
-                    .collect(Collectors.toList());
+            List<MediaItem> finalMediaItems = new ArrayList<>();
+            boolean shouldAddFirstSeenSelectedDevice =
+                    com.android.media.flags.Flags.enableOutputSwitcherDeviceGrouping();
+            for (MediaDevice targetMediaDevice : targetMediaDevices) {
+                if (shouldAddFirstSeenSelectedDevice
+                        && selectedDevicesIds.contains(targetMediaDevice.getId())) {
+                    finalMediaItems.add(MediaItem.createDeviceMediaItem(
+                            targetMediaDevice, /* isFirstDeviceInGroup */ true));
+                    shouldAddFirstSeenSelectedDevice = false;
+                } else {
+                    finalMediaItems.add(MediaItem.createDeviceMediaItem(
+                            targetMediaDevice, /* isFirstDeviceInGroup */ false));
+                }
+            }
             dividerItems.forEach(finalMediaItems::add);
             attachConnectNewDeviceItemIfNeeded(finalMediaItems);
             return finalMediaItems;
@@ -724,11 +741,9 @@
     @GuardedBy("mMediaDevicesLock")
     private List<MediaItem> categorizeMediaItemsLocked(MediaDevice connectedMediaDevice,
             List<MediaDevice> devices,
+            Set<String> selectedDevicesIds,
             boolean needToHandleMutingExpectedDevice) {
         List<MediaItem> finalMediaItems = new ArrayList<>();
-        Set<String> selectedDevicesIds = getSelectedMediaDevice().stream()
-                .map(MediaDevice::getId)
-                .collect(Collectors.toSet());
         if (connectedMediaDevice != null) {
             selectedDevicesIds.add(connectedMediaDevice.getId());
         }
diff --git a/packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt b/packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt
index 0bf4c7e..ea515c9 100644
--- a/packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt
+++ b/packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt
@@ -103,7 +103,7 @@
                         it.scene == Scenes.QuickSettings ||
                             Overlays.QuickSettingsShade in it.overlays
                     },
-                SYSUI_STATE_BOUNCER_SHOWING to { it.scene == Scenes.Bouncer },
+                SYSUI_STATE_BOUNCER_SHOWING to { Overlays.Bouncer in it.overlays },
                 SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING to
                     {
                         it.scene == Scenes.Lockscreen && !it.invisibleDueToOcclusion
diff --git a/packages/SystemUI/src/com/android/systemui/model/SysUiState.java b/packages/SystemUI/src/com/android/systemui/model/SysUiState.java
deleted file mode 100644
index 1a5e605..0000000
--- a/packages/SystemUI/src/com/android/systemui/model/SysUiState.java
+++ /dev/null
@@ -1,151 +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 com.android.systemui.model;
-
-import android.annotation.NonNull;
-import android.util.Log;
-
-import com.android.systemui.Dumpable;
-import com.android.systemui.dagger.SysUISingleton;
-import com.android.systemui.settings.DisplayTracker;
-import com.android.systemui.shared.system.QuickStepContract;
-import com.android.systemui.shared.system.QuickStepContract.SystemUiStateFlags;
-
-import dalvik.annotation.optimization.NeverCompile;
-
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Contains sysUi state flags and notifies registered
- * listeners whenever changes happen.
- */
-@SysUISingleton
-public class SysUiState implements Dumpable {
-
-    private static final String TAG = SysUiState.class.getSimpleName();
-    public static final boolean DEBUG = false;
-
-    private final DisplayTracker mDisplayTracker;
-    private final SceneContainerPlugin mSceneContainerPlugin;
-    private @SystemUiStateFlags long mFlags;
-    private final List<SysUiStateCallback> mCallbacks = new ArrayList<>();
-    private long mFlagsToSet = 0;
-    private long mFlagsToClear = 0;
-
-    public SysUiState(DisplayTracker displayTracker, SceneContainerPlugin sceneContainerPlugin) {
-        mDisplayTracker = displayTracker;
-        mSceneContainerPlugin = sceneContainerPlugin;
-    }
-
-    /**
-     * Add listener to be notified of changes made to SysUI state.
-     * The callback will also be called as part of this function.
-     */
-    public void addCallback(@NonNull SysUiStateCallback callback) {
-        mCallbacks.add(callback);
-        callback.onSystemUiStateChanged(mFlags);
-    }
-
-    /** Callback will no longer receive events on state change */
-    public void removeCallback(@NonNull SysUiStateCallback callback) {
-        mCallbacks.remove(callback);
-    }
-
-    /** Returns the current sysui state flags. */
-    @SystemUiStateFlags
-    public long getFlags() {
-        return mFlags;
-    }
-
-    public boolean isFlagEnabled(@SystemUiStateFlags long flag) {
-        return (mFlags & flag) != 0;
-    }
-
-    /** Methods to this call can be chained together before calling {@link #commitUpdate(int)}. */
-    public SysUiState setFlag(@SystemUiStateFlags long flag, boolean enabled) {
-        final Boolean overrideOrNull = mSceneContainerPlugin != null
-                ? mSceneContainerPlugin.flagValueOverride(flag) : null;
-        if (overrideOrNull != null && enabled != overrideOrNull) {
-            if (DEBUG) {
-                Log.d(TAG, "setFlag for flag " + flag + " and value " + enabled + " overridden to "
-                        + overrideOrNull + " by scene container plugin");
-            }
-
-            enabled = overrideOrNull;
-        }
-
-        if (enabled) {
-            mFlagsToSet |= flag;
-        } else {
-            mFlagsToClear |= flag;
-        }
-        return this;
-    }
-
-    /** Call to save all the flags updated from {@link #setFlag(long, boolean)}. */
-    public void commitUpdate(int displayId) {
-        updateFlags(displayId);
-        mFlagsToSet = 0;
-        mFlagsToClear = 0;
-    }
-
-    private void updateFlags(int displayId) {
-        if (displayId != mDisplayTracker.getDefaultDisplayId()) {
-            // Ignore non-default displays for now
-            Log.w(TAG, "Ignoring flag update for display: " + displayId, new Throwable());
-            return;
-        }
-
-        long newState = mFlags;
-        newState |= mFlagsToSet;
-        newState &= ~mFlagsToClear;
-        notifyAndSetSystemUiStateChanged(newState, mFlags);
-    }
-
-    /** Notify all those who are registered that the state has changed. */
-    private void notifyAndSetSystemUiStateChanged(long newFlags, long oldFlags) {
-        if (DEBUG) {
-            Log.d(TAG, "SysUiState changed: old=" + oldFlags + " new=" + newFlags);
-        }
-        if (newFlags != oldFlags) {
-            mCallbacks.forEach(callback -> callback.onSystemUiStateChanged(newFlags));
-            mFlags = newFlags;
-        }
-    }
-
-    @NeverCompile
-    @Override
-    public void dump(PrintWriter pw, String[] args) {
-        pw.println("SysUiState state:");
-        pw.print("  mSysUiStateFlags="); pw.println(mFlags);
-        pw.println("    " + QuickStepContract.getSystemUiStateString(mFlags));
-        pw.print("    backGestureDisabled=");
-        pw.println(QuickStepContract.isBackGestureDisabled(mFlags, false /* forTrackpad */));
-        pw.print("    assistantGestureDisabled=");
-        pw.println(QuickStepContract.isAssistantGestureDisabled(mFlags));
-    }
-
-    /** Callback to be notified whenever system UI state flags are changed. */
-    public interface SysUiStateCallback{
-        /** To be called when any SysUiStateFlag gets updated */
-        void onSystemUiStateChanged(@SystemUiStateFlags long sysUiFlags);
-    }
-}
-
-
diff --git a/packages/SystemUI/src/com/android/systemui/model/SysUiState.kt b/packages/SystemUI/src/com/android/systemui/model/SysUiState.kt
new file mode 100644
index 0000000..ed190a1
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/model/SysUiState.kt
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2025 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.model
+
+import android.util.Log
+import com.android.systemui.Dumpable
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.settings.DisplayTracker
+import com.android.systemui.shared.system.QuickStepContract
+import com.android.systemui.shared.system.QuickStepContract.SystemUiStateFlags
+import dalvik.annotation.optimization.NeverCompile
+import java.io.PrintWriter
+
+/** Contains sysUi state flags and notifies registered listeners whenever changes happen. */
+@SysUISingleton
+class SysUiState(
+    private val displayTracker: DisplayTracker,
+    private val sceneContainerPlugin: SceneContainerPlugin?,
+) : Dumpable {
+    /** Returns the current sysui state flags. */
+    @get:SystemUiStateFlags
+    @SystemUiStateFlags
+    var flags: Long = 0
+        private set
+
+    private val callbacks: MutableList<SysUiStateCallback> = ArrayList()
+    private var flagsToSet: Long = 0
+    private var flagsToClear: Long = 0
+
+    /**
+     * Add listener to be notified of changes made to SysUI state. The callback will also be called
+     * as part of this function.
+     */
+    fun addCallback(callback: SysUiStateCallback) {
+        callbacks.add(callback)
+        callback.onSystemUiStateChanged(flags)
+    }
+
+    /** Callback will no longer receive events on state change */
+    fun removeCallback(callback: SysUiStateCallback) {
+        callbacks.remove(callback)
+    }
+
+    fun isFlagEnabled(@SystemUiStateFlags flag: Long): Boolean {
+        return (flags and flag) != 0L
+    }
+
+    /** Methods to this call can be chained together before calling [.commitUpdate]. */
+    fun setFlag(@SystemUiStateFlags flag: Long, enabled: Boolean): SysUiState {
+        var enabled = enabled
+        val overrideOrNull = sceneContainerPlugin?.flagValueOverride(flag)
+        if (overrideOrNull != null && enabled != overrideOrNull) {
+            if (DEBUG) {
+                Log.d(
+                    TAG,
+                    "setFlag for flag $flag and value $enabled overridden to $overrideOrNull by scene container plugin",
+                )
+            }
+
+            enabled = overrideOrNull
+        }
+
+        if (enabled) {
+            flagsToSet = flagsToSet or flag
+        } else {
+            flagsToClear = flagsToClear or flag
+        }
+        return this
+    }
+
+    /** Call to save all the flags updated from [.setFlag]. */
+    fun commitUpdate(displayId: Int) {
+        updateFlags(displayId)
+        flagsToSet = 0
+        flagsToClear = 0
+    }
+
+    private fun updateFlags(displayId: Int) {
+        if (displayId != displayTracker.defaultDisplayId) {
+            // Ignore non-default displays for now
+            Log.w(TAG, "Ignoring flag update for display: $displayId", Throwable())
+            return
+        }
+
+        var newState = flags
+        newState = newState or flagsToSet
+        newState = newState and flagsToClear.inv()
+        notifyAndSetSystemUiStateChanged(newState, flags)
+    }
+
+    /** Notify all those who are registered that the state has changed. */
+    private fun notifyAndSetSystemUiStateChanged(newFlags: Long, oldFlags: Long) {
+        if (DEBUG) {
+            Log.d(TAG, "SysUiState changed: old=$oldFlags new=$newFlags")
+        }
+        if (newFlags != oldFlags) {
+            callbacks.forEach { callback: SysUiStateCallback ->
+                callback.onSystemUiStateChanged(newFlags)
+            }
+
+            flags = newFlags
+        }
+    }
+
+    @NeverCompile
+    override fun dump(pw: PrintWriter, args: Array<String>) {
+        pw.println("SysUiState state:")
+        pw.print("  mSysUiStateFlags=")
+        pw.println(flags)
+        pw.println("    " + QuickStepContract.getSystemUiStateString(flags))
+        pw.print("    backGestureDisabled=")
+        pw.println(QuickStepContract.isBackGestureDisabled(flags, false /* forTrackpad */))
+        pw.print("    assistantGestureDisabled=")
+        pw.println(QuickStepContract.isAssistantGestureDisabled(flags))
+    }
+
+    /** Callback to be notified whenever system UI state flags are changed. */
+    interface SysUiStateCallback {
+        /** To be called when any SysUiStateFlag gets updated */
+        fun onSystemUiStateChanged(@SystemUiStateFlags sysUiFlags: Long)
+    }
+
+    companion object {
+        private val TAG: String = SysUiState::class.java.simpleName
+        const val DEBUG: Boolean = false
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayContentViewModel.kt b/packages/SystemUI/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayContentViewModel.kt
index c43c1a99..18b4b7d2 100644
--- a/packages/SystemUI/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayContentViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/notifications/ui/viewmodel/NotificationsShadeOverlayContentViewModel.kt
@@ -22,7 +22,6 @@
 import com.android.systemui.lifecycle.Hydrator
 import com.android.systemui.media.controls.domain.pipeline.interactor.MediaCarouselInteractor
 import com.android.systemui.scene.domain.interactor.SceneInteractor
-import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import com.android.systemui.shade.ui.viewmodel.ShadeHeaderViewModel
 import com.android.systemui.statusbar.disableflags.domain.interactor.DisableFlagsInteractor
@@ -96,18 +95,6 @@
             launch { hydrator.activate() }
 
             launch {
-                sceneInteractor.currentScene.collect { currentScene ->
-                    when (currentScene) {
-                        // TODO(b/369513770): The ShadeSession should be preserved in this scenario.
-                        Scenes.Bouncer ->
-                            shadeInteractor.collapseNotificationsShade(
-                                loggingReason = "bouncer shown while shade is open"
-                            )
-                    }
-                }
-            }
-
-            launch {
                 shadeInteractor.isShadeTouchable
                     .distinctUntilChanged()
                     .filter { !it }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt b/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt
index 6ad8bae..e0b93fb 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt
@@ -252,8 +252,12 @@
                     Box(
                         modifier =
                             Modifier.graphicsLayer { alpha = viewModel.viewAlpha }
+                                .thenIf(notificationScrimClippingParams.isEnabled) {
+                                    Modifier.notificationScrimClip {
+                                        notificationScrimClippingParams.params
+                                    }
+                                }
                                 .thenIf(!Flags.notificationShadeBlur()) {
-                                    // Clipping before translation to match QSContainerImpl.onDraw
                                     Modifier.offset {
                                         IntOffset(
                                             x = 0,
@@ -261,11 +265,6 @@
                                         )
                                     }
                                 }
-                                .thenIf(notificationScrimClippingParams.isEnabled) {
-                                    Modifier.notificationScrimClip {
-                                        notificationScrimClippingParams.params
-                                    }
-                                }
                                 // Disable touches in the whole composable while the mirror is
                                 // showing. While the mirror is showing, an ancestor of the
                                 // ComposeView is made alpha 0, but touches are still being captured
@@ -312,20 +311,18 @@
         SceneTransitionLayout(state = sceneState, modifier = Modifier.fillMaxSize()) {
             scene(QuickSettings) {
                 LaunchedEffect(Unit) { viewModel.onQSOpen() }
-                QuickSettingsElement(Modifier.element(QuickSettings.rootElementKey))
+                Element(QuickSettings.rootElementKey, Modifier) { QuickSettingsElement() }
             }
 
             scene(QuickQuickSettings) {
                 LaunchedEffect(Unit) { viewModel.onQQSOpen() }
                 // Cannot pass the element modifier in because the top element has a `testTag`
                 // and this would overwrite it.
-                Box(Modifier.element(QuickQuickSettings.rootElementKey)) {
-                    QuickQuickSettingsElement()
-                }
+                Element(QuickQuickSettings.rootElementKey, Modifier) { QuickQuickSettingsElement() }
             }
 
             scene(SceneKeys.EditMode) {
-                EditModeElement(Modifier.element(SceneKeys.EditMode.rootElementKey))
+                Element(SceneKeys.EditMode.rootElementKey, Modifier) { EditModeElement() }
             }
         }
     }
@@ -656,10 +653,7 @@
                 )
         ) {
             if (viewModel.isQsEnabled) {
-                Box(
-                    modifier =
-                        Modifier.element(ElementKeys.QuickSettingsContent).fillMaxSize().weight(1f)
-                ) {
+                Element(ElementKeys.QuickSettingsContent, modifier = Modifier.weight(1f)) {
                     DisposableEffect(Unit) {
                         lifecycleScope.launch { scrollState.scrollTo(0) }
                         onDispose { lifecycleScope.launch { scrollState.scrollTo(0) } }
@@ -667,7 +661,8 @@
 
                     Column(
                         modifier =
-                            Modifier.onPlaced { coordinates ->
+                            Modifier.fillMaxSize()
+                                .onPlaced { coordinates ->
                                     val positionOnScreen = coordinates.positionOnScreen()
                                     val left = positionOnScreen.x
                                     val right = left + coordinates.size.width
@@ -744,13 +739,15 @@
                     }
                 }
                 QuickSettingsTheme {
-                    FooterActions(
-                        viewModel = viewModel.footerActionsViewModel,
-                        qsVisibilityLifecycleOwner = this@QSFragmentCompose,
-                        modifier =
-                            Modifier.sysuiResTag(ResIdTags.qsFooterActions)
-                                .element(ElementKeys.FooterActions),
-                    )
+                    Element(
+                        ElementKeys.FooterActions,
+                        Modifier.sysuiResTag(ResIdTags.qsFooterActions),
+                    ) {
+                        FooterActions(
+                            viewModel = viewModel.footerActionsViewModel,
+                            qsVisibilityLifecycleOwner = this@QSFragmentCompose,
+                        )
+                    }
                 }
             }
         }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/composefragment/ui/GridAnchor.kt b/packages/SystemUI/src/com/android/systemui/qs/composefragment/ui/GridAnchor.kt
index 266e875..19ad9fc 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/composefragment/ui/GridAnchor.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/composefragment/ui/GridAnchor.kt
@@ -16,7 +16,6 @@
 
 package com.android.systemui.qs.composefragment.ui
 
-import androidx.compose.foundation.layout.Spacer
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
 import com.android.compose.animation.scene.ContentScope
@@ -29,5 +28,5 @@
 @Composable
 fun ContentScope.GridAnchor(modifier: Modifier = Modifier) {
     // The size of this anchor does not matter, as the tiles don't change size on expansion.
-    Spacer(modifier.element(ElementKeys.GridAnchor))
+    Element(ElementKeys.GridAnchor, modifier) {}
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt
index ff84479..767acc5 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt
@@ -35,6 +35,7 @@
 import com.android.systemui.classifier.Classifier
 import com.android.systemui.classifier.domain.interactor.FalsingInteractor
 import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractor
+import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor
 import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
 import com.android.systemui.keyguard.shared.model.Edge
@@ -60,7 +61,7 @@
 import com.android.systemui.qs.panels.ui.viewmodel.QuickQuickSettingsViewModel
 import com.android.systemui.qs.ui.viewmodel.QuickSettingsContainerViewModel
 import com.android.systemui.res.R
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.shade.LargeScreenHeaderHelper
 import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
@@ -432,7 +433,7 @@
             initialValue = false,
             source =
                 keyguardTransitionInteractor.isInTransition(
-                    Edge.create(to = Scenes.Bouncer),
+                    Edge.create(to = Overlays.Bouncer),
                     Edge.create(to = KeyguardState.PRIMARY_BOUNCER),
                 ),
         )
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/QuickQuickSettings.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/QuickQuickSettings.kt
index b084f79..495870f 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/QuickQuickSettings.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/QuickQuickSettings.kt
@@ -71,17 +71,19 @@
             val it = sizedTiles[spanIndex]
             val column = cellIndex % columns
             cellIndex += it.width
-            Tile(
-                tile = it.tile,
-                iconOnly = it.isIcon,
-                modifier = Modifier.element(it.tile.spec.toElementKey(spanIndex)),
-                squishiness = { squishiness },
-                coroutineScope = scope,
-                bounceableInfo = bounceables.bounceableInfo(it, spanIndex, column, columns),
-                tileHapticsViewModelFactoryProvider = viewModel.tileHapticsViewModelFactoryProvider,
-                // There should be no QuickQuickSettings when the details view is enabled.
-                detailsViewModel = null,
-            )
+            Element(it.tile.spec.toElementKey(spanIndex), Modifier) {
+                Tile(
+                    tile = it.tile,
+                    iconOnly = it.isIcon,
+                    squishiness = { squishiness },
+                    coroutineScope = scope,
+                    bounceableInfo = bounceables.bounceableInfo(it, spanIndex, column, columns),
+                    tileHapticsViewModelFactoryProvider =
+                        viewModel.tileHapticsViewModelFactoryProvider,
+                    // There should be no QuickQuickSettings when the details view is enabled.
+                    detailsViewModel = null,
+                )
+            }
         }
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/InfiniteGridLayout.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/InfiniteGridLayout.kt
index 1c540ee..dfee4976 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/InfiniteGridLayout.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/InfiniteGridLayout.kt
@@ -99,16 +99,17 @@
             val it = sizedTiles[spanIndex]
             val column = cellIndex % columns
             cellIndex += it.width
-            Tile(
-                tile = it.tile,
-                iconOnly = iconTilesViewModel.isIconTile(it.tile.spec),
-                modifier = Modifier.element(it.tile.spec.toElementKey(spanIndex)),
-                squishiness = { squishiness },
-                tileHapticsViewModelFactoryProvider = tileHapticsViewModelFactoryProvider,
-                coroutineScope = scope,
-                bounceableInfo = bounceables.bounceableInfo(it, spanIndex, column, columns),
-                detailsViewModel = detailsViewModel,
-            )
+            Element(it.tile.spec.toElementKey(spanIndex), Modifier) {
+                Tile(
+                    tile = it.tile,
+                    iconOnly = iconTilesViewModel.isIconTile(it.tile.spec),
+                    squishiness = { squishiness },
+                    tileHapticsViewModelFactoryProvider = tileHapticsViewModelFactoryProvider,
+                    coroutineScope = scope,
+                    bounceableInfo = bounceables.bounceableInfo(it, spanIndex, column, columns),
+                    detailsViewModel = detailsViewModel,
+                )
+            }
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/AirplaneModeTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/AirplaneModeTile.java
index bb818fa..88e7d80 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/AirplaneModeTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/AirplaneModeTile.java
@@ -38,7 +38,6 @@
 
 import com.android.internal.logging.MetricsLogger;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.flags.Flags;
 import com.android.settingslib.satellite.SatelliteDialogUtils;
 import com.android.systemui.animation.Expandable;
 import com.android.systemui.broadcast.BroadcastDispatcher;
@@ -122,21 +121,16 @@
             return;
         }
 
-        if (Flags.oemEnabledSatelliteFlag()) {
-            if (mClickJob != null && !mClickJob.isCompleted()) {
-                return;
-            }
-            mClickJob = SatelliteDialogUtils.mayStartSatelliteWarningDialog(
-                    mContext, this, TYPE_IS_AIRPLANE_MODE, isAllowClick -> {
-                        if (isAllowClick) {
-                            setEnabled(!airplaneModeEnabled);
-                        }
-                        return null;
-                    });
+        if (mClickJob != null && !mClickJob.isCompleted()) {
             return;
         }
-
-        setEnabled(!airplaneModeEnabled);
+        mClickJob = SatelliteDialogUtils.mayStartSatelliteWarningDialog(
+                mContext, this, TYPE_IS_AIRPLANE_MODE, isAllowClick -> {
+                    if (isAllowClick) {
+                        setEnabled(!airplaneModeEnabled);
+                    }
+                    return null;
+                });
     }
 
     private void setEnabled(boolean enabled) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
index fd5861f..4b1c90f 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
@@ -61,6 +61,8 @@
 import com.android.systemui.res.R;
 import com.android.systemui.statusbar.policy.BluetoothController;
 
+import dagger.Lazy;
+
 import kotlinx.coroutines.Job;
 
 import java.util.List;
@@ -84,7 +86,7 @@
 
     private final Executor mExecutor;
 
-    private final BluetoothDetailsContentViewModel mDetailsContentViewModel;
+    private final Lazy<BluetoothDetailsContentViewModel> mDetailsContentViewModel;
 
     private final FeatureFlags mFeatureFlags;
     @Nullable
@@ -104,7 +106,7 @@
             QSLogger qsLogger,
             BluetoothController bluetoothController,
             FeatureFlags featureFlags,
-            BluetoothDetailsContentViewModel detailsContentViewModel
+            Lazy<BluetoothDetailsContentViewModel> detailsContentViewModel
     ) {
         super(host, uiEventLogger, backgroundLooper, mainHandler, falsingManager, metricsLogger,
                 statusBarStateController, activityStarter, qsLogger);
@@ -133,40 +135,34 @@
                 callback.accept(new BluetoothDetailsViewModel(() -> {
                     longClick(null);
                     return null;
-                }, mDetailsContentViewModel))
+                }, mDetailsContentViewModel.get()))
         );
         return true;
     }
 
     private void handleClickWithSatelliteCheck(Runnable clickCallback) {
-        if (com.android.internal.telephony.flags.Flags.oemEnabledSatelliteFlag()) {
-            if (mClickJob != null && !mClickJob.isCompleted()) {
-                return;
-            }
-            mClickJob = SatelliteDialogUtils.mayStartSatelliteWarningDialog(
-                    mContext, this, TYPE_IS_BLUETOOTH, isAllowClick -> {
-                        if (!isAllowClick) {
-                            return null;
-                        }
-                        clickCallback.run();
-                        return null;
-                    });
+        if (mClickJob != null && !mClickJob.isCompleted()) {
             return;
         }
-        clickCallback.run();
+        mClickJob = SatelliteDialogUtils.mayStartSatelliteWarningDialog(
+                mContext, this, TYPE_IS_BLUETOOTH, isAllowClick -> {
+                    if (!isAllowClick) {
+                        return null;
+                    }
+                    clickCallback.run();
+                    return null;
+                });
     }
 
     private void handleClickEvent(@Nullable Expandable expandable) {
         if (mFeatureFlags.isEnabled(Flags.BLUETOOTH_QS_TILE_DIALOG)) {
-            mDetailsContentViewModel.showDetailsContent(expandable, /* view= */ null);
+            mDetailsContentViewModel.get().showDialog(expandable);
         } else {
             // Secondary clicks are header clicks, just toggle.
             toggleBluetooth();
         }
     }
 
-
-
     @Override
     public Intent getLongClickIntent() {
         return new Intent(Settings.ACTION_BLUETOOTH_SETTINGS);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java
index 30c2adf..c60e3da 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java
@@ -54,6 +54,7 @@
 import com.android.systemui.qs.logging.QSLogger;
 import com.android.systemui.qs.tileimpl.QSTileImpl;
 import com.android.systemui.res.R;
+import com.android.systemui.shade.domain.interactor.ShadeDialogContextInteractor;
 import com.android.systemui.statusbar.connectivity.NetworkController;
 import com.android.systemui.statusbar.connectivity.SignalCallback;
 import com.android.systemui.statusbar.connectivity.WifiIndicators;
@@ -89,6 +90,7 @@
     private final Callback mCallback = new Callback();
     private final TileJavaAdapter mJavaAdapter;
     private final FeatureFlags mFeatureFlags;
+    private final ShadeDialogContextInteractor mShadeDialogContextInteractor;
     private boolean mCastTransportAllowed;
     private boolean mHotspotConnected;
 
@@ -110,7 +112,8 @@
             DialogTransitionAnimator dialogTransitionAnimator,
             ConnectivityRepository connectivityRepository,
             TileJavaAdapter javaAdapter,
-            FeatureFlags featureFlags
+            FeatureFlags featureFlags,
+            ShadeDialogContextInteractor shadeDialogContextInteractor
     ) {
         super(host, uiEventLogger, backgroundLooper, mainHandler, falsingManager, metricsLogger,
                 statusBarStateController, activityStarter, qsLogger);
@@ -120,6 +123,7 @@
         mDialogTransitionAnimator = dialogTransitionAnimator;
         mJavaAdapter = javaAdapter;
         mFeatureFlags = featureFlags;
+        mShadeDialogContextInteractor = shadeDialogContextInteractor;
         mController.observe(this, mCallback);
         mKeyguard.observe(this, mCallback);
         if (!mFeatureFlags.isEnabled(SIGNAL_CALLBACK_DEPRECATION)) {
@@ -220,7 +224,7 @@
         mUiHandler.post(() -> {
             final DialogHolder holder = new DialogHolder();
             final Dialog dialog = MediaRouteDialogPresenter.createDialog(
-                    mContext,
+                    mShadeDialogContextInteractor.getContext(),
                     ROUTE_TYPE_REMOTE_DISPLAY,
                     v -> {
                         ActivityTransitionAnimator.Controller controller =
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTileNewImpl.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTileNewImpl.kt
index f80b8fb..e48e943 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTileNewImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTileNewImpl.kt
@@ -99,7 +99,7 @@
     }
 
     override fun getDetailsViewModel(): TileDetailsViewModel {
-        return internetDetailsViewModelFactory.create { longClick(null) }
+        return internetDetailsViewModelFactory.create()
     }
 
     override fun handleUpdateState(state: QSTile.BooleanState, arg: Any?) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/UserDetailView.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/UserDetailView.java
index fed8b60..0d937cb 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/UserDetailView.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/UserDetailView.java
@@ -146,6 +146,7 @@
                 v.bind(name, drawable, item.info.id);
             }
             v.setActivated(item.isCurrent);
+            v.setSelected(item.isCurrent);
             v.setDisabledByAdmin(item.isDisabledByAdmin());
             v.setEnabled(item.isSwitchToEnabled);
             UserSwitcherController.setSelectableAlpha(v);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/base/interactor/QSTileUserActionInteractor.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/base/interactor/QSTileUserActionInteractor.kt
index e8c4274..8ad4e16 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/base/interactor/QSTileUserActionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/base/interactor/QSTileUserActionInteractor.kt
@@ -28,17 +28,4 @@
      * It's safe to run long running computations inside this function.
      */
     @WorkerThread suspend fun handleInput(input: QSTileInput<DATA_TYPE>)
-
-    /**
-     * Provides the [TileDetailsViewModel] for constructing the corresponding details view.
-     *
-     * This property is defined here to reuse the business logic. For example, reusing the user
-     * long-click as the go-to-settings callback in the details view.
-     * Subclasses can override this property to provide a specific [TileDetailsViewModel]
-     * implementation.
-     *
-     * @return The [TileDetailsViewModel] instance, or null if not implemented.
-     */
-    val detailsViewModel: TileDetailsViewModel?
-        get() = null
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/base/viewmodel/QSTileViewModelFactory.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/base/viewmodel/QSTileViewModelFactory.kt
index 8c75cf0..7f475f3 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/base/viewmodel/QSTileViewModelFactory.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/base/viewmodel/QSTileViewModelFactory.kt
@@ -19,6 +19,7 @@
 import com.android.systemui.dagger.qualifiers.Background
 import com.android.systemui.dagger.qualifiers.UiBackground
 import com.android.systemui.plugins.FalsingManager
+import com.android.systemui.plugins.qs.TileDetailsViewModel
 import com.android.systemui.qs.pipeline.shared.TileSpec
 import com.android.systemui.qs.tiles.base.analytics.QSTileAnalytics
 import com.android.systemui.qs.tiles.base.interactor.DisabledByPolicyInteractor
@@ -70,9 +71,7 @@
          * Creates [QSTileViewModelImpl] based on the interactors obtained from [QSTileComponent].
          * Reference of that [QSTileComponent] is then stored along the view model.
          */
-        fun create(
-            tileSpec: TileSpec,
-        ): QSTileViewModel {
+        fun create(tileSpec: TileSpec): QSTileViewModel {
             val config = qsTileConfigProvider.getConfig(tileSpec.spec)
             val component =
                 customTileComponentBuilder.qsTileConfigModule(QSTileConfigModule(config)).build()
@@ -90,6 +89,7 @@
                 backgroundDispatcher,
                 uiBackgroundDispatcher,
                 component.coroutineScope(),
+                /* tileDetailsViewModel= */ null,
             )
         }
     }
@@ -127,6 +127,7 @@
             userActionInteractor: QSTileUserActionInteractor<T>,
             tileDataInteractor: QSTileDataInteractor<T>,
             mapper: QSTileDataToStateMapper<T>,
+            tileDetailsViewModel: TileDetailsViewModel? = null,
         ): QSTileViewModelImpl<T> =
             QSTileViewModelImpl(
                 qsTileConfigProvider.getConfig(tileSpec.spec),
@@ -142,6 +143,7 @@
                 backgroundDispatcher,
                 uiBackgroundDispatcher,
                 coroutineScopeFactory.create(),
+                tileDetailsViewModel,
             )
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/base/viewmodel/QSTileViewModelImpl.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/base/viewmodel/QSTileViewModelImpl.kt
index 30bf5b3..9bdec43 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/base/viewmodel/QSTileViewModelImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/base/viewmodel/QSTileViewModelImpl.kt
@@ -83,6 +83,7 @@
     private val backgroundDispatcher: CoroutineDispatcher,
     uiBackgroundDispatcher: CoroutineDispatcher,
     private val tileScope: CoroutineScope,
+    override val tileDetailsViewModel: TileDetailsViewModel? = null,
 ) : QSTileViewModel, Dumpable {
 
     private val users: MutableStateFlow<UserHandle> =
@@ -114,9 +115,6 @@
             .flowOn(backgroundDispatcher)
             .stateIn(tileScope, SharingStarted.WhileSubscribed(), true)
 
-    override val detailsViewModel: TileDetailsViewModel?
-        get() = userActionInteractor().detailsViewModel
-
     override fun forceUpdate() {
         tileScope.launch(context = backgroundDispatcher) { forceUpdates.emit(Unit) }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDetailsContentManager.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDetailsContentManager.kt
index 733159e..659488b 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDetailsContentManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDetailsContentManager.kt
@@ -51,7 +51,6 @@
 import androidx.recyclerview.widget.RecyclerView
 import com.android.internal.logging.UiEvent
 import com.android.internal.logging.UiEventLogger
-import com.android.internal.telephony.flags.Flags
 import com.android.settingslib.satellite.SatelliteDialogUtils.TYPE_IS_WIFI
 import com.android.settingslib.satellite.SatelliteDialogUtils.mayStartSatelliteWarningDialog
 import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils
@@ -456,22 +455,18 @@
     }
 
     private fun handleWifiToggleClicked(isChecked: Boolean) {
-        if (Flags.oemEnabledSatelliteFlag()) {
-            if (clickJob != null && !clickJob!!.isCompleted) {
-                return
-            }
-            clickJob =
-                mayStartSatelliteWarningDialog(contentView.context, coroutineScope, TYPE_IS_WIFI) {
-                    isAllowClick: Boolean ->
-                    if (isAllowClick) {
-                        setWifiEnabled(isChecked)
-                    } else {
-                        wifiToggle.isChecked = !isChecked
-                    }
-                }
+        if (clickJob != null && !clickJob!!.isCompleted) {
             return
         }
-        setWifiEnabled(isChecked)
+        clickJob =
+            mayStartSatelliteWarningDialog(contentView.context, coroutineScope, TYPE_IS_WIFI) {
+                isAllowClick: Boolean ->
+                if (isAllowClick) {
+                    setWifiEnabled(isChecked)
+                } else {
+                    wifiToggle.isChecked = !isChecked
+                }
+            }
     }
 
     private fun setWifiEnabled(isEnabled: Boolean) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDetailsViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDetailsViewModel.kt
index 0ed56f6..6709fd2 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDetailsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDetailsViewModel.kt
@@ -16,9 +16,11 @@
 
 package com.android.systemui.qs.tiles.dialog
 
+import android.content.Intent
+import android.provider.Settings
 import com.android.systemui.plugins.qs.TileDetailsViewModel
+import com.android.systemui.qs.tiles.base.actions.QSTileIntentUserInputHandler
 import com.android.systemui.statusbar.connectivity.AccessPointController
-import dagger.assisted.Assisted
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
 
@@ -27,10 +29,13 @@
 constructor(
     private val accessPointController: AccessPointController,
     val contentManagerFactory: InternetDetailsContentManager.Factory,
-    @Assisted private val onLongClick: () -> Unit,
+    private val qsTileIntentUserActionHandler: QSTileIntentUserInputHandler,
 ) : TileDetailsViewModel() {
     override fun clickOnSettingsButton() {
-        onLongClick()
+        qsTileIntentUserActionHandler.handle(
+            /* expandable= */ null,
+            Intent(Settings.ACTION_WIFI_SETTINGS),
+        )
     }
 
     override fun getTitle(): String {
@@ -58,7 +63,7 @@
     }
 
     @AssistedFactory
-    interface Factory {
-        fun create(onLongClick: () -> Unit): InternetDetailsViewModel
+    fun interface Factory {
+        fun create(): InternetDetailsViewModel
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateLegacy.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateLegacy.java
index 75cb8dd..8d4a24e 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateLegacy.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateLegacy.java
@@ -62,7 +62,6 @@
 
 import com.android.internal.logging.UiEvent;
 import com.android.internal.logging.UiEventLogger;
-import com.android.internal.telephony.flags.Flags;
 import com.android.settingslib.satellite.SatelliteDialogUtils;
 import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils;
 import com.android.systemui.Prefs;
@@ -401,6 +400,9 @@
 
         mInternetDialogTitle.setText(internetContent.mInternetDialogTitleString);
         mInternetDialogSubTitle.setText(internetContent.mInternetDialogSubTitle);
+        if (!internetContent.mIsWifiEnabled) {
+            setProgressBarVisible(false);
+        }
         mAirplaneModeButton.setVisibility(
                 internetContent.mIsAirplaneModeEnabled ? View.VISIBLE : View.GONE);
 
@@ -489,22 +491,18 @@
     }
 
     private void handleWifiToggleClicked(boolean isChecked) {
-        if (Flags.oemEnabledSatelliteFlag()) {
-            if (mClickJob != null && !mClickJob.isCompleted()) {
-                return;
-            }
-            mClickJob = SatelliteDialogUtils.mayStartSatelliteWarningDialog(
-                    mDialog.getContext(), mCoroutineScope, TYPE_IS_WIFI, isAllowClick -> {
-                        if (isAllowClick) {
-                            setWifiEnable(isChecked);
-                        } else {
-                            mWiFiToggle.setChecked(!isChecked);
-                        }
-                        return null;
-                    });
+        if (mClickJob != null && !mClickJob.isCompleted()) {
             return;
         }
-        setWifiEnable(isChecked);
+        mClickJob = SatelliteDialogUtils.mayStartSatelliteWarningDialog(
+                mDialog.getContext(), mCoroutineScope, TYPE_IS_WIFI, isAllowClick -> {
+                    if (isAllowClick) {
+                        setWifiEnable(isChecked);
+                    } else {
+                        mWiFiToggle.setChecked(!isChecked);
+                    }
+                    return null;
+                });
     }
 
     private void setWifiEnable(boolean isChecked) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/di/QSTileComponent.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/di/QSTileComponent.kt
index 0ed46e7..5f692f2 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/di/QSTileComponent.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/di/QSTileComponent.kt
@@ -16,6 +16,7 @@
 
 package com.android.systemui.qs.tiles.impl.di
 
+import com.android.systemui.plugins.qs.TileDetailsViewModel
 import com.android.systemui.qs.tiles.base.interactor.QSTileDataInteractor
 import com.android.systemui.qs.tiles.base.interactor.QSTileDataToStateMapper
 import com.android.systemui.qs.tiles.base.interactor.QSTileUserActionInteractor
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/internet/domain/interactor/InternetTileUserActionInteractor.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/internet/domain/interactor/InternetTileUserActionInteractor.kt
index 8e48fe4..0431e36 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/internet/domain/interactor/InternetTileUserActionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/impl/internet/domain/interactor/InternetTileUserActionInteractor.kt
@@ -18,13 +18,10 @@
 
 import android.content.Intent
 import android.provider.Settings
-import com.android.systemui.animation.Expandable
 import com.android.systemui.dagger.qualifiers.Main
-import com.android.systemui.plugins.qs.TileDetailsViewModel
 import com.android.systemui.qs.tiles.base.actions.QSTileIntentUserInputHandler
 import com.android.systemui.qs.tiles.base.interactor.QSTileInput
 import com.android.systemui.qs.tiles.base.interactor.QSTileUserActionInteractor
-import com.android.systemui.qs.tiles.dialog.InternetDetailsViewModel
 import com.android.systemui.qs.tiles.dialog.InternetDialogManager
 import com.android.systemui.qs.tiles.impl.internet.domain.model.InternetTileModel
 import com.android.systemui.qs.tiles.viewmodel.QSTileUserAction
@@ -41,7 +38,6 @@
     private val internetDialogManager: InternetDialogManager,
     private val accessPointController: AccessPointController,
     private val qsTileIntentUserActionHandler: QSTileIntentUserInputHandler,
-    private val internetDetailsViewModelFactory: InternetDetailsViewModel.Factory,
 ) : QSTileUserActionInteractor<InternetTileModel> {
 
     override suspend fun handleInput(input: QSTileInput<InternetTileModel>): Unit =
@@ -58,16 +54,12 @@
                     }
                 }
                 is QSTileUserAction.LongClick -> {
-                    handleLongClick(action.expandable)
+                    qsTileIntentUserActionHandler.handle(
+                        action.expandable,
+                        Intent(Settings.ACTION_WIFI_SETTINGS),
+                    )
                 }
                 else -> {}
             }
         }
-
-    override val detailsViewModel: TileDetailsViewModel =
-        internetDetailsViewModelFactory.create { handleLongClick(null) }
-
-    private fun handleLongClick(expandable: Expandable?) {
-        qsTileIntentUserActionHandler.handle(expandable, Intent(Settings.ACTION_WIFI_SETTINGS))
-    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModel.kt
index e8b9926..eeb8c85 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModel.kt
@@ -39,7 +39,7 @@
     val isAvailable: StateFlow<Boolean>
 
     /** Specifies the [TileDetailsViewModel] for constructing the corresponding details view. */
-    val detailsViewModel: TileDetailsViewModel?
+    val tileDetailsViewModel: TileDetailsViewModel?
         get() = null
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelAdapter.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelAdapter.kt
index 30d1f05..527c542 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelAdapter.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/viewmodel/QSTileViewModelAdapter.kt
@@ -157,7 +157,7 @@
     }
 
     override fun getDetailsViewModel(): TileDetailsViewModel? {
-        return qsTileViewModel.detailsViewModel
+        return qsTileViewModel.tileDetailsViewModel
     }
 
     @Deprecated(
diff --git a/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayContentViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayContentViewModel.kt
index 0add3f5..f75dadd 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayContentViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsShadeOverlayContentViewModel.kt
@@ -18,7 +18,6 @@
 
 import com.android.systemui.lifecycle.ExclusiveActivatable
 import com.android.systemui.scene.domain.interactor.SceneInteractor
-import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import com.android.systemui.statusbar.notification.stack.domain.interactor.NotificationStackAppearanceInteractor
 import com.android.systemui.statusbar.notification.stack.shared.model.ShadeScrimShape
@@ -47,18 +46,6 @@
     override suspend fun onActivated(): Nothing {
         coroutineScope {
             launch {
-                sceneInteractor.currentScene.collect { currentScene ->
-                    when (currentScene) {
-                        // TODO(b/369513770): The ShadeSession should be preserved in this scenario.
-                        Scenes.Bouncer ->
-                            shadeInteractor.collapseQuickSettingsShade(
-                                loggingReason = "bouncer shown while shade is open"
-                            )
-                    }
-                }
-            }
-
-            launch {
                 shadeInteractor.isShadeTouchable
                     .distinctUntilChanged()
                     .filter { !it }
diff --git a/packages/SystemUI/src/com/android/systemui/scene/SceneContainerFrameworkModule.kt b/packages/SystemUI/src/com/android/systemui/scene/SceneContainerFrameworkModule.kt
index ea11d20..2dc4a8d 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/SceneContainerFrameworkModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/SceneContainerFrameworkModule.kt
@@ -39,7 +39,7 @@
 @Module(
     includes =
         [
-            BouncerSceneModule::class,
+            BouncerOverlayModule::class,
             CommunalSceneModule::class,
             DreamSceneModule::class,
             EmptySceneModule::class,
@@ -98,13 +98,16 @@
                         Scenes.Communal,
                         Scenes.Dream,
                         Scenes.Lockscreen,
-                        Scenes.Bouncer,
                         Scenes.QuickSettings,
                         Scenes.Shade,
                     ),
                 initialSceneKey = Scenes.Lockscreen,
                 overlayKeys =
-                    listOfNotNull(Overlays.NotificationsShade, Overlays.QuickSettingsShade),
+                    listOfNotNull(
+                        Overlays.NotificationsShade,
+                        Overlays.QuickSettingsShade,
+                        Overlays.Bouncer,
+                    ),
                 navigationDistances =
                     mapOf(
                         Scenes.Gone to 0,
@@ -113,7 +116,6 @@
                         Scenes.Dream to 2,
                         Scenes.Shade to 3,
                         Scenes.QuickSettings to 4,
-                        Scenes.Bouncer to 5,
                     ),
                 transitionsBuilder = SceneContainerTransitions(),
             )
diff --git a/packages/SystemUI/src/com/android/systemui/scene/ShadelessSceneContainerFrameworkModule.kt b/packages/SystemUI/src/com/android/systemui/scene/ShadelessSceneContainerFrameworkModule.kt
index 8845bb7..a982f70 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/ShadelessSceneContainerFrameworkModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/ShadelessSceneContainerFrameworkModule.kt
@@ -18,6 +18,7 @@
 
 import com.android.systemui.scene.domain.SceneDomainModule
 import com.android.systemui.scene.domain.resolver.HomeSceneFamilyResolverModule
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.SceneContainerConfig
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.scene.ui.composable.SceneContainerTransitions
@@ -28,7 +29,7 @@
 @Module(
     includes =
         [
-            BouncerSceneModule::class,
+            BouncerOverlayModule::class,
             EmptySceneModule::class,
             GoneSceneModule::class,
             LockscreenSceneModule::class,
@@ -47,11 +48,10 @@
         return SceneContainerConfig(
             // Note that this list is in z-order. The first one is the bottom-most and the last one
             // is top-most.
-            sceneKeys = listOf(Scenes.Gone, Scenes.Lockscreen, Scenes.Bouncer),
+            sceneKeys = listOf(Scenes.Gone, Scenes.Lockscreen),
             initialSceneKey = Scenes.Lockscreen,
-            overlayKeys = emptyList(),
-            navigationDistances =
-                mapOf(Scenes.Gone to 0, Scenes.Lockscreen to 0, Scenes.Bouncer to 1),
+            overlayKeys = listOf(Overlays.Bouncer),
+            navigationDistances = mapOf(Scenes.Gone to 0, Scenes.Lockscreen to 0),
             transitionsBuilder = SceneContainerTransitions(),
         )
     }
diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneContainerOcclusionInteractor.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneContainerOcclusionInteractor.kt
index c96ea03..64abb84 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneContainerOcclusionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneContainerOcclusionInteractor.kt
@@ -136,7 +136,7 @@
             when (this) {
                 Overlays.NotificationsShade -> false
                 Overlays.QuickSettingsShade -> false
-                Scenes.Bouncer -> false
+                Overlays.Bouncer -> false
                 Scenes.Communal -> true
                 Scenes.Dream -> false
                 Scenes.Gone -> true
diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt
index 0118085..07f13cb 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt
@@ -42,6 +42,7 @@
 import dagger.Lazy
 import javax.inject.Inject
 import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.coroutineScope
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.SharingStarted
@@ -203,20 +204,30 @@
         repository.isSceneContainerUserInputOngoing
 
     /**
-     * The amount of transition into or out of the given [scene].
+     * The amount of transition into or out of the given [content].
      *
      * The value will be `0` if not in this scene or `1` when fully in the given scene.
      */
-    fun transitionProgress(scene: SceneKey): Flow<Float> {
+    @OptIn(ExperimentalCoroutinesApi::class)
+    fun transitionProgress(content: ContentKey): Flow<Float> {
         return transitionState.flatMapLatest { transition ->
             when (transition) {
                 is ObservableTransitionState.Idle -> {
-                    flowOf(if (transition.currentScene == scene) 1f else 0f)
+                    flowOf(
+                        if (
+                            transition.currentScene == content ||
+                                content in transition.currentOverlays
+                        ) {
+                            1f
+                        } else {
+                            0f
+                        }
+                    )
                 }
                 is ObservableTransitionState.Transition -> {
                     when {
-                        transition.toContent == scene -> transition.progress
-                        transition.fromContent == scene -> transition.progress.map { 1f - it }
+                        transition.toContent == content -> transition.progress
+                        transition.fromContent == content -> transition.progress.map { 1f - it }
                         else -> flowOf(0f)
                     }
                 }
@@ -238,6 +249,9 @@
      * If [forceSettleToTargetScene] is `true` and the target scene is the same as the current
      * scene, any current transition will be canceled and an animation to the target scene will be
      * started.
+     *
+     * If [Overlays.Bouncer] is showing, we trigger an instant scene change as it will not be user-
+     * visible, and trigger a transition to hide the bouncer.
      */
     @JvmOverloads
     fun changeScene(
@@ -249,6 +263,7 @@
     ) {
         val currentSceneKey = currentScene.value
         val resolvedScene = sceneFamilyResolvers.get()[toScene]?.resolvedScene?.value ?: toScene
+        val bouncerShowing = Overlays.Bouncer in currentOverlays.value
 
         if (resolvedScene == currentSceneKey && forceSettleToTargetScene) {
             logger.logSceneChangeCancellation(scene = resolvedScene, sceneState = sceneState)
@@ -265,6 +280,12 @@
                 loggingReason = loggingReason,
             )
         ) {
+            if (bouncerShowing) {
+                hideOverlay(
+                    Overlays.Bouncer,
+                    "Scene change cancelled but hiding bouncer for: ($loggingReason)",
+                )
+            }
             return
         }
 
@@ -278,14 +299,20 @@
             isInstant = false,
         )
 
-        repository.changeScene(resolvedScene, transitionKey)
+        if (bouncerShowing) {
+            repository.snapToScene(resolvedScene)
+            hideOverlay(Overlays.Bouncer, "Hiding on changeScene for: ($loggingReason)")
+        } else {
+            repository.changeScene(resolvedScene, transitionKey)
+        }
     }
 
     /**
      * Requests a scene change to the given scene.
      *
      * The change is instantaneous and not animated; it will be observable in the next frame and
-     * there will be no transition animation.
+     * there will be no transition animation. If [Overlays.Bouncer] is showing, it will instantly be
+     * hidden.
      */
     fun snapToScene(toScene: SceneKey, loggingReason: String) {
         val currentSceneKey = currentScene.value
@@ -316,6 +343,7 @@
         )
 
         repository.snapToScene(resolvedScene)
+        instantlyHideOverlay(Overlays.Bouncer, "Hiding on snapToScene for: ($loggingReason)")
     }
 
     /**
@@ -662,6 +690,16 @@
                 false
             }
 
+            to == Overlays.Bouncer && currentScene.value == Scenes.Gone -> {
+                logger.logSceneChangeRejection(
+                    from = from,
+                    to = to,
+                    originalChangeReason = loggingReason,
+                    rejectionReason = "Cannot show Bouncer over Gone scene",
+                )
+                false
+            }
+
             else -> true
         }
     }
@@ -767,4 +805,41 @@
             )
         }
     }
+
+    /**
+     * Based off of the ordering of [allContentKeys], returns the key of the highest z-order content
+     * out of [content].
+     */
+    private fun determineTopmostContent(content: Set<ContentKey>): ContentKey {
+        // Assuming allContentKeys is sorted by ascending z-order.
+        return checkNotNull(allContentKeys.findLast { it in content }) {
+            "Could not find unknown content $content in allContentKeys $allContentKeys"
+        }
+    }
+
+    /** Optimization for common case where overlays is empty. */
+    private fun determineTopmostContent(scene: SceneKey, overlays: Set<OverlayKey>): ContentKey {
+        return if (overlays.isEmpty()) {
+            scene
+        } else {
+            determineTopmostContent(overlays)
+        }
+    }
+
+    /**
+     * The current content that has the highest z-order out of all currently shown scenes and
+     * overlays.
+     *
+     * Note that during a transition between content, a different content may have the highest z-
+     * order. Only the one provided by this flow is considered the current logical topmost content.
+     */
+    @Deprecated("Only to be used for compatibility with KeyguardTransitionFramework")
+    val topmostContent: StateFlow<ContentKey> =
+        combine(currentScene, currentOverlays, ::determineTopmostContent)
+            .stateInTraced(
+                name = "topmostContent",
+                scope = applicationScope,
+                started = SharingStarted.Eagerly,
+                initialValue = determineTopmostContent(currentScene.value, currentOverlays.value),
+            )
 }
diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/WindowRootViewVisibilityInteractor.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/WindowRootViewVisibilityInteractor.kt
index 7922613..68ce269 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/WindowRootViewVisibilityInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/WindowRootViewVisibilityInteractor.kt
@@ -87,7 +87,7 @@
                             )
                         is ObservableTransitionState.Transition ->
                             if (
-                                state.fromContent == Scenes.Bouncer &&
+                                state.fromContent == Overlays.Bouncer &&
                                     state.toContent == Scenes.Lockscreen
                             ) {
                                 // Lockscreen is not visible during preview stage of predictive back
diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt
index 218ad47..4753b9a 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt
@@ -18,6 +18,7 @@
 
 import android.app.StatusBarManager
 import com.android.compose.animation.scene.ObservableTransitionState
+import com.android.compose.animation.scene.OverlayKey
 import com.android.compose.animation.scene.SceneKey
 import com.android.internal.logging.UiEventLogger
 import com.android.keyguard.AuthInteractionProperties
@@ -45,7 +46,7 @@
 import com.android.systemui.keyguard.domain.interactor.KeyguardEnabledInteractor
 import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
 import com.android.systemui.keyguard.domain.interactor.TrustInteractor
-import com.android.systemui.keyguard.domain.interactor.WindowManagerLockscreenVisibilityInteractor.Companion.keyguardScenes
+import com.android.systemui.keyguard.domain.interactor.WindowManagerLockscreenVisibilityInteractor.Companion.keyguardContent
 import com.android.systemui.log.table.TableLogBuffer
 import com.android.systemui.model.SceneContainerPlugin
 import com.android.systemui.model.SysUiState
@@ -98,7 +99,6 @@
 import kotlinx.coroutines.flow.distinctUntilChangedBy
 import kotlinx.coroutines.flow.filter
 import kotlinx.coroutines.flow.filterIsInstance
-import kotlinx.coroutines.flow.filterNot
 import kotlinx.coroutines.flow.filterNotNull
 import kotlinx.coroutines.flow.flatMapLatest
 import kotlinx.coroutines.flow.flowOf
@@ -345,12 +345,10 @@
         applicationScope.launch {
             // TODO (b/308001302): Move this to a bouncer specific interactor.
             bouncerInteractor.onImeHiddenByUser.collectLatest {
-                if (sceneInteractor.currentScene.value == Scenes.Bouncer) {
-                    sceneInteractor.changeScene(
-                        toScene = Scenes.Lockscreen,
-                        loggingReason = "IME hidden",
-                    )
-                }
+                sceneInteractor.hideOverlay(
+                    overlay = Overlays.Bouncer,
+                    loggingReason = "IME hidden.",
+                )
             }
         }
     }
@@ -364,26 +362,28 @@
                 .collect { (isAnySimLocked, unlockStatus) ->
                     when {
                         isAnySimLocked -> {
-                            switchToScene(
-                                targetSceneKey = Scenes.Bouncer,
+                            sceneInteractor.showOverlay(
+                                overlay = Overlays.Bouncer,
                                 loggingReason = "Need to authenticate locked SIM card.",
                             )
                         }
                         unlockStatus.isUnlocked &&
                             deviceEntryInteractor.canSwipeToEnter.value == false -> {
+                            val loggingReason =
+                                "All SIM cards unlocked and device already unlocked and " +
+                                    "lockscreen doesn't require a swipe to dismiss."
                             switchToScene(
                                 targetSceneKey = Scenes.Gone,
-                                loggingReason =
-                                    "All SIM cards unlocked and device already unlocked and " +
-                                        "lockscreen doesn't require a swipe to dismiss.",
+                                loggingReason = loggingReason,
                             )
                         }
                         else -> {
+                            val loggingReason =
+                                "All SIM cards unlocked and device still locked" +
+                                    " or lockscreen still requires a swipe to dismiss."
                             switchToScene(
                                 targetSceneKey = Scenes.Lockscreen,
-                                loggingReason =
-                                    "All SIM cards unlocked and device still locked" +
-                                        " or lockscreen still requires a swipe to dismiss.",
+                                loggingReason = loggingReason,
                             )
                         }
                     }
@@ -393,26 +393,40 @@
 
     private fun handleDeviceUnlockStatus() {
         applicationScope.launch {
-            // Track the previous scene (sans Bouncer), so that we know where to go when the device
-            // is unlocked whilst on the bouncer.
+            // Track the previous scene, so that we know where to go when the device is unlocked
+            // whilst on the bouncer.
             val previousScene =
-                sceneBackInteractor.backScene
-                    .filterNot { it == Scenes.Bouncer }
-                    .stateIn(this, SharingStarted.Eagerly, initialValue = null)
+                sceneBackInteractor.backScene.stateIn(
+                    this,
+                    SharingStarted.Eagerly,
+                    initialValue = null,
+                )
             deviceUnlockedInteractor.deviceUnlockStatus
                 .mapNotNull { deviceUnlockStatus ->
-                    val renderedScenes =
+                    val (renderedScenes: List<SceneKey>, renderedOverlays) =
                         when (val transitionState = sceneInteractor.transitionState.value) {
-                            is ObservableTransitionState.Idle -> setOf(transitionState.currentScene)
-                            is ObservableTransitionState.Transition ->
-                                setOf(transitionState.fromContent, transitionState.toContent)
+                            is ObservableTransitionState.Idle ->
+                                listOf(transitionState.currentScene) to
+                                    transitionState.currentOverlays
+                            is ObservableTransitionState.Transition.ChangeScene ->
+                                listOf(transitionState.fromScene, transitionState.toScene) to
+                                    transitionState.currentOverlays
+                            is ObservableTransitionState.Transition.OverlayTransition ->
+                                listOf(transitionState.currentScene) to
+                                    setOfNotNull(
+                                        transitionState.toContent.takeIf { it is OverlayKey },
+                                        transitionState.fromContent.takeIf { it is OverlayKey },
+                                    )
                         }
                     val isOnLockscreen = renderedScenes.contains(Scenes.Lockscreen)
                     val isAlternateBouncerVisible = alternateBouncerInteractor.isVisibleState()
-                    val isOnPrimaryBouncer = renderedScenes.contains(Scenes.Bouncer)
+                    val isOnPrimaryBouncer = Overlays.Bouncer in renderedOverlays
                     if (!deviceUnlockStatus.isUnlocked) {
-                        return@mapNotNull if (renderedScenes.any { it in keyguardScenes }) {
-                            // Already on a keyguard scene, no need to change scenes.
+                        return@mapNotNull if (
+                            renderedScenes.any { it in keyguardContent } ||
+                                Overlays.Bouncer in renderedOverlays
+                        ) {
+                            // Already on a keyguard scene or bouncer, no need to change scenes.
                             null
                         } else {
                             // The device locked while on a scene that's not a keyguard scene, go
@@ -450,24 +464,25 @@
                         }
                         isOnPrimaryBouncer -> {
                             // When the device becomes unlocked in primary Bouncer,
-                            // notify dismiss succeeded and go to previous scene or Gone.
+                            // notify dismiss succeeded and remain in current scene or switch to
+                            // Gone.
                             dismissCallbackRegistry.notifyDismissSucceeded()
+                            // if transition is a scene change, take the destination scene
+                            val targetScene = renderedScenes.last()
                             if (
-                                previousScene.value == Scenes.Lockscreen ||
+                                targetScene == Scenes.Lockscreen ||
                                     !statusBarStateController.leaveOpenOnKeyguardHide()
                             ) {
                                 Scenes.Gone to
                                     "device was unlocked with bouncer showing and shade" +
                                         " didn't need to be left open"
                             } else {
-                                val prevScene = previousScene.value
-                                val targetScene = prevScene ?: Scenes.Gone
-                                if (targetScene != Scenes.Gone) {
+                                if (previousScene.value != Scenes.Gone) {
                                     replaceLockscreenSceneOnBackStack()
                                 }
                                 targetScene to
                                     "device was unlocked with primary bouncer showing," +
-                                        " from sceneKey=$prevScene"
+                                        " from sceneKey=$targetScene"
                             }
                         }
                         isOnLockscreen ->
@@ -575,8 +590,8 @@
                         authenticationInteractor.get().getAuthenticationMethod() ==
                             AuthenticationMethodModel.Sim
                     ) {
-                        switchToScene(
-                            targetSceneKey = Scenes.Bouncer,
+                        sceneInteractor.showOverlay(
+                            overlay = Overlays.Bouncer,
                             loggingReason = "device is starting to wake up with a locked sim",
                         )
                     }
@@ -791,11 +806,11 @@
         }
 
         applicationScope.launch {
-            sceneInteractor.currentScene
-                .map { it == Scenes.Bouncer }
+            sceneInteractor.currentOverlays
+                .map { Overlays.Bouncer in it }
                 .distinctUntilChanged()
-                .collect { switchedToBouncerScene ->
-                    if (switchedToBouncerScene) {
+                .collect { switchedToBouncerOverlay ->
+                    if (switchedToBouncerOverlay) {
                         falsingCollector.onBouncerShown()
                     } else {
                         falsingCollector.onBouncerHidden()
@@ -812,7 +827,10 @@
                     falsingManager.addFalsingBeliefListener(listener)
                     awaitClose { falsingManager.removeFalsingBeliefListener(listener) }
                 }
-                .collect { switchToScene(Scenes.Lockscreen, "Falsing detected.") }
+                .collect {
+                    val loggingReason = "Falsing detected."
+                    switchToScene(Scenes.Lockscreen, loggingReason)
+                }
         }
     }
 
@@ -827,7 +845,7 @@
                             .mapNotNull { it as? ObservableTransitionState.Idle }
                             .map { it.currentScene to it.currentOverlays }
                             .distinctUntilChanged()
-                            .map { (sceneKey, currentOverlays) ->
+                            .map { (currentScene, currentOverlays) ->
                                 when {
                                     // When locked, showing the lockscreen scene should be reported
                                     // as "interacting" while showing other scenes should report as
@@ -837,9 +855,9 @@
                                     // implementation. The real reason why is lost to lore and myth.
                                     Overlays.NotificationsShade in currentOverlays -> false
                                     Overlays.QuickSettingsShade in currentOverlays -> null
-                                    sceneKey == Scenes.Lockscreen -> true
-                                    sceneKey == Scenes.Bouncer -> false
-                                    sceneKey == Scenes.Shade -> false
+                                    Overlays.Bouncer in currentOverlays -> false
+                                    currentScene == Scenes.Lockscreen -> true
+                                    currentScene == Scenes.Shade -> false
                                     else -> null
                                 }
                             }
@@ -865,7 +883,7 @@
                 .filterIsInstance<ObservableTransitionState.Transition>()
                 // Only consider user-initiated (e.g. drags) that go from bouncer to lockscreen.
                 .filter { transition ->
-                    transition.fromContent == Scenes.Bouncer &&
+                    transition.fromContent == Overlays.Bouncer &&
                         transition.toContent == Scenes.Lockscreen &&
                         transition.isInitiatedByUserInput
                 }
@@ -954,14 +972,13 @@
 
     private fun notifyKeyguardDismissCancelledCallbacks() {
         applicationScope.launch {
-            combine(deviceEntryInteractor.isUnlocked, sceneInteractor.currentScene.pairwise()) {
+            combine(deviceEntryInteractor.isUnlocked, sceneInteractor.currentOverlays.pairwise()) {
                     isUnlocked,
-                    (from, to) ->
-                    when {
-                        from != Scenes.Bouncer -> false
-                        to != Scenes.Gone && !isUnlocked -> true
-                        else -> false
-                    }
+                    overlayChange ->
+                    val difference = overlayChange.previousValue - overlayChange.newValue
+                    !isUnlocked &&
+                        sceneInteractor.currentScene.value != Scenes.Gone &&
+                        Overlays.Bouncer in difference
                 }
                 .collect { notifyKeyguardDismissCancelled ->
                     if (notifyKeyguardDismissCancelled) {
diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/startable/ScrimStartable.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/startable/ScrimStartable.kt
index 522dfab..c0d9326 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/domain/startable/ScrimStartable.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/domain/startable/ScrimStartable.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.scene.domain.startable
 
 import androidx.annotation.VisibleForTesting
+import com.android.app.tracing.coroutines.launchTraced as launch
 import com.android.compose.animation.scene.ContentKey
 import com.android.compose.animation.scene.ObservableTransitionState
 import com.android.compose.animation.scene.OverlayKey
@@ -35,7 +36,7 @@
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
-import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractor
+import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractorPassThrough
 import com.android.systemui.statusbar.phone.DozeServiceHost
 import com.android.systemui.statusbar.phone.ScrimController
 import com.android.systemui.statusbar.phone.ScrimState
@@ -49,7 +50,6 @@
 import kotlinx.coroutines.flow.filterNotNull
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.onEach
-import com.android.app.tracing.coroutines.launchTraced as launch
 
 @SysUISingleton
 class ScrimStartable
@@ -64,7 +64,7 @@
     biometricUnlockInteractor: BiometricUnlockInteractor,
     private val statusBarKeyguardViewManager: StatusBarKeyguardViewManager,
     private val alternateBouncerInteractor: AlternateBouncerInteractor,
-    brightnessMirrorShowingInteractor: BrightnessMirrorShowingInteractor,
+    brightnessMirrorShowingInteractor: BrightnessMirrorShowingInteractorPassThrough,
     private val dozeServiceHost: DozeServiceHost,
 ) : CoreStartable {
 
@@ -108,12 +108,12 @@
                 // This is true when the lockscreen scene is either the current scene or somewhere
                 // in the navigation back stack of scenes.
                 val isOnKeyguard = !isDeviceEntered
-                val isCurrentSceneBouncer = currentScene == Scenes.Bouncer
-                // This is true when moving away from one of the keyguard scenes to the gone scene.
+                val isOnBouncer = Overlays.Bouncer in currentOverlays
+                // This is true when moving away from the lockscreen scene to the gone scene.
                 // It happens only when unlocking or when dismissing a dismissible lockscreen.
                 val isTransitioningAwayFromKeyguard =
                     transitionState is ObservableTransitionState.Transition.ChangeScene &&
-                        transitionState.fromScene.isKeyguard() &&
+                        transitionState.fromScene == Scenes.Lockscreen &&
                         transitionState.toScene == Scenes.Gone
 
                 // This is true when any of the shade scenes or overlays is the current content.
@@ -144,7 +144,7 @@
                         // Assume scrim state for shade is already correct and do nothing
                         null
                     }
-                } else if (isCurrentSceneBouncer && !unlocking) {
+                } else if (isOnBouncer && !unlocking) {
                     // Bouncer needs the front scrim when it's on top of an activity, tapping on a
                     // notification, editing QS or being dismissed by
                     // FLAG_DISMISS_KEYGUARD_ACTIVITY.
@@ -215,10 +215,6 @@
         }
     }
 
-    private fun SceneKey.isKeyguard(): Boolean {
-        return this == Scenes.Lockscreen || this == Scenes.Bouncer
-    }
-
     private fun ContentKey.isShade(): Boolean {
         return this == Scenes.Shade ||
             this == Scenes.QuickSettings ||
diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/startable/StatusBarStartable.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/startable/StatusBarStartable.kt
index 7d09c45..4c8926a 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/domain/startable/StatusBarStartable.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/domain/startable/StatusBarStartable.kt
@@ -24,6 +24,8 @@
 import android.os.RemoteException
 import android.provider.DeviceConfig
 import android.util.Log
+import com.android.app.tracing.coroutines.launchTraced as launch
+import com.android.compose.animation.scene.OverlayKey
 import com.android.compose.animation.scene.SceneKey
 import com.android.internal.config.sysui.SystemUiDeviceConfigFlags
 import com.android.internal.statusbar.IStatusBarService
@@ -43,14 +45,13 @@
 import com.android.systemui.scene.domain.interactor.SceneContainerOcclusionInteractor
 import com.android.systemui.scene.domain.interactor.SceneInteractor
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.user.domain.interactor.SelectedUserInteractor
 import javax.inject.Inject
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.distinctUntilChanged
-import com.android.app.tracing.coroutines.launchTraced as launch
 import kotlinx.coroutines.withContext
 
 @SysUISingleton
@@ -93,6 +94,7 @@
                     navigationInteractor.isGesturalMode,
                     authenticationInteractor.authenticationMethod,
                     powerInteractor.detailedWakefulness,
+                    sceneInteractor.currentOverlays,
                 ) { values ->
                     val selectedUserId = values[0] as Int
                     val currentScene = values[1] as SceneKey
@@ -102,8 +104,9 @@
                     val isGesturalMode = values[5] as Boolean
                     val authenticationMethod = values[6] as AuthenticationMethodModel
                     val wakefulnessModel = values[7] as WakefulnessModel
+                    val overlays = values[8] as Set<OverlayKey>
 
-                    val isForceHideHomeAndRecents = currentScene == Scenes.Bouncer
+                    val isForceHideHomeAndRecents = Overlays.Bouncer in overlays
                     val isKeyguardShowing = !isDeviceEntered
                     val isPowerGestureIntercepted =
                         with(wakefulnessModel) {
diff --git a/packages/SystemUI/src/com/android/systemui/scene/shared/model/Overlays.kt b/packages/SystemUI/src/com/android/systemui/scene/shared/model/Overlays.kt
index c47a850..238de4a 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/shared/model/Overlays.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/shared/model/Overlays.kt
@@ -25,6 +25,12 @@
  */
 object Overlays {
     /**
+     * The bouncer is the overlay that displays authentication challenges like PIN, password, or
+     * pattern.
+     */
+    @JvmField val Bouncer = OverlayKey("bouncer")
+
+    /**
      * The notifications shade overlay primarily shows a scrollable list of notifications.
      *
      * It's used only in the dual shade configuration, where there are two separate shades: one for
diff --git a/packages/SystemUI/src/com/android/systemui/scene/shared/model/Scenes.kt b/packages/SystemUI/src/com/android/systemui/scene/shared/model/Scenes.kt
index 16492ef..8332522 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/shared/model/Scenes.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/shared/model/Scenes.kt
@@ -24,12 +24,6 @@
  * PLEASE KEEP THE KEYS SORTED ALPHABETICALLY.
  */
 object Scenes {
-    /**
-     * The bouncer is the scene that displays authentication challenges like PIN, password, or
-     * pattern.
-     */
-    @JvmField val Bouncer = SceneKey("bouncer")
-
     /** The communal scene shows the glanceable hub when device is locked and docked. */
     @JvmField val Communal = SceneKey("communal")
 
diff --git a/packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneJankMonitor.kt b/packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneJankMonitor.kt
index 48a49c6..48a3ded 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneJankMonitor.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneJankMonitor.kt
@@ -27,7 +27,7 @@
 import com.android.systemui.deviceentry.domain.interactor.DeviceUnlockedInteractor
 import com.android.systemui.lifecycle.ExclusiveActivatable
 import com.android.systemui.lifecycle.Hydrator
-import com.android.systemui.scene.shared.model.Scenes
+import com.android.systemui.scene.shared.model.Overlays
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
 
@@ -95,7 +95,7 @@
     private fun calculatedCuj(from: ContentKey, to: ContentKey): Int? {
         val isDeviceUnlocked = deviceUnlockedInteractor.deviceUnlockStatus.value.isUnlocked
         return when {
-            to == Scenes.Bouncer ->
+            to == Overlays.Bouncer ->
                 when (authMethod) {
                     is AuthenticationMethodModel.Pin,
                     is AuthenticationMethodModel.Sim -> Cuj.CUJ_LOCKSCREEN_PIN_APPEAR
@@ -104,7 +104,7 @@
                     is AuthenticationMethodModel.None -> null
                     null -> null
                 }
-            from == Scenes.Bouncer && isDeviceUnlocked ->
+            from == Overlays.Bouncer && isDeviceUnlocked ->
                 when (authMethod) {
                     is AuthenticationMethodModel.Pin,
                     is AuthenticationMethodModel.Sim -> Cuj.CUJ_LOCKSCREEN_PIN_DISAPPEAR
diff --git a/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt b/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt
index efdf5be..a81fcec 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt
@@ -318,7 +318,7 @@
     private fun isInteractionAllowedByFalsing(content: ContentKey): Boolean {
         val interactionTypeOrNull =
             when (content) {
-                Scenes.Bouncer -> Classifier.BOUNCER_UNLOCK
+                Overlays.Bouncer -> Classifier.BOUNCER_UNLOCK
                 Scenes.Gone -> Classifier.UNLOCK
                 Scenes.Shade,
                 Overlays.NotificationsShade -> Classifier.NOTIFICATION_DRAG_DOWN
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ActionIntentCreator.kt b/packages/SystemUI/src/com/android/systemui/screenshot/ActionIntentCreator.kt
index 15638d3..9208fc3 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/ActionIntentCreator.kt
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/ActionIntentCreator.kt
@@ -22,12 +22,19 @@
 import android.content.ContentProvider
 import android.content.Context
 import android.content.Intent
+import android.content.pm.PackageManager
 import android.net.Uri
 import android.os.UserHandle
+import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.res.R
 import com.android.systemui.screenshot.scroll.LongScreenshotActivity
+import com.android.systemui.shared.Flags.usePreferredImageEditor
+import javax.inject.Inject
 
-object ActionIntentCreator {
+@SysUISingleton
+class ActionIntentCreator
+@Inject
+constructor(private val context: Context, private val packageManager: PackageManager) {
     /** @return a chooser intent to share the given URI. */
     fun createShare(uri: Uri): Intent = createShare(uri, subject = null, text = null)
 
@@ -54,7 +61,7 @@
                 clipData =
                     ClipData(
                         ClipDescription("content", arrayOf(ClipDescription.MIMETYPE_TEXT_PLAIN)),
-                        ClipData.Item(uri)
+                        ClipData.Item(uri),
                     )
 
                 subject?.let { putExtra(Intent.EXTRA_SUBJECT, subject) }
@@ -70,16 +77,21 @@
     }
 
     /**
-     * @return an ACTION_EDIT intent for the given URI, directed to config_screenshotEditor if
-     *   available.
+     * @return an ACTION_EDIT intent for the given URI, directed to config_preferredScreenshotEditor
+     *   if enabled, falling back to config_screenshotEditor if that's non-empty.
      */
-    fun createEdit(rawUri: Uri, context: Context): Intent {
+    fun createEdit(rawUri: Uri): Intent {
         val uri = uriWithoutUserId(rawUri)
         val editIntent = Intent(Intent.ACTION_EDIT)
 
-        val editor = context.getString(R.string.config_screenshotEditor)
-        if (editor.isNotEmpty()) {
-            editIntent.component = ComponentName.unflattenFromString(editor)
+        if (usePreferredImageEditor()) {
+            // Use the preferred editor if it's available, otherwise fall back to the default editor
+            editIntent.component = preferredEditor() ?: defaultEditor()
+        } else {
+            val editor = context.getString(R.string.config_screenshotEditor)
+            if (editor.isNotEmpty()) {
+                editIntent.component = ComponentName.unflattenFromString(editor)
+            }
         }
 
         return editIntent
@@ -92,7 +104,7 @@
     }
 
     /** @return an Intent to start the LongScreenshotActivity */
-    fun createLongScreenshotIntent(owner: UserHandle, context: Context): Intent {
+    fun createLongScreenshotIntent(owner: UserHandle): Intent {
         return Intent(context, LongScreenshotActivity::class.java)
             .putExtra(LongScreenshotActivity.EXTRA_SCREENSHOT_USER_HANDLE, owner)
             .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
@@ -100,8 +112,35 @@
             .addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
     }
 
-    private const val EXTRA_EDIT_SOURCE = "edit_source"
-    private const val EDIT_SOURCE_SCREENSHOT = "screenshot"
+    private fun preferredEditor(): ComponentName? =
+        runCatching {
+                val preferredEditor = context.getString(R.string.config_preferredScreenshotEditor)
+                val component = ComponentName.unflattenFromString(preferredEditor) ?: return null
+
+                val info =
+                    packageManager.getPackageInfo(
+                        component.packageName,
+                        PackageManager.GET_ACTIVITIES,
+                    )
+
+                return info.activities
+                    ?.firstOrNull { it.componentName.className.equals(component.className) }
+                    ?.componentName
+            }
+            .getOrNull()
+
+    private fun defaultEditor(): ComponentName? =
+        runCatching {
+                context.getString(R.string.config_screenshotEditor).let {
+                    ComponentName.unflattenFromString(it)
+                }
+            }
+            .getOrNull()
+
+    companion object {
+        private const val EXTRA_EDIT_SOURCE = "edit_source"
+        private const val EDIT_SOURCE_SCREENSHOT = "screenshot"
+    }
 }
 
 /**
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/LegacyScreenshotController.java b/packages/SystemUI/src/com/android/systemui/screenshot/LegacyScreenshotController.java
index 2259b55..621bdd1 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/LegacyScreenshotController.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/LegacyScreenshotController.java
@@ -139,6 +139,7 @@
     private RequestCallback mCurrentRequestCallback;
     private String mPackageName = "";
     private final BroadcastReceiver mCopyBroadcastReceiver;
+    private final ActionIntentCreator mActionIntentCreator;
 
     /** Tracks config changes that require re-creating UI */
     private final InterestingConfigChanges mConfigChanges = new InterestingConfigChanges(
@@ -174,6 +175,7 @@
             MessageContainerController messageContainerController,
             Provider<ScreenshotSoundController> screenshotSoundController,
             AnnouncementResolver announcementResolver,
+            ActionIntentCreator actionIntentCreator,
             @Assisted Display display
     ) {
         mScreenshotSmartActions = screenshotSmartActions;
@@ -201,6 +203,7 @@
         mMessageContainerController = messageContainerController;
         mAssistContentRequester = assistContentRequester;
         mAnnouncementResolver = announcementResolver;
+        mActionIntentCreator = actionIntentCreator;
 
         mViewProxy = viewProxyFactory.getProxy(mContext, mDisplay.getDisplayId());
 
@@ -509,8 +512,7 @@
     private void executeBatchScrollCapture(ScrollCaptureResponse response, UserHandle owner) {
         mScrollCaptureExecutor.executeBatchScrollCapture(response,
                 () -> {
-                    final Intent intent = ActionIntentCreator.INSTANCE.createLongScreenshotIntent(
-                            owner, mContext);
+                    final Intent intent = mActionIntentCreator.createLongScreenshotIntent(owner);
                     mContext.startActivity(intent);
                 },
                 mViewProxy::restoreNonScrollingUi,
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotActionsProvider.kt b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotActionsProvider.kt
index 3696b13..4373389 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotActionsProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotActionsProvider.kt
@@ -24,9 +24,6 @@
 import com.android.internal.logging.UiEventLogger
 import com.android.systemui.log.DebugLogger.debugLog
 import com.android.systemui.res.R
-import com.android.systemui.screenshot.ActionIntentCreator.createEdit
-import com.android.systemui.screenshot.ActionIntentCreator.createShareWithSubject
-import com.android.systemui.screenshot.ActionIntentCreator.createShareWithText
 import com.android.systemui.screenshot.ScreenshotEvent.SCREENSHOT_EDIT_TAPPED
 import com.android.systemui.screenshot.ScreenshotEvent.SCREENSHOT_PREVIEW_TAPPED
 import com.android.systemui.screenshot.ScreenshotEvent.SCREENSHOT_SHARE_TAPPED
@@ -70,6 +67,7 @@
 constructor(
     private val context: Context,
     private val uiEventLogger: UiEventLogger,
+    private val actionIntentCreator: ActionIntentCreator,
     @Assisted val requestId: UUID,
     @Assisted val request: ScreenshotData,
     @Assisted val actionExecutor: ActionExecutor,
@@ -88,7 +86,7 @@
                 uiEventLogger.log(SCREENSHOT_PREVIEW_TAPPED, 0, request.packageNameString)
                 onDeferrableActionTapped { result ->
                     actionExecutor.startSharedTransition(
-                        createEdit(result.uri, context),
+                        actionIntentCreator.createEdit(result.uri),
                         result.user,
                         true,
                     )
@@ -110,9 +108,12 @@
                 val uri = webUri
                 val shareIntent =
                     if (screenshotContextUrl() && uri != null) {
-                        createShareWithText(result.uri, extraText = uri.toString())
+                        actionIntentCreator.createShareWithText(
+                            result.uri,
+                            extraText = uri.toString(),
+                        )
                     } else {
-                        createShareWithSubject(result.uri, result.subject)
+                        actionIntentCreator.createShareWithSubject(result.uri, result.subject)
                     }
                 actionExecutor.startSharedTransition(shareIntent, result.user, false)
             }
@@ -130,7 +131,7 @@
             uiEventLogger.log(SCREENSHOT_EDIT_TAPPED, 0, request.packageNameString)
             onDeferrableActionTapped { result ->
                 actionExecutor.startSharedTransition(
-                    createEdit(result.uri, context),
+                    actionIntentCreator.createEdit(result.uri),
                     result.user,
                     true,
                 )
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.kt b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.kt
index f5c6052..ea02b07 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.kt
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.kt
@@ -46,7 +46,6 @@
 import com.android.systemui.clipboardoverlay.ClipboardOverlayController
 import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.res.R
-import com.android.systemui.screenshot.ActionIntentCreator.createLongScreenshotIntent
 import com.android.systemui.screenshot.ScreenshotShelfViewProxy.ScreenshotViewCallback
 import com.android.systemui.screenshot.scroll.ScrollCaptureController.LongScreenshot
 import com.android.systemui.screenshot.scroll.ScrollCaptureExecutor
@@ -84,6 +83,7 @@
     private val messageContainerController: MessageContainerController,
     private val announcementResolver: AnnouncementResolver,
     @Main private val mainExecutor: Executor,
+    private val actionIntentCreator: ActionIntentCreator,
     @Assisted private val display: Display,
 ) : InteractiveScreenshotHandler {
     private val context: WindowContext
@@ -408,7 +408,7 @@
         scrollCaptureExecutor.executeBatchScrollCapture(
             response,
             {
-                val intent = createLongScreenshotIntent(owner, context)
+                val intent = actionIntentCreator.createLongScreenshotIntent(owner)
                 context.startActivity(intent)
             },
             { viewProxy.restoreNonScrollingUi() },
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/scroll/LongScreenshotActivity.java b/packages/SystemUI/src/com/android/systemui/screenshot/scroll/LongScreenshotActivity.java
index b43a1d2..48e08a0 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/scroll/LongScreenshotActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/scroll/LongScreenshotActivity.java
@@ -87,6 +87,7 @@
     private final ImageExporter mImageExporter;
     private final LongScreenshotData mLongScreenshotHolder;
     private final ActionIntentExecutor mActionExecutor;
+    private final ActionIntentCreator mActionIntentCreator;
 
     private ImageView mPreview;
     private ImageView mTransitionView;
@@ -117,13 +118,15 @@
     @Inject
     public LongScreenshotActivity(UiEventLogger uiEventLogger, ImageExporter imageExporter,
             @Main Executor mainExecutor, @Background Executor bgExecutor,
-            LongScreenshotData longScreenshotHolder, ActionIntentExecutor actionExecutor) {
+            LongScreenshotData longScreenshotHolder, ActionIntentExecutor actionExecutor,
+            ActionIntentCreator actionIntentCreator) {
         mUiEventLogger = uiEventLogger;
         mUiExecutor = mainExecutor;
         mBackgroundExecutor = bgExecutor;
         mImageExporter = imageExporter;
         mLongScreenshotHolder = longScreenshotHolder;
         mActionExecutor = actionExecutor;
+        mActionIntentCreator = actionIntentCreator;
     }
 
 
@@ -348,7 +351,7 @@
         if (mScreenshotUserHandle != Process.myUserHandle()) {
             // TODO: Fix transition for work profile. Omitting it in the meantime.
             mActionExecutor.launchIntentAsync(
-                    ActionIntentCreator.INSTANCE.createEdit(uri, this),
+                    mActionIntentCreator.createEdit(uri),
                     mScreenshotUserHandle, false,
                     /* activityOptions */ null, /* transitionCoordinator */ null);
         } else {
@@ -376,7 +379,7 @@
     }
 
     private void doShare(Uri uri) {
-        Intent shareIntent = ActionIntentCreator.INSTANCE.createShare(uri);
+        Intent shareIntent = mActionIntentCreator.createShare(uri);
         mActionExecutor.launchIntentAsync(shareIntent, mScreenshotUserHandle, false,
                 /* activityOptions */ null, /* transitionCoordinator */ null);
     }
diff --git a/packages/SystemUI/src/com/android/systemui/settings/brightness/domain/interactor/BrightnessMirrorShowingInteractor.kt b/packages/SystemUI/src/com/android/systemui/settings/brightness/domain/interactor/BrightnessMirrorShowingInteractor.kt
index de068a0..f2cff9f 100644
--- a/packages/SystemUI/src/com/android/systemui/settings/brightness/domain/interactor/BrightnessMirrorShowingInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/settings/brightness/domain/interactor/BrightnessMirrorShowingInteractor.kt
@@ -19,19 +19,28 @@
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.settings.brightness.data.repository.BrightnessMirrorShowingRepository
 import javax.inject.Inject
+import kotlinx.coroutines.flow.StateFlow
 
+interface BrightnessMirrorShowingInteractor {
+    val isShowing: StateFlow<Boolean>
+
+    fun setMirrorShowing(showing: Boolean)
+}
+
+/** This interactor is just a passthrough of the [BrightnessMirrorShowingRepository]. */
 @SysUISingleton
-class BrightnessMirrorShowingInteractor
+class BrightnessMirrorShowingInteractorPassThrough
 @Inject
-constructor(private val brightnessMirrorShowingRepository: BrightnessMirrorShowingRepository) {
+constructor(private val brightnessMirrorShowingRepository: BrightnessMirrorShowingRepository) :
+    BrightnessMirrorShowingInteractor {
     /**
      * Whether a brightness mirror is showing (either as a compose overlay or as a separate mirror).
      *
      * This can be used to determine whether other views/composables have to be hidden.
      */
-    val isShowing = brightnessMirrorShowingRepository.isShowing
+    override val isShowing = brightnessMirrorShowingRepository.isShowing
 
-    fun setMirrorShowing(showing: Boolean) {
+    override fun setMirrorShowing(showing: Boolean) {
         brightnessMirrorShowingRepository.setMirrorShowing(showing)
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
index 131efaa..eea0470 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
@@ -42,6 +42,8 @@
 import static com.android.systemui.util.DumpUtilsKt.asIndenting;
 import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow;
 
+import static kotlinx.coroutines.flow.StateFlowKt.MutableStateFlow;
+
 import static java.lang.Float.isNaN;
 
 import android.animation.Animator;
@@ -57,6 +59,7 @@
 import android.graphics.Region;
 import android.graphics.RenderEffect;
 import android.graphics.Shader;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Trace;
 import android.util.IndentingPrintWriter;
@@ -131,6 +134,7 @@
 import com.android.systemui.qs.flags.QSComposeFragment;
 import com.android.systemui.res.R;
 import com.android.systemui.scene.shared.flag.SceneContainerFlag;
+import com.android.systemui.settings.brightness.data.repository.BrightnessMirrorShowingRepository;
 import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractor;
 import com.android.systemui.shade.data.repository.FlingInfo;
 import com.android.systemui.shade.data.repository.ShadeRepository;
@@ -201,6 +205,7 @@
 
 import kotlinx.coroutines.CoroutineDispatcher;
 import kotlinx.coroutines.flow.Flow;
+import kotlinx.coroutines.flow.MutableStateFlow;
 import kotlinx.coroutines.flow.StateFlow;
 
 import java.io.PrintWriter;
@@ -214,7 +219,8 @@
 import javax.inject.Provider;
 
 @SysUISingleton
-public final class NotificationPanelViewController implements ShadeSurface, Dumpable {
+public final class NotificationPanelViewController implements
+        ShadeSurface, Dumpable, BrightnessMirrorShowingInteractor {
 
     public static final String TAG = NotificationPanelView.class.getSimpleName();
     private static final boolean DEBUG_LOGCAT = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.DEBUG);
@@ -241,6 +247,8 @@
     private static final String COUNTER_PANEL_OPEN_PEEK = "panel_open_peek";
     private static final Rect M_DUMMY_DIRTY_RECT = new Rect(0, 0, 1, 1);
     private static final Rect EMPTY_RECT = new Rect();
+    //TODO(b/394977231) delete this temporary workaround used only by tests
+    private static final boolean DISABLE_LONG_PRESS_EXPAND = Build.HARDWARE.equals("cutf_cvm");
     /**
      * Whether the Shade should animate to reflect Back gesture progress.
      * To minimize latency at runtime, we cache this, else we'd be reading it every time
@@ -403,6 +411,18 @@
             mTrackingHeadsUpListeners = new ArrayList<>();
     private HeadsUpAppearanceController mHeadsUpAppearanceController;
 
+    private final BrightnessMirrorShowingRepository mBrightnessMirrorShowingRepository;
+    /**
+     * This flow would track whether the brightness mirror should be showing, but aware of the
+     * alpha transitions of NPV.
+     *
+     * When the repository flow emits true, this will also emit true (and start the alpha animation
+     * of NPV to go to 0f). However, when the repository emits false, this will first animate the
+     * alpha to 1f, and then emit false. This guarantees that the mirror is always showing while
+     * the alpha of NPV is animating.
+     */
+    private final MutableStateFlow<Boolean> mIsBrightnessMirrorShowing = MutableStateFlow(false);
+
     private int mPanelAlpha;
     private Runnable mPanelAlphaEndAction;
     private final AnimatableProperty mPanelAlphaAnimator = AnimatableProperty.from("panelAlpha",
@@ -420,6 +440,9 @@
                 if (mPanelAlphaEndAction != null) {
                     mPanelAlphaEndAction.run();
                 }
+                // Once the animation for the alpha has finished (NPV is visible again), dismiss
+                // the mirror
+                postToView(() -> mIsBrightnessMirrorShowing.setValue(false));
             }).setCustomInterpolator(
                     mPanelAlphaAnimator.getProperty(), Interpolators.ALPHA_IN);
 
@@ -530,7 +553,6 @@
     };
 
     private final ActivityStarter mActivityStarter;
-    private final BrightnessMirrorShowingInteractor mBrightnessMirrorShowingInteractor;
 
     @Nullable
     private RenderEffect mBlurRenderEffect = null;
@@ -608,7 +630,7 @@
             PowerInteractor powerInteractor,
             KeyguardClockPositionAlgorithm keyguardClockPositionAlgorithm,
             MSDLPlayer msdlPlayer,
-            BrightnessMirrorShowingInteractor brightnessMirrorShowingInteractor,
+            BrightnessMirrorShowingRepository brightnessMirrorShowingRepository,
             BlurConfig blurConfig) {
         mBlurConfig = blurConfig;
         SceneContainerFlag.assertInLegacyMode();
@@ -765,7 +787,10 @@
                 },
                 mFalsingManager);
         mActivityStarter = activityStarter;
-        mBrightnessMirrorShowingInteractor = brightnessMirrorShowingInteractor;
+        mBrightnessMirrorShowingRepository = brightnessMirrorShowingRepository;
+        mIsBrightnessMirrorShowing.setValue(
+                mBrightnessMirrorShowingRepository.isShowing().getValue()
+        );
         onFinishInflate();
         keyguardUnlockAnimationController.addKeyguardUnlockAnimationListener(
                 new KeyguardUnlockAnimationController.KeyguardUnlockAnimationListener() {
@@ -893,12 +918,32 @@
                 mMainDispatcher);
         if (QSComposeFragment.isEnabled()) {
             collectFlow(mView,
-                    mBrightnessMirrorShowingInteractor.isShowing(),
-                    isShowing -> setAlpha(isShowing ? 0 : 255, true)
+                    mBrightnessMirrorShowingRepository.isShowing(),
+                    this::onBrightnessMirrorShowingChanged
             );
         }
     }
 
+    private void onBrightnessMirrorShowingChanged(boolean isShowing) {
+        if (!mIsBrightnessMirrorShowing.getValue()) {
+            // Immediately set the value of the mirror if we are not showing the mirror, and then
+            // start fading the shade.
+            mIsBrightnessMirrorShowing.setValue(isShowing);
+        }
+        setAlpha(isShowing ? 0 : 255, true);
+    }
+
+    @androidx.annotation.NonNull
+    @Override
+    public StateFlow<Boolean> isShowing() {
+        return mIsBrightnessMirrorShowing;
+    }
+
+    @Override
+    public void setMirrorShowing(boolean showing) {
+        mBrightnessMirrorShowingRepository.setMirrorShowing(showing);
+    }
+
     @VisibleForTesting
     void loadDimens() {
         final ViewConfiguration configuration = ViewConfiguration.get(this.mView.getContext());
@@ -1785,7 +1830,8 @@
         // height - which means user is swiping down. Otherwise shade QS will either not show at all
         // with HUN movement or it will blink when touching HUN initially
         boolean qsShouldExpandWithHeadsUp = !mSplitShadeEnabled
-                || (!mHeadsUpManager.isTrackingHeadsUp() || expandedHeight > mHeadsUpStartHeight);
+                || (!mHeadsUpManager.isTrackingHeadsUp().getValue()
+                || expandedHeight > mHeadsUpStartHeight);
         if (goingBetweenClosedShadeAndExpandedQs && qsShouldExpandWithHeadsUp) {
             float qsExpansionFraction;
             if (mSplitShadeEnabled) {
@@ -2045,7 +2091,7 @@
         // motion has the expected speed. We also only want this on non-lockscreen for now.
         if (mSplitShadeEnabled && mBarState == SHADE) {
             boolean transitionFromHeadsUp = (mHeadsUpManager != null
-                    && mHeadsUpManager.isTrackingHeadsUp()) || mExpandingFromHeadsUp;
+                    && mHeadsUpManager.isTrackingHeadsUp().getValue()) || mExpandingFromHeadsUp;
             // heads-up starting height is too close to mSplitShadeFullTransitionDistance and
             // when dragging HUN transition is already 90% complete. It makes shade become
             // immediately visible when starting to drag. We want to set distance so that
@@ -2202,6 +2248,11 @@
     @Deprecated
     public void onStatusBarLongPress(MotionEvent event) {
         Log.i(TAG, "Status Bar was long pressed.");
+        if (DISABLE_LONG_PRESS_EXPAND) {
+            //TODO(b/394977231) delete this temporary workaround used only by tests
+            Log.i(TAG, "Ignoring status Bar long press on virtualized test device.");
+            return;
+        }
         ShadeExpandsOnStatusBarLongPress.assertInNewMode();
         mStatusBarLongPressDowntime = event.getDownTime();
         if (isTracking()) {
diff --git a/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsControllerImpl.java b/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsControllerImpl.java
index d058372..42c63f9 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsControllerImpl.java
@@ -2158,6 +2158,8 @@
 
     /** */
     public final class QsFragmentListener implements FragmentHostManager.FragmentListener {
+        private boolean mPreviouslyVisibleMedia = false;
+
         /** */
         @Override
         public void onFragmentViewCreated(String tag, Fragment fragment) {
@@ -2183,7 +2185,12 @@
                     setAnimateNextNotificationBounds(
                             StackStateAnimator.ANIMATION_DURATION_STANDARD, 0);
                     mNotificationStackScrollLayoutController.animateNextTopPaddingChange();
+                    if (QSComposeFragment.isEnabled() && mPreviouslyVisibleMedia && !visible) {
+                        updateHeightsOnShadeLayoutChange();
+                        mPanelViewControllerLazy.get().positionClockAndNotifications();
+                    }
                 }
+                mPreviouslyVisibleMedia = visible;
             });
             mLockscreenShadeTransitionController.setQS(mQs);
             if (QSComposeFragment.isEnabled()) {
diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeEmptyImplModule.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeEmptyImplModule.kt
index 99ff946..631f2ed 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/ShadeEmptyImplModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeEmptyImplModule.kt
@@ -17,6 +17,8 @@
 package com.android.systemui.shade
 
 import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractor
+import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractorPassThrough
 import com.android.systemui.shade.data.repository.PrivacyChipRepository
 import com.android.systemui.shade.data.repository.PrivacyChipRepositoryImpl
 import com.android.systemui.shade.data.repository.ShadeRepository
@@ -81,4 +83,10 @@
     @Binds
     @SysUISingleton
     abstract fun bindShadeModeInteractor(impl: ShadeModeInteractorEmptyImpl): ShadeModeInteractor
+
+    @Binds
+    @SysUISingleton
+    abstract fun bindBrightnessMirrorInteractor(
+        impl: BrightnessMirrorShowingInteractorPassThrough
+    ): BrightnessMirrorShowingInteractor
 }
diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt
index c44e066..f7b998e 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt
@@ -22,6 +22,8 @@
 import com.android.systemui.plugins.qs.QSContainerController
 import com.android.systemui.qs.ui.adapter.QSSceneAdapterImpl
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
+import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractor
+import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractorPassThrough
 import com.android.systemui.shade.carrier.ShadeCarrierGroupControllerLog
 import com.android.systemui.shade.data.repository.PrivacyChipRepository
 import com.android.systemui.shade.data.repository.PrivacyChipRepositoryImpl
@@ -156,6 +158,19 @@
 
         @Provides
         @SysUISingleton
+        fun providesBrightnessMirrorInteractor(
+            sceneContainerOn: Provider<BrightnessMirrorShowingInteractorPassThrough>,
+            sceneContainerOff: Provider<NotificationPanelViewController>,
+        ): BrightnessMirrorShowingInteractor {
+            return if (SceneContainerFlag.isEnabled) {
+                sceneContainerOn.get()
+            } else {
+                sceneContainerOff.get()
+            }
+        }
+
+        @Provides
+        @SysUISingleton
         fun providesQSContainerController(impl: QSSceneAdapterImpl): QSContainerController {
             return impl
         }
diff --git a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/NotificationShadeWindowModel.kt b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/NotificationShadeWindowModel.kt
index 9655d92..a3bfbbc 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/NotificationShadeWindowModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/NotificationShadeWindowModel.kt
@@ -28,6 +28,7 @@
 import com.android.systemui.keyguard.shared.model.KeyguardState.OCCLUDED
 import com.android.systemui.scene.domain.interactor.SceneInteractor
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.util.kotlin.BooleanFlowOperators.any
 import com.android.systemui.util.kotlin.sample
@@ -92,7 +93,7 @@
     val isBouncerShowing: Flow<Boolean> =
         when {
             SceneContainerFlag.isEnabled -> {
-                sceneInteractor.get().transitionState.map { it.isIdle(Scenes.Bouncer) }
+                sceneInteractor.get().transitionState.map { it.isIdle(Overlays.Bouncer) }
             }
             ComposeBouncerFlags.isOnlyComposeBouncerEnabled() -> primaryBouncerInteractor.isShowing
             else ->
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ActionClickLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/ActionClickLogger.kt
index 5042f1b..e998a73 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ActionClickLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ActionClickLogger.kt
@@ -30,26 +30,25 @@
     @NotifInteractionLog private val buffer: LogBuffer
 ) {
     fun logInitialClick(
-        entry: NotificationEntry?,
+        entry: String?,
         index: Integer?,
         pendingIntent: PendingIntent
     ) {
         buffer.log(TAG, LogLevel.DEBUG, {
-            str1 = entry?.key
-            str2 = entry?.ranking?.channel?.id
+            str1 = entry
             str3 = pendingIntent.toString()
             int1 = index?.toInt() ?: Int.MIN_VALUE
         }, {
-            "ACTION CLICK $str1 (channel=$str2) for pending intent $str3 at index $int1"
+            "ACTION CLICK $str1 for pending intent $str3 at index $int1"
         })
     }
 
     fun logRemoteInputWasHandled(
-        entry: NotificationEntry?,
+        entry: String?,
         index: Int?
     ) {
         buffer.log(TAG, LogLevel.DEBUG, {
-            str1 = entry?.key
+            str1 = entry
             int1 = index ?: Int.MIN_VALUE
         }, {
             "  [Action click] Triggered remote input (for $str1) at index $int1"
@@ -57,12 +56,12 @@
     }
 
     fun logStartingIntentWithDefaultHandler(
-        entry: NotificationEntry?,
+        entry: String?,
         pendingIntent: PendingIntent,
         index: Int?
     ) {
         buffer.log(TAG, LogLevel.DEBUG, {
-            str1 = entry?.key
+            str1 = entry
             str2 = pendingIntent.toString()
             int1 = index ?: Int.MIN_VALUE
         }, {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt b/packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt
index f30043e..f45971b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt
@@ -45,7 +45,7 @@
     private val crossWindowBlurListeners: CrossWindowBlurListeners,
     dumpManager: DumpManager
 ) : Dumpable {
-    val minBlurRadius = blurConfig.minBlurRadiusPx
+    val minBlurRadius = resources.getDimensionPixelSize(R.dimen.min_window_blur_radius).toFloat();
     val maxBlurRadius = if (Flags.notificationShadeBlur()) {
         blurConfig.maxBlurRadiusPx
     } else {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
index 7dc2ae7..e44701d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -580,7 +580,8 @@
         /**
          * @see IStatusBar#immersiveModeChanged
          */
-        default void immersiveModeChanged(int rootDisplayAreaId, boolean isImmersiveMode) {}
+        default void immersiveModeChanged(int rootDisplayAreaId, boolean isImmersiveMode,
+                int windowType) {}
 
         /**
          * @see IStatusBar#moveFocusedTaskToDesktop(int)
@@ -876,11 +877,13 @@
     }
 
     @Override
-    public void immersiveModeChanged(int rootDisplayAreaId, boolean isImmersiveMode) {
+    public void immersiveModeChanged(int rootDisplayAreaId, boolean isImmersiveMode,
+            int windowType) {
         synchronized (mLock) {
             final SomeArgs args = SomeArgs.obtain();
             args.argi1 = rootDisplayAreaId;
             args.argi2 = isImmersiveMode ? 1 : 0;
+            args.argi3 = windowType;
             mHandler.obtainMessage(MSG_IMMERSIVE_CHANGED, args).sendToTarget();
         }
     }
@@ -2030,8 +2033,10 @@
                     args = (SomeArgs) msg.obj;
                     int rootDisplayAreaId = args.argi1;
                     boolean isImmersiveMode = args.argi2 != 0;
+                    int windowType = args.argi3;
                     for (int i = 0; i < mCallbacks.size(); i++) {
-                        mCallbacks.get(i).immersiveModeChanged(rootDisplayAreaId, isImmersiveMode);
+                        mCallbacks.get(i).immersiveModeChanged(rootDisplayAreaId, isImmersiveMode,
+                                windowType);
                     }
                     break;
                 case MSG_ENTER_DESKTOP: {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ImmersiveModeConfirmation.java b/packages/SystemUI/src/com/android/systemui/statusbar/ImmersiveModeConfirmation.java
index fed3f6e..97e62d7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ImmersiveModeConfirmation.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ImmersiveModeConfirmation.java
@@ -23,6 +23,8 @@
 import static android.app.StatusBarManager.DISABLE_RECENT;
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
+import static android.view.WindowManager.LayoutParams.TYPE_PRESENTATION;
+import static android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION;
 import static android.window.DisplayAreaOrganizer.FEATURE_UNDEFINED;
 import static android.window.DisplayAreaOrganizer.KEY_ROOT_DISPLAY_AREA_ID;
 
@@ -208,7 +210,8 @@
     }
 
     @Override
-    public void immersiveModeChanged(int rootDisplayAreaId, boolean isImmersiveMode) {
+    public void immersiveModeChanged(int rootDisplayAreaId, boolean isImmersiveMode,
+            int windowType) {
         mHandler.removeMessages(H.SHOW);
         if (isImmersiveMode) {
             if (DEBUG) Log.d(TAG, "immersiveModeChanged() sConfirmed=" + sConfirmed);
@@ -221,7 +224,9 @@
                     && mCanSystemBarsBeShownByUser
                     && !mNavBarEmpty
                     && !UserManager.isDeviceInDemoMode(mDisplayContext)
-                    && (mLockTaskState != LOCK_TASK_MODE_LOCKED)) {
+                    && (mLockTaskState != LOCK_TASK_MODE_LOCKED)
+                    && windowType != TYPE_PRESENTATION
+                    && windowType != TYPE_PRIVATE_PRESENTATION) {
                 final Message msg = mHandler.obtainMessage(
                         H.SHOW);
                 msg.arg1 = rootDisplayAreaId;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
index 5b5058f..13737dbff 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
@@ -560,10 +560,10 @@
         var entry: NotificationEntry? = null
         if (expandView is ExpandableNotificationRow) {
             entry = expandView.entry
-            entry.setUserExpanded(/* userExpanded= */ true, /* allowChildExpansion= */ true)
+            expandView.setUserExpanded(/* userExpanded= */ true, /* allowChildExpansion= */ true)
             // Indicate that the group expansion is changing at this time -- this way the group
             // and children backgrounds / divider animations will look correct.
-            entry.setGroupExpansionChanging(true)
+            expandView.isGroupExpansionChanging = true
             userId = entry.sbn.userId
         }
         var fullShadeNeedsBouncer =
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationGroupingUtil.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationGroupingUtil.java
index c1b8d9d..4bb12e5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationGroupingUtil.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationGroupingUtil.java
@@ -16,6 +16,8 @@
 
 package com.android.systemui.statusbar;
 
+import static android.app.Flags.notificationsRedesignTemplates;
+
 import android.app.Flags;
 import android.app.Notification;
 import android.graphics.drawable.Drawable;
@@ -55,12 +57,6 @@
     private static final VisibilityApplicator VISIBILITY_APPLICATOR = new VisibilityApplicator();
     private static final VisibilityApplicator APP_NAME_APPLICATOR = new AppNameApplicator();
     private static final ResultApplicator LEFT_ICON_APPLICATOR = new LeftIconApplicator();
-    private static final DataExtractor ICON_EXTRACTOR = new DataExtractor() {
-        @Override
-        public Object extractData(ExpandableNotificationRow row) {
-            return row.getEntry().getSbn().getNotification();
-        }
-    };
 
     private final ExpandableNotificationRow mRow;
     private final ArrayList<Processor> mProcessors = new ArrayList<>();
@@ -107,31 +103,26 @@
         // To hide the icons if they are the same and the color is the same
         mProcessors.add(new Processor(mRow,
                 com.android.internal.R.id.icon,
-                ICON_EXTRACTOR,
                 iconVisibilityComparator,
                 VISIBILITY_APPLICATOR));
         // To grey out the icons when they are not the same, or they have the same color
         mProcessors.add(new Processor(mRow,
                 com.android.internal.R.id.status_bar_latest_event_content,
-                ICON_EXTRACTOR,
                 greyComparator,
                 greyApplicator));
         // To show the large icon on the left side instead if all the small icons are the same
         mProcessors.add(new Processor(mRow,
                 com.android.internal.R.id.status_bar_latest_event_content,
-                ICON_EXTRACTOR,
                 iconVisibilityComparator,
                 LEFT_ICON_APPLICATOR));
         // To only show the work profile icon in the group header
         mProcessors.add(new Processor(mRow,
                 com.android.internal.R.id.profile_badge,
-                null /* Extractor */,
                 BADGE_COMPARATOR,
                 VISIBILITY_APPLICATOR));
         // To hide the app name in group children
         mProcessors.add(new Processor(mRow,
                 com.android.internal.R.id.app_name_text,
-                null,
                 APP_NAME_COMPARATOR,
                 APP_NAME_APPLICATOR));
         // To hide the header text if it's the same
@@ -251,23 +242,20 @@
 
     private static class Processor {
         private final int mId;
-        private final DataExtractor mExtractor;
         private final ViewComparator mComparator;
         private final ResultApplicator mApplicator;
         private final ExpandableNotificationRow mParentRow;
         private boolean mApply;
         private View mParentView;
-        private Object mParentData;
 
         public static Processor forTextView(ExpandableNotificationRow row, int id) {
-            return new Processor(row, id, null, TEXT_VIEW_COMPARATOR, VISIBILITY_APPLICATOR);
+            return new Processor(row, id, TEXT_VIEW_COMPARATOR, VISIBILITY_APPLICATOR);
         }
 
-        Processor(ExpandableNotificationRow row, int id, DataExtractor extractor,
+        Processor(ExpandableNotificationRow row, int id,
                 ViewComparator comparator,
                 ResultApplicator applicator) {
             mId = id;
-            mExtractor = extractor;
             mApplicator = applicator;
             mComparator = comparator;
             mParentRow = row;
@@ -277,7 +265,6 @@
             NotificationViewWrapper wrapper = mParentRow.getNotificationViewWrapper();
             View header = wrapper == null ? null : wrapper.getNotificationHeader();
             mParentView = header == null ? null : header.findViewById(mId);
-            mParentData = mExtractor == null ? null : mExtractor.extractData(mParentRow);
             mApply = !mComparator.isEmpty(mParentView);
         }
 
@@ -295,9 +282,7 @@
                 // when for example showing an undo notification
                 return;
             }
-            Object childData = mExtractor == null ? null : mExtractor.extractData(row);
-            mApply = mComparator.compare(mParentView, ownView,
-                    mParentData, childData);
+            mApply = mComparator.compare(mParentView, ownView);
         }
 
         public void apply(ExpandableNotificationRow row) {
@@ -329,11 +314,9 @@
         /**
          * @param parent     the view with the given id in the group header
          * @param child      the view with the given id in the child notification
-         * @param parentData optional data for the parent
-         * @param childData  optional data for the child
          * @return whether to views are the same
          */
-        boolean compare(View parent, View child, Object parentData, Object childData);
+        boolean compare(View parent, View child);
 
         boolean isEmpty(View view);
     }
@@ -344,7 +327,7 @@
 
     private static class BadgeComparator implements ViewComparator {
         @Override
-        public boolean compare(View parent, View child, Object parentData, Object childData) {
+        public boolean compare(View parent, View child) {
             return parent.getVisibility() != View.GONE;
         }
 
@@ -362,7 +345,7 @@
 
     private static class TextViewComparator implements ViewComparator {
         @Override
-        public boolean compare(View parent, View child, Object parentData, Object childData) {
+        public boolean compare(View parent, View child) {
             TextView parentView = (TextView) parent;
             CharSequence parentText = parentView == null ? "" : parentView.getText();
             TextView childView = (TextView) child;
@@ -378,7 +361,7 @@
 
     private abstract static class IconComparator implements ViewComparator {
         @Override
-        public boolean compare(View parent, View child, Object parentData, Object childData) {
+        public boolean compare(View parent, View child) {
             return false;
         }
 
@@ -427,7 +410,8 @@
 
         @Override
         public void apply(View parent, View view, boolean apply, boolean reset) {
-            if (reset && parent instanceof ConversationLayout) {
+            if (!notificationsRedesignTemplates()
+                    && reset && parent instanceof ConversationLayout) {
                 ConversationLayout layout = (ConversationLayout) parent;
                 apply = layout.shouldHideAppName();
             }
@@ -437,14 +421,14 @@
 
     private static class AppNameComparator extends TextViewComparator {
         @Override
-        public boolean compare(View parent, View child, Object parentData, Object childData) {
+        public boolean compare(View parent, View child) {
             if (isEmpty(child)) {
                 // In headerless notifications the AppName view exists but is usually GONE (and not
                 // populated).  We need to treat this case as equal to the header in order to
                 // deduplicate the view.
                 return true;
             }
-            return super.compare(parent, child, parentData, childData);
+            return super.compare(parent, child);
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
index f06565f..32da6ff 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
@@ -24,7 +24,7 @@
 import static android.os.Flags.allowPrivateProfile;
 import static android.os.UserHandle.USER_ALL;
 import static android.os.UserHandle.USER_NULL;
-import static android.provider.Settings.Secure.REDACT_OTP_NOTIFICATION_IMMEDIATELY;
+import static android.provider.Settings.Secure.OTP_NOTIFICATION_REDACTION_LOCK_TIME;
 import static android.provider.Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS;
 import static android.provider.Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS;
 import static android.provider.Settings.Secure.REDACT_OTP_NOTIFICATION_WHILE_CONNECTED_TO_WIFI;
@@ -124,10 +124,10 @@
     private static final Uri REDACT_OTP_ON_WIFI =
             Settings.Secure.getUriFor(REDACT_OTP_NOTIFICATION_WHILE_CONNECTED_TO_WIFI);
 
-    private static final Uri REDACT_OTP_IMMEDIATELY =
-            Settings.Secure.getUriFor(REDACT_OTP_NOTIFICATION_IMMEDIATELY);
+    private static final Uri OTP_REDACTION_LOCK_TIME =
+            Settings.Secure.getUriFor(OTP_NOTIFICATION_REDACTION_LOCK_TIME);
 
-    private static final long LOCK_TIME_FOR_SENSITIVE_REDACTION_MS =
+    private static final long DEFAULT_LOCK_TIME_FOR_SENSITIVE_REDACTION_MS =
             TimeUnit.MINUTES.toMillis(10);
     private final Lazy<NotificationVisibilityProvider> mVisibilityProviderLazy;
     private final Lazy<CommonNotifCollection> mCommonNotifCollectionLazy;
@@ -316,7 +316,8 @@
     protected final AtomicBoolean mConnectedToWifi = new AtomicBoolean(false);
 
     protected final AtomicBoolean mRedactOtpOnWifi = new AtomicBoolean(true);
-    protected final AtomicBoolean mRedactOtpImmediately = new AtomicBoolean(false);
+    protected final AtomicLong mOtpRedactionRequiredLockTimeMs =
+            new AtomicLong(DEFAULT_LOCK_TIME_FOR_SENSITIVE_REDACTION_MS);
 
     protected int mCurrentUserId = 0;
 
@@ -375,7 +376,7 @@
         mLockScreenUris.add(SHOW_LOCKSCREEN);
         mLockScreenUris.add(SHOW_PRIVATE_LOCKSCREEN);
         mLockScreenUris.add(REDACT_OTP_ON_WIFI);
-        mLockScreenUris.add(REDACT_OTP_IMMEDIATELY);
+        mLockScreenUris.add(OTP_REDACTION_LOCK_TIME);
 
         dumpManager.registerDumpable(this);
 
@@ -447,8 +448,8 @@
                         changed |= updateUserShowPrivateSettings(user.getIdentifier());
                     } else if (REDACT_OTP_ON_WIFI.equals(uri)) {
                         changed |= updateRedactOtpOnWifiSetting();
-                    } else if (REDACT_OTP_IMMEDIATELY.equals(uri)) {
-                        changed |= updateRedactOtpImmediatelySetting();
+                    } else if (OTP_REDACTION_LOCK_TIME.equals(uri)) {
+                        changed |= updateOtpLockTimeSetting();
                     }
                 }
 
@@ -487,7 +488,7 @@
                 mLockscreenSettingsObserver
         );
         mSecureSettings.registerContentObserverAsync(
-                REDACT_OTP_IMMEDIATELY,
+                OTP_REDACTION_LOCK_TIME,
                 mLockscreenSettingsObserver
         );
 
@@ -638,13 +639,13 @@
     }
 
     @WorkerThread
-    private boolean updateRedactOtpImmediatelySetting() {
-        boolean originalValue = mRedactOtpImmediately.get();
-        boolean newValue = mSecureSettings.getIntForUser(
-                REDACT_OTP_NOTIFICATION_IMMEDIATELY,
-                0,
-                Process.myUserHandle().getIdentifier()) != 0;
-        mRedactOtpImmediately.set(newValue);
+    private boolean updateOtpLockTimeSetting() {
+        long originalValue = mOtpRedactionRequiredLockTimeMs.get();
+        long newValue = mSecureSettings.getLongForUser(
+                OTP_NOTIFICATION_REDACTION_LOCK_TIME,
+                DEFAULT_LOCK_TIME_FOR_SENSITIVE_REDACTION_MS,
+                Process.myUserHandle().getIdentifier());
+        mOtpRedactionRequiredLockTimeMs.set(newValue);
         return originalValue != newValue;
     }
 
@@ -832,14 +833,9 @@
             return false;
         }
 
-        long latestTimeForRedaction;
-        if (mRedactOtpImmediately.get()) {
-            latestTimeForRedaction = mLastLockTime.get();
-        } else {
-            // If the lock screen was not already locked for LOCK_TIME_FOR_SENSITIVE_REDACTION_MS
-            // when this notification arrived, do not redact
-            latestTimeForRedaction = mLastLockTime.get() + LOCK_TIME_FOR_SENSITIVE_REDACTION_MS;
-        }
+        // If the lock screen was not already locked for at least mOtpRedactionRequiredLockTimeMs
+        // when this notification arrived, do not redact
+        long latestTimeForRedaction = mLastLockTime.get() + mOtpRedactionRequiredLockTimeMs.get();
 
         if (ent.getSbn().getPostTime() < latestTimeForRedaction) {
             return false;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
index c0ee56b..0d34bdc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
@@ -133,11 +133,14 @@
             Integer actionIndex = (Integer)
                     view.getTag(com.android.internal.R.id.notification_action_index_tag);
 
+            final ExpandableNotificationRow row = getNotificationRowForParent(view.getParent());
             final NotificationEntry entry = getNotificationForParent(view.getParent());
-            mLogger.logInitialClick(entry, actionIndex, pendingIntent);
+            mLogger.logInitialClick(
+                    row != null ? row.getLoggingKey() : null, actionIndex, pendingIntent);
 
             if (handleRemoteInput(view, pendingIntent)) {
-                mLogger.logRemoteInputWasHandled(entry, actionIndex);
+                mLogger.logRemoteInputWasHandled(
+                        row != null ? row.getLoggingKey() : null, actionIndex);
                 return true;
             }
 
@@ -157,7 +160,8 @@
             return mCallback.handleRemoteViewClick(view, pendingIntent,
                     action == null ? false : action.isAuthenticationRequired(), actionIndex, () -> {
                     Pair<Intent, ActivityOptions> options = response.getLaunchOptions(view);
-                    mLogger.logStartingIntentWithDefaultHandler(entry, pendingIntent, actionIndex);
+                    mLogger.logStartingIntentWithDefaultHandler(
+                            row != null ? row.getLoggingKey() : null, pendingIntent, actionIndex);
                     boolean started = RemoteViews.startPendingIntent(view, pendingIntent, options);
                     if (started) releaseNotificationIfKeptForRemoteInputHistory(entry);
                     return started;
@@ -224,6 +228,16 @@
             return null;
         }
 
+        private @Nullable ExpandableNotificationRow getNotificationRowForParent(ViewParent parent) {
+            while (parent != null) {
+                if (parent instanceof ExpandableNotificationRow) {
+                    return ((ExpandableNotificationRow) parent);
+                }
+                parent = parent.getParent();
+            }
+            return null;
+        }
+
         private boolean handleRemoteInput(View view, PendingIntent pendingIntent) {
             if (mCallback.shouldHandleRemoteInput(view, pendingIntent)) {
                 return true;
@@ -722,7 +736,7 @@
      *
      * @return on-click handler
      */
-    public RemoteViews.InteractionHandler getRemoteViewsOnClickHandler() {
+    public InteractionHandler getRemoteViewsOnClickHandler() {
         return mInteractionHandler;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt
index 6aa2fe2..84266e8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt
@@ -38,13 +38,13 @@
 import com.android.systemui.Flags.spatialModelAppPushback
 import com.android.systemui.animation.ShadeInterpolation
 import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Application
 import com.android.systemui.dump.DumpManager
 import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
 import com.android.systemui.plugins.statusbar.StatusBarStateController
 import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.shade.ShadeExpansionChangeEvent
 import com.android.systemui.shade.ShadeExpansionListener
-import com.android.systemui.shared.Flags.ambientAod
 import com.android.systemui.statusbar.phone.BiometricUnlockController
 import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK
 import com.android.systemui.statusbar.phone.DozeParameters
@@ -53,8 +53,11 @@
 import com.android.systemui.statusbar.policy.KeyguardStateController
 import com.android.systemui.statusbar.policy.SplitShadeStateController
 import com.android.systemui.util.WallpaperController
+import com.android.systemui.wallpapers.domain.interactor.WallpaperInteractor
 import com.android.systemui.window.domain.interactor.WindowRootViewBlurInteractor
 import com.android.wm.shell.appzoomout.AppZoomOut
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.launch
 import java.io.PrintWriter
 import java.util.Optional
 import javax.inject.Inject
@@ -76,12 +79,14 @@
     private val keyguardInteractor: KeyguardInteractor,
     private val choreographer: Choreographer,
     private val wallpaperController: WallpaperController,
+    private val wallpaperInteractor: WallpaperInteractor,
     private val notificationShadeWindowController: NotificationShadeWindowController,
     private val dozeParameters: DozeParameters,
     @ShadeDisplayAware private val context: Context,
     private val splitShadeStateController: SplitShadeStateController,
     private val windowRootViewBlurInteractor: WindowRootViewBlurInteractor,
     private val appZoomOutOptional: Optional<AppZoomOut>,
+    @Application private val applicationScope: CoroutineScope,
     dumpManager: DumpManager,
     configurationController: ConfigurationController,
 ) : ShadeExpansionListener, Dumpable {
@@ -110,6 +115,12 @@
     private var prevTimestamp: Long = -1
     private var prevShadeDirection = 0
     private var prevShadeVelocity = 0f
+    private var prevDozeAmount: Float = 0f
+    @VisibleForTesting var wallpaperSupportsAmbientMode: Boolean = false
+    // tracks whether app launch transition is in progress. This involves two independent factors
+    // that control blur, shade expansion and app launch animation from outside sysui.
+    // They can complete out of order, this flag will be reset by the animation that finishes later.
+    private var appLaunchTransitionIsInProgress = false
 
     // Only for dumpsys
     private var lastAppliedBlur = 0
@@ -158,6 +169,18 @@
             if (field == value) {
                 return
             }
+            // Set this to true now, this will be reset when the next shade expansion finishes or
+            // when the app launch finishes, whichever happens later.
+            if (value) {
+                appLaunchTransitionIsInProgress = true
+            } else {
+                // App was launching and now it has finished launching
+                if (shadeExpansion == 0.0f) {
+                    // this means shade expansion finished before app launch was done.
+                    // reset the flag here
+                    appLaunchTransitionIsInProgress = false
+                }
+            }
             field = value
             scheduleUpdate()
 
@@ -172,6 +195,12 @@
             shadeAnimation.animateTo(0)
             shadeAnimation.finishIfRunning()
         }
+        @Deprecated(
+            message =
+                "This might get reset to false before shade expansion is fully done, " +
+                    "consider using areBlursDisabledForAppLaunch"
+        )
+        get() = field
 
     private var zoomOutCalculatedFromShadeRadius: Float = 0.0f
 
@@ -183,6 +212,11 @@
             scheduleUpdate()
         }
 
+    private val areBlursDisabledForAppLaunch: Boolean
+        get() =
+            blursDisabledForAppLaunch ||
+                (Flags.bouncerUiRevamp() && appLaunchTransitionIsInProgress)
+
     /** Force stop blur effect when necessary. */
     private var scrimsVisible: Boolean = false
         set(value) {
@@ -192,7 +226,15 @@
         }
 
     /** Blur radius of the wake-up animation on this frame. */
-    private var wakeAndUnlockBlurRadius = 0f
+    private var wakeBlurRadius = 0f
+        set(value) {
+            if (field == value) return
+            field = value
+            scheduleUpdate()
+        }
+
+    /** Blur radius of the unlock animation on this frame. */
+    private var unlockBlurRadius = 0f
         set(value) {
             if (field == value) return
             field = value
@@ -219,14 +261,16 @@
             ShadeInterpolation.getNotificationScrimAlpha(qsPanelExpansion) * shadeExpansion
         combinedBlur = max(combinedBlur, blurUtils.blurRadiusOfRatio(qsExpandedRatio))
         combinedBlur = max(combinedBlur, blurUtils.blurRadiusOfRatio(transitionToFullShadeProgress))
-        var shadeRadius = max(combinedBlur, wakeAndUnlockBlurRadius)
+        var shadeRadius = max(combinedBlur, max(wakeBlurRadius, unlockBlurRadius))
 
-        if (blursDisabledForAppLaunch || blursDisabledForUnlock) {
+        if (areBlursDisabledForAppLaunch || blursDisabledForUnlock) {
             shadeRadius = 0f
         }
 
         var blur = shadeRadius.toInt()
-        val zoomOut = blurRadiusToZoomOut(blurRadius = shadeRadius)
+        // If the blur comes from waking up, we don't want to zoom out the background
+        val zoomOut =
+            if (shadeRadius != wakeBlurRadius) blurRadiusToZoomOut(blurRadius = shadeRadius) else 0f
         // Make blur be 0 if it is necessary to stop blur effect.
         if (scrimsVisible) {
             if (!Flags.notificationShadeBlur()) {
@@ -259,7 +303,7 @@
     private val shouldBlurBeOpaque: Boolean
         get() =
             if (Flags.notificationShadeBlur()) false
-            else scrimsVisible && !blursDisabledForAppLaunch
+            else scrimsVisible && !areBlursDisabledForAppLaunch
 
     /** Callback that updates the window blur value and is called only once per frame. */
     @VisibleForTesting
@@ -311,14 +355,14 @@
                         startDelay = keyguardStateController.keyguardFadingAwayDelay
                         interpolator = Interpolators.FAST_OUT_SLOW_IN
                         addUpdateListener { animation: ValueAnimator ->
-                            wakeAndUnlockBlurRadius =
+                            unlockBlurRadius =
                                 blurUtils.blurRadiusOfRatio(animation.animatedValue as Float)
                         }
                         addListener(
                             object : AnimatorListenerAdapter() {
                                 override fun onAnimationEnd(animation: Animator) {
                                     keyguardAnimator = null
-                                    wakeAndUnlockBlurRadius = 0f
+                                    unlockBlurRadius = 0f
                                 }
                             }
                         )
@@ -354,15 +398,20 @@
             }
 
             override fun onDozeAmountChanged(linear: Float, eased: Float) {
-                wakeAndUnlockBlurRadius =
-                    if (ambientAod()) {
-                        0f
-                    } else {
-                        blurUtils.blurRadiusOfRatio(eased)
-                    }
+                prevDozeAmount = eased
+                updateWakeBlurRadius(prevDozeAmount)
             }
         }
 
+    private fun updateWakeBlurRadius(ratio: Float) {
+        wakeBlurRadius =
+            if (!wallpaperSupportsAmbientMode) {
+                0f
+            } else {
+                blurUtils.blurRadiusOfRatio(ratio)
+            }
+    }
+
     init {
         dumpManager.registerCriticalDumpable(javaClass.name, this)
         if (WAKE_UP_ANIMATION_ENABLED) {
@@ -384,6 +433,12 @@
                 }
             }
         )
+        applicationScope.launch {
+            wallpaperInteractor.wallpaperSupportsAmbientMode.collect { supported ->
+                wallpaperSupportsAmbientMode = supported
+                updateWakeBlurRadius(prevDozeAmount)
+            }
+        }
         initBlurListeners()
     }
 
@@ -442,6 +497,13 @@
         val shadeDirection = sign(diff).toInt()
         val shadeVelocity =
             MathUtils.constrain(VELOCITY_SCALE * diff / deltaTime, MIN_VELOCITY, MAX_VELOCITY)
+        if (expansion == 0.0f && appLaunchTransitionIsInProgress && !blursDisabledForAppLaunch) {
+            // Shade expansion finished but the app launch is already done, then this should mark
+            // the transition as done.
+            Log.d(TAG, "appLaunchTransitionIsInProgress is now false from shade expansion event")
+            appLaunchTransitionIsInProgress = false
+        }
+
         updateShadeAnimationBlur(expansion, tracking, shadeVelocity, shadeDirection)
 
         prevShadeDirection = shadeDirection
@@ -551,8 +613,10 @@
             it.println("shouldApplyShadeBlur: ${shouldApplyShadeBlur()}")
             it.println("shadeAnimation: ${shadeAnimation.radius}")
             it.println("brightnessMirrorRadius: ${brightnessMirrorSpring.radius}")
-            it.println("wakeAndUnlockBlur: $wakeAndUnlockBlurRadius")
+            it.println("wakeBlur: $wakeBlurRadius")
+            it.println("unlockBlur: $wakeBlurRadius")
             it.println("blursDisabledForAppLaunch: $blursDisabledForAppLaunch")
+            it.println("appLaunchTransitionIsInProgress: $appLaunchTransitionIsInProgress")
             it.println("qsPanelExpansion: $qsPanelExpansion")
             it.println("transitionToFullShadeProgress: $transitionToFullShadeProgress")
             it.println("lastAppliedBlur: $lastAppliedBlur")
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
index 31fdec6..f88c618 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
@@ -50,6 +50,7 @@
 import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 import com.android.systemui.statusbar.notification.row.ExpandableView;
+import com.android.systemui.statusbar.notification.shared.NotificationBundleUi;
 import com.android.systemui.statusbar.notification.shared.NotificationMinimalism;
 import com.android.systemui.statusbar.notification.shelf.NotificationShelfBackgroundView;
 import com.android.systemui.statusbar.notification.shelf.NotificationShelfIconContainer;
@@ -672,7 +673,9 @@
             // if the shelf is clipped, lets make sure we also clip the icon
             maxTop = Math.max(maxTop, getTranslationY() + getClipTopAmount());
         }
-        StatusBarIconView icon = row.getEntry().getIcons().getShelfIcon();
+        StatusBarIconView icon = NotificationBundleUi.isEnabled()
+                ? row.getEntryAdapter().getIcons().getShelfIcon()
+                : row.getEntry().getIcons().getShelfIcon();
         float shelfIconPosition = getTranslationY() + icon.getTop() + icon.getTranslationY();
         if (shelfIconPosition < maxTop && !mAmbientState.isFullyHidden()) {
             int top = (int) (maxTop - shelfIconPosition);
@@ -684,7 +687,9 @@
     }
 
     private void updateContinuousClipping(final ExpandableNotificationRow row) {
-        StatusBarIconView icon = row.getEntry().getIcons().getShelfIcon();
+        StatusBarIconView icon = NotificationBundleUi.isEnabled()
+                ? row.getEntryAdapter().getIcons().getShelfIcon()
+                : row.getEntry().getIcons().getShelfIcon();
         boolean needsContinuousClipping = ViewState.isAnimatingY(icon) && !mAmbientState.isDozing();
         boolean isContinuousClipping = icon.getTag(TAG_CONTINUOUS_CLIPPING) != null;
         if (needsContinuousClipping && !isContinuousClipping) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java
index 0dfc63e..08ecc64 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java
@@ -627,7 +627,6 @@
             boolean alternateBouncerIsVisible) {
         SceneContainerFlag.isUnexpectedlyInLegacyMode();
 
-        final boolean onBouncer = currentScene.equals(Scenes.Bouncer);
         final boolean onCommunal = currentScene.equals(Scenes.Communal);
         final boolean onGone = currentScene.equals(Scenes.Gone);
         final boolean onDream = currentScene.equals(Scenes.Dream);
@@ -635,8 +634,8 @@
         final boolean onQuickSettings = currentScene.equals(Scenes.QuickSettings);
         final boolean onShade = currentScene.equals(Scenes.Shade);
 
+        final boolean overlaidBouncer = currentOverlays.contains(Overlays.Bouncer);
         final boolean overCommunal = SceneStackKt.contains(backStack, Scenes.Communal);
-        final boolean overLockscreen = SceneStackKt.contains(backStack, Scenes.Lockscreen);
         final boolean overShade = SceneStackKt.contains(backStack, Scenes.Shade);
 
         final boolean overlaidShade = currentOverlays.contains(Overlays.NotificationsShade);
@@ -669,14 +668,13 @@
         // 3. backStack contains a keyguardish scene (Lockscreen or Communal).
         // 4. the alternate bouncer is visible.
 
-        final boolean onKeyguardish = onLockscreen || onBouncer || onCommunal;
-        final boolean overKeyguardish = overLockscreen || overCommunal;
+        final boolean onKeyguardish = onLockscreen || overlaidBouncer || onCommunal;
 
         if (isOccluded) {
             // Occlusion is special; even though the device is still technically on the lockscreen,
             // the UI behaves as if it is unlocked.
             newState = StatusBarState.SHADE;
-        } else if (onKeyguardish || overKeyguardish || alternateBouncerIsVisible) {
+        } else if (onKeyguardish || overCommunal || alternateBouncerIsVisible) {
             // We get here if we are on or over a keyguardish scene, even if isUnlocked is true; we
             // want to return SHADE_LOCKED or KEYGUARD until we are also neither on nor over a
             // keyguardish scene.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/domain/interactor/CallChipInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/domain/interactor/CallChipInteractor.kt
index 2eae3eb..7548f6ff 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/domain/interactor/CallChipInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/domain/interactor/CallChipInteractor.kt
@@ -22,9 +22,9 @@
 import com.android.systemui.log.core.LogLevel
 import com.android.systemui.statusbar.chips.StatusBarChipLogTags.pad
 import com.android.systemui.statusbar.chips.StatusBarChipsLog
+import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
 import com.android.systemui.statusbar.phone.ongoingcall.data.repository.OngoingCallRepository
 import com.android.systemui.statusbar.phone.ongoingcall.domain.interactor.OngoingCallInteractor
-import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
 import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
 import javax.inject.Inject
 import kotlinx.coroutines.CoroutineScope
@@ -44,25 +44,17 @@
     @StatusBarChipsLog private val logger: LogBuffer,
 ) {
     val ongoingCallState: StateFlow<OngoingCallModel> =
-        (if (StatusBarChipsModernization.isEnabled)
-            ongoingCallInteractor.ongoingCallState
-        else
-            repository.ongoingCallState)
+        (if (StatusBarChipsModernization.isEnabled) {
+                ongoingCallInteractor.ongoingCallState
+            } else {
+                repository.ongoingCallState
+            })
             .onEach {
-                logger.log(
-                    TAG,
-                    LogLevel.INFO,
-                    { str1 = it::class.simpleName },
-                    { "State: $str1" }
-                )
+                logger.log(TAG, LogLevel.INFO, { str1 = it::class.simpleName }, { "State: $str1" })
             }
-            .stateIn(
-                scope,
-                SharingStarted.Lazily,
-                OngoingCallModel.NoCall
-            )
+            .stateIn(scope, SharingStarted.Lazily, OngoingCallModel.NoCall)
 
     companion object {
         private val TAG = "OngoingCall".pad()
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChip.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChip.kt
index efd402e..95e454a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChip.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChip.kt
@@ -211,10 +211,6 @@
                     modifier.size(dimensionResource(id = R.dimen.ongoing_activity_chip_icon_size)),
             )
         }
-
-        // TODO(b/372657935): Add recommended architecture implementation for
-        // StatusBarNotificationIcons
-        is OngoingActivityChipModel.ChipIcon.StatusBarNotificationIcon -> {}
     }
 }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/ConnectivityModule.kt b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/ConnectivityModule.kt
index 10090283..48f0245 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/ConnectivityModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/ConnectivityModule.kt
@@ -34,6 +34,7 @@
 import com.android.systemui.qs.tiles.NfcTile
 import com.android.systemui.qs.tiles.base.interactor.QSTileAvailabilityInteractor
 import com.android.systemui.qs.tiles.base.viewmodel.QSTileViewModelFactory
+import com.android.systemui.qs.tiles.dialog.InternetDetailsViewModel
 import com.android.systemui.qs.tiles.impl.airplane.domain.AirplaneModeMapper
 import com.android.systemui.qs.tiles.impl.airplane.domain.interactor.AirplaneModeTileDataInteractor
 import com.android.systemui.qs.tiles.impl.airplane.domain.interactor.AirplaneModeTileUserActionInteractor
@@ -162,13 +163,15 @@
             factory: QSTileViewModelFactory.Static<AirplaneModeTileModel>,
             mapper: AirplaneModeMapper,
             stateInteractor: AirplaneModeTileDataInteractor,
-            userActionInteractor: AirplaneModeTileUserActionInteractor
+            userActionInteractor: AirplaneModeTileUserActionInteractor,
+            internetDetailsViewModelFactory: InternetDetailsViewModel.Factory
         ): QSTileViewModel =
             factory.create(
                 TileSpec.create(AIRPLANE_MODE_TILE_SPEC),
                 userActionInteractor,
                 stateInteractor,
                 mapper,
+                internetDetailsViewModelFactory.create(),
             )
 
         @Provides
@@ -226,13 +229,15 @@
             factory: QSTileViewModelFactory.Static<InternetTileModel>,
             mapper: InternetTileMapper,
             stateInteractor: InternetTileDataInteractor,
-            userActionInteractor: InternetTileUserActionInteractor
+            userActionInteractor: InternetTileUserActionInteractor,
+            internetDetailsViewModelFactory: InternetDetailsViewModel.Factory
         ): QSTileViewModel =
             factory.create(
                 TileSpec.create(INTERNET_TILE_SPEC),
                 userActionInteractor,
                 stateInteractor,
                 mapper,
+                internetDetailsViewModelFactory.create(),
             )
 
         @Provides
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/core/NewStatusBarIcons.kt b/packages/SystemUI/src/com/android/systemui/statusbar/core/NewStatusBarIcons.kt
index e3be953..402881d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/core/NewStatusBarIcons.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/core/NewStatusBarIcons.kt
@@ -29,10 +29,10 @@
     val token: FlagToken
         get() = FlagToken(FLAG_NAME, isEnabled)
 
-    /** Is the refactor enabled */
+    /** Is the refactor enabled. Dependency on [StatusBarRootModernization] */
     @JvmStatic
     inline val isEnabled
-        get() = Flags.newStatusBarIcons()
+        get() = Flags.newStatusBarIcons() && StatusBarRootModernization.isEnabled
 
     /**
      * Called to ensure code is only run when the flag is enabled. This protects users from the
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/domain/interactor/StatusBarKeyguardViewManagerInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/domain/interactor/StatusBarKeyguardViewManagerInteractor.kt
index 9ca110e..352d660 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/domain/interactor/StatusBarKeyguardViewManagerInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/domain/interactor/StatusBarKeyguardViewManagerInteractor.kt
@@ -37,10 +37,7 @@
 /**
  * Whether to set the status bar keyguard view occluded or not, and whether to animate that change.
  */
-data class OccludedState(
-    val occluded: Boolean,
-    val animate: Boolean = false,
-)
+data class OccludedState(val occluded: Boolean, val animate: Boolean = false)
 
 /** Handles logic around calls to [StatusBarKeyguardViewManager] in legacy code. */
 @Deprecated("Will be removed once all of SBKVM's responsibilies are refactored.")
@@ -93,12 +90,12 @@
     private val occlusionStateFromFinishedStep =
         combine(
                 keyguardTransitionInteractor.isFinishedIn(
-                    scene = Scenes.Gone,
+                    content = Scenes.Gone,
                     stateWithoutSceneContainer = KeyguardState.GONE,
                 ),
                 keyguardTransitionInteractor.isFinishedIn(KeyguardState.OCCLUDED),
                 keyguardOcclusionInteractor.isShowWhenLockedActivityOnTop,
-                ::Triple
+                ::Triple,
             )
             .map { (isOnGone, isOnOccluded, showWhenLockedOnTop) ->
                 // If we're FINISHED in OCCLUDED, we want to render as occluded. We also need to
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/media/ui/compose/MediaControlPopup.kt b/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/media/ui/compose/MediaControlPopup.kt
new file mode 100644
index 0000000..80bdb7f
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/media/ui/compose/MediaControlPopup.kt
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2025 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.featurepods.media.ui.compose
+
+import android.widget.FrameLayout
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
+import androidx.compose.ui.res.dimensionResource
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.viewinterop.AndroidView
+import com.android.systemui.media.controls.ui.view.MediaHost
+import com.android.systemui.res.R
+
+/** Displays a popup containing media controls. Embeds the MediaCarousel within a Compose popup. */
+@Composable
+fun MediaControlPopup(mediaHost: MediaHost, modifier: Modifier = Modifier) {
+    AndroidView(
+        modifier =
+            modifier
+                .width(400.dp)
+                .height(200.dp)
+                .clip(
+                    shape =
+                        RoundedCornerShape(dimensionResource(R.dimen.notification_corner_radius))
+                ),
+        factory = { _ ->
+            mediaHost.hostView.apply {
+                layoutParams =
+                    FrameLayout.LayoutParams(
+                        FrameLayout.LayoutParams.MATCH_PARENT,
+                        FrameLayout.LayoutParams.MATCH_PARENT,
+                    )
+            }
+            mediaHost.hostView
+        },
+        onReset = {},
+    )
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/popups/ui/compose/StatusBarPopup.kt b/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/popups/ui/compose/StatusBarPopup.kt
index 8a66904..ead5148 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/popups/ui/compose/StatusBarPopup.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/popups/ui/compose/StatusBarPopup.kt
@@ -28,7 +28,9 @@
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.window.Popup
 import androidx.compose.ui.window.PopupProperties
+import com.android.systemui.media.controls.ui.view.MediaHost
 import com.android.systemui.res.R
+import com.android.systemui.statusbar.featurepods.media.ui.compose.MediaControlPopup
 import com.android.systemui.statusbar.featurepods.popups.shared.model.PopupChipId
 import com.android.systemui.statusbar.featurepods.popups.shared.model.PopupChipModel
 
@@ -37,7 +39,7 @@
  * status bar.
  */
 @Composable
-fun StatusBarPopup(viewModel: PopupChipModel.Shown) {
+fun StatusBarPopup(viewModel: PopupChipModel.Shown, mediaHost: MediaHost) {
     val density = Density(LocalContext.current)
     Popup(
         properties =
@@ -56,7 +58,7 @@
         Box(modifier = Modifier.padding(8.dp).wrapContentSize()) {
             when (viewModel.chipId) {
                 is PopupChipId.MediaControl -> {
-                    // TODO(b/385202114): Populate MediaControlPopup contents.
+                    MediaControlPopup(mediaHost = mediaHost)
                 }
             }
             // Future popup types will be handled here.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/popups/ui/compose/StatusBarPopupChip.kt b/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/popups/ui/compose/StatusBarPopupChip.kt
index eb85d2f..c77decd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/popups/ui/compose/StatusBarPopupChip.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/popups/ui/compose/StatusBarPopupChip.kt
@@ -16,33 +16,49 @@
 
 package com.android.systemui.statusbar.featurepods.popups.ui.compose
 
-import androidx.compose.animation.animateContentSize
+import androidx.compose.foundation.LocalIndication
 import androidx.compose.foundation.background
+import androidx.compose.foundation.border
 import androidx.compose.foundation.clickable
-import androidx.compose.foundation.hoverable
+import androidx.compose.foundation.indication
 import androidx.compose.foundation.interaction.MutableInteractionSource
 import androidx.compose.foundation.interaction.collectIsHoveredAsState
 import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
 import androidx.compose.foundation.layout.widthIn
 import androidx.compose.foundation.shape.CircleShape
 import androidx.compose.foundation.shape.RoundedCornerShape
 import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.Surface
 import androidx.compose.material3.Text
 import androidx.compose.material3.contentColorFor
+import androidx.compose.material3.minimumInteractiveComponentSize
 import androidx.compose.material3.ripple
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
+import androidx.compose.ui.draw.drawWithCache
+import androidx.compose.ui.graphics.BlendMode
+import androidx.compose.ui.graphics.Brush
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.CompositingStrategy
+import androidx.compose.ui.layout.layout
+import androidx.compose.ui.res.dimensionResource
 import androidx.compose.ui.semantics.Role
-import androidx.compose.ui.text.style.TextOverflow
+import androidx.compose.ui.text.rememberTextMeasurer
+import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
 import com.android.compose.modifiers.thenIf
 import com.android.systemui.common.ui.compose.Icon
+import com.android.systemui.res.R
 import com.android.systemui.statusbar.featurepods.popups.shared.model.HoverBehavior
 import com.android.systemui.statusbar.featurepods.popups.shared.model.PopupChipModel
 
@@ -54,31 +70,48 @@
 @Composable
 fun StatusBarPopupChip(viewModel: PopupChipModel.Shown, modifier: Modifier = Modifier) {
     val hasHoverBehavior = viewModel.hoverBehavior !is HoverBehavior.None
-    val hoverInteractionSource = remember { MutableInteractionSource() }
-    val isHovered by hoverInteractionSource.collectIsHoveredAsState()
+    val interactionSource = remember { MutableInteractionSource() }
+    val hoveredState by interactionSource.collectIsHoveredAsState()
+    val isHovered = hasHoverBehavior && hoveredState
     val isPopupShown = viewModel.isPopupShown
-
+    val indication = if (hoveredState) null else LocalIndication.current
+    val chipShape =
+        RoundedCornerShape(dimensionResource(id = R.dimen.ongoing_activity_chip_corner_radius))
     val chipBackgroundColor =
         if (isPopupShown) {
-            MaterialTheme.colorScheme.primaryContainer
+            MaterialTheme.colorScheme.primary
         } else {
-            MaterialTheme.colorScheme.surfaceContainerHighest
+            MaterialTheme.colorScheme.surfaceDim
         }
-    Surface(
-        shape = RoundedCornerShape(16.dp),
+
+    // Use a Box with `fillMaxHeight` to create a larger click surface for the chip. The visible
+    // height of the chip is determined by the height of the background of the Row below. The
+    // `indication` for Clicks is applied in the Row below as well.
+    Box(
+        contentAlignment = Alignment.Center,
         modifier =
-            modifier
-                .widthIn(max = 120.dp)
-                .padding(vertical = 4.dp)
-                .animateContentSize()
-                .thenIf(hasHoverBehavior) { Modifier.hoverable(hoverInteractionSource) }
-                .thenIf(!isPopupShown) { Modifier.clickable { viewModel.showPopup() } },
-        color = chipBackgroundColor,
+            modifier.minimumInteractiveComponentSize().thenIf(!isPopupShown) {
+                Modifier.clickable(
+                    onClick = { viewModel.showPopup() },
+                    indication = null,
+                    interactionSource = interactionSource,
+                )
+            },
     ) {
         Row(
-            modifier = Modifier.padding(start = 4.dp, end = 8.dp),
-            verticalAlignment = Alignment.CenterVertically,
             horizontalArrangement = Arrangement.spacedBy(4.dp),
+            verticalAlignment = Alignment.CenterVertically,
+            modifier =
+                Modifier.height(dimensionResource(R.dimen.ongoing_appops_chip_height))
+                    .clip(chipShape)
+                    .background(chipBackgroundColor)
+                    .border(
+                        width = dimensionResource(id = R.dimen.ongoing_activity_chip_outline_width),
+                        color = MaterialTheme.colorScheme.outlineVariant,
+                        shape = chipShape,
+                    )
+                    .indication(interactionSource, indication)
+                    .padding(start = 4.dp, end = 8.dp),
         ) {
             val iconColor =
                 if (isHovered) chipBackgroundColor else contentColorFor(chipBackgroundColor)
@@ -92,9 +125,11 @@
                         else -> viewModel.icon
                     },
                 modifier =
-                    Modifier.thenIf(isHovered) {
-                            Modifier.padding(3.dp)
-                                .background(color = iconBackgroundColor, shape = CircleShape)
+                    Modifier.height(20.dp)
+                        .width(20.dp)
+                        .thenIf(isHovered) {
+                            Modifier.background(color = iconBackgroundColor, shape = CircleShape)
+                                .padding(2.dp)
                         }
                         .thenIf(hoverBehavior is HoverBehavior.Button) {
                             Modifier.clickable(
@@ -102,18 +137,67 @@
                                 onClick = (hoverBehavior as HoverBehavior.Button).onIconPressed,
                                 indication = ripple(),
                                 interactionSource = iconInteractionSource,
+                                enabled = isHovered,
                             )
-                        }
-                        .padding(3.dp),
+                        },
                 tint = iconColor,
             )
 
+            val text = viewModel.chipText
+            val textStyle = MaterialTheme.typography.labelLarge
+            val textMeasurer = rememberTextMeasurer()
+            var textOverflow by remember { mutableStateOf(false) }
+
             Text(
-                text = viewModel.chipText,
-                style = MaterialTheme.typography.labelLarge,
+                text = text,
+                style = textStyle,
                 softWrap = false,
-                overflow = TextOverflow.Ellipsis,
+                modifier =
+                    Modifier.widthIn(
+                            max =
+                                dimensionResource(id = R.dimen.ongoing_activity_chip_max_text_width)
+                        )
+                        .layout { measurables, constraints ->
+                            val placeable = measurables.measure(constraints)
+                            val intrinsicWidth =
+                                textMeasurer.measure(text, textStyle, softWrap = false).size.width
+                            textOverflow = intrinsicWidth > constraints.maxWidth
+
+                            layout(placeable.width, placeable.height) {
+                                if (textOverflow) {
+                                    placeable.placeWithLayer(0, 0) {
+                                        compositingStrategy = CompositingStrategy.Offscreen
+                                    }
+                                } else {
+                                    placeable.place(0, 0)
+                                }
+                            }
+                        }
+                        .overflowFadeOut(
+                            hasOverflow = { textOverflow },
+                            fadeLength =
+                                dimensionResource(
+                                    id = R.dimen.ongoing_activity_chip_text_fading_edge_length
+                                ),
+                        ),
             )
         }
     }
 }
+
+private fun Modifier.overflowFadeOut(hasOverflow: () -> Boolean, fadeLength: Dp): Modifier {
+    return drawWithCache {
+        val width = size.width
+        val start = (width - fadeLength.toPx()).coerceAtLeast(0f)
+        val gradient =
+            Brush.horizontalGradient(
+                colors = listOf(Color.Black, Color.Transparent),
+                startX = start,
+                endX = width,
+            )
+        onDrawWithContent {
+            drawContent()
+            if (hasOverflow()) drawRect(brush = gradient, blendMode = BlendMode.DstIn)
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/popups/ui/compose/StatusBarPopupChipsContainer.kt b/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/popups/ui/compose/StatusBarPopupChipsContainer.kt
index 16538c9..f5f1f20 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/popups/ui/compose/StatusBarPopupChipsContainer.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/featurepods/popups/ui/compose/StatusBarPopupChipsContainer.kt
@@ -20,14 +20,37 @@
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.padding
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.unit.dp
+import com.android.systemui.media.controls.ui.view.MediaHost
+import com.android.systemui.scene.shared.flag.SceneContainerFlag
+import com.android.systemui.statusbar.featurepods.popups.shared.model.PopupChipId
 import com.android.systemui.statusbar.featurepods.popups.shared.model.PopupChipModel
 
 /** Container view that holds all right hand side chips in the status bar. */
 @Composable
-fun StatusBarPopupChipsContainer(chips: List<PopupChipModel.Shown>, modifier: Modifier = Modifier) {
+fun StatusBarPopupChipsContainer(
+    chips: List<PopupChipModel.Shown>,
+    mediaHost: MediaHost,
+    onMediaControlPopupVisibilityChanged: (Boolean) -> Unit,
+    modifier: Modifier = Modifier,
+) {
+    if (!SceneContainerFlag.isEnabled) {
+        val isMediaControlPopupShown =
+            remember(chips) {
+                chips.any { it.chipId == PopupChipId.MediaControl && it.isPopupShown }
+            }
+
+        LaunchedEffect(isMediaControlPopupShown) {
+            onMediaControlPopupVisibilityChanged(isMediaControlPopupShown)
+        }
+    }
+
     //    TODO(b/385353140): Add padding and spacing for this container according to UX specs.
     Box {
         Row(
@@ -37,7 +60,7 @@
             chips.forEach { chip ->
                 StatusBarPopupChip(chip)
                 if (chip.isPopupShown) {
-                    StatusBarPopup(chip)
+                    StatusBarPopup(viewModel = chip, mediaHost = mediaHost)
                 }
             }
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ConversationNotifications.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ConversationNotifications.kt
index 9bc5231..f52b924 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ConversationNotifications.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ConversationNotifications.kt
@@ -74,7 +74,7 @@
             else
                 Notification.MessagingStyle.CONVERSATION_TYPE_LEGACY
         entry.ranking.conversationShortcutInfo?.let { shortcutInfo ->
-            logger.logAsyncTaskProgress(entry, "getting shortcut icon")
+            logger.logAsyncTaskProgress(entry.logKey, "getting shortcut icon")
             messagingStyle.shortcutIcon = launcherApps.getShortcutIcon(shortcutInfo)
             shortcutInfo.label?.let { label -> messagingStyle.conversationTitle = label }
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClicker.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClicker.java
index 6487d55..ccfb43e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClicker.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClicker.java
@@ -73,25 +73,25 @@
 
         final ExpandableNotificationRow row = (ExpandableNotificationRow) v;
         final NotificationEntry entry = row.getEntry();
-        mLogger.logOnClick(entry);
+        mLogger.logOnClick(row.getLoggingKey());
 
         // Check if the notification is displaying the menu, if so slide notification back
         if (isMenuVisible(row)) {
-            mLogger.logMenuVisible(entry);
+            mLogger.logMenuVisible(row.getLoggingKey());
             row.animateResetTranslation();
             return;
         } else if (row.isChildInGroup() && isMenuVisible(row.getNotificationParent())) {
-            mLogger.logParentMenuVisible(entry);
+            mLogger.logParentMenuVisible(row.getLoggingKey());
             row.getNotificationParent().animateResetTranslation();
             return;
         } else if (row.isSummaryWithChildren() && row.areChildrenExpanded()) {
             // We never want to open the app directly if the user clicks in between
             // the notifications.
-            mLogger.logChildrenExpanded(entry);
+            mLogger.logChildrenExpanded(row.getLoggingKey());
             return;
         } else if (row.areGutsExposed()) {
             // ignore click if guts are exposed
-            mLogger.logGutsExposed(entry);
+            mLogger.logGutsExposed(row.getLoggingKey());
             return;
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClickerLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClickerLogger.kt
index cea2b59..812c609 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClickerLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClickerLogger.kt
@@ -25,42 +25,41 @@
 class NotificationClickerLogger @Inject constructor(
     @NotifInteractionLog private val buffer: LogBuffer
 ) {
-    fun logOnClick(entry: NotificationEntry) {
+    fun logOnClick(entry: String) {
         buffer.log(TAG, LogLevel.DEBUG, {
-            str1 = entry.logKey
-            str2 = entry.ranking.channel.id
+            str1 = entry
         }, {
-            "CLICK $str1 (channel=$str2)"
+            "CLICK $str1"
         })
     }
 
-    fun logMenuVisible(entry: NotificationEntry) {
+    fun logMenuVisible(entry: String) {
         buffer.log(TAG, LogLevel.DEBUG, {
-            str1 = entry.logKey
+            str1 = entry
         }, {
             "Ignoring click on $str1; menu is visible"
         })
     }
 
-    fun logParentMenuVisible(entry: NotificationEntry) {
+    fun logParentMenuVisible(entry: String) {
         buffer.log(TAG, LogLevel.DEBUG, {
-            str1 = entry.logKey
+            str1 = entry
         }, {
             "Ignoring click on $str1; parent menu is visible"
         })
     }
 
-    fun logChildrenExpanded(entry: NotificationEntry) {
+    fun logChildrenExpanded(entry: String) {
         buffer.log(TAG, LogLevel.DEBUG, {
-            str1 = entry.logKey
+            str1 = entry
         }, {
             "Ignoring click on $str1; children are expanded"
         })
     }
 
-    fun logGutsExposed(entry: NotificationEntry) {
+    fun logGutsExposed(entry: String) {
         buffer.log(TAG, LogLevel.DEBUG, {
-            str1 = entry.logKey
+            str1 = entry
         }, {
             "Ignoring click on $str1; guts are exposed"
         })
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationTransitionAnimatorController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationTransitionAnimatorController.kt
index 383227d..243a868 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationTransitionAnimatorController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationTransitionAnimatorController.kt
@@ -21,6 +21,7 @@
 import com.android.internal.jank.InteractionJankMonitor
 import com.android.systemui.animation.ActivityTransitionAnimator
 import com.android.systemui.animation.TransitionAnimator
+import com.android.systemui.statusbar.notification.collection.GroupEntry
 import com.android.systemui.statusbar.notification.domain.interactor.NotificationLaunchAnimationInteractor
 import com.android.systemui.statusbar.notification.headsup.HeadsUpManager
 import com.android.systemui.statusbar.notification.headsup.HeadsUpUtil
@@ -73,7 +74,7 @@
     }
 
     private val notificationEntry = notification.entry
-    private val notificationKey = notificationEntry.sbn.key
+    private val notificationKey = notification.key
 
     override val isLaunching: Boolean = true
 
@@ -157,8 +158,8 @@
 
     private val headsUpNotificationRow: ExpandableNotificationRow?
         get() {
-            val summaryEntry = notificationEntry.parent?.summary
-
+            val pipelineParent = notificationEntry.parent
+            val summaryEntry = (pipelineParent as? GroupEntry)?.summary
             return when {
                 headsUpManager.isHeadsUpEntry(notificationKey) -> notification
                 summaryEntry == null -> null
@@ -174,7 +175,7 @@
         HeadsUpUtil.setNeedsHeadsUpDisappearAnimationAfterClick(notification, animate)
 
         headsUpManager.removeNotification(
-            row.entry.key,
+            row.key,
             true /* releaseImmediately */,
             animate,
             reason,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.java
index c6775d6..acbcab0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.java
@@ -26,6 +26,7 @@
 import com.android.systemui.res.R;
 import com.android.systemui.statusbar.notification.collection.EntryAdapter;
 import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 import com.android.systemui.util.Compile;
 
@@ -80,7 +81,7 @@
     private static final boolean INCLUDE_HASH_CODE_IN_LIST_ENTRY_LOG_KEY = false;
 
     /** Get the notification key, reformatted for logging, for the (optional) entry */
-    public static String logKey(ListEntry entry) {
+    public static String logKey(PipelineEntry entry) {
         if (entry == null) {
             return "null";
         }
@@ -93,7 +94,7 @@
 
     /** Get the notification key, reformatted for logging, for the (optional) row */
     public static String logKey(ExpandableNotificationRow row) {
-        return row == null ? "null" : logKey(row.getEntry());
+        return row == null ? "null" : row.getLoggingKey();
     }
 
     /** Removes newlines from the notification key to prettify apps that have these in the tag */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.kt
index 432bac4..2c29e30 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.kt
@@ -17,10 +17,10 @@
 package com.android.systemui.statusbar.notification
 
 import android.service.notification.StatusBarNotification
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 
 /** Get the notification key, reformatted for logging, for the (optional) entry  */
-val ListEntry?.logKey: String?
+val PipelineEntry?.logKey: String?
     get() = this?.let { NotificationUtils.logKey(it) }
 
 /** Get the notification key, reformatted for logging, for the (optional) sbn  */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/BundleEntry.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/BundleEntry.java
index 24ab695..c79cae7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/BundleEntry.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/BundleEntry.java
@@ -25,30 +25,66 @@
 import android.content.Context;
 import android.os.Build;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.systemui.statusbar.notification.icon.IconPack;
+import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 
 import java.util.List;
 
+import kotlinx.coroutines.flow.MutableStateFlow;
+import kotlinx.coroutines.flow.StateFlow;
+import kotlinx.coroutines.flow.StateFlowKt;
+
 /**
- * Abstract class to represent notification section bundled by AI.
+ * Class to represent notifications bundled by classification.
  */
 public class BundleEntry extends PipelineEntry {
 
-    private final String mKey;
     private final BundleEntryAdapter mEntryAdapter;
 
+    // TODO(b/394483200): move NotificationEntry's implementation to PipelineEntry?
+    private final MutableStateFlow<Boolean> mSensitive = StateFlowKt.MutableStateFlow(false);
+
     // TODO (b/389839319): implement the row
     private ExpandableNotificationRow mRow;
 
     public BundleEntry(String key) {
-        mKey = key;
+        super(key);
         mEntryAdapter = new BundleEntryAdapter();
     }
 
+    @Nullable
+    @Override
+    public NotificationEntry getRepresentativeEntry() {
+        return null;
+    }
+
+    @Nullable
+    @Override
+    public NotifSection getSection() {
+        return null;
+    }
+
+    @Override
+    public int getSectionIndex() {
+        return 0;
+    }
+
+    @Nullable
+    @Override
+    public PipelineEntry getParent() {
+        return null;
+    }
+
+    @Override
+    public boolean wasAttachedInPreviousPass() {
+        return false;
+    }
+
     @VisibleForTesting
     public BundleEntryAdapter getEntryAdapter() {
         return mEntryAdapter;
@@ -69,20 +105,26 @@
             return true;
         }
 
+        @NonNull
         @Override
         public String getKey() {
             return mKey;
         }
 
         @Override
+        @Nullable
         public ExpandableNotificationRow getRow() {
             return mRow;
         }
 
-        @Nullable
         @Override
-        public EntryAdapter getGroupRoot() {
-            return this;
+        public boolean isGroupRoot() {
+            return true;
+        }
+
+        @Override
+        public StateFlow<Boolean> isSensitive() {
+            return BundleEntry.this.mSensitive;
         }
 
         @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/EntryAdapter.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/EntryAdapter.java
index 6431cac..109ebe6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/EntryAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/EntryAdapter.java
@@ -24,6 +24,8 @@
 import com.android.systemui.statusbar.notification.icon.IconPack;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 
+import kotlinx.coroutines.flow.StateFlow;
+
 /**
  * Adapter interface for UI to get relevant info.
  */
@@ -51,15 +53,10 @@
     ExpandableNotificationRow getRow();
 
     /**
-     * Gets the EntryAdapter that is the nearest root of the collection of rows the given entry
-     * belongs to. If the given entry is a BundleEntry or an isolated child of a BundleEntry, the
-     * BundleEntry will be returned. If the given notification is a group summary NotificationEntry,
-     * or a child of a group summary, the summary NotificationEntry will be returned, even if that
-     * summary belongs to a BundleEntry. If the entry is a notification that does not belong to any
-     * group or bundle grouping, null will be returned.
+     * Whether this entry is the root of its collapsable 'group' - either a BundleEntry or a
+     * notification group summary
      */
-    @Nullable
-    EntryAdapter getGroupRoot();
+    boolean isGroupRoot();
 
     /**
      * @return whether the row can be removed with the 'Clear All' action
@@ -107,4 +104,9 @@
      * Retrieves the pack of icons associated with this entry
      */
     IconPack getIcons();
+
+    /**
+     * Returns whether the content of this entry is sensitive
+     */
+    StateFlow<Boolean> isSensitive();
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/GroupEntry.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/GroupEntry.java
index 918843c..8726e83 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/GroupEntry.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/GroupEntry.java
@@ -75,6 +75,7 @@
         return mChildren;
     }
 
+    // TODO(b/394483200) Change ROOT_ENTRY to PipelineEntry
     public static final GroupEntry ROOT_ENTRY = new GroupEntry("<root>", 0);
 
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListAttachState.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListAttachState.kt
index b5fce41..4a1b956 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListAttachState.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListAttachState.kt
@@ -21,14 +21,14 @@
 import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter
 
 /**
- * Stores the state that [ShadeListBuilder] assigns to this [ListEntry]
+ * Stores the state that [ShadeListBuilder] assigns to this [PipelineEntry]
  */
 data class ListAttachState private constructor(
     /**
      * Null if not attached to the current shade list. If top-level, then the shade list root. If
      * part of a group, then that group's GroupEntry.
      */
-    var parent: GroupEntry?,
+    var parent: PipelineEntry?,
 
     /**
      * The section that this ListEntry was sorted into. If the child of the group, this will be the
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java
index f6a572e..60b75b1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java
@@ -39,14 +39,14 @@
      *                             entry to be in its current state (ie: filter, lifeExtender)
      */
     public static String dumpTree(
-            List<ListEntry> entries,
+            List<PipelineEntry> entries,
             NotificationInteractionTracker interactionTracker,
             boolean includeRecordKeeping,
             String indent) {
         StringBuilder sb = new StringBuilder();
         final String childEntryIndent = indent + INDENT;
         for (int topEntryIndex = 0; topEntryIndex < entries.size(); topEntryIndex++) {
-            ListEntry entry = entries.get(topEntryIndex);
+            PipelineEntry entry = entries.get(topEntryIndex);
             dumpEntry(entry,
                     Integer.toString(topEntryIndex),
                     indent,
@@ -106,7 +106,7 @@
     }
 
     private static void dumpEntry(
-            ListEntry entry,
+            PipelineEntry entry,
             String index,
             String indent,
             StringBuilder sb,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListEntry.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListEntry.java
index c8e3be4..697d0a0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListEntry.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListEntry.java
@@ -21,28 +21,18 @@
 
 import androidx.annotation.Nullable;
 
-import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection;
-
 /**
  * Abstract superclass for top-level entries, i.e. things that can appear in the final notification
  * list shown to users. In practice, this means either GroupEntries or NotificationEntries.
  */
 public abstract class ListEntry extends PipelineEntry {
-    private final String mKey;
     private final long mCreationTime;
 
-    private final ListAttachState mPreviousAttachState = ListAttachState.create();
-    private final ListAttachState mAttachState = ListAttachState.create();
-
     protected ListEntry(String key, long creationTime) {
-        mKey = key;
+        super(key);
         mCreationTime = creationTime;
     }
 
-    public String getKey() {
-        return mKey;
-    }
-
     /**
      * The SystemClock.uptimeMillis() when this object was created. In general, this means the
      * moment when NotificationManager notifies our listener about the existence of this entry.
@@ -64,34 +54,22 @@
      */
     public abstract @Nullable NotificationEntry getRepresentativeEntry();
 
-    @Nullable public GroupEntry getParent() {
+    @Nullable public PipelineEntry getParent() {
         return mAttachState.getParent();
     }
 
-    void setParent(@Nullable GroupEntry parent) {
+    void setParent(@Nullable PipelineEntry parent) {
         mAttachState.setParent(parent);
     }
 
-    @Nullable public GroupEntry getPreviousParent() {
+    @Nullable public PipelineEntry getPreviousParent() {
         return mPreviousAttachState.getParent();
     }
 
-    @Nullable public NotifSection getSection() {
-        return mAttachState.getSection();
-    }
-
     public int getSectionIndex() {
         return mAttachState.getSection() != null ? mAttachState.getSection().getIndex() : -1;
     }
 
-    ListAttachState getAttachState() {
-        return mAttachState;
-    }
-
-    ListAttachState getPreviousAttachState() {
-        return mPreviousAttachState;
-    }
-
     /**
      * Stores the current attach state into {@link #getPreviousAttachState()}} and then starts a
      * fresh attach state (all entries will be null/default-initialized).
@@ -100,11 +78,4 @@
         mPreviousAttachState.clone(mAttachState);
         mAttachState.reset();
     }
-
-    /**
-     * True if this entry was attached in the last pass, else false.
-     */
-    public boolean wasAttachedInPreviousPass() {
-        return getPreviousAttachState().getParent() != null;
-    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java
index 826329d..22de83e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java
@@ -620,7 +620,7 @@
     }
 
     private boolean isDismissable(NotificationEntry entry) {
-        return mDismissibilityProvider.isDismissable(entry);
+        return mDismissibilityProvider.isDismissable(entry.getKey());
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java
index 698a563..fb2a66c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java
@@ -297,18 +297,20 @@
             return NotificationEntry.this.getRow();
         }
 
-        @Nullable
         @Override
-        public EntryAdapter getGroupRoot() {
-            // TODO (b/395857098): for backwards compatibility this will return null if called
-            // on a group summary that's not in a bundles, but it should return itself.
+        public boolean isGroupRoot() {
             if (isTopLevelEntry() || getParent() == null) {
-                return null;
+                return false;
             }
-            if (NotificationEntry.this.getParent().getSummary() != null) {
-                return NotificationEntry.this.getParent().getSummary().mEntryAdapter;
+            if (NotificationEntry.this.getParent() instanceof GroupEntry parentGroupEntry) {
+                return parentGroupEntry.getSummary() == NotificationEntry.this;
             }
-            return null;
+            return false;
+        }
+
+        @Override
+        public StateFlow<Boolean> isSensitive() {
+            return NotificationEntry.this.isSensitive();
         }
 
         @Override
@@ -588,7 +590,7 @@
      * Get the children that are actually attached to this notification's row.
      *
      * TODO: Seems like most callers here should probably be using
-     * {@link GroupMembershipManager#getChildren(ListEntry)}
+     * {@link GroupMembershipManager#getChildren(PipelineEntry)}
      */
     public @Nullable List<NotificationEntry> getAttachedNotifChildren() {
         if (row == null) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/PipelineEntry.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/PipelineEntry.java
index c5a4791..78652cc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/PipelineEntry.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/PipelineEntry.java
@@ -16,8 +16,74 @@
 
 package com.android.systemui.statusbar.notification.collection;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection;
+
 /**
  * Class to represent a notification, group, or bundle in the pipeline.
  */
 public abstract class PipelineEntry {
+
+    final String mKey;
+    final ListAttachState mAttachState = ListAttachState.create();
+    final ListAttachState mPreviousAttachState = ListAttachState.create();
+
+    public PipelineEntry(String key) {
+        this.mKey = key;
+    }
+
+    /**
+     * Key of the representative entry.
+     */
+    public @NonNull String getKey() {
+        return mKey;
+    }
+
+    /**
+     * @return The representative NotificationEntry:
+     *      for NotificationEntry, return itself
+     *      for GroupEntry, return the summary NotificationEntry, or null if it does not exist
+     *      for BundleEntry, return null
+     */
+    public abstract @Nullable NotificationEntry getRepresentativeEntry();
+
+    /**
+     * @return NotifSection that ShadeListBuilder assigned to this PipelineEntry.
+     */
+    @Nullable public NotifSection getSection() {
+        return mAttachState.getSection();
+    }
+
+    /**
+     * @return True if this entry was attached in the last pass, else false.
+     */
+    public boolean wasAttachedInPreviousPass() {
+        return getPreviousAttachState().getParent() != null;
+    }
+
+    /**
+     * @return Index of section assigned to this entry.
+     */
+    public abstract int getSectionIndex();
+
+    /**
+     * @return Parent PipelineEntry
+     */
+    public abstract @Nullable PipelineEntry getParent();
+
+    /**
+     * @return Current state that ShadeListBuilder assigned to this PipelineEntry.
+     */
+    final ListAttachState getAttachState() {
+        return mAttachState;
+    }
+
+    /**
+     * @return Previous state that ShadeListBuilder assigned to this PipelineEntry.
+     */
+    final ListAttachState getPreviousAttachState() {
+        return mPreviousAttachState;
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java
index ac11c15..bb84ab8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java
@@ -100,15 +100,15 @@
     private final DumpManager mDumpManager;
     // used exclusivly by ShadeListBuilder#notifySectionEntriesUpdated
     // TODO replace temp with collection pool for readability
-    private final ArrayList<ListEntry> mTempSectionMembers = new ArrayList<>();
+    private final ArrayList<PipelineEntry> mTempSectionMembers = new ArrayList<>();
     private NotifPipelineFlags mFlags;
     private final boolean mAlwaysLogList;
 
-    private List<ListEntry> mNotifList = new ArrayList<>();
-    private List<ListEntry> mNewNotifList = new ArrayList<>();
+    private List<PipelineEntry> mNotifList = new ArrayList<>();
+    private List<PipelineEntry> mNewNotifList = new ArrayList<>();
 
     private final SemiStableSort mSemiStableSort = new SemiStableSort();
-    private final StableOrder<ListEntry> mStableOrder = this::getStableOrderRank;
+    private final StableOrder<PipelineEntry> mStableOrder = this::getStableOrderRank;
     private final PipelineState mPipelineState = new PipelineState();
     private final Map<String, GroupEntry> mGroups = new ArrayMap<>();
     private Collection<NotificationEntry> mAllEntries = Collections.emptyList();
@@ -133,8 +133,8 @@
             mOnBeforeRenderListListeners = new NamedListenerSet<>();
     @Nullable private OnRenderListListener mOnRenderListListener;
 
-    private List<ListEntry> mReadOnlyNotifList = Collections.unmodifiableList(mNotifList);
-    private List<ListEntry> mReadOnlyNewNotifList = Collections.unmodifiableList(mNewNotifList);
+    private List<PipelineEntry> mReadOnlyNotifList = Collections.unmodifiableList(mNotifList);
+    private List<PipelineEntry> mReadOnlyNewNotifList = Collections.unmodifiableList(mNewNotifList);
     private final NotifPipelineChoreographer mChoreographer;
 
     private int mConsecutiveReentrantRebuilds = 0;
@@ -308,7 +308,7 @@
         }
     }
 
-    List<ListEntry> getShadeList() {
+    List<PipelineEntry> getShadeList() {
         Assert.isMainThread();
         // NOTE: Accessing this method when the pipeline is running is generally going to provide
         //  incorrect results, and indicates a poorly behaved component of the pipeline.
@@ -493,7 +493,7 @@
         Trace.beginSection("ShadeListBuilder.notifySectionEntriesUpdated");
         mTempSectionMembers.clear();
         for (NotifSection section : mNotifSections) {
-            for (ListEntry entry : mNotifList) {
+            for (PipelineEntry entry : mNotifList) {
                 if (section == entry.getSection()) {
                     mTempSectionMembers.add(entry);
                 }
@@ -514,11 +514,11 @@
      */
     private void applyNewNotifList() {
         mNotifList.clear();
-        List<ListEntry> emptyList = mNotifList;
+        List<PipelineEntry> emptyList = mNotifList;
         mNotifList = mNewNotifList;
         mNewNotifList = emptyList;
 
-        List<ListEntry> readOnlyNotifList = mReadOnlyNotifList;
+        List<PipelineEntry> readOnlyNotifList = mReadOnlyNotifList;
         mReadOnlyNotifList = mReadOnlyNewNotifList;
         mReadOnlyNewNotifList = readOnlyNotifList;
     }
@@ -538,12 +538,12 @@
     }
 
     private void filterNotifs(
-            Collection<? extends ListEntry> entries,
-            List<ListEntry> out,
+            Collection<? extends PipelineEntry> entries,
+            List<PipelineEntry> out,
             List<NotifFilter> filters) {
         Trace.beginSection("ShadeListBuilder.filterNotifs");
         final long now = mSystemClock.uptimeMillis();
-        for (ListEntry entry : entries) {
+        for (PipelineEntry entry : entries) {
             if (entry instanceof GroupEntry) {
                 final GroupEntry groupEntry = (GroupEntry) entry;
 
@@ -576,11 +576,11 @@
         Trace.endSection();
     }
 
-    private void groupNotifs(List<ListEntry> entries, List<ListEntry> out) {
+    private void groupNotifs(List<PipelineEntry> entries, List<PipelineEntry> out) {
         Trace.beginSection("ShadeListBuilder.groupNotifs");
-        for (ListEntry listEntry : entries) {
+        for (PipelineEntry PipelineEntry : entries) {
             // since grouping hasn't happened yet, all notifs are NotificationEntries
-            NotificationEntry entry = (NotificationEntry) listEntry;
+            NotificationEntry entry = (NotificationEntry) PipelineEntry;
             if (entry.getSbn().isGroup()) {
                 final String topLevelKey = entry.getSbn().getGroupKey();
 
@@ -631,14 +631,14 @@
         Trace.endSection();
     }
 
-    private void stabilizeGroupingNotifs(List<ListEntry> topLevelList) {
+    private void stabilizeGroupingNotifs(List<PipelineEntry> topLevelList) {
         if (getStabilityManager().isEveryChangeAllowed()) {
             return;
         }
         Trace.beginSection("ShadeListBuilder.stabilizeGroupingNotifs");
 
         for (int i = 0; i < topLevelList.size(); i++) {
-            final ListEntry tle = topLevelList.get(i);
+            final PipelineEntry tle = topLevelList.get(i);
             if (tle instanceof GroupEntry) {
                 // maybe put children back into their old group (including moving back to top-level)
                 GroupEntry groupEntry = (GroupEntry) tle;
@@ -667,13 +667,13 @@
     /**
      * Returns true if the group change was suppressed, else false
      */
-    private boolean maybeSuppressGroupChange(NotificationEntry entry, List<ListEntry> out) {
-        final GroupEntry prevParent = entry.getPreviousAttachState().getParent();
+    private boolean maybeSuppressGroupChange(NotificationEntry entry, List<PipelineEntry> out) {
+        final PipelineEntry prevParent = entry.getPreviousAttachState().getParent();
         if (prevParent == null) {
             // New entries are always allowed.
             return false;
         }
-        final GroupEntry assignedParent = entry.getParent();
+        final PipelineEntry assignedParent = entry.getParent();
         if (prevParent == assignedParent) {
             // Nothing to change.
             return false;
@@ -691,21 +691,22 @@
             entry.setParent(prevParent);
             if (prevParent == ROOT_ENTRY) {
                 out.add(entry);
-            } else {
-                prevParent.addChild(entry);
+            } else if (prevParent instanceof GroupEntry) {
+                ((GroupEntry) prevParent).addChild(entry);
                 if (!mGroups.containsKey(prevParent.getKey())) {
-                    mGroups.put(prevParent.getKey(), prevParent);
+                    mGroups.put(prevParent.getKey(), (GroupEntry) prevParent);
                 }
             }
+            // TODO(b/394483200): Revisit group stability for BundleEntry
             return true;
         }
         return false;
     }
 
-    private void promoteNotifs(List<ListEntry> list) {
+    private void promoteNotifs(List<PipelineEntry> list) {
         Trace.beginSection("ShadeListBuilder.promoteNotifs");
         for (int i = 0; i < list.size(); i++) {
-            final ListEntry tle = list.get(i);
+            final PipelineEntry tle = list.get(i);
 
             if (tle instanceof GroupEntry) {
                 final GroupEntry group = (GroupEntry) tle;
@@ -725,7 +726,7 @@
         Trace.endSection();
     }
 
-    private void pruneIncompleteGroups(List<ListEntry> shadeList) {
+    private void pruneIncompleteGroups(List<PipelineEntry> shadeList) {
         Trace.beginSection("ShadeListBuilder.pruneIncompleteGroups");
         // Any group which lost a child on this run to stability is exempt from being pruned or
         //  having its summary promoted, regardless of how many children it has
@@ -742,7 +743,7 @@
         // Iterate backwards, so that we can remove elements without affecting indices of
         // yet-to-be-accessed entries.
         for (int i = shadeList.size() - 1; i >= 0; i--) {
-            final ListEntry tle = shadeList.get(i);
+            final PipelineEntry tle = shadeList.get(i);
 
             if (tle instanceof GroupEntry) {
                 final GroupEntry group = (GroupEntry) tle;
@@ -793,7 +794,7 @@
         Trace.endSection();
     }
 
-    private void pruneGroupAtIndexAndPromoteSummary(List<ListEntry> shadeList,
+    private void pruneGroupAtIndexAndPromoteSummary(List<PipelineEntry> shadeList,
             GroupEntry group, int index) {
         // Validate that the group has no children
         checkArgument(group.getChildren().isEmpty(), "group should have no children");
@@ -801,7 +802,7 @@
         NotificationEntry summary = group.getSummary();
         summary.setParent(ROOT_ENTRY);
         // The list may be sorted; replace the group with the summary, in its place
-        ListEntry oldEntry = shadeList.set(index, summary);
+        PipelineEntry oldEntry = shadeList.set(index, summary);
 
         // Validate that the replaced entry was the group entry
         checkState(oldEntry == group);
@@ -812,10 +813,10 @@
                 "SUMMARY with no children @ " + mPipelineState.getStateName());
     }
 
-    private void pruneGroupAtIndexAndPromoteAnyChildren(List<ListEntry> shadeList,
+    private void pruneGroupAtIndexAndPromoteAnyChildren(List<PipelineEntry> shadeList,
             GroupEntry group, int index) {
         // REMOVE the GroupEntry at this index
-        ListEntry oldEntry = shadeList.remove(index);
+        PipelineEntry oldEntry = shadeList.remove(index);
 
         // Validate that the replaced entry was the group entry
         checkState(oldEntry == group);
@@ -868,14 +869,14 @@
      * top level (ungrouped) notifications.
      */
     @NonNull
-    private Set<String> getGroupsWithChildrenLostToStability(List<ListEntry> shadeList) {
+    private Set<String> getGroupsWithChildrenLostToStability(List<PipelineEntry> shadeList) {
         if (getStabilityManager().isEveryChangeAllowed()) {
             return Collections.emptySet();
         }
         ArraySet<String> groupsWithChildrenLostToStability = new ArraySet<>();
         for (int i = 0; i < shadeList.size(); i++) {
-            final ListEntry tle = shadeList.get(i);
-            final GroupEntry suppressedParent =
+            final PipelineEntry tle = shadeList.get(i);
+            final PipelineEntry suppressedParent =
                     tle.getAttachState().getSuppressedChanges().getParent();
             if (suppressedParent != null) {
                 // This top-level-entry was supposed to be attached to this group,
@@ -892,9 +893,10 @@
      *
      * These groups will be exempt from appearing without any children.
      */
-    private void addGroupsWithChildrenLostToPromotion(List<ListEntry> shadeList, Set<String> out) {
+    private void addGroupsWithChildrenLostToPromotion(List<PipelineEntry> shadeList,
+            Set<String> out) {
         for (int i = 0; i < shadeList.size(); i++) {
-            final ListEntry tle = shadeList.get(i);
+            final PipelineEntry tle = shadeList.get(i);
             if (tle.getAttachState().getPromoter() != null) {
                 // This top-level-entry was part of a group, but was promoted out of it.
                 final String groupKey = tle.getRepresentativeEntry().getSbn().getGroupKey();
@@ -910,7 +912,7 @@
      * These groups will be exempt from appearing without any children.
      */
     private void addGroupsWithChildrenLostToFiltering(Set<String> out) {
-        for (ListEntry tle : mAllEntries) {
+        for (PipelineEntry tle : mAllEntries) {
             StatusBarNotification sbn = tle.getRepresentativeEntry().getSbn();
             if (sbn.isGroup()
                     && !sbn.getNotification().isGroupSummary()
@@ -921,14 +923,14 @@
     }
 
     /**
-     * If a ListEntry was added to the shade list and then later removed (e.g. because it was a
+     * If a PipelineEntry was added to the shade list and then later removed (e.g. because it was a
      * group that was broken up), this method will erase any bookkeeping traces of that addition
      * and/or check that they were already erased.
      *
      * Before calling this method, the entry must already have been removed from its parent. If
      * it's a group, its summary must be null and its children must be empty.
      */
-    private void annulAddition(ListEntry entry, List<ListEntry> shadeList) {
+    private void annulAddition(PipelineEntry entry, List<PipelineEntry> shadeList) {
 
         // This function does very little, but if any of its assumptions are violated (and it has a
         // lot of them), it will put the system into an inconsistent state. So we check all of them
@@ -956,9 +958,11 @@
                 throw new IllegalStateException(
                         "Cannot nullify group " + ge.getKey() + ": still has children");
             }
-        } else if (entry instanceof NotificationEntry) {
-            if (entry == entry.getParent().getSummary()
-                    || entry.getParent().getChildren().contains(entry)) {
+        } else if (entry instanceof NotificationEntry
+                && entry.getParent() instanceof GroupEntry) {
+            GroupEntry parentGroupEntry = (GroupEntry) entry.getParent();
+            if (entry == parentGroupEntry.getSummary()
+                    || parentGroupEntry.getChildren().contains(entry)) {
                 throw new IllegalStateException("Cannot nullify addition of child "
                         + entry.getKey() + ": it's still attached to its parent.");
             }
@@ -973,14 +977,14 @@
      * This can happen if the entry is removed from a group that was broken up or if the entry was
      * filtered out during any of the filtering steps.
      */
-    private void annulAddition(ListEntry entry) {
+    private void annulAddition(PipelineEntry entry) {
         entry.getAttachState().detach();
     }
 
     private void assignSections() {
         Trace.beginSection("ShadeListBuilder.assignSections");
         // Assign sections to top-level elements and their children
-        for (ListEntry entry : mNotifList) {
+        for (PipelineEntry entry : mNotifList) {
             NotifSection section = applySections(entry);
             if (entry instanceof GroupEntry) {
                 GroupEntry parent = (GroupEntry) entry;
@@ -1001,7 +1005,7 @@
     private void sortWithSemiStableSort() {
         // Sort each group's children
         boolean allSorted = true;
-        for (ListEntry entry : mNotifList) {
+        for (PipelineEntry entry : mNotifList) {
             if (entry instanceof GroupEntry) {
                 GroupEntry parent = (GroupEntry) entry;
                 allSorted &= sortGroupChildren(parent.getRawChildren());
@@ -1010,7 +1014,7 @@
         // Sort each section within the top level list
         mNotifList.sort(mTopLevelComparator);
         if (!getStabilityManager().isEveryChangeAllowed()) {
-            for (List<ListEntry> subList : getSectionSubLists(mNotifList)) {
+            for (List<PipelineEntry> subList : getSectionSubLists(mNotifList)) {
                 allSorted &= mSemiStableSort.stabilizeTo(subList, mStableOrder, mNewNotifList);
             }
             applyNewNotifList();
@@ -1022,7 +1026,7 @@
         }
     }
 
-    private Iterable<List<ListEntry>> getSectionSubLists(List<ListEntry> entries) {
+    private Iterable<List<PipelineEntry>> getSectionSubLists(List<PipelineEntry> entries) {
         return ShadeListBuilderHelper.INSTANCE.getSectionSubLists(entries);
     }
 
@@ -1057,12 +1061,12 @@
     /**
      * Assign the index of each notification relative to the total order
      */
-    private void assignIndexes(List<ListEntry> notifList) {
+    private void assignIndexes(List<PipelineEntry> notifList) {
         if (notifList.size() == 0) return;
         NotifSection currentSection = requireNonNull(notifList.get(0).getSection());
         int sectionMemberIndex = 0;
         for (int i = 0; i < notifList.size(); i++) {
-            final ListEntry entry = notifList.get(i);
+            final PipelineEntry entry = notifList.get(i);
             NotifSection section = requireNonNull(entry.getSection());
             if (section.getIndex() != currentSection.getIndex()) {
                 sectionMemberIndex = 0;
@@ -1099,7 +1103,7 @@
         Trace.endSection();
     }
 
-    private void logAttachStateChanges(ListEntry entry) {
+    private void logAttachStateChanges(PipelineEntry entry) {
 
         final ListAttachState curr = entry.getAttachState();
         final ListAttachState prev = entry.getPreviousAttachState();
@@ -1115,8 +1119,8 @@
                 mLogger.logParentChanged(mIterationCount, prev.getParent(), curr.getParent());
             }
 
-            GroupEntry currSuppressedParent = curr.getSuppressedChanges().getParent();
-            GroupEntry prevSuppressedParent = prev.getSuppressedChanges().getParent();
+            PipelineEntry currSuppressedParent = curr.getSuppressedChanges().getParent();
+            PipelineEntry prevSuppressedParent = prev.getSuppressedChanges().getParent();
             if (currSuppressedParent != null && (prevSuppressedParent == null
                     || !prevSuppressedParent.getKey().equals(currSuppressedParent.getKey()))) {
                 mLogger.logParentChangeSuppressedStarted(
@@ -1210,7 +1214,7 @@
 
     @Nullable
     private NotifComparator getSectionComparator(
-            @NonNull ListEntry o1, @NonNull ListEntry o2) {
+            @NonNull PipelineEntry o1, @NonNull PipelineEntry o2) {
         final NotifSection section = o1.getSection();
         if (section != o2.getSection()) {
             throw new RuntimeException("Entry ordering should only be done within sections");
@@ -1221,7 +1225,7 @@
         return null;
     }
 
-    private final Comparator<ListEntry> mTopLevelComparator = (o1, o2) -> {
+    private final Comparator<PipelineEntry> mTopLevelComparator = (o1, o2) -> {
         int cmp = Integer.compare(
                 o1.getSectionIndex(),
                 o2.getSectionIndex());
@@ -1264,7 +1268,7 @@
     };
 
     @Nullable
-    private Integer getStableOrderRank(ListEntry entry) {
+    private Integer getStableOrderRank(PipelineEntry entry) {
         if (getStabilityManager().isEntryReorderingAllowed(entry)) {
             // let the stability manager constrain or allow reordering
             return null;
@@ -1323,7 +1327,7 @@
         return null;
     }
 
-    private NotifSection applySections(ListEntry entry) {
+    private NotifSection applySections(PipelineEntry entry) {
         final NotifSection newSection = findSection(entry);
         final ListAttachState prevAttachState = entry.getPreviousAttachState();
 
@@ -1346,7 +1350,7 @@
         return finalSection;
     }
 
-    private void setEntrySection(ListEntry entry, NotifSection finalSection) {
+    private void setEntrySection(PipelineEntry entry, NotifSection finalSection) {
         entry.getAttachState().setSection(finalSection);
         NotificationEntry representativeEntry = entry.getRepresentativeEntry();
         if (representativeEntry != null) {
@@ -1358,7 +1362,7 @@
     }
 
     @NonNull
-    private NotifSection findSection(ListEntry entry) {
+    private NotifSection findSection(PipelineEntry entry) {
         for (int i = 0; i < mNotifSections.size(); i++) {
             NotifSection section = mNotifSections.get(i);
             if (section.getSectioner().isInSection(entry)) {
@@ -1428,10 +1432,10 @@
         mChoreographer.schedule();
     }
 
-    private static int countChildren(List<ListEntry> entries) {
+    private static int countChildren(List<PipelineEntry> entries) {
         int count = 0;
         for (int i = 0; i < entries.size(); i++) {
-            final ListEntry entry = entries.get(i);
+            final PipelineEntry entry = entries.get(i);
             if (entry instanceof GroupEntry) {
                 count += ((GroupEntry) entry).getChildren().size();
             }
@@ -1439,7 +1443,7 @@
         return count;
     }
 
-    private void dispatchOnBeforeTransformGroups(List<ListEntry> entries) {
+    private void dispatchOnBeforeTransformGroups(List<PipelineEntry> entries) {
         Trace.beginSection("ShadeListBuilder.dispatchOnBeforeTransformGroups");
         mOnBeforeTransformGroupsListeners.forEachTraced(listener -> {
             listener.onBeforeTransformGroups(entries);
@@ -1447,7 +1451,7 @@
         Trace.endSection();
     }
 
-    private void dispatchOnBeforeSort(List<ListEntry> entries) {
+    private void dispatchOnBeforeSort(List<PipelineEntry> entries) {
         Trace.beginSection("ShadeListBuilder.dispatchOnBeforeSort");
         mOnBeforeSortListeners.forEachTraced(listener -> {
             listener.onBeforeSort(entries);
@@ -1455,7 +1459,7 @@
         Trace.endSection();
     }
 
-    private void dispatchOnBeforeFinalizeFilter(List<ListEntry> entries) {
+    private void dispatchOnBeforeFinalizeFilter(List<PipelineEntry> entries) {
         Trace.beginSection("ShadeListBuilder.dispatchOnBeforeFinalizeFilter");
         mOnBeforeFinalizeFilterListeners.forEachTraced(listener -> {
             listener.onBeforeFinalizeFilter(entries);
@@ -1463,7 +1467,7 @@
         Trace.endSection();
     }
 
-    private void dispatchOnBeforeRenderList(List<ListEntry> entries) {
+    private void dispatchOnBeforeRenderList(List<PipelineEntry> entries) {
         Trace.beginSection("ShadeListBuilder.dispatchOnBeforeRenderList");
         mOnBeforeRenderListListeners.forEachTraced(listener -> {
             listener.onBeforeRenderList(entries);
@@ -1508,13 +1512,13 @@
          * @param entries A read-only view into the current notif list. Note that this list is
          *                backed by the live list and will change in response to new pipeline runs.
          */
-        void onRenderList(@NonNull List<ListEntry> entries);
+        void onRenderList(@NonNull List<PipelineEntry> entries);
     }
 
     private static final NotifSectioner DEFAULT_SECTIONER = new NotifSectioner("UnknownSection",
             NotificationPriorityBucketKt.BUCKET_UNKNOWN) {
         @Override
-        public boolean isInSection(ListEntry entry) {
+        public boolean isInSection(PipelineEntry entry) {
             return true;
         }
     };
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/SuppressedAttachState.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/SuppressedAttachState.kt
index 584563b..c942954 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/SuppressedAttachState.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/SuppressedAttachState.kt
@@ -19,7 +19,7 @@
 import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection
 
 /**
- * Stores the suppressed state that [ShadeListBuilder] assigned to this [ListEntry] before the
+ * Stores the suppressed state that [ShadeListBuilder] assigned to this [PipelineEntry] before the
  * VisualStabilityManager suppressed group and section changes.
  */
 data class SuppressedAttachState private constructor(
@@ -35,7 +35,7 @@
      *  - Root if suppressing group change to top-level
      *  - GroupEntry if suppressing group change to a different group
      */
-    var parent: GroupEntry?,
+    var parent: PipelineEntry?,
 
     /**
      * Whether the ListEntry would have been pruned had its group change not been suppressed.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/BundleCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/BundleCoordinator.kt
index 244c594..e6d5f41 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/BundleCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/BundleCoordinator.kt
@@ -20,7 +20,7 @@
 import android.app.NotificationChannel.PROMOTIONS_ID
 import android.app.NotificationChannel.RECS_ID
 import android.app.NotificationChannel.SOCIAL_MEDIA_ID
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
 import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
@@ -48,7 +48,7 @@
 
     val newsSectioner =
             object : NotifSectioner("News", BUCKET_NEWS) {
-                override fun isInSection(entry: ListEntry): Boolean {
+                override fun isInSection(entry: PipelineEntry): Boolean {
                     return entry.representativeEntry?.channel?.id == NEWS_ID
                 }
 
@@ -59,7 +59,7 @@
 
     val socialSectioner =
         object : NotifSectioner("Social", BUCKET_SOCIAL) {
-            override fun isInSection(entry: ListEntry): Boolean {
+            override fun isInSection(entry: PipelineEntry): Boolean {
                 return entry.representativeEntry?.channel?.id == SOCIAL_MEDIA_ID
             }
 
@@ -70,7 +70,7 @@
 
     val recsSectioner =
         object : NotifSectioner("Recommendations", BUCKET_RECS) {
-            override fun isInSection(entry: ListEntry): Boolean {
+            override fun isInSection(entry: PipelineEntry): Boolean {
                 return entry.representativeEntry?.channel?.id == RECS_ID
             }
 
@@ -81,7 +81,7 @@
 
     val promoSectioner =
         object : NotifSectioner("Promotions", BUCKET_PROMO) {
-            override fun isInSection(entry: ListEntry): Boolean {
+            override fun isInSection(entry: PipelineEntry): Boolean {
                 return entry.representativeEntry?.channel?.id == PROMOTIONS_ID
             }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ColorizedFgsCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ColorizedFgsCoordinator.java
index 9df4bf4..afba85b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ColorizedFgsCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ColorizedFgsCoordinator.java
@@ -25,6 +25,7 @@
 
 import com.android.systemui.dagger.qualifiers.Application;
 import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotifPipeline;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope;
@@ -96,7 +97,7 @@
     private final NotifSectioner mNotifSectioner = new NotifSectioner("ColorizedSectioner",
             NotificationPriorityBucketKt.BUCKET_FOREGROUND_SERVICE) {
         @Override
-        public boolean isInSection(ListEntry entry) {
+        public boolean isInSection(PipelineEntry entry) {
             NotificationEntry notificationEntry = entry.getRepresentativeEntry();
             if (notificationEntry != null) {
                 return isRichOngoing(notificationEntry);
@@ -117,7 +118,7 @@
         private final NotifComparator mOngoingComparator = new NotifComparator(
                 "OngoingComparator") {
             @Override
-            public int compare(@NonNull ListEntry o1, @NonNull ListEntry o2) {
+            public int compare(@NonNull PipelineEntry o1, @NonNull PipelineEntry o2) {
                 return Integer.compare(
                         getSortKey(o1.getRepresentativeEntry()),
                         getSortKey(o2.getRepresentativeEntry())
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ConversationCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ConversationCoordinator.kt
index af2c197..248b528 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ConversationCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ConversationCoordinator.kt
@@ -16,7 +16,8 @@
 
 package com.android.systemui.statusbar.notification.collection.coordinator
 
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.GroupEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.SortBySectionTimeFlag
@@ -61,6 +62,7 @@
                         originalGroup == null -> null
                         originalGroup == promoted.parent -> null
                         originalGroup.parent == null -> null
+                        originalGroup !is GroupEntry -> summary.key
                         originalGroup.summary != summary -> null
                         originalGroup.children.any { it.channel == summary.channel } -> null
                         else -> summary.key
@@ -74,7 +76,7 @@
         override fun shouldPromoteToTopLevel(entry: NotificationEntry): Boolean {
             val shouldPromote = entry.channel?.isImportantConversation == true
             if (shouldPromote) {
-                val summary = entry.parent?.summary
+                val summary = (entry.parent as? GroupEntry)?.summary
                 if (summary != null && entry.channel == summary.channel) {
                     promotedEntriesToSummaryOfSameChannel[entry] = summary
                 }
@@ -85,14 +87,14 @@
 
     val priorityPeopleSectioner =
             object : NotifSectioner("Priority People", BUCKET_PRIORITY_PEOPLE) {
-                override fun isInSection(entry: ListEntry): Boolean {
+                override fun isInSection(entry: PipelineEntry): Boolean {
                     return getPeopleType(entry) == TYPE_IMPORTANT_PERSON
                 }
             }
 
     // TODO(b/330193582): Rename to just "People"
     val peopleAlertingSectioner = object : NotifSectioner("People(alerting)", BUCKET_PEOPLE) {
-        override fun isInSection(entry: ListEntry): Boolean  {
+        override fun isInSection(entry: PipelineEntry): Boolean  {
             if (SortBySectionTimeFlag.isEnabled) {
                 return highPriorityProvider.isHighPriorityConversation(entry)
                         || isConversation(entry)
@@ -111,7 +113,7 @@
     val peopleSilentSectioner = object : NotifSectioner("People(silent)", BUCKET_PEOPLE) {
         // Because the peopleAlertingSectioner is above this one, it will claim all conversations that are alerting.
         // All remaining conversations must be silent.
-        override fun isInSection(entry: ListEntry): Boolean {
+        override fun isInSection(entry: PipelineEntry): Boolean {
             SortBySectionTimeFlag.assertInLegacyMode()
             return isConversation(entry)
         }
@@ -132,17 +134,17 @@
         pipeline.addOnBeforeRenderListListener(onBeforeRenderListListener)
     }
 
-    private fun isConversation(entry: ListEntry): Boolean =
+    private fun isConversation(entry: PipelineEntry): Boolean =
             getPeopleType(entry) != TYPE_NON_PERSON
 
     @PeopleNotificationType
-    private fun getPeopleType(entry: ListEntry): Int =
+    private fun getPeopleType(entry: PipelineEntry): Int =
             entry.representativeEntry?.let {
                 peopleNotificationIdentifier.getPeopleNotificationType(it)
             } ?: TYPE_NON_PERSON
 
     private val notifComparator: NotifComparator = object : NotifComparator("People") {
-        override fun compare(entry1: ListEntry, entry2: ListEntry): Int {
+        override fun compare(entry1: PipelineEntry, entry2: PipelineEntry): Int {
             val type1 = getPeopleType(entry1)
             val type2 = getPeopleType(entry2)
             return type2.compareTo(type1)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/DataStoreCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/DataStoreCoordinator.kt
index 034a4fd..e4ec76c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/DataStoreCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/DataStoreCoordinator.kt
@@ -17,7 +17,7 @@
 package com.android.systemui.statusbar.notification.collection.coordinator
 
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifLiveDataStoreImpl
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
@@ -43,12 +43,12 @@
         d.dump("notifLiveDataStoreImpl", notifLiveDataStoreImpl)
     }
 
-    private fun onAfterRenderList(entries: List<ListEntry>) {
+    private fun onAfterRenderList(entries: List<PipelineEntry>) {
         val flatEntryList = flattenedEntryList(entries)
         notifLiveDataStoreImpl.setActiveNotifList(flatEntryList)
     }
 
-    private fun flattenedEntryList(entries: List<ListEntry>) =
+    private fun flattenedEntryList(entries: List<PipelineEntry>) =
         mutableListOf<NotificationEntry>().also { list ->
             entries.forEach { entry ->
                 when (entry) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/DismissibilityCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/DismissibilityCoordinator.kt
index 0a9dddc..6bed0cf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/DismissibilityCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/DismissibilityCoordinator.kt
@@ -17,7 +17,7 @@
 package com.android.systemui.statusbar.notification.collection.coordinator
 
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
 import com.android.systemui.statusbar.notification.collection.provider.NotificationDismissibilityProviderImpl
@@ -37,7 +37,7 @@
         pipeline.addOnBeforeRenderListListener(::onBeforeRenderListListener)
     }
 
-    private fun onBeforeRenderListListener(entries: List<ListEntry>) {
+    private fun onBeforeRenderListListener(entries: List<PipelineEntry>) {
         val isLocked = !keyguardStateController.isUnlocked
         val nonDismissableEntryKeys = mutableSetOf<String>()
         markNonDismissibleEntries(nonDismissableEntryKeys, entries, isLocked)
@@ -54,7 +54,7 @@
      */
     private fun markNonDismissibleEntries(
         markedKeys: MutableSet<String>,
-        entries: List<ListEntry>,
+        entries: List<PipelineEntry>,
         isLocked: Boolean
     ): Boolean {
         var anyNonDismissableEntries = false
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GroupCountCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GroupCountCoordinator.kt
index 02bf3b3..2f0701f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GroupCountCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GroupCountCoordinator.kt
@@ -18,7 +18,7 @@
 
 import android.util.ArrayMap
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
 import com.android.systemui.statusbar.notification.collection.render.NotifGroupController
@@ -34,7 +34,7 @@
         pipeline.addOnAfterRenderGroupListener(::onAfterRenderGroup)
     }
 
-    private fun onBeforeFinalizeFilter(entries: List<ListEntry>) {
+    private fun onBeforeFinalizeFilter(entries: List<PipelineEntry>) {
         // save untruncated child counts to our internal map
         untruncatedChildCounts.clear()
         entries.asSequence().filterIsInstance<GroupEntry>().forEach { groupEntry ->
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GroupWhenCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GroupWhenCoordinator.kt
index f253100..d0411b5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GroupWhenCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GroupWhenCoordinator.kt
@@ -18,7 +18,7 @@
 import android.util.ArrayMap
 import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
 import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.Invalidator
@@ -52,7 +52,7 @@
         pipeline.addPreRenderInvalidator(invalidator)
     }
 
-    private fun onBeforeFinalizeFilterListener(entries: List<ListEntry>) {
+    private fun onBeforeFinalizeFilterListener(entries: List<PipelineEntry>) {
         cancelListInvalidation()
         notificationGroupTimes.clear()
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GutsCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GutsCoordinator.kt
index b200136..9045aac 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GutsCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GutsCoordinator.kt
@@ -18,7 +18,7 @@
 import android.util.ArraySet
 import com.android.systemui.Dumpable
 import com.android.systemui.dump.DumpManager
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
@@ -113,7 +113,7 @@
         }
     }
 
-    private fun isCurrentlyShowingGuts(entry: ListEntry) =
+    private fun isCurrentlyShowingGuts(entry: PipelineEntry) =
             notifsWithOpenGuts.contains(entry.key)
 
     private fun closeGutsAndEndLifetimeExtension(entry: NotificationEntry) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt
index eb5a370..611e0ef 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt
@@ -27,7 +27,7 @@
 import com.android.systemui.statusbar.chips.notification.shared.StatusBarNotifChips
 import com.android.systemui.statusbar.notification.NotifPipelineFlags
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifCollection
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
@@ -103,7 +103,7 @@
         mNotifPipeline = pipeline
         mHeadsUpManager.addListener(mOnHeadsUpChangedListener)
         pipeline.addCollectionListener(mNotifCollectionListener)
-        pipeline.addOnBeforeTransformGroupsListener(::onBeforeTransformGroups)
+        pipeline.addOnBeforeTransformGroupsListener { onBeforeTransformGroups() }
         pipeline.addOnBeforeFinalizeFilterListener(::onBeforeFinalizeFilter)
         pipeline.addPromoter(mNotifPromoter)
         pipeline.addNotificationLifetimeExtender(mLifetimeExtender)
@@ -170,7 +170,7 @@
      * Once the pipeline starts running, we can look through posted entries and quickly process any
      * that don't have groups, and thus will never gave a group heads up edge case.
      */
-    fun onBeforeTransformGroups(list: List<ListEntry>) {
+    fun onBeforeTransformGroups() {
         mNow = mSystemClock.currentTimeMillis()
         if (mPostedEntries.isEmpty()) {
             return
@@ -191,7 +191,7 @@
      * we know that stability and [NotifPromoter]s have been applied, so we can use the location of
      * notifications in this list to determine what kind of group heads up behavior should happen.
      */
-    fun onBeforeFinalizeFilter(list: List<ListEntry>) =
+    fun onBeforeFinalizeFilter(list: List<PipelineEntry>) =
         mHeadsUpManager.modifyHuns { hunMutator ->
             // Nothing to do if there are no other adds/updates
             if (mPostedEntries.isEmpty()) {
@@ -410,7 +410,7 @@
             )
             .firstOrNull()
 
-    private fun getGroupLocationsByKey(list: List<ListEntry>): Map<String, GroupLocation> =
+    private fun getGroupLocationsByKey(list: List<PipelineEntry>): Map<String, GroupLocation> =
         mutableMapOf<String, GroupLocation>().also { map ->
             list.forEach { topLevelEntry ->
                 when (topLevelEntry) {
@@ -833,13 +833,13 @@
 
     val sectioner =
         object : NotifSectioner("HeadsUp", BUCKET_HEADS_UP) {
-            override fun isInSection(entry: ListEntry): Boolean =
+            override fun isInSection(entry: PipelineEntry): Boolean =
                 // TODO: This check won't notice if a child of the group is going to HUN...
                 isGoingToShowHunNoRetract(entry)
 
             override fun getComparator(): NotifComparator {
                 return object : NotifComparator("HeadsUp") {
-                    override fun compare(o1: ListEntry, o2: ListEntry): Int =
+                    override fun compare(o1: PipelineEntry, o2: PipelineEntry): Int =
                         mHeadsUpManager.compare(o1.representativeEntry, o2.representativeEntry)
                 }
             }
@@ -867,7 +867,7 @@
 
     private fun isSticky(entry: NotificationEntry) = mHeadsUpManager.isSticky(entry.key)
 
-    private fun isEntryBinding(entry: ListEntry): Boolean {
+    private fun isEntryBinding(entry: PipelineEntry): Boolean {
         val bindingUntil = mEntriesBindingUntil[entry.key]
         return bindingUntil != null && bindingUntil >= mNow
     }
@@ -875,12 +875,12 @@
     /**
      * Whether the notification is already heads up or binding so that it can imminently heads up
      */
-    private fun isAttemptingToShowHun(entry: ListEntry) =
+    private fun isAttemptingToShowHun(entry: PipelineEntry) =
         mHeadsUpManager.isHeadsUpEntry(entry.key) ||
             isEntryBinding(entry) ||
             isHeadsUpAnimatingAway(entry)
 
-    private fun isHeadsUpAnimatingAway(entry: ListEntry): Boolean {
+    private fun isHeadsUpAnimatingAway(entry: PipelineEntry): Boolean {
         if (!GroupHunAnimationFix.isEnabled) return false
         return entry.representativeEntry?.row?.isHeadsUpAnimatingAway ?: false
     }
@@ -891,7 +891,7 @@
      * returns `true` even if the update would (in isolation of its group) cause the heads up to be
      * retracted. This is important for not retracting transferred group heads ups.
      */
-    private fun isGoingToShowHunNoRetract(entry: ListEntry) =
+    private fun isGoingToShowHunNoRetract(entry: PipelineEntry) =
         mPostedEntries[entry.key]?.calculateShouldBeHeadsUpNoRetract ?: isAttemptingToShowHun(entry)
 
     /**
@@ -900,7 +900,7 @@
      * strict because any update which would revoke the heads up supersedes the current heads
      * up/binding state.
      */
-    private fun isGoingToShowHunStrict(entry: ListEntry) =
+    private fun isGoingToShowHunStrict(entry: PipelineEntry) =
         mPostedEntries[entry.key]?.calculateShouldBeHeadsUpStrict ?: isAttemptingToShowHun(entry)
 
     private fun endNotifLifetimeExtensionIfExtended(entry: NotificationEntry) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/LockScreenMinimalismCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/LockScreenMinimalismCoordinator.kt
index e232849..56deb18 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/LockScreenMinimalismCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/LockScreenMinimalismCoordinator.kt
@@ -27,7 +27,7 @@
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import com.android.systemui.statusbar.StatusBarState
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
@@ -176,7 +176,7 @@
             }
         }
 
-    private fun pickOutTopUnseenNotifs(list: List<ListEntry>) {
+    private fun pickOutTopUnseenNotifs(list: List<PipelineEntry>) {
         if (NotificationMinimalism.isUnexpectedlyInLegacyMode()) return
         if (!minimalismEnabled) return
         // Only ever elevate a top unseen notification on keyguard, not even locked shade
@@ -224,7 +224,7 @@
 
     val topOngoingSectioner =
         object : NotifSectioner("TopOngoing", BUCKET_TOP_ONGOING) {
-            override fun isInSection(entry: ListEntry): Boolean {
+            override fun isInSection(entry: PipelineEntry): Boolean {
                 if (NotificationMinimalism.isUnexpectedlyInLegacyMode()) return false
                 if (!minimalismEnabled) return false
                 return entry.anyEntry { notificationEntry ->
@@ -235,7 +235,7 @@
 
     val topUnseenSectioner =
         object : NotifSectioner("TopUnseen", BUCKET_TOP_UNSEEN) {
-            override fun isInSection(entry: ListEntry): Boolean {
+            override fun isInSection(entry: PipelineEntry): Boolean {
                 if (NotificationMinimalism.isUnexpectedlyInLegacyMode()) return false
                 if (!minimalismEnabled) return false
                 return entry.anyEntry { notificationEntry ->
@@ -244,7 +244,7 @@
             }
         }
 
-    private fun ListEntry.anyEntry(predicate: (NotificationEntry?) -> Boolean) =
+    private fun PipelineEntry.anyEntry(predicate: (NotificationEntry?) -> Boolean) =
         when {
             predicate(representativeEntry) -> true
             this !is GroupEntry -> false
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinator.kt
index de6f257..660ee40 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinator.kt
@@ -30,6 +30,7 @@
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.statusbar.expansionChanges
+import com.android.systemui.statusbar.notification.collection.GroupEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
@@ -313,7 +314,7 @@
                     unseenNotifications.contains(entry) -> false
                     // Don't apply the filter to (non-promoted) group summaries
                     //  - summary will be pruned if necessary, depending on if children are filtered
-                    entry.parent?.summary == entry -> false
+                    (entry.parent as? GroupEntry)?.summary == entry -> false
                     // Check that the entry satisfies certain characteristics that would bypass the
                     // filter
                     shouldIgnoreUnseenCheck(entry) -> false
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java
index 2ecce1f..20c6736 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java
@@ -35,7 +35,7 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.statusbar.IStatusBarService;
 import com.android.systemui.statusbar.notification.collection.GroupEntry;
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotifPipeline;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.collection.ShadeListBuilder;
@@ -232,9 +232,10 @@
          */
         @Override
         public boolean shouldFilterOut(NotificationEntry entry, long now) {
-            final GroupEntry parent = requireNonNull(entry.getParent());
-            Boolean isMemberOfDelayedGroup = mIsDelayedGroupCache.get(parent);
-            if (isMemberOfDelayedGroup == null) {
+            final PipelineEntry pipelineEntryParent = requireNonNull(entry.getParent());
+            Boolean isMemberOfDelayedGroup = mIsDelayedGroupCache.get(pipelineEntryParent);
+            if (isMemberOfDelayedGroup == null && pipelineEntryParent instanceof GroupEntry) {
+                GroupEntry parent = (GroupEntry) pipelineEntryParent;
                 isMemberOfDelayedGroup = shouldWaitForGroupToInflate(parent, now);
                 mIsDelayedGroupCache.put(parent, isMemberOfDelayedGroup);
             }
@@ -279,7 +280,7 @@
         }
     };
 
-    private void purgeCaches(Collection<ListEntry> entries) {
+    private void purgeCaches(Collection<PipelineEntry> entries) {
         Set<String> wantedPackages = getPackages(entries);
         mAppIconProvider.purgeCache(wantedPackages);
         mNotificationIconStyleProvider.purgeCache(wantedPackages);
@@ -288,9 +289,9 @@
     /**
      * Get all app packages present in {@param entries}.
      */
-    private static @NonNull Set<String> getPackages(Collection<ListEntry> entries) {
+    private static @NonNull Set<String> getPackages(Collection<PipelineEntry> entries) {
         Set<String> packages = new HashSet<>();
-        for (ListEntry entry : entries) {
+        for (PipelineEntry entry : entries) {
             NotificationEntry notificationEntry = entry.getRepresentativeEntry();
             if (notificationEntry == null) {
                 Log.wtf(TAG, "notification entry " + entry.getKey()
@@ -302,9 +303,9 @@
         return packages;
     }
 
-    private void inflateAllRequiredViews(List<ListEntry> entries) {
+    private void inflateAllRequiredViews(List<PipelineEntry> entries) {
         for (int i = 0, size = entries.size(); i < size; i++) {
-            ListEntry entry = entries.get(i);
+            PipelineEntry entry = entries.get(i);
             if (entry instanceof GroupEntry) {
                 GroupEntry groupEntry = (GroupEntry) entry;
                 inflateRequiredGroupViews(groupEntry);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java
index 69b069d..d1063d9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java
@@ -20,7 +20,7 @@
 import android.annotation.Nullable;
 
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotifPipeline;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope;
@@ -97,7 +97,7 @@
     private final NotifSectioner mAlertingNotifSectioner = new NotifSectioner("Alerting",
             NotificationPriorityBucketKt.BUCKET_ALERTING) {
         @Override
-        public boolean isInSection(ListEntry entry) {
+        public boolean isInSection(PipelineEntry entry) {
             return mHighPriorityProvider.isHighPriority(entry);
         }
 
@@ -115,8 +115,9 @@
     private final NotifSectioner mSilentNotifSectioner = new NotifSectioner("Silent",
             NotificationPriorityBucketKt.BUCKET_SILENT) {
         @Override
-        public boolean isInSection(ListEntry entry) {
+        public boolean isInSection(PipelineEntry entry) {
             return !mHighPriorityProvider.isHighPriority(entry)
+                    && entry.getRepresentativeEntry() != null
                     && !entry.getRepresentativeEntry().isAmbient();
         }
 
@@ -128,7 +129,7 @@
 
         @Nullable
         @Override
-        public void onEntriesUpdated(@NonNull List<ListEntry> entries) {
+        public void onEntriesUpdated(@NonNull List<PipelineEntry> entries) {
             mHasSilentEntries = false;
             for (int i = 0; i < entries.size(); i++) {
                 if (entries.get(i).getRepresentativeEntry().getSbn().isClearable()) {
@@ -144,7 +145,7 @@
     private final NotifSectioner mMinimizedNotifSectioner = new NotifSectioner("Minimized",
             NotificationPriorityBucketKt.BUCKET_SILENT) {
         @Override
-        public boolean isInSection(ListEntry entry) {
+        public boolean isInSection(PipelineEntry entry) {
             return !mHighPriorityProvider.isHighPriority(entry)
                     && entry.getRepresentativeEntry().isAmbient();
         }
@@ -157,7 +158,7 @@
 
         @Nullable
         @Override
-        public void onEntriesUpdated(@NonNull List<ListEntry> entries) {
+        public void onEntriesUpdated(@NonNull List<PipelineEntry> entries) {
             mHasMinimizedEntries = false;
             for (int i = 0; i < entries.size(); i++) {
                 if (entries.get(i).getRepresentativeEntry().getSbn().isClearable()) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RowAlertTimeCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RowAlertTimeCoordinator.kt
index 4a7b7ca..930e52a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RowAlertTimeCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RowAlertTimeCoordinator.kt
@@ -17,7 +17,7 @@
 
 import android.util.ArrayMap
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
@@ -39,7 +39,7 @@
         pipeline.addOnAfterRenderEntryListener(::onAfterRenderEntry)
     }
 
-    private fun onBeforeFinalizeFilterListener(entries: List<ListEntry>) {
+    private fun onBeforeFinalizeFilterListener(entries: List<PipelineEntry>) {
         latestAlertTimeBySummary.clear()
         entries.asSequence().filterIsInstance<GroupEntry>().forEach { groupEntry ->
             val summary = checkNotNull(groupEntry.summary)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RowAppearanceCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RowAppearanceCoordinator.kt
index df8e56e..a987c54 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RowAppearanceCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RowAppearanceCoordinator.kt
@@ -20,7 +20,7 @@
 import com.android.systemui.res.R
 import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.statusbar.notification.AssistantFeedbackController
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
@@ -63,7 +63,7 @@
         pipeline.addOnAfterRenderEntryListener(::onAfterRenderEntry)
     }
 
-    private fun onBeforeRenderList(list: List<ListEntry>) {
+    private fun onBeforeRenderList(list: List<PipelineEntry>) {
         entryToExpand =
             list.firstOrNull()?.representativeEntry?.takeIf { entry ->
                 !mSectionStyleProvider.isMinimizedSection(entry.section!!)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/SensitiveContentCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/SensitiveContentCoordinator.kt
index 90916d1..db24e7d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/SensitiveContentCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/SensitiveContentCoordinator.kt
@@ -32,7 +32,7 @@
 import com.android.systemui.statusbar.StatusBarState
 import com.android.systemui.statusbar.notification.DynamicPrivacyController
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
@@ -155,7 +155,7 @@
             }
         }
 
-    override fun onBeforeRenderList(entries: List<ListEntry>) {
+    override fun onBeforeRenderList(entries: List<PipelineEntry>) {
         if (
             isKeyguardGoingAway ||
                 statusBarStateController.state == StatusBarState.KEYGUARD &&
@@ -220,13 +220,15 @@
     }
 }
 
-private fun extractAllRepresentativeEntries(entries: List<ListEntry>): Sequence<NotificationEntry> =
+private fun extractAllRepresentativeEntries(entries: List<PipelineEntry>): Sequence<NotificationEntry> =
     entries.asSequence().flatMap(::extractAllRepresentativeEntries)
 
-private fun extractAllRepresentativeEntries(listEntry: ListEntry): Sequence<NotificationEntry> =
+private fun extractAllRepresentativeEntries(
+    pipelineEntry: PipelineEntry,
+): Sequence<NotificationEntry> =
     sequence {
-        listEntry.representativeEntry?.let { yield(it) }
-        if (listEntry is GroupEntry) {
-            yieldAll(extractAllRepresentativeEntries(listEntry.children))
+        pipelineEntry.representativeEntry?.let { yield(it) }
+        if (pipelineEntry is GroupEntry) {
+            yieldAll(extractAllRepresentativeEntries(pipelineEntry.children))
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ShadeEventCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ShadeEventCoordinator.kt
index 1c66db7..29a8eb0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ShadeEventCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ShadeEventCoordinator.kt
@@ -19,7 +19,7 @@
 import android.service.notification.NotificationListenerService
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.dagger.qualifiers.Main
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener
@@ -67,7 +67,7 @@
         mShadeEmptiedCallback = callback
     }
 
-    private fun onBeforeRenderList(entries: List<ListEntry>) {
+    private fun onBeforeRenderList(entries: List<PipelineEntry>) {
         if (mEntryRemoved && entries.isEmpty()) {
             mLogger.logShadeEmptied()
             // TODO(b/206023518): This was bad. Do not copy this.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinator.kt
index 1cb2366..53a73f4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinator.kt
@@ -19,7 +19,7 @@
 import com.android.app.tracing.traceSection
 import com.android.server.notification.Flags.screenshareNotificationHiding
 import com.android.systemui.Flags.screenshareNotificationHidingBugFix
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotifPipeline
 import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
 import com.android.systemui.statusbar.notification.collection.render.GroupExpansionManagerImpl
@@ -50,14 +50,14 @@
         groupExpansionManagerImpl.attach(pipeline)
     }
 
-    private fun onAfterRenderList(entries: List<ListEntry>) =
+    private fun onAfterRenderList(entries: List<PipelineEntry>) =
         traceSection("StackCoordinator.onAfterRenderList") {
             val notifStats = calculateNotifStats(entries)
             activeNotificationsInteractor.setNotifStats(notifStats)
             renderListInteractor.setRenderedList(entries)
         }
 
-    private fun calculateNotifStats(entries: List<ListEntry>): NotifStats {
+    private fun calculateNotifStats(entries: List<PipelineEntry>): NotifStats {
         var hasNonClearableAlertingNotifs = false
         var hasClearableAlertingNotifs = false
         var hasNonClearableSilentNotifs = false
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java
index 49d5029..bdbdc53 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java
@@ -39,14 +39,14 @@
 import com.android.systemui.shade.domain.interactor.ShadeInteractor;
 import com.android.systemui.statusbar.notification.VisibilityLocationProvider;
 import com.android.systemui.statusbar.notification.collection.GroupEntry;
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotifPipeline;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeRenderListListener;
 import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifStabilityManager;
 import com.android.systemui.statusbar.notification.collection.provider.VisualStabilityProvider;
+import com.android.systemui.statusbar.notification.data.repository.HeadsUpRepository;
 import com.android.systemui.statusbar.notification.domain.interactor.SeenNotificationsInteractor;
-import com.android.systemui.statusbar.notification.headsup.HeadsUpManager;
 import com.android.systemui.statusbar.notification.shared.NotificationMinimalism;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
 import com.android.systemui.util.concurrency.DelayableExecutor;
@@ -72,7 +72,7 @@
 public class VisualStabilityCoordinator implements Coordinator, Dumpable {
     private final DelayableExecutor mDelayableExecutor;
     private final DelayableExecutor mMainExecutor;
-    private final HeadsUpManager mHeadsUpManager;
+    private final HeadsUpRepository mHeadsUpRepository;
     private final SeenNotificationsInteractor mSeenNotificationsInteractor;
     private final ShadeAnimationInteractor mShadeAnimationInteractor;
     private final StatusBarStateController mStatusBarStateController;
@@ -94,6 +94,7 @@
     private boolean mNotifPanelLaunchingActivity;
     private boolean mCommunalShowing = false;
     private boolean mLockscreenShowing = false;
+    private boolean mTrackingHeadsUp = false;
     private boolean mLockscreenInGoneTransition = false;
     private Set<String> mHeadsUpGroupKeys = new HashSet<>();
 
@@ -117,7 +118,7 @@
             @Background DelayableExecutor delayableExecutor,
             @Main DelayableExecutor mainExecutor,
             DumpManager dumpManager,
-            HeadsUpManager headsUpManager,
+            HeadsUpRepository headsUpRepository,
             ShadeAnimationInteractor shadeAnimationInteractor,
             JavaAdapter javaAdapter,
             SeenNotificationsInteractor seenNotificationsInteractor,
@@ -130,7 +131,7 @@
             KeyguardTransitionInteractor keyguardTransitionInteractor,
             KeyguardStateController keyguardStateController,
             VisualStabilityCoordinatorLogger logger) {
-        mHeadsUpManager = headsUpManager;
+        mHeadsUpRepository = headsUpRepository;
         mShadeAnimationInteractor = shadeAnimationInteractor;
         mJavaAdapter = javaAdapter;
         mSeenNotificationsInteractor = seenNotificationsInteractor;
@@ -177,6 +178,8 @@
             mJavaAdapter.alwaysCollectFlow(mKeyguardTransitionInteractor.transitionValue(
                             KeyguardState.LOCKSCREEN),
                     this::onLockscreenKeyguardStateTransitionValueChanged);
+            mJavaAdapter.alwaysCollectFlow(mHeadsUpRepository.isTrackingHeadsUp(),
+                    this::onTrackingHeadsUpModeChanged);
         }
 
         if (Flags.checkLockscreenGoneTransition()) {
@@ -239,7 +242,7 @@
                     boolean isTopUnseen = NotificationMinimalism.isEnabled()
                             && (mSeenNotificationsInteractor.isTopUnseenNotification(entry)
                                 || mSeenNotificationsInteractor.isTopOngoingNotification(entry));
-                    if (isTopUnseen || mHeadsUpManager.isHeadsUpEntry(entry.getKey())) {
+                    if (isTopUnseen || mHeadsUpRepository.isHeadsUpEntry(entry.getKey())) {
                         return !mVisibilityLocationProvider.isInVisibleLocation(entry);
                     }
                     return false;
@@ -253,21 +256,20 @@
                         return false;
                     }
 
-                    final GroupEntry parent = entry.getParent();
+                    final PipelineEntry parent = entry.getParent();
 
                     if (parent == null) {
                         return false;
                     }
-
                     return isHeadsUpGroup(parent);
                 }
 
-                private boolean isHeadsUpGroup(GroupEntry groupEntry) {
-                    if (StabilizeHeadsUpGroup.isUnexpectedlyInLegacyMode()) {
+                private boolean isHeadsUpGroup(PipelineEntry pipelineEntry) {
+                    if (!(pipelineEntry instanceof GroupEntry groupEntry)) {
                         return false;
                     }
 
-                    if (groupEntry == null) {
+                    if (StabilizeHeadsUpGroup.isUnexpectedlyInLegacyMode()) {
                         return false;
                     }
 
@@ -276,7 +278,7 @@
                         return false;
                     }
 
-                    return mHeadsUpManager.isHeadsUpEntry(summary.getKey());
+                    return mHeadsUpRepository.isHeadsUpEntry(summary.getKey());
                 }
                 /**
                  * When reordering is enabled, non-heads-up groups can be pruned.
@@ -370,7 +372,7 @@
                 }
 
                 @Override
-                public boolean isEntryReorderingAllowed(@NonNull ListEntry entry) {
+                public boolean isEntryReorderingAllowed(@NonNull PipelineEntry entry) {
                     if (StabilizeHeadsUpGroup.isEnabled()) {
                         if (isEveryChangeAllowed()) {
                             return true;
@@ -403,7 +405,7 @@
     private final OnBeforeRenderListListener mOnBeforeRenderListListener =
             new OnBeforeRenderListListener() {
                 @Override
-                public void onBeforeRenderList(List<ListEntry> entries) {
+                public void onBeforeRenderList(List<PipelineEntry> entries) {
                     if (StabilizeHeadsUpGroup.isUnexpectedlyInLegacyMode()) {
                         return;
                     }
@@ -416,7 +418,7 @@
                             if (summary == null) continue;
 
                             final String summaryKey = summary.getKey();
-                            if (mHeadsUpManager.isHeadsUpEntry(summaryKey)) {
+                            if (mHeadsUpRepository.isHeadsUpEntry(summaryKey)) {
                                 currentHeadsUpKeys.add(summaryKey);
                             }
                         }
@@ -476,11 +478,19 @@
 
     private boolean isReorderingAllowed() {
         final boolean sleepyAndDozed = mFullyDozed && mSleepy;
-        final boolean stackShowing = mPanelExpanded
-                || (SceneContainerFlag.isEnabled() && mLockscreenShowing);
+        final boolean stackShowing = isStackShowing();
         return (sleepyAndDozed || !stackShowing || mCommunalShowing) && !mPulsing;
     }
 
+    /** @return true when the notification stack is visible to the user */
+    private boolean isStackShowing() {
+        if (SceneContainerFlag.isEnabled()) {
+            return mPanelExpanded || mLockscreenShowing || mTrackingHeadsUp;
+        } else {
+            return mPanelExpanded;
+        }
+    }
+
     /**
      * Allows this notification entry to be re-ordered in the notification list temporarily until
      * the timeout has passed.
@@ -611,6 +621,11 @@
         updateAllowedStates("lockscreenShowing", isShowing);
     }
 
+    private void onTrackingHeadsUpModeChanged(boolean isTrackingHeadsUp) {
+        mTrackingHeadsUp = isTrackingHeadsUp;
+        updateAllowedStates("trackingHeadsUp", isTrackingHeadsUp);
+    }
+
     private void onLockscreenInGoneTransitionChanged(boolean inGoneTransition) {
         if (!Flags.checkLockscreenGoneTransition()) {
             return;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotifUiAdjustmentProvider.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotifUiAdjustmentProvider.kt
index 465bc28..adcc3ec 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotifUiAdjustmentProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotifUiAdjustmentProvider.kt
@@ -124,7 +124,7 @@
         val parent = entry.parent ?: error("Entry must have a parent to determine if minimized")
         val isMinimizedSection = sectionStyleProvider.isMinimizedSection(section)
         val isTopLevelEntry = parent == GroupEntry.ROOT_ENTRY
-        val isGroupSummary = parent.summary == entry
+        val isGroupSummary = (parent as? GroupEntry)?.summary == entry
         return isMinimizedSection && (isTopLevelEntry || isGroupSummary)
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnAfterRenderListListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnAfterRenderListListener.java
index ac450c0..e3ab81c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnAfterRenderListListener.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnAfterRenderListListener.java
@@ -18,7 +18,7 @@
 
 import androidx.annotation.NonNull;
 
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotifPipeline;
 
 import java.util.List;
@@ -31,5 +31,5 @@
      * @param entries The current list of top-level entries. Note that this is a live view into the
      * current list and will change whenever the pipeline is rerun.
      */
-    void onAfterRenderList(@NonNull List<ListEntry> entries);
+    void onAfterRenderList(@NonNull List<PipelineEntry> entries);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeFinalizeFilterListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeFinalizeFilterListener.java
index 086661e..3c4f422 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeFinalizeFilterListener.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeFinalizeFilterListener.java
@@ -16,7 +16,7 @@
 
 package com.android.systemui.statusbar.notification.collection.listbuilder;
 
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotifPipeline;
 
 import java.util.List;
@@ -30,5 +30,5 @@
      * @param entries The current list of top-level entries. Note that this is a live view into the
      *                current list and will change whenever the pipeline is rerun.
      */
-    void onBeforeFinalizeFilter(List<ListEntry> entries);
+    void onBeforeFinalizeFilter(List<PipelineEntry> entries);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeRenderListListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeRenderListListener.java
index 44a27a4..6ceb7d5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeRenderListListener.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeRenderListListener.java
@@ -16,7 +16,7 @@
 
 package com.android.systemui.statusbar.notification.collection.listbuilder;
 
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotifPipeline;
 
 import java.util.List;
@@ -30,5 +30,5 @@
      * @param entries The current list of top-level entries. Note that this is a live view into the
      *                current list and will change whenever the pipeline is rerun.
      */
-    void onBeforeRenderList(List<ListEntry> entries);
+    void onBeforeRenderList(List<PipelineEntry> entries);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeSortListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeSortListener.java
index 56cfe5c..858cec1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeSortListener.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeSortListener.java
@@ -16,7 +16,7 @@
 
 package com.android.systemui.statusbar.notification.collection.listbuilder;
 
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotifPipeline;
 
 import java.util.List;
@@ -30,5 +30,5 @@
      * @param entries The current list of top-level entries. Note that this is a live view into the
      *                current list and will change whenever the pipeline is rerun.
      */
-    void onBeforeSort(List<ListEntry> entries);
+    void onBeforeSort(List<PipelineEntry> entries);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeTransformGroupsListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeTransformGroupsListener.java
index 0dc4df0..eb525c7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeTransformGroupsListener.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/OnBeforeTransformGroupsListener.java
@@ -16,7 +16,7 @@
 
 package com.android.systemui.statusbar.notification.collection.listbuilder;
 
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotifPipeline;
 import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter;
 
@@ -35,5 +35,5 @@
      *             a live view into the current notif list and will change as the list moves through
      *             the pipeline.
      */
-    void onBeforeTransformGroups(List<ListEntry> list);
+    void onBeforeTransformGroups(List<PipelineEntry> list);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderHelper.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderHelper.kt
index d8f75f6..0d8a64a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderHelper.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderHelper.kt
@@ -16,10 +16,10 @@
 
 package com.android.systemui.statusbar.notification.collection.listbuilder
 
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 
 object ShadeListBuilderHelper {
-    fun getSectionSubLists(entries: List<ListEntry>): Iterable<List<ListEntry>> =
+    fun getSectionSubLists(entries: List<PipelineEntry>): Iterable<List<PipelineEntry>> =
         getContiguousSubLists(entries, minLength = 1) { it.sectionIndex }
 
     inline fun <T : Any, K : Any> getContiguousSubLists(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt
index a8409d0c..8a9548f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt
@@ -23,7 +23,7 @@
 import com.android.systemui.log.core.LogLevel.WARNING
 import com.android.systemui.statusbar.notification.NotifPipelineFlags
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState.StateName
 import com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState.getStateName
@@ -152,9 +152,9 @@
 
     fun logEntryAttachStateChanged(
         buildId: Int,
-        entry: ListEntry,
-        prevParent: GroupEntry?,
-        newParent: GroupEntry?
+        entry: PipelineEntry,
+        prevParent: PipelineEntry?,
+        newParent: PipelineEntry?
     ) {
         buffer.log(TAG, INFO, {
             long1 = buildId.toLong()
@@ -177,7 +177,7 @@
         })
     }
 
-    fun logParentChanged(buildId: Int, prevParent: GroupEntry?, newParent: GroupEntry?) {
+    fun logParentChanged(buildId: Int, prevParent: PipelineEntry?, newParent: PipelineEntry?) {
         buffer.log(TAG, INFO, {
             long1 = buildId.toLong()
             str1 = prevParent?.logKey
@@ -195,8 +195,8 @@
 
     fun logParentChangeSuppressedStarted(
         buildId: Int,
-        suppressedParent: GroupEntry?,
-        keepingParent: GroupEntry?
+        suppressedParent: PipelineEntry?,
+        keepingParent: PipelineEntry?
     ) {
         buffer.log(TAG, INFO, {
             long1 = buildId.toLong()
@@ -209,8 +209,8 @@
 
     fun logParentChangeSuppressedStopped(
             buildId: Int,
-            previouslySuppressedParent: GroupEntry?,
-            previouslyKeptParent: GroupEntry?
+            previouslySuppressedParent: PipelineEntry?,
+            previouslyKeptParent: PipelineEntry?
     ) {
         buffer.log(TAG, INFO, {
             long1 = buildId.toLong()
@@ -224,7 +224,7 @@
 
     fun logGroupPruningSuppressed(
         buildId: Int,
-        keepingParent: GroupEntry?
+        keepingParent: PipelineEntry?
     ) {
         buffer.log(TAG, INFO, {
             long1 = buildId.toLong()
@@ -310,7 +310,7 @@
 
     val logRankInFinalList = Compile.IS_DEBUG && notifPipelineFlags.isDevLoggingEnabled()
 
-    fun logFinalList(entries: List<ListEntry>) {
+    fun logFinalList(entries: List<PipelineEntry>) {
         if (entries.isEmpty()) {
             buffer.log(TAG, DEBUG, {}, { "(empty list)" })
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifComparator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifComparator.java
index f7bbd28..f7c74c2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifComparator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifComparator.java
@@ -18,7 +18,7 @@
 
 import androidx.annotation.NonNull;
 
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotifPipeline;
 
 import java.util.Comparator;
@@ -29,7 +29,7 @@
  */
 public abstract class NotifComparator
         extends Pluggable<NotifComparator>
-        implements Comparator<ListEntry> {
+        implements Comparator<PipelineEntry> {
 
     protected NotifComparator(String name) {
         super(name);
@@ -41,5 +41,5 @@
      * @return a negative integer, zero, or a positive integer as the first argument is less than
      *      equal to, or greater than the second (same as standard Comparator<> interface).
      */
-    public abstract int compare(@NonNull ListEntry o1, @NonNull ListEntry o2);
+    public abstract int compare(@NonNull PipelineEntry o1, @NonNull PipelineEntry o2);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifSectioner.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifSectioner.java
index 8c52c53..4a856a5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifSectioner.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifSectioner.java
@@ -18,7 +18,7 @@
 
 import android.annotation.Nullable;
 
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.ShadeListBuilder;
 import com.android.systemui.statusbar.notification.collection.render.NodeController;
 import com.android.systemui.statusbar.notification.collection.render.NodeSpec;
@@ -52,11 +52,11 @@
      * However, this doesn't necessarily mean that your section will get called on each top-level
      * notification. The first section to return true determines the section of the notification.
      */
-    public abstract boolean isInSection(ListEntry entry);
+    public abstract boolean isInSection(PipelineEntry entry);
 
     /**
      * Returns an optional {@link NotifComparator} to sort entries only in this section.
-     * {@link ListEntry} instances passed to this comparator are guaranteed to have this section,
+     * {@link PipelineEntry} instances passed to this comparator are guaranteed to have this section,
      * and this ordering will take precedence over any global comparators supplied to {@link
      * com.android.systemui.statusbar.notification.collection.NotifPipeline#setComparators(List)}.
      *
@@ -80,5 +80,5 @@
      * Notify of children of this section being updated
      * @param entries of this section that are borrowed (must clone to store)
      */
-    public void onEntriesUpdated(List<ListEntry> entries) {}
+    public void onEntriesUpdated(List<PipelineEntry> entries) {}
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifStabilityManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifStabilityManager.kt
index 58bbca8..e1e2bcf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifStabilityManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/pluggable/NotifStabilityManager.kt
@@ -16,7 +16,7 @@
 package com.android.systemui.statusbar.notification.collection.listbuilder.pluggable
 
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 
 /**
@@ -75,7 +75,7 @@
      * being suppressed. However, if an order change is suppressed, that will be reported to ths
      * implementation by calling [onEntryReorderSuppressed] after ordering is complete.
      */
-    abstract fun isEntryReorderingAllowed(entry: ListEntry): Boolean
+    abstract fun isEntryReorderingAllowed(entry: PipelineEntry): Boolean
 
     /**
      * Called by the pipeline to determine if every call to the other stability methods would
@@ -100,7 +100,7 @@
     override fun isGroupChangeAllowed(entry: NotificationEntry): Boolean = true
     override fun isGroupPruneAllowed(entry: GroupEntry): Boolean = true
     override fun isSectionChangeAllowed(entry: NotificationEntry): Boolean = true
-    override fun isEntryReorderingAllowed(entry: ListEntry): Boolean = true
+    override fun isEntryReorderingAllowed(entry: PipelineEntry): Boolean = true
     override fun isEveryChangeAllowed(): Boolean = true
     override fun onEntryReorderSuppressed() {}
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt
index 014ac54..ae2c70a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt
@@ -27,6 +27,7 @@
 import com.android.systemui.log.core.LogLevel.INFO
 import com.android.systemui.log.core.LogLevel.WARNING
 import com.android.systemui.log.core.LogLevel.WTF
+import com.android.systemui.statusbar.notification.collection.GroupEntry
 import com.android.systemui.statusbar.notification.collection.NotifCollection
 import com.android.systemui.statusbar.notification.collection.NotifCollection.CancellationReason
 import com.android.systemui.statusbar.notification.collection.NotifCollection.FutureDismissal
@@ -421,6 +422,14 @@
         })
     }
 
+    private fun getParentLogKey(childEntry: NotificationEntry): String {
+        return if (childEntry.parent is GroupEntry) {
+            (childEntry.parent as? GroupEntry)?.summary?.logKey ?: "(null)"
+        } else {
+            "(null)"
+        }
+    }
+
     fun logDismissAlreadyParentDismissedNotif(
             childEntry: NotificationEntry,
             childIndex: Int,
@@ -430,7 +439,7 @@
             str1 = childEntry.logKey
             int1 = childIndex
             int2 = childCount
-            str2 = childEntry.parent?.summary?.logKey ?: "(null)"
+            str2 = getParentLogKey(childEntry)
         }, {
             "DISMISS Already Parent-Dismissed $str1 ($int1/$int2) with summary $str2"
         })
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/HighPriorityProvider.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/HighPriorityProvider.java
index 2e3ab92..051bd3a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/HighPriorityProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/HighPriorityProvider.java
@@ -23,7 +23,7 @@
 
 import com.android.systemui.dagger.SysUISingleton;
 import com.android.systemui.statusbar.notification.collection.GroupEntry;
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager;
 import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
@@ -53,7 +53,7 @@
     }
 
     /**
-     * @return true if the ListEntry is high priority, else false
+     * @return true if the PipelineEntry is high priority, else false
      *
      * A NotificationEntry is considered high priority if it:
      *  - has importance greater than or equal to IMPORTANCE_DEFAULT
@@ -67,12 +67,12 @@
      * A GroupEntry is considered high priority if its representativeEntry (summary) or any of its
      * children are high priority.
      */
-    public boolean isHighPriority(@Nullable ListEntry entry) {
+    public boolean isHighPriority(@Nullable PipelineEntry entry) {
         return isHighPriority(entry, /* allowImplicit = */ true);
     }
 
     /**
-     * @return true if the ListEntry is explicitly high priority, else false
+     * @return true if the PipelineEntry is explicitly high priority, else false
      *
      * A NotificationEntry is considered explicitly high priority if has importance greater than or
      * equal to IMPORTANCE_DEFAULT.
@@ -80,11 +80,11 @@
      * A GroupEntry is considered explicitly high priority if its representativeEntry (summary) or
      * any of its children are explicitly high priority.
      */
-    public boolean isExplicitlyHighPriority(@Nullable ListEntry entry) {
+    public boolean isExplicitlyHighPriority(@Nullable PipelineEntry entry) {
         return isHighPriority(entry, /* allowImplicit= */ false);
     }
 
-    private boolean isHighPriority(@Nullable ListEntry entry, boolean allowImplicit) {
+    private boolean isHighPriority(@Nullable PipelineEntry entry, boolean allowImplicit) {
         if (entry == null) {
             return false;
         }
@@ -100,9 +100,9 @@
     }
 
     /**
-     * @return true if the ListEntry is high priority conversation, else false
+     * @return true if the PipelineEntry is high priority conversation, else false
      */
-    public boolean isHighPriorityConversation(@NonNull ListEntry entry) {
+    public boolean isHighPriorityConversation(@NonNull PipelineEntry entry) {
         final NotificationEntry notifEntry = entry.getRepresentativeEntry();
         if (notifEntry == null) {
             return  false;
@@ -119,7 +119,7 @@
         return isNotificationEntryWithAtLeastOneImportantChild(entry);
     }
 
-    private boolean isNotificationEntryWithAtLeastOneImportantChild(@NonNull ListEntry entry) {
+    private boolean isNotificationEntryWithAtLeastOneImportantChild(@NonNull PipelineEntry entry) {
         if (!(entry instanceof GroupEntry)) {
             return false;
         }
@@ -134,7 +134,7 @@
      * Returns whether the given ListEntry has a high priority child or is in a group with a child
      * that's high priority
      */
-    private boolean hasHighPriorityChild(ListEntry entry, boolean allowImplicit) {
+    private boolean hasHighPriorityChild(PipelineEntry entry, boolean allowImplicit) {
         if (NotificationBundleUi.isEnabled()) {
             GroupEntry representativeGroupEntry = null;
             if (entry instanceof GroupEntry) {
@@ -142,9 +142,10 @@
             } else if (entry instanceof NotificationEntry){
                 final NotificationEntry notificationEntry = entry.getRepresentativeEntry();
                 if (notificationEntry.getParent() != null
-                        && notificationEntry.getParent().getSummary() != null
-                        && notificationEntry.getParent().getSummary() == notificationEntry) {
-                    representativeGroupEntry = notificationEntry.getParent();
+                        && notificationEntry.getParent() instanceof GroupEntry parent
+                        && parent.getSummary() != null
+                        && parent.getSummary() == notificationEntry) {
+                    representativeGroupEntry = parent;
                 }
             }
             return representativeGroupEntry != null &&
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/NotificationDismissibilityProvider.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/NotificationDismissibilityProvider.kt
index 53f2366..75bf38f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/NotificationDismissibilityProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/NotificationDismissibilityProvider.kt
@@ -20,6 +20,6 @@
 
 /** Keeps track of the dismissibility of Notifications currently handed over to the view layer. */
 interface NotificationDismissibilityProvider {
-    /** @return true if the given {NotificationEntry} can currently be dismissed by the user */
-    fun isDismissable(entry: NotificationEntry): Boolean
+    /** @return true if the given entry's key can currently be dismissed by the user */
+    fun isDismissable(entryKey: String): Boolean
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/NotificationDismissibilityProviderImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/NotificationDismissibilityProviderImpl.kt
index 9326d33..740442a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/NotificationDismissibilityProviderImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/NotificationDismissibilityProviderImpl.kt
@@ -39,8 +39,8 @@
     var nonDismissableEntryKeys = setOf<String>()
         private set
 
-    override fun isDismissable(entry: NotificationEntry): Boolean {
-        return entry.key !in nonDismissableEntryKeys
+    override fun isDismissable(entryKey: String): Boolean {
+        return entryKey !in nonDismissableEntryKeys
     }
 
     @Synchronized
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/SectionStyleProvider.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/SectionStyleProvider.kt
index ea9f295..f418bb6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/SectionStyleProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/provider/SectionStyleProvider.kt
@@ -17,7 +17,7 @@
 package com.android.systemui.statusbar.notification.collection.provider
 
 import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.SortBySectionTimeFlag
 import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection
 import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
@@ -53,7 +53,7 @@
      * Determine if the given entry is minimized.
      */
     @JvmOverloads
-    fun isMinimized(entry: ListEntry, ifNotInSection: Boolean = true): Boolean {
+    fun isMinimized(entry: PipelineEntry, ifNotInSection: Boolean = true): Boolean {
         val section = entry.section ?: return ifNotInSection
         return isMinimizedSection(section)
     }
@@ -77,7 +77,7 @@
      * Determine if the given entry is silent.
      */
     @JvmOverloads
-    fun isSilent(entry: ListEntry, ifNotInSection: Boolean = true): Boolean {
+    fun isSilent(entry: PipelineEntry, ifNotInSection: Boolean = true): Boolean {
         val section = entry.section ?: return ifNotInSection
         if (SortBySectionTimeFlag.isEnabled) {
             if (entry.section?.bucket == BUCKET_PEOPLE) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerImpl.java
index 16b98e2..c5ae875 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerImpl.java
@@ -25,10 +25,11 @@
 import com.android.systemui.dump.DumpManager;
 import com.android.systemui.statusbar.notification.collection.EntryAdapter;
 import com.android.systemui.statusbar.notification.collection.GroupEntry;
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotifPipeline;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeRenderListListener;
+import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 import com.android.systemui.statusbar.notification.shared.NotificationBundleUi;
 
 import java.io.PrintWriter;
@@ -81,7 +82,7 @@
         }
 
         final Set<NotificationEntry> renderingSummaries = new HashSet<>();
-        for (ListEntry entry : entries) {
+        for (PipelineEntry entry : entries) {
             if (entry instanceof GroupEntry) {
                 renderingSummaries.add(entry.getRepresentativeEntry());
             }
@@ -162,41 +163,38 @@
     @Override
     public boolean isGroupExpanded(EntryAdapter entry) {
         NotificationBundleUi.assertInNewMode();
-        return mExpandedCollections.contains(mGroupMembershipManager.getGroupRoot(entry));
+        ExpandableNotificationRow parent = entry.getRow().getNotificationParent();
+        return mExpandedCollections.contains(entry)
+                || (parent != null && mExpandedCollections.contains(parent.getEntryAdapter()));
     }
 
     @Override
-    public void setGroupExpanded(EntryAdapter entry, boolean expanded) {
+    public void setGroupExpanded(EntryAdapter groupRoot, boolean expanded) {
         NotificationBundleUi.assertInNewMode();
-        EntryAdapter groupParent = mGroupMembershipManager.getGroupRoot(entry);
-        if (!entry.isAttached()) {
+        if (!groupRoot.isAttached()) {
             if (expanded) {
                 Log.wtf(TAG, "Cannot expand group that is not attached");
-            } else {
-                // The entry is no longer attached, but we still want to make sure we don't have
-                // a stale expansion state.
-                groupParent = entry;
             }
         }
 
         boolean changed;
         if (expanded) {
-            changed = mExpandedCollections.add(groupParent);
+            changed = mExpandedCollections.add(groupRoot);
         } else {
-            changed = mExpandedCollections.remove(groupParent);
+            changed = mExpandedCollections.remove(groupRoot);
         }
 
         // Only notify listeners if something changed.
         if (changed) {
-            sendOnGroupExpandedChange(entry, expanded);
+            sendOnGroupExpandedChange(groupRoot, expanded);
         }
     }
 
     @Override
-    public boolean toggleGroupExpansion(EntryAdapter entry) {
+    public boolean toggleGroupExpansion(EntryAdapter groupRoot) {
         NotificationBundleUi.assertInNewMode();
-        setGroupExpanded(entry, !isGroupExpanded(entry));
-        return isGroupExpanded(entry);
+        setGroupExpanded(groupRoot, !isGroupExpanded(groupRoot));
+        return isGroupExpanded(groupRoot);
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupMembershipManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupMembershipManager.java
index 69267e5..86aa4a3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupMembershipManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupMembershipManager.java
@@ -22,6 +22,7 @@
 import com.android.systemui.statusbar.notification.collection.EntryAdapter;
 import com.android.systemui.statusbar.notification.collection.ListEntry;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 
 import java.util.List;
 
@@ -50,17 +51,6 @@
     NotificationEntry getGroupSummary(@NonNull NotificationEntry entry);
 
     /**
-     * Gets the EntryAdapter that is the nearest root of the collection of rows the given entry
-     * belongs to. If the given entry is a BundleEntry or an isolated child of a BundleEntry, the
-     * BundleEntry will be returned. If the given notification is a group summary NotificationEntry,
-     * or a child of a group summary, the summary NotificationEntry will be returned, even if that
-     * summary belongs to a BundleEntry. If the entry is a notification that does not belong to any
-     * group or bundle grouping, null will be returned.
-     */
-    @Nullable
-    EntryAdapter getGroupRoot(@NonNull EntryAdapter entry);
-
-    /**
      * @return whether a given notification is a child in a group
      */
     boolean isChildInGroup(@NonNull NotificationEntry entry);
@@ -78,5 +68,5 @@
      * @return list of the children
      */
     @Nullable
-    List<NotificationEntry> getChildren(@NonNull ListEntry summary);
+    List<NotificationEntry> getChildren(@NonNull PipelineEntry summary);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupMembershipManagerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupMembershipManagerImpl.java
index 80a9f8ad..aec0d70 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupMembershipManagerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupMembershipManagerImpl.java
@@ -24,7 +24,7 @@
 import com.android.systemui.dagger.SysUISingleton;
 import com.android.systemui.statusbar.notification.collection.EntryAdapter;
 import com.android.systemui.statusbar.notification.collection.GroupEntry;
-import com.android.systemui.statusbar.notification.collection.ListEntry;
+import com.android.systemui.statusbar.notification.collection.PipelineEntry;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.shared.NotificationBundleUi;
 
@@ -48,14 +48,19 @@
             // The entry is not attached, so it doesn't count.
             return false;
         }
+        PipelineEntry pipelineEntry = entry.getParent();
+        if (!(pipelineEntry instanceof GroupEntry groupEntry)) {
+            return false;
+        }
+
         // If entry is a summary, its parent is a GroupEntry with summary = entry.
-        return entry.getParent().getSummary() == entry;
+        return groupEntry.getSummary() == entry;
     }
 
     @Override
     public boolean isGroupRoot(@NonNull EntryAdapter entry) {
         NotificationBundleUi.assertInNewMode();
-        return entry == entry.getGroupRoot();
+        return entry.isGroupRoot();
     }
 
     @Nullable
@@ -65,14 +70,10 @@
         if (isTopLevelEntry(entry) || entry.getParent() == null) {
             return null;
         }
-        return entry.getParent().getSummary();
-    }
-
-    @Nullable
-    @Override
-    public EntryAdapter getGroupRoot(@NonNull EntryAdapter entry) {
-        NotificationBundleUi.assertInNewMode();
-        return entry.getGroupRoot();
+        if (entry.getParent() instanceof GroupEntry parent) {
+            return parent.getSummary();
+        }
+        return null;
     }
 
     @Override
@@ -86,13 +87,14 @@
     public boolean isChildInGroup(@NonNull EntryAdapter entry) {
         NotificationBundleUi.assertInNewMode();
         // An entry is a child if it's not a group root or top level entry, but it is attached.
-        return entry.isAttached() && entry != getGroupRoot(entry) && !entry.isTopLevelEntry();
+        return entry.isAttached() && !entry.isGroupRoot() && !entry.isTopLevelEntry();
     }
 
     @Nullable
     @Override
-    public List<NotificationEntry> getChildren(@NonNull ListEntry entry) {
+    public List<NotificationEntry> getChildren(@NonNull PipelineEntry entry) {
         NotificationBundleUi.assertInLegacyMode();
+
         if (entry instanceof GroupEntry) {
             return ((GroupEntry) entry).getChildren();
         }
@@ -100,8 +102,7 @@
         NotificationEntry representativeEntry = entry.getRepresentativeEntry();
         if (representativeEntry != null && isGroupSummary(representativeEntry)) {
             // maybe we were actually passed the summary
-            GroupEntry parent = representativeEntry.getParent();
-            if (parent != null) {
+            if (representativeEntry.getParent() instanceof GroupEntry parent) {
                 return parent.getChildren();
             }
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NodeSpecBuilder.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NodeSpecBuilder.kt
index 9fc4e40..e173194 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NodeSpecBuilder.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NodeSpecBuilder.kt
@@ -18,12 +18,12 @@
 
 import com.android.systemui.statusbar.notification.NotificationSectionsFeatureManager
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection
 import com.android.systemui.statusbar.notification.collection.provider.SectionHeaderVisibilityProvider
 import com.android.systemui.util.Compile
 import com.android.app.tracing.traceSection
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 
 /**
  * Converts a notif list (the output of the ShadeListBuilder) into a NodeSpec, an abstract
@@ -45,7 +45,7 @@
 
     fun buildNodeSpec(
         rootController: NodeController,
-        notifList: List<ListEntry>
+        notifList: List<PipelineEntry>
     ): NodeSpec = traceSection("NodeSpecBuilder.buildNodeSpec") {
         val root = NodeSpecImpl(null, rootController)
 
@@ -100,7 +100,7 @@
         return@traceSection root
     }
 
-    private fun buildNotifNode(parent: NodeSpec, entry: ListEntry): NodeSpec = when (entry) {
+    private fun buildNotifNode(parent: NodeSpec, entry: PipelineEntry): NodeSpec = when (entry) {
         is NotificationEntry -> NodeSpecImpl(parent, viewBarn.requireNodeController(entry))
         is GroupEntry ->
             NodeSpecImpl(parent, viewBarn.requireNodeController(checkNotNull(entry.summary)))
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NotifViewBarn.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NotifViewBarn.kt
index fd91d5a..56662f1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NotifViewBarn.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NotifViewBarn.kt
@@ -18,18 +18,18 @@
 
 import android.view.textclassifier.Log
 import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import javax.inject.Inject
 
 /**
- * The ViewBarn is just a map from [ListEntry] to an instance of a [NodeController].
+ * The ViewBarn is just a map from [PipelineEntry] to an instance of a [NodeController].
  */
 @SysUISingleton
 class NotifViewBarn @Inject constructor() {
     private val rowMap = mutableMapOf<String, NotifViewController>()
 
-    fun requireNodeController(entry: ListEntry): NodeController {
+    fun requireNodeController(entry: PipelineEntry): NodeController {
         if (DEBUG) {
             Log.d(TAG, "requireNodeController: ${entry.key}")
         }
@@ -50,14 +50,14 @@
         return rowMap[entry.key] ?: error("No view has been registered for entry: ${entry.key}")
     }
 
-    fun registerViewForEntry(entry: ListEntry, controller: NotifViewController) {
+    fun registerViewForEntry(entry: PipelineEntry, controller: NotifViewController) {
         if (DEBUG) {
             Log.d(TAG, "registerViewForEntry: ${entry.key}")
         }
         rowMap[entry.key] = controller
     }
 
-    fun removeViewForEntry(entry: ListEntry) {
+    fun removeViewForEntry(entry: PipelineEntry) {
         if (DEBUG) {
             Log.d(TAG, "removeViewForEntry: ${entry.key}")
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NotifViewRenderer.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NotifViewRenderer.kt
index 8284022..396d47e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NotifViewRenderer.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NotifViewRenderer.kt
@@ -17,7 +17,7 @@
 package com.android.systemui.statusbar.notification.collection.render
 
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 
 /**
@@ -34,7 +34,7 @@
      * also ensure that future calls to [getStackController], [getGroupController], and
      * [getRowController] will provide valid results.
      */
-    fun onRenderList(notifList: List<ListEntry>)
+    fun onRenderList(notifList: List<PipelineEntry>)
 
     /**
      * Provides an interface for the pipeline to update individual groups. This will be called at
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/RenderStageManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/RenderStageManager.kt
index 21e6837..93e844d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/RenderStageManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/RenderStageManager.kt
@@ -19,7 +19,7 @@
 import com.android.app.tracing.traceSection
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.PipelineDumpable
 import com.android.systemui.statusbar.notification.collection.PipelineDumper
@@ -46,7 +46,7 @@
         listBuilder.setOnRenderListListener(::onRenderList)
     }
 
-    private fun onRenderList(notifList: List<ListEntry>) {
+    private fun onRenderList(notifList: List<PipelineEntry>) {
         traceSection("RenderStageManager.onRenderList") {
             val viewRenderer = viewRenderer ?: return
             viewRenderer.onRenderList(notifList)
@@ -85,7 +85,7 @@
             dump("onAfterRenderEntryListeners", onAfterRenderEntryListeners)
         }
 
-    private fun dispatchOnAfterRenderList(entries: List<ListEntry>) {
+    private fun dispatchOnAfterRenderList(entries: List<PipelineEntry>) {
         traceSection("RenderStageManager.dispatchOnAfterRenderList") {
             onAfterRenderListListeners.forEach { listener -> listener.onAfterRenderList(entries) }
         }
@@ -93,7 +93,7 @@
 
     private fun dispatchOnAfterRenderGroups(
         viewRenderer: NotifViewRenderer,
-        entries: List<ListEntry>,
+        entries: List<PipelineEntry>,
     ) {
         traceSection("RenderStageManager.dispatchOnAfterRenderGroups") {
             if (onAfterRenderGroupListeners.isEmpty()) {
@@ -110,7 +110,7 @@
 
     private fun dispatchOnAfterRenderEntries(
         viewRenderer: NotifViewRenderer,
-        entries: List<ListEntry>,
+        entries: List<PipelineEntry>,
     ) {
         traceSection("RenderStageManager.dispatchOnAfterRenderEntries") {
             if (onAfterRenderEntryListeners.isEmpty()) {
@@ -129,7 +129,7 @@
      * Performs a forward, depth-first traversal of the list where the group's summary immediately
      * precedes the group's children.
      */
-    private inline fun List<ListEntry>.forEachNotificationEntry(
+    private inline fun List<PipelineEntry>.forEachNotificationEntry(
         action: (NotificationEntry) -> Unit
     ) {
         forEach { entry ->
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/ShadeViewManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/ShadeViewManager.kt
index 72316bf..9532d6d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/ShadeViewManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/ShadeViewManager.kt
@@ -22,7 +22,7 @@
 import com.android.systemui.shade.ShadeDisplayAware
 import com.android.systemui.statusbar.notification.NotificationSectionsFeatureManager
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.PipelineDumpable
 import com.android.systemui.statusbar.notification.collection.PipelineDumper
@@ -76,7 +76,7 @@
     private val viewRenderer =
         object : NotifViewRenderer {
 
-            override fun onRenderList(notifList: List<ListEntry>) {
+            override fun onRenderList(notifList: List<PipelineEntry>) {
                 traceSection("ShadeViewManager.onRenderList") {
                     viewDiffer.applySpec(specBuilder.buildNodeSpec(rootController, notifList))
                 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/data/repository/HeadsUpRepository.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/data/repository/HeadsUpRepository.kt
index 28e3995..222f94b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/data/repository/HeadsUpRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/data/repository/HeadsUpRepository.kt
@@ -40,6 +40,16 @@
     /** Set of currently active top-level heads up rows to be displayed. */
     val activeHeadsUpRows: Flow<Set<HeadsUpRowRepository>>
 
+    /** Whether the user is swiping on a heads up row */
+    val isTrackingHeadsUp: Flow<Boolean>
+
+    /** @return true if the actively managed heads up notifications contain an entry for this key */
+    fun isHeadsUpEntry(key: String): Boolean
+
+    /**
+     * set whether a HUN is currently animation out, to keep its view container visible during the
+     * animation
+     */
     fun setHeadsUpAnimatingAway(animatingAway: Boolean)
 
     /** Snooze the currently pinned HUN. */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationListInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationListInteractor.kt
index bde3c4d..adc049e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationListInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationListInteractor.kt
@@ -29,7 +29,7 @@
 import com.android.systemui.dagger.qualifiers.Main
 import com.android.systemui.statusbar.StatusBarIconView
 import com.android.systemui.statusbar.notification.collection.GroupEntry
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.provider.SectionStyleProvider
 import com.android.systemui.statusbar.notification.data.repository.ActiveNotificationListRepository
@@ -57,11 +57,11 @@
     /**
      * Sets the current list of rendered notification entries as displayed in the notification list.
      */
-    fun setRenderedList(entries: List<ListEntry>) {
+    fun setRenderedList(entries: List<PipelineEntry>) {
         traceSection("RenderNotificationListInteractor.setRenderedList") {
             repository.activeNotifications.update { existingModels ->
                 buildActiveNotificationsStore(existingModels, sectionStyleProvider, context) {
-                    entries.forEach(::addListEntry)
+                    entries.forEach(::addPipelineEntry)
                     setRankingsMap(entries)
                 }
             }
@@ -89,11 +89,11 @@
     fun build(): ActiveNotificationsStore = builder.build()
 
     /**
-     * Convert a [ListEntry] into [ActiveNotificationEntryModel]s, and add them to the
+     * Convert a [PipelineEntry] into [ActiveNotificationEntryModel]s, and add them to the
      * [ActiveNotificationsStore]. Special care is taken to avoid re-allocating models if the result
      * would be identical to an existing model (at the expense of additional computations).
      */
-    fun addListEntry(entry: ListEntry) {
+    fun addPipelineEntry(entry: PipelineEntry) {
         when (entry) {
             is GroupEntry -> {
                 entry.summary?.let { summary ->
@@ -116,11 +116,11 @@
         }
     }
 
-    fun setRankingsMap(entries: List<ListEntry>) {
+    fun setRankingsMap(entries: List<PipelineEntry>) {
         builder.setRankingsMap(flatMapToRankingsMap(entries))
     }
 
-    fun flatMapToRankingsMap(entries: List<ListEntry>): Map<String, Int> {
+    fun flatMapToRankingsMap(entries: List<PipelineEntry>): Map<String, Int> {
         val result = ArrayMap<String, Int>()
         for (entry in entries) {
             if (entry is NotificationEntry) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/AvalancheController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/AvalancheController.kt
index 867db8e..8eca166 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/AvalancheController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/AvalancheController.kt
@@ -403,9 +403,11 @@
                     debugRunnableLabelMap.remove(r)
                 }
             }
-            val dropList = listToDrop.joinToString("\n ") { getKey(it) }
-            headsUpManagerLogger.logDroppedHuns(dropList)
         }
+
+        val dropListStr = listToDrop.joinToString("\n ") { getKey(it) }
+        headsUpManagerLogger.logDroppedHuns(dropListStr)
+
         clearNext()
         showNow(headsUpEntryShowing!!, headsUpEntryShowingRunnableList)
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManager.kt
index 95234da..9728fcf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManager.kt
@@ -19,12 +19,16 @@
 import android.graphics.Region
 import com.android.systemui.Dumpable
 import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.statusbar.notification.collection.EntryAdapter
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
+import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
 import dagger.Binds
 import dagger.Module
 import java.io.PrintWriter
 import java.util.stream.Stream
 import javax.inject.Inject
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.StateFlow
 
 /**
  * A manager which handles heads up notifications which is a special mode where they simply peek
@@ -110,7 +114,7 @@
      * Returns the value of the tracking-heads-up flag. See the doc of {@code setTrackingHeadsUp} as
      * well.
      */
-    fun isTrackingHeadsUp(): Boolean
+    fun isTrackingHeadsUp(): StateFlow<Boolean>
 
     fun onExpandingFinished()
 
@@ -151,6 +155,12 @@
     fun setAnimationStateHandler(handler: AnimationStateHandler)
 
     /**
+    * Set an entry to be expanded and therefore stick in the heads up area if it's pinned until
+    * it's collapsed again.
+    */
+    fun setExpanded(key: String, row: ExpandableNotificationRow, expanded: Boolean)
+
+    /**
      * Set an entry to be expanded and therefore stick in the heads up area if it's pinned until
      * it's collapsed again.
      */
@@ -284,12 +294,12 @@
 
     override fun isHeadsUpAnimatingAwayValue() = false
 
+    override fun isTrackingHeadsUp(): StateFlow<Boolean> = MutableStateFlow(false)
+
     override fun isSnoozed(packageName: String) = false
 
     override fun isSticky(key: String?) = false
 
-    override fun isTrackingHeadsUp() = false
-
     override fun onExpandingFinished() {}
 
     override fun releaseAllImmediately() {}
@@ -308,6 +318,8 @@
 
     override fun setAnimationStateHandler(handler: AnimationStateHandler) {}
 
+    override fun setExpanded(key: String, row: ExpandableNotificationRow, expanded: Boolean) {}
+
     override fun setExpanded(entry: NotificationEntry, expanded: Boolean) {}
 
     override fun setGutsShown(entry: NotificationEntry, gutsShown: Boolean) {}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImpl.java
index 87b9bf8..7c5f3b5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImpl.java
@@ -135,6 +135,8 @@
             StateFlowKt.MutableStateFlow(new HashSet<>());
     private final MutableStateFlow<Boolean> mHeadsUpAnimatingAway =
             StateFlowKt.MutableStateFlow(false);
+    private final MutableStateFlow<Boolean> mTrackingHeadsUp =
+            StateFlowKt.MutableStateFlow(false);
     private final HashSet<String> mSwipedOutKeys = new HashSet<>();
     private final HashSet<NotificationEntry> mEntriesToRemoveAfterExpand = new HashSet<>();
     @VisibleForTesting
@@ -142,7 +144,6 @@
             = new ArraySet<>();
 
     private boolean mReleaseOnExpandFinish;
-    private boolean mTrackingHeadsUp;
     private boolean mIsShadeOrQsExpanded;
     private boolean mIsQsExpanded;
     private int mStatusBarState;
@@ -417,8 +418,8 @@
     }
 
     @Override
-    public void setTrackingHeadsUp(boolean trackingHeadsUp) {
-        mTrackingHeadsUp = trackingHeadsUp;
+    public void setTrackingHeadsUp(boolean isTrackingHeadsUp) {
+        mTrackingHeadsUp.setValue(isTrackingHeadsUp);
     }
 
     @Override
@@ -510,9 +511,7 @@
                 || !mAvalancheController.getWaitingEntryList().isEmpty();
     }
 
-    /**
-     * @return true if the notification is managed by this manager
-     */
+    @Override
     public boolean isHeadsUpEntry(@NonNull String key) {
         return mHeadsUpEntryMap.containsKey(key) || mAvalancheController.isWaiting(key);
     }
@@ -879,10 +878,8 @@
             ExpandableNotificationRow topRow = topEntry.getRow();
             if (topEntry.rowIsChildInGroup()) {
                 if (NotificationBundleUi.isEnabled()) {
-                    final EntryAdapter adapter = mGroupMembershipManager.getGroupRoot(
-                            topRow.getEntryAdapter());
-                    if (adapter != null) {
-                        topRow = adapter.getRow();
+                    if (topRow.getNotificationParent() != null) {
+                        topRow = topRow.getNotificationParent();
                     }
                 } else {
                     final NotificationEntry groupSummary =
@@ -1066,8 +1063,9 @@
         }
     }
 
+    @NonNull
     @Override
-    public boolean isTrackingHeadsUp() {
+    public StateFlow<Boolean> isTrackingHeadsUp() {
         return mTrackingHeadsUp;
     }
 
@@ -1093,7 +1091,23 @@
      * Set an entry to be expanded and therefore stick in the heads up area if it's pinned
      * until it's collapsed again.
      */
+    @Override
+    public void setExpanded(@NonNull String entryKey, @NonNull ExpandableNotificationRow row,
+            boolean expanded) {
+        NotificationBundleUi.assertInNewMode();
+        HeadsUpEntry headsUpEntry = getHeadsUpEntry(entryKey);
+        if (headsUpEntry != null && row.getPinnedStatus().isPinned()) {
+            headsUpEntry.setExpanded(expanded);
+        }
+    }
+
+    /**
+     * Set an entry to be expanded and therefore stick in the heads up area if it's pinned
+     * until it's collapsed again.
+     */
+    @Override
     public void setExpanded(@NonNull NotificationEntry entry, boolean expanded) {
+        NotificationBundleUi.assertInLegacyMode();
         HeadsUpEntry headsUpEntry = getHeadsUpEntry(entry.getKey());
         if (headsUpEntry != null && entry.isRowPinned()) {
             headsUpEntry.setExpanded(expanded);
@@ -1385,7 +1399,8 @@
                     mPostTime = Math.max(mPostTime, now);
                 }
             };
-            mAvalancheController.update(this, runnable, "updateEntry (updatePostTime)");
+            mAvalancheController.update(this, runnable, "updateEntry reason:"
+                    + reason + " updatePostTime:" + updatePostTime);
 
             if (isSticky()) {
                 cancelAutoRemovalCallbacks("updateEntry (sticky)");
@@ -1659,7 +1674,7 @@
                     mEntriesToRemoveWhenReorderingAllowed.add(entry);
                     mVisualStabilityProvider.addTemporaryReorderingAllowedListener(
                             mOnReorderingAllowedListener);
-                } else if (mTrackingHeadsUp) {
+                } else if (mTrackingHeadsUp.getValue()) {
                     mEntriesToRemoveAfterExpand.add(entry);
                     mLogger.logRemoveEntryAfterExpand(entry);
                 } else if (mVisualStabilityProvider.isReorderingAllowed()
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpTouchHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpTouchHelper.java
index 47e725c..95f07c4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpTouchHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpTouchHelper.java
@@ -141,7 +141,7 @@
                 if (mPickedChild != null && mTouchingHeadsUpView) {
                     // We may swallow this click if the heads up just came in.
                     if (mHeadsUpManager.shouldSwallowClick(
-                            mPickedChild.getEntry().getSbn().getKey())) {
+                            mPickedChild.getKey())) {
                         endMotion();
                         return true;
                     }
@@ -209,7 +209,7 @@
                     if (mPickedChild != null && mTouchingHeadsUpView) {
                         // We may swallow this click if the heads up just came in.
                         if (mHeadsUpManager.shouldSwallowClick(
-                                mPickedChild.getEntry().getSbn().getKey())) {
+                                mPickedChild.getKey())) {
                             endMotion();
                             setTrackingHeadsUp(false);
                             return true;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpUtil.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpUtil.java
index 40da232..e1cbdac 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpUtil.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpUtil.java
@@ -76,12 +76,7 @@
         }
 
         final ExpandableNotificationRow row = (ExpandableNotificationRow) view;
-        final NotificationEntry entry = row.getEntry();
-        if (entry == null) {
-            return "(null entry)";
-        }
-
-        final String key = entry.getKey();
+        final String key = row.getKey();
         if (key == null) {
             return "(null key)";
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/ConnectedDisplaysStatusBarNotificationIconViewStore.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/ConnectedDisplaysStatusBarNotificationIconViewStore.kt
index eb55856..5760b5f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/ConnectedDisplaysStatusBarNotificationIconViewStore.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/ConnectedDisplaysStatusBarNotificationIconViewStore.kt
@@ -16,6 +16,7 @@
 
 package com.android.systemui.statusbar.notification.icon.ui.viewbinder
 
+import android.util.Log
 import com.android.systemui.display.domain.interactor.DisplayWindowPropertiesInteractor
 import com.android.systemui.lifecycle.Activatable
 import com.android.systemui.statusbar.StatusBarIconView
@@ -61,9 +62,16 @@
         }
 
     override fun iconView(key: String): StatusBarIconView? {
-        val entry = notifCollection.getEntry(key) ?: return null
-        val displayWindowProperties =
-            displayWindowPropertiesInteractor.getForStatusBar(displayId) ?: return null
+        val entry = notifCollection.getEntry(key)
+        if (entry == null) {
+            Log.w(TAG, "No notification entry found for key: $key")
+            return null
+        }
+        val displayWindowProperties = displayWindowPropertiesInteractor.getForStatusBar(displayId)
+        if (displayWindowProperties == null) {
+            Log.w(TAG, "No display properties found for display id: $displayId")
+            return null
+        }
         return cachedIcons.computeIfAbsent(key) {
             val context = displayWindowProperties.context
             iconManager.createSbIconView(context, entry)
@@ -93,4 +101,8 @@
     interface Factory {
         fun create(displayId: Int): ConnectedDisplaysStatusBarNotificationIconViewStore
     }
+
+    companion object {
+        private const val TAG = "ConnectedDisplaysNotifIconViewStore"
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt
index c7548aa..5096894 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt
@@ -19,7 +19,7 @@
 import com.android.systemui.statusbar.NotificationLockscreenUserManager
 import com.android.systemui.statusbar.StatusBarState
 import com.android.systemui.statusbar.SysuiStatusBarStateController
-import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.PipelineEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider
 import com.android.systemui.statusbar.policy.KeyguardStateController
@@ -198,7 +198,7 @@
             else -> false
         }
 
-    private fun shouldHideIfEntrySilent(entry: ListEntry): Boolean =
+    private fun shouldHideIfEntrySilent(entry: PipelineEntry): Boolean =
         when {
             // Show if explicitly high priority (not hidden)
             highPriorityProvider.isExplicitlyHighPriority(entry) -> false
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationRoundnessLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationRoundnessLogger.kt
index 0e1f66f..48095cc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationRoundnessLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationRoundnessLogger.kt
@@ -41,7 +41,7 @@
             TAG_ROUNDNESS,
             INFO,
             {
-                str1 = (view as? ExpandableNotificationRow)?.entry?.key
+                str1 = (view as? ExpandableNotificationRow)?.key
                 bool1 = isFirstInSection
                 bool2 = isLastInSection
                 bool3 = topChanged
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleNotificationIdentifier.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleNotificationIdentifier.kt
index f755dbb..002230e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleNotificationIdentifier.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleNotificationIdentifier.kt
@@ -20,6 +20,7 @@
 import android.service.notification.NotificationListenerService.Ranking
 import android.service.notification.StatusBarNotification
 import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.statusbar.notification.collection.GroupEntry
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
 import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager
 import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier.Companion.PeopleNotificationType
@@ -117,8 +118,8 @@
             if (!entry.sbn.notification.isGroupSummary) {
                 return TYPE_NON_PERSON;
             }
-
-            return getPeopleTypeForChildList(entry.parent?.children)
+            val parent = entry.parent as? GroupEntry ?: return TYPE_NON_PERSON
+            return getPeopleTypeForChildList(parent.children)
         } else {
             if (!groupManager.isGroupSummary(entry)) {
                 return TYPE_NON_PERSON
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/AODPromotedNotification.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/AODPromotedNotification.kt
index 9aa5a2e..7959e99 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/AODPromotedNotification.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/AODPromotedNotification.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar.notification.promoted
 
 import android.app.Flags
+import android.app.Flags.notificationsRedesignTemplates
 import android.app.Notification
 import android.graphics.PorterDuff
 import android.view.LayoutInflater
@@ -166,7 +167,10 @@
     private val closeButton: View? = root.findViewById(R.id.close_button)
     private val conversationIconBadge: View? = root.findViewById(R.id.conversation_icon_badge)
     private val conversationIcon: CachingIconView? = root.findViewById(R.id.conversation_icon)
-    private val conversationText: TextView? = root.findViewById(R.id.conversation_text)
+    private val conversationText: TextView? =
+        root.findViewById(
+            if (notificationsRedesignTemplates()) R.id.title else R.id.conversation_text
+        )
     private val expandButton: NotificationExpandButton? = root.findViewById(R.id.expand_button)
     private val headerText: TextView? = root.findViewById(R.id.header_text)
     private val headerTextDivider: View? = root.findViewById(R.id.header_text_divider)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java
index b077327..4ed9dce 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java
@@ -16,8 +16,10 @@
 
 package com.android.systemui.statusbar.notification.row;
 
+import static com.android.systemui.Flags.notificationAppearNonlinear;
 import static com.android.systemui.Flags.notificationBackgroundTintOptimization;
 import static com.android.systemui.Flags.notificationRowTransparency;
+import static com.android.systemui.Flags.physicalNotificationMovement;
 import static com.android.systemui.statusbar.notification.row.ExpandableView.ClipSide.BOTTOM;
 import static com.android.systemui.statusbar.notification.row.ExpandableView.ClipSide.TOP;
 
@@ -71,7 +73,8 @@
      * #ALPHA_APPEAR_START_FRACTION.
      */
 
-    private static final float ALPHA_APPEAR_START_FRACTION = .7f;
+    private static final float ALPHA_APPEAR_START_FRACTION =
+            notificationAppearNonlinear() ? .55f : .7f;
     /**
      * The content should show fully with progress at #ALPHA_APPEAR_END_FRACTION
      * The start of the animation is at #ALPHA_APPEAR_START_FRACTION
@@ -111,6 +114,7 @@
     private float mOverrideAmount;
     private boolean mShadowHidden;
     private boolean mIsHeadsUpAnimation;
+    private boolean mIsHeadsUpCycling;
     /* In order to track headsup longpress coorindate. */
     protected Point mTargetPoint;
     private boolean mDismissed;
@@ -349,10 +353,12 @@
 
     @Override
     public long performRemoveAnimation(long duration, long delay, float translationDirection,
-            boolean isHeadsUpAnimation, Runnable onStartedRunnable, Runnable onFinishedRunnable,
-            AnimatorListenerAdapter animationListener, ClipSide clipSide) {
+            boolean isHeadsUpAnimation, boolean isHeadsUpCycling, Runnable onStartedRunnable,
+            Runnable onFinishedRunnable, AnimatorListenerAdapter animationListener,
+            ClipSide clipSide) {
         enableAppearDrawing(true);
         mIsHeadsUpAnimation = isHeadsUpAnimation;
+        mIsHeadsUpCycling = isHeadsUpCycling;
         if (mDrawingAppearAnimation) {
             startAppearAnimation(false /* isAppearing */, translationDirection,
                     delay, duration, onStartedRunnable, onFinishedRunnable, animationListener,
@@ -370,9 +376,10 @@
 
     @Override
     public void performAddAnimation(long delay, long duration, boolean isHeadsUpAppear,
-            Runnable onFinishRunnable) {
+            boolean isHeadsUpCycling, Runnable onFinishRunnable) {
         enableAppearDrawing(true);
         mIsHeadsUpAnimation = isHeadsUpAppear;
+        mIsHeadsUpCycling = isHeadsUpCycling;
         if (mDrawingAppearAnimation) {
             startAppearAnimation(true /* isAppearing */, isHeadsUpAppear ? 0.0f : -1.0f, delay,
                     duration, null, null, null, ClipSide.BOTTOM);
@@ -404,14 +411,14 @@
             targetValue = 0.0f;
         }
 
-        if (NotificationHeadsUpCycling.isEnabled()) {
-            // TODO(b/316404716): add avalanche filtering
+        if (NotificationHeadsUpCycling.isEnabled() && !useNonLinearAnimation()) {
             mCurrentAppearInterpolator = Interpolators.LINEAR;
         }
 
         mAppearAnimator = ValueAnimator.ofFloat(mAppearAnimationFraction,
                 targetValue);
-        mAppearAnimator.setInterpolator(mCurrentAppearInterpolator);
+        mAppearAnimator.setInterpolator(
+                useNonLinearAnimation() ? Interpolators.LINEAR : mCurrentAppearInterpolator);
         mAppearAnimator.setDuration(
                 (long) (duration * Math.abs(mAppearAnimationFraction - targetValue)));
         mAppearAnimator.addUpdateListener(animation -> {
@@ -530,7 +537,13 @@
      * @param clipSide Which side if view we want to clip from
      */
     private void updateAppearRect(ClipSide clipSide) {
-        float interpolatedFraction = mAppearAnimationFraction;
+        float interpolatedFraction;
+        if (useNonLinearAnimation()) {
+            interpolatedFraction = mCurrentAppearInterpolator.getInterpolation(
+                    mAppearAnimationFraction);
+        } else {
+            interpolatedFraction = mAppearAnimationFraction;
+        }
         mAppearAnimationTranslation = (1.0f - interpolatedFraction) * mAnimationTranslationY;
         final int fullHeight = getActualHeight();
         float height = fullHeight * interpolatedFraction;
@@ -558,6 +571,11 @@
         }
     }
 
+    private boolean useNonLinearAnimation() {
+        return notificationAppearNonlinear() && (!mIsHeadsUpCycling
+                || physicalNotificationMovement());
+    }
+
     private void updateAppearRect() {
         updateAppearRect(ClipSide.BOTTOM);
     }
@@ -567,7 +585,7 @@
                 mAppearAnimationFraction,
                 ALPHA_APPEAR_START_FRACTION,
                 ALPHA_APPEAR_END_FRACTION,
-                Interpolators.ALPHA_IN
+                notificationAppearNonlinear() ? mCurrentAppearInterpolator : Interpolators.ALPHA_IN
         );
     }
 
@@ -813,6 +831,7 @@
         pw.print("mDrawingAppearAnimation", mDrawingAppearAnimation);
         pw.print("mAppearAnimationFraction", mAppearAnimationFraction);
         pw.print("mIsHeadsUpAnimation", mIsHeadsUpAnimation);
+        pw.print("mIsHeadsUpCycling", mIsHeadsUpCycling);
         pw.print("mTargetPoint", mTargetPoint);
         pw.println();
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ChannelEditorDialogController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ChannelEditorDialogController.kt
index 6bfc9f0..4bd6053 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ChannelEditorDialogController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ChannelEditorDialogController.kt
@@ -21,7 +21,6 @@
 import android.app.NotificationChannel
 import android.app.NotificationChannel.DEFAULT_CHANNEL_ID
 import android.app.NotificationChannelGroup
-import android.app.NotificationManager.IMPORTANCE_NONE
 import android.app.NotificationManager.Importance
 import android.content.Context
 import android.graphics.Color
@@ -40,7 +39,7 @@
 import com.android.internal.annotations.VisibleForTesting
 import com.android.systemui.res.R
 import com.android.systemui.dagger.SysUISingleton
-import com.android.systemui.shade.ShadeDisplayAware
+import com.android.systemui.shade.domain.interactor.ShadeDialogContextInteractor
 import javax.inject.Inject
 
 private const val TAG = "ChannelDialogController"
@@ -59,9 +58,9 @@
  */
 @SysUISingleton
 class ChannelEditorDialogController @Inject constructor(
-    @ShadeDisplayAware private val context: Context,
+    private val shadeDialogContextInteractor: ShadeDialogContextInteractor,
     private val noMan: INotificationManager,
-    private val dialogBuilder: ChannelEditorDialog.Builder
+    private val dialogBuilder: ChannelEditorDialog.Builder,
 ) {
 
     private var prepared = false
@@ -272,7 +271,7 @@
     }
 
     private fun initDialog() {
-        dialogBuilder.setContext(context)
+        dialogBuilder.setContext(shadeDialogContextInteractor.context)
         dialog = dialogBuilder.build()
 
         dialog.window?.requestFeature(Window.FEATURE_NO_TITLE)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
index 473460b..6134d1d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
@@ -270,6 +270,7 @@
     private NotificationContentView[] mLayouts;
     private ExpandableNotificationRowLogger mLogger;
     private String mLoggingKey;
+    private String mKey;
     private NotificationGuts mGuts;
     private NotificationEntry mEntry;
     private EntryAdapter mEntryAdapter;
@@ -404,17 +405,25 @@
                 : mGroupMembershipManager.isGroupSummary(mEntry);
         if (!shouldShowPublic() && (!mIsMinimized || isExpanded()) && isGroupRoot) {
             mGroupExpansionChanging = true;
-            final boolean wasExpanded = NotificationBundleUi.isEnabled()
-                    ? mGroupExpansionManager.isGroupExpanded(mEntryAdapter)
-                    : mGroupExpansionManager.isGroupExpanded(mEntry);
-            boolean nowExpanded = NotificationBundleUi.isEnabled()
-                    ? mGroupExpansionManager.toggleGroupExpansion(mEntryAdapter)
-                    : mGroupExpansionManager.toggleGroupExpansion(mEntry);
-            mOnExpandClickListener.onExpandClicked(mEntry, v, nowExpanded);
-            if (shouldLogExpandClickMetric) {
-                mMetricsLogger.action(MetricsEvent.ACTION_NOTIFICATION_GROUP_EXPANDER, nowExpanded);
+            if (NotificationBundleUi.isEnabled()) {
+                final boolean wasExpanded =  mGroupExpansionManager.isGroupExpanded(mEntryAdapter);
+                boolean nowExpanded = mGroupExpansionManager.toggleGroupExpansion(mEntryAdapter);
+                mOnExpandClickListener.onExpandClicked(this, mEntryAdapter, nowExpanded);
+                if (shouldLogExpandClickMetric) {
+                    mMetricsLogger.action(
+                            MetricsEvent.ACTION_NOTIFICATION_GROUP_EXPANDER, nowExpanded);
+                }
+                onExpansionChanged(true /* userAction */, wasExpanded);
+            } else {
+                final boolean wasExpanded = mGroupExpansionManager.isGroupExpanded(mEntry);
+                boolean nowExpanded = mGroupExpansionManager.toggleGroupExpansion(mEntry);
+                mOnExpandClickListener.onExpandClicked(mEntry, v, nowExpanded);
+                if (shouldLogExpandClickMetric) {
+                    mMetricsLogger.action(
+                            MetricsEvent.ACTION_NOTIFICATION_GROUP_EXPANDER, nowExpanded);
+                }
+                onExpansionChanged(true /* userAction */, wasExpanded);
             }
-            onExpansionChanged(true /* userAction */, wasExpanded);
         } else if (mEnableNonGroupedNotificationExpand) {
             if (v.isAccessibilityFocused()) {
                 mPrivateLayout.setFocusOnVisibilityChange();
@@ -435,7 +444,11 @@
             }
 
             notifyHeightChanged(/* needsAnimation= */ true);
-            mOnExpandClickListener.onExpandClicked(mEntry, v, nowExpanded);
+            if (NotificationBundleUi.isEnabled()) {
+                mOnExpandClickListener.onExpandClicked(this, mEntryAdapter, nowExpanded);
+            } else {
+                mOnExpandClickListener.onExpandClicked(mEntry, v, nowExpanded);
+            }
             if (shouldLogExpandClickMetric) {
                 mMetricsLogger.action(MetricsEvent.ACTION_NOTIFICATION_EXPANDER, nowExpanded);
             }
@@ -535,6 +548,14 @@
         return mLoggingKey;
     }
 
+    public String getKey() {
+        if (NotificationBundleUi.isEnabled()) {
+            return mKey;
+        } else {
+            return mEntry.getKey();
+        }
+    }
+
     /**
      * Sets animations running in the layouts of this row, including public, private, and children.
      *
@@ -1224,7 +1245,7 @@
      */
     public void collectVisibleLocations(Map<String, Integer> locationsMap) {
         if (getVisibility() == View.VISIBLE) {
-            locationsMap.put(getEntry().getKey(), getViewState().location);
+            locationsMap.put(getKey(), getViewState().location);
             if (mChildrenContainer != null) {
                 List<ExpandableNotificationRow> children = mChildrenContainer.getAttachedChildren();
                 for (int i = 0; i < children.size(); i++) {
@@ -2136,6 +2157,7 @@
             mMenuRow.setAppName(mAppName);
         }
         mLogger = logger;
+        mKey = notificationKey;
         mLoggingKey = logKey(notificationKey);
         mBypassController = bypassController;
         mGroupMembershipManager = groupMembershipManager;
@@ -2182,7 +2204,7 @@
                     R.dimen.notification_min_height);
         }
         mMaxSmallHeightWithSummarization = NotificationUtils.getFontScaledHeight(mContext,
-                com.android.internal.R.dimen.notification_collapsed_height_with_summarization);
+                com.android.internal.R.dimen.notification_min_height);
         mMaxExpandedHeight = NotificationUtils.getFontScaledHeight(mContext,
                 R.dimen.notification_max_height);
         mMaxExpandedHeightForPromotedOngoing = NotificationUtils.getFontScaledHeight(mContext,
@@ -2946,7 +2968,9 @@
                 && !mChildrenContainer.showingAsLowPriority()) {
             final boolean wasExpanded = isGroupExpanded();
             if (NotificationBundleUi.isEnabled()) {
-                mGroupExpansionManager.setGroupExpanded(mEntryAdapter, userExpanded);
+                if (mEntryAdapter.isGroupRoot()) {
+                    mGroupExpansionManager.setGroupExpanded(mEntryAdapter, userExpanded);
+                }
             } else {
                 mGroupExpansionManager.setGroupExpanded(mEntry, userExpanded);
             }
@@ -3416,7 +3440,7 @@
     }
 
     private boolean canEntryBeDismissed() {
-        return mDismissibilityProvider.isDismissable(mEntry);
+        return mDismissibilityProvider.isDismissable(getKey());
     }
 
     /**
@@ -3440,9 +3464,9 @@
     public void makeActionsVisibile() {
         setUserExpanded(true, true);
         if (isChildInGroup()) {
-            if (NotificationBundleUi.isEnabled()) {
-                mGroupExpansionManager.setGroupExpanded(mEntryAdapter, true);
-            } else {
+            if (!NotificationBundleUi.isEnabled()) {
+                // this is only called if row.getParent() instanceof NotificationStackScrollLayout,
+                // so there is never a group to expand
                 mGroupExpansionManager.setGroupExpanded(mEntry, true);
             }
         }
@@ -3494,20 +3518,17 @@
 
     @Override
     public void performAddAnimation(long delay, long duration, boolean isHeadsUpAppear,
-            Runnable onFinishRunnable) {
+            boolean isHeadsUpCycling, Runnable onFinishRunnable) {
         mLogger.logStartAppearAnimation(mLoggingKey, /* isAppear = */ true);
-        super.performAddAnimation(delay, duration, isHeadsUpAppear, onFinishRunnable);
+        super.performAddAnimation(delay, duration, isHeadsUpAppear, isHeadsUpCycling,
+                onFinishRunnable);
     }
 
     @Override
-    public long performRemoveAnimation(
-            long duration,
-            long delay,
-            float translationDirection,
-            boolean isHeadsUpAnimation,
-            Runnable onStartedRunnable,
-            Runnable onFinishedRunnable,
-            AnimatorListenerAdapter animationListener, ClipSide clipSide) {
+    public long performRemoveAnimation(long duration, long delay, float translationDirection,
+            boolean isHeadsUpAnimation, boolean isHeadsUpCycling, Runnable onStartedRunnable,
+            Runnable onFinishedRunnable, AnimatorListenerAdapter animationListener,
+            ClipSide clipSide) {
         mLogger.logStartAppearAnimation(mLoggingKey, /* isAppear = */ false);
         if (mMenuRow != null && mMenuRow.isMenuVisible()) {
             Animator anim = getTranslateViewAnimator(0f, null /* listener */);
@@ -3522,9 +3543,9 @@
 
                     @Override
                     public void onAnimationEnd(Animator animation) {
-                        ExpandableNotificationRow.super.performRemoveAnimation(
-                                duration, delay, translationDirection, isHeadsUpAnimation,
-                                null, onFinishedRunnable, animationListener, ClipSide.BOTTOM);
+                        ExpandableNotificationRow.super.performRemoveAnimation(duration, delay,
+                                translationDirection, isHeadsUpAnimation, isHeadsUpCycling, null,
+                                onFinishedRunnable, animationListener, ClipSide.BOTTOM);
                     }
                 });
                 anim.start();
@@ -3532,8 +3553,8 @@
             }
         }
         return super.performRemoveAnimation(duration, delay, translationDirection,
-                isHeadsUpAnimation, onStartedRunnable, onFinishedRunnable, animationListener,
-                clipSide);
+                isHeadsUpAnimation, isHeadsUpCycling, onStartedRunnable, onFinishedRunnable,
+                animationListener, clipSide);
     }
 
     @Override
@@ -3731,7 +3752,7 @@
         if (!ignoreTemporaryStates && mGuts != null && mGuts.isExposed()) {
             return mGuts.getIntrinsicHeight();
         } else if (!ignoreTemporaryStates && canShowHeadsUp() && mIsHeadsUp
-                && mHeadsUpManager.isTrackingHeadsUp()) {
+                && mHeadsUpManager.isTrackingHeadsUp().getValue()) {
             return getPinnedHeadsUpHeight(false /* atLeastMinHeight */);
         } else if (mIsSummaryWithChildren && !isGroupExpanded() && !shouldShowPublic()) {
             return mChildrenContainer.getMinHeight();
@@ -4026,6 +4047,9 @@
 
     public interface OnExpandClickListener {
         void onExpandClicked(NotificationEntry clickedEntry, View clickedView, boolean nowExpanded);
+
+        void onExpandClicked(ExpandableNotificationRow row, EntryAdapter clickedEntry,
+                boolean nowExpanded);
     }
 
     @Override
@@ -4265,6 +4289,7 @@
             pw.print(", isPinned: " + isPinned());
             pw.print(", expandedWhenPinned: " + mExpandedWhenPinned);
             pw.print(", isMinimized: " + mIsMinimized);
+            pw.print(", isAboveShelf: " + isAboveShelf());
 
             pw.println();
             if (NotificationContentView.INCLUDE_HEIGHTS_TO_DUMP) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableView.java
index da664f8..292f74a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableView.java
@@ -467,7 +467,8 @@
      *                             remove animation should be performed upwards,
      *                             such that the  child appears to be going away to the top. 1
      *                             Should mean the opposite.
-     * @param isHeadsUpAnimation   Is this a headsUp animation.
+     * @param isHeadsUpAnimation   Is this a headsUp animation
+     * @param isHeadsUpCycling     Is this the cycling heads up animation
      * @param onFinishedRunnable   A runnable which should be run when the animation is finished.
      * @param animationListener    An animation listener to add to the animation.
      * @return The additional delay, in milliseconds, that this view needs to add before the
@@ -475,7 +476,7 @@
      */
     public abstract long performRemoveAnimation(long duration,
             long delay, float translationDirection, boolean isHeadsUpAnimation,
-            Runnable onStartedRunnable,
+            boolean isHeadsUpCycling, Runnable onStartedRunnable,
             Runnable onFinishedRunnable,
             AnimatorListenerAdapter animationListener, ClipSide clipSide);
 
@@ -485,11 +486,12 @@
     }
 
     public void performAddAnimation(long delay, long duration, boolean isHeadsUpAppear) {
-        performAddAnimation(delay, duration, isHeadsUpAppear, null);
+        performAddAnimation(delay, duration, isHeadsUpAppear, false /* isHeadsUpCycling */,
+                null);
     }
 
     public abstract void performAddAnimation(long delay, long duration, boolean isHeadsUpAppear,
-            Runnable onEndRunnable);
+            boolean isHeadsUpCycling, Runnable onEndRunnable);
 
     public int getPinnedHeadsUpHeight() {
         return getIntrinsicHeight();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java
index c31f4ad..7444679 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java
@@ -56,6 +56,7 @@
 import com.android.systemui.statusbar.notification.ConversationNotificationProcessor;
 import com.android.systemui.statusbar.notification.InflationException;
 import com.android.systemui.statusbar.notification.NmSummarizationUiFlag;
+import com.android.systemui.statusbar.notification.NotificationUtils;
 import com.android.systemui.statusbar.notification.collection.EntryAdapter;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.promoted.PromotedNotificationContentExtractor;
@@ -141,11 +142,11 @@
             // We don't want to reinflate anything for removed notifications. Otherwise views might
             // be readded to the stack, leading to leaks. This may happen with low-priority groups
             // where the removal of already removed children can lead to a reinflation.
-            mLogger.logNotBindingRowWasRemoved(entry);
+            mLogger.logNotBindingRowWasRemoved(row.getLoggingKey());
             return;
         }
 
-        mLogger.logBinding(entry, contentToBind);
+        mLogger.logBinding(row.getLoggingKey(), contentToBind);
 
         StatusBarNotification sbn = entry.getSbn();
 
@@ -283,7 +284,7 @@
             @NonNull ExpandableNotificationRow row) {
         final boolean abortedTask = entry.abortTask();
         if (abortedTask) {
-            mLogger.logCancelBindAbortedTask(entry);
+            mLogger.logCancelBindAbortedTask(row.getLoggingKey());
         }
         return abortedTask;
     }
@@ -293,7 +294,7 @@
             @NonNull NotificationEntry entry,
             @NonNull ExpandableNotificationRow row,
             @InflationFlag int contentToUnbind) {
-        mLogger.logUnbinding(entry, contentToUnbind);
+        mLogger.logUnbinding(row.getLoggingKey(), contentToUnbind);
         int curFlag = 1;
         while (contentToUnbind != 0) {
             if ((contentToUnbind & curFlag) != 0) {
@@ -410,18 +411,19 @@
                 && result.newExpandedView != null;
         boolean inflateHeadsUp = (reInflateFlags & FLAG_CONTENT_VIEW_HEADS_UP) != 0
                 && result.newHeadsUpView != null;
+        String logKey = NotificationUtils.logKey(entry);
         if (inflateContracted || inflateExpanded || inflateHeadsUp) {
-            logger.logAsyncTaskProgress(entry, "inflating contracted smart reply state");
+            logger.logAsyncTaskProgress(logKey, "inflating contracted smart reply state");
             result.inflatedSmartReplyState = inflater.inflateSmartReplyState(entry);
         }
         if (inflateExpanded) {
-            logger.logAsyncTaskProgress(entry, "inflating expanded smart reply state");
+            logger.logAsyncTaskProgress(logKey, "inflating expanded smart reply state");
             result.expandedInflatedSmartReplies = inflater.inflateSmartReplyViewHolder(
                     context, packageContext, entry, previousSmartReplyState,
                     result.inflatedSmartReplyState);
         }
         if (inflateHeadsUp) {
-            logger.logAsyncTaskProgress(entry, "inflating heads up smart reply state");
+            logger.logAsyncTaskProgress(logKey, "inflating heads up smart reply state");
             result.headsUpInflatedSmartReplies = inflater.inflateSmartReplyViewHolder(
                     context, packageContext, entry, previousSmartReplyState,
                     result.inflatedSmartReplyState);
@@ -438,23 +440,21 @@
             NotificationRowContentBinderLogger logger) {
         return TraceUtils.trace("NotificationContentInflater.createRemoteViews", () -> {
             InflationProgress result = new InflationProgress();
-            final NotificationEntry entryForLogging = row.getEntry();
-
             // create an image inflater
             result.mRowImageInflater = RowImageInflater.newInstance(row.mImageModelIndex);
 
             if ((reInflateFlags & FLAG_CONTENT_VIEW_CONTRACTED) != 0) {
-                logger.logAsyncTaskProgress(entryForLogging, "creating contracted remote view");
+                logger.logAsyncTaskProgress(row.getLoggingKey(), "creating contracted remote view");
                 result.newContentView = createContentView(builder, bindParams.isMinimized);
             }
 
             if ((reInflateFlags & FLAG_CONTENT_VIEW_EXPANDED) != 0) {
-                logger.logAsyncTaskProgress(entryForLogging, "creating expanded remote view");
+                logger.logAsyncTaskProgress(row.getLoggingKey(), "creating expanded remote view");
                 result.newExpandedView = createExpandedView(builder, bindParams.isMinimized);
             }
 
             if ((reInflateFlags & FLAG_CONTENT_VIEW_HEADS_UP) != 0) {
-                logger.logAsyncTaskProgress(entryForLogging, "creating heads up remote view");
+                logger.logAsyncTaskProgress(row.getLoggingKey(), "creating heads up remote view");
                 final boolean isHeadsUpCompact = headsUpStyleProvider.shouldApplyCompactStyle();
                 if (isHeadsUpCompact) {
                     result.newHeadsUpView = builder.createCompactHeadsUpContentView();
@@ -464,7 +464,7 @@
             }
 
             if ((reInflateFlags & FLAG_CONTENT_VIEW_PUBLIC) != 0) {
-                logger.logAsyncTaskProgress(entryForLogging, "creating public remote view");
+                logger.logAsyncTaskProgress(row.getLoggingKey(), "creating public remote view");
                 if (LockscreenOtpRedaction.isEnabled()
                         && bindParams.redactionType == REDACTION_TYPE_SENSITIVE_CONTENT) {
                     result.newPublicView = createSensitiveContentMessageNotification(
@@ -477,13 +477,13 @@
 
             if (AsyncGroupHeaderViewInflation.isEnabled()) {
                 if ((reInflateFlags & FLAG_GROUP_SUMMARY_HEADER) != 0) {
-                    logger.logAsyncTaskProgress(entryForLogging,
+                    logger.logAsyncTaskProgress(row.getLoggingKey(),
                             "creating group summary remote view");
                     result.mNewGroupHeaderView = builder.makeNotificationGroupHeader();
                 }
 
                 if ((reInflateFlags & FLAG_LOW_PRIORITY_GROUP_SUMMARY_HEADER) != 0) {
-                    logger.logAsyncTaskProgress(entryForLogging,
+                    logger.logAsyncTaskProgress(row.getLoggingKey(),
                             "creating low-priority group summary remote view");
                     result.mNewMinimizedGroupHeaderView =
                             builder.makeLowPriorityContentView(true /* useRegularSubtext */);
@@ -577,6 +577,7 @@
             @Nullable InflationCallback callback,
             NotificationRowContentBinderLogger logger) {
         Trace.beginAsyncSection(APPLY_TRACE_METHOD, System.identityHashCode(row));
+        String logKey = NotificationUtils.logKey(entry);
 
         NotificationContentView privateLayout = row.getPrivateLayout();
         NotificationContentView publicLayout = row.getPublicLayout();
@@ -590,7 +591,7 @@
             ApplyCallback applyCallback = new ApplyCallback() {
                 @Override
                 public void setResultView(View v) {
-                    logger.logAsyncTaskProgress(entry, "contracted view applied");
+                    logger.logAsyncTaskProgress(logKey, "contracted view applied");
                     result.inflatedContentView = v;
                 }
 
@@ -599,7 +600,7 @@
                     return result.newContentView;
                 }
             };
-            logger.logAsyncTaskProgress(entry, "applying contracted view");
+            logger.logAsyncTaskProgress(logKey, "applying contracted view");
             applyRemoteView(inflationExecutor, inflateSynchronously, isMinimized, result,
                     reInflateFlags, flag,
                     remoteViewCache, entry, row, isNewView, remoteViewClickHandler, callback,
@@ -618,7 +619,7 @@
                 ApplyCallback applyCallback = new ApplyCallback() {
                     @Override
                     public void setResultView(View v) {
-                        logger.logAsyncTaskProgress(entry, "expanded view applied");
+                        logger.logAsyncTaskProgress(logKey, "expanded view applied");
                         result.inflatedExpandedView = v;
                     }
 
@@ -627,7 +628,7 @@
                         return result.newExpandedView;
                     }
                 };
-                logger.logAsyncTaskProgress(entry, "applying expanded view");
+                logger.logAsyncTaskProgress(logKey, "applying expanded view");
                 applyRemoteView(inflationExecutor, inflateSynchronously, isMinimized, result,
                         reInflateFlags,
                         flag, remoteViewCache, entry, row, isNewView, remoteViewClickHandler,
@@ -646,7 +647,7 @@
                 ApplyCallback applyCallback = new ApplyCallback() {
                     @Override
                     public void setResultView(View v) {
-                        logger.logAsyncTaskProgress(entry, "heads up view applied");
+                        logger.logAsyncTaskProgress(logKey, "heads up view applied");
                         result.inflatedHeadsUpView = v;
                     }
 
@@ -655,7 +656,7 @@
                         return result.newHeadsUpView;
                     }
                 };
-                logger.logAsyncTaskProgress(entry, "applying heads up view");
+                logger.logAsyncTaskProgress(logKey, "applying heads up view");
                 applyRemoteView(inflationExecutor, inflateSynchronously, isMinimized,
                         result, reInflateFlags,
                         flag, remoteViewCache, entry, row, isNewView, remoteViewClickHandler,
@@ -673,7 +674,7 @@
             ApplyCallback applyCallback = new ApplyCallback() {
                 @Override
                 public void setResultView(View v) {
-                    logger.logAsyncTaskProgress(entry, "public view applied");
+                    logger.logAsyncTaskProgress(logKey, "public view applied");
                     result.inflatedPublicView = v;
                 }
 
@@ -682,7 +683,7 @@
                     return result.newPublicView;
                 }
             };
-            logger.logAsyncTaskProgress(entry, "applying public view");
+            logger.logAsyncTaskProgress(logKey, "applying public view");
             applyRemoteView(inflationExecutor, inflateSynchronously, isMinimized,
                     result, reInflateFlags, flag,
                     remoteViewCache, entry, row, isNewView, remoteViewClickHandler, callback,
@@ -702,7 +703,7 @@
                 ApplyCallback applyCallback = new ApplyCallback() {
                     @Override
                     public void setResultView(View v) {
-                        logger.logAsyncTaskProgress(entry, "group header view applied");
+                        logger.logAsyncTaskProgress(logKey, "group header view applied");
                         result.mInflatedGroupHeaderView = (NotificationHeaderView) v;
                     }
 
@@ -711,7 +712,7 @@
                         return result.mNewGroupHeaderView;
                     }
                 };
-                logger.logAsyncTaskProgress(entry, "applying group header view");
+                logger.logAsyncTaskProgress(logKey, "applying group header view");
                 applyRemoteView(inflationExecutor, inflateSynchronously, isMinimized,
                         result, reInflateFlags,
                         /* inflationId = */ FLAG_GROUP_SUMMARY_HEADER,
@@ -731,7 +732,7 @@
                 ApplyCallback applyCallback = new ApplyCallback() {
                     @Override
                     public void setResultView(View v) {
-                        logger.logAsyncTaskProgress(entry,
+                        logger.logAsyncTaskProgress(logKey,
                                 "low-priority group header view applied");
                         result.mInflatedMinimizedGroupHeaderView = (NotificationHeaderView) v;
                     }
@@ -741,7 +742,7 @@
                         return result.mNewMinimizedGroupHeaderView;
                     }
                 };
-                logger.logAsyncTaskProgress(entry, "applying low priority group header view");
+                logger.logAsyncTaskProgress(logKey, "applying low priority group header view");
                 applyRemoteView(inflationExecutor, inflateSynchronously, isMinimized,
                         result, reInflateFlags,
                         /* inflationId = */ FLAG_LOW_PRIORITY_GROUP_SUMMARY_HEADER,
@@ -760,7 +761,7 @@
         CancellationSignal cancellationSignal = new CancellationSignal();
         cancellationSignal.setOnCancelListener(
                 () -> {
-                    logger.logAsyncTaskProgress(entry, "apply cancelled");
+                    logger.logAsyncTaskProgress(logKey, "apply cancelled");
                     Trace.endAsyncSection(APPLY_TRACE_METHOD, System.identityHashCode(row));
                     runningInflations.values().forEach(CancellationSignal::cancel);
                 });
@@ -807,7 +808,7 @@
                     existingWrapper.onReinflated();
                 }
             } catch (Exception e) {
-                handleInflationError(runningInflations, e, row.getEntry(), callback, logger,
+                handleInflationError(runningInflations, e, row, callback, logger,
                         "applying view synchronously");
                 // Add a running inflation to make sure we don't trigger callbacks.
                 // Safe to do because only happens in tests.
@@ -829,7 +830,7 @@
                 String invalidReason = isValidView(v, entry, row.getResources());
                 if (invalidReason != null) {
                     handleInflationError(runningInflations, new InflationException(invalidReason),
-                            row.getEntry(), callback, logger, "applied invalid view");
+                            row, callback, logger, "applied invalid view");
                     runningInflations.remove(inflationId);
                     return;
                 }
@@ -866,7 +867,7 @@
                     onViewApplied(newView);
                 } catch (Exception anotherException) {
                     runningInflations.remove(inflationId);
-                    handleInflationError(runningInflations, e, row.getEntry(),
+                    handleInflationError(runningInflations, e, row,
                             callback, logger, "applying view");
                 }
             }
@@ -962,13 +963,13 @@
 
     private static void handleInflationError(
             HashMap<Integer, CancellationSignal> runningInflations, Exception e,
-            NotificationEntry notification, @Nullable InflationCallback callback,
+            ExpandableNotificationRow row, @Nullable InflationCallback callback,
             NotificationRowContentBinderLogger logger, String logContext) {
         Assert.isMainThread();
-        logger.logAsyncTaskException(notification, logContext, e);
+        logger.logAsyncTaskException(row.getLoggingKey(), logContext, e);
         runningInflations.values().forEach(CancellationSignal::cancel);
         if (callback != null) {
-            callback.handleInflationException(notification, e);
+            callback.handleInflationException(row.getEntry(), e);
         }
     }
 
@@ -989,7 +990,7 @@
         }
         NotificationContentView privateLayout = row.getPrivateLayout();
         NotificationContentView publicLayout = row.getPublicLayout();
-        logger.logAsyncTaskProgress(entry, "finishing");
+        logger.logAsyncTaskProgress(NotificationUtils.logKey(entry), "finishing");
 
         // Put the new image index on the row
         row.mImageModelIndex = result.mRowImageInflater.getNewImageIndex();
@@ -998,6 +999,10 @@
             entry.setPromotedNotificationContentModel(result.mPromotedContent);
         }
 
+        if (PromotedNotificationUiForceExpanded.isEnabled()) {
+            row.setPromotedOngoing(entry.isOngoingPromoted());
+        }
+
         boolean setRepliesAndActions = true;
         if ((reInflateFlags & FLAG_CONTENT_VIEW_CONTRACTED) != 0) {
             if (result.inflatedContentView != null) {
@@ -1130,9 +1135,6 @@
 
         entry.setHeadsUpStatusBarText(result.headsUpStatusBarText);
         entry.setHeadsUpStatusBarTextPublic(result.headsUpStatusBarTextPublic);
-        if (PromotedNotificationUiForceExpanded.isEnabled()) {
-            row.setPromotedOngoing(entry.isOngoingPromoted());
-        }
 
         Trace.endAsyncSection(APPLY_TRACE_METHOD, System.identityHashCode(row));
         if (endListener != null) {
@@ -1283,7 +1285,8 @@
                             return doInBackgroundInternal();
                         } catch (Exception e) {
                             mError = e;
-                            mLogger.logAsyncTaskException(mEntry, "inflating", e);
+                            mLogger.logAsyncTaskException(
+                                    NotificationUtils.logKey(mEntry), "inflating", e);
                             return null;
                         }
                     });
@@ -1310,12 +1313,12 @@
             InflationProgress inflationProgress = createRemoteViews(mReInflateFlags,
                     recoveredBuilder, mBindParams, mContext, packageContext, mRow,
                     mNotifLayoutInflaterFactoryProvider, mHeadsUpStyleProvider, mLogger);
-
-            mLogger.logAsyncTaskProgress(mEntry,
+            String logKey = NotificationUtils.logKey(mEntry);
+            mLogger.logAsyncTaskProgress(logKey,
                     "getting existing smart reply state (on wrong thread!)");
             InflatedSmartReplyState previousSmartReplyState =
                     mRow.getExistingSmartReplyState();
-            mLogger.logAsyncTaskProgress(mEntry, "inflating smart reply views");
+            mLogger.logAsyncTaskProgress(logKey, "inflating smart reply views");
             InflationProgress result = inflateSmartReplyViews(
                     /* result = */ inflationProgress,
                     mReInflateFlags,
@@ -1378,26 +1381,26 @@
             }
 
             if (PromotedNotificationContentModel.featureFlagEnabled()) {
-                mLogger.logAsyncTaskProgress(mEntry, "extracting promoted notification content");
+                mLogger.logAsyncTaskProgress(logKey, "extracting promoted notification content");
                 final ImageModelProvider imageModelProvider =
                         result.mRowImageInflater.useForContentModel();
                 final PromotedNotificationContentModel promotedContent =
                         mPromotedNotificationContentExtractor.extractContent(mEntry,
                                 recoveredBuilder, imageModelProvider);
-                mLogger.logAsyncTaskProgress(mEntry, "extracted promoted notification content: "
+                mLogger.logAsyncTaskProgress(logKey, "extracted promoted notification content: "
                         + promotedContent);
 
                 result.mPromotedContent = promotedContent;
             }
 
-            mLogger.logAsyncTaskProgress(mEntry, "loading RON images");
+            mLogger.logAsyncTaskProgress(logKey, "loading RON images");
             inflationProgress.mRowImageInflater.loadImagesSynchronously(packageContext);
 
-            mLogger.logAsyncTaskProgress(mEntry,
+            mLogger.logAsyncTaskProgress(logKey,
                     "getting row image resolver (on wrong thread!)");
             final NotificationInlineImageResolver imageResolver = mRow.getImageResolver();
             // wait for image resolver to finish preloading
-            mLogger.logAsyncTaskProgress(mEntry, "waiting for preloaded images");
+            mLogger.logAsyncTaskProgress(logKey, "waiting for preloaded images");
             imageResolver.waitForPreloadedImages(IMG_PRELOAD_TIMEOUT_MS);
 
             return result;
@@ -1448,13 +1451,14 @@
 
         @Override
         public void abort() {
-            mLogger.logAsyncTaskProgress(mEntry, "cancelling inflate");
+            String logKey = NotificationUtils.logKey(mEntry);
+            mLogger.logAsyncTaskProgress(logKey, "cancelling inflate");
             cancel(true /* mayInterruptIfRunning */);
             if (mCancellationSignal != null) {
-                mLogger.logAsyncTaskProgress(mEntry, "cancelling apply");
+                mLogger.logAsyncTaskProgress(logKey, "cancelling apply");
                 mCancellationSignal.cancel();
             }
-            mLogger.logAsyncTaskProgress(mEntry, "aborted");
+            mLogger.logAsyncTaskProgress(logKey, "aborted");
         }
 
         @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationMenuRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationMenuRow.java
index ab382df..e89a76f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationMenuRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationMenuRow.java
@@ -16,7 +16,7 @@
 
 package com.android.systemui.statusbar.notification.row;
 
-import static android.app.NotificationChannel.SYSTEM_RESERVED_IDS;
+import static android.app.Flags.notificationsRedesignTemplates;
 import static android.view.HapticFeedbackConstants.CLOCK_TICK;
 
 import static com.android.systemui.SwipeHelper.SWIPED_FAR_ENOUGH_SIZE_FRACTION;
@@ -706,8 +706,11 @@
     static NotificationMenuItem createInfoItem(Context context) {
         Resources res = context.getResources();
         String infoDescription = res.getString(R.string.notification_menu_gear_description);
+        int layoutId = notificationsRedesignTemplates()
+                ? R.layout.notification_2025_info
+                : R.layout.notification_info;
         NotificationInfo infoContent = (NotificationInfo) LayoutInflater.from(context).inflate(
-                R.layout.notification_info, null, false);
+                layoutId, null, false);
         return new NotificationMenuItem(context, infoDescription, infoContent,
                 R.drawable.ic_settings);
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderImpl.kt
index b9a3594..c930dd8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderImpl.kt
@@ -51,6 +51,7 @@
 import com.android.systemui.statusbar.notification.NmSummarizationUiFlag
 import com.android.systemui.statusbar.notification.collection.EntryAdapter
 import com.android.systemui.statusbar.notification.collection.NotificationEntry
+import com.android.systemui.statusbar.notification.logKey
 import com.android.systemui.statusbar.notification.promoted.PromotedNotificationContentExtractor
 import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel
 import com.android.systemui.statusbar.notification.row.NotificationContentView.VISIBLE_TYPE_CONTRACTED
@@ -125,10 +126,10 @@
             // We don't want to reinflate anything for removed notifications. Otherwise views might
             // be readded to the stack, leading to leaks. This may happen with low-priority groups
             // where the removal of already removed children can lead to a reinflation.
-            logger.logNotBindingRowWasRemoved(entry)
+            logger.logNotBindingRowWasRemoved(row.loggingKey)
             return
         }
-        logger.logBinding(entry, contentToBind)
+        logger.logBinding(row.loggingKey, contentToBind)
         val sbn: StatusBarNotification = entry.sbn
 
         // To check if the notification has inline image and preload inline image if necessary.
@@ -245,7 +246,7 @@
     override fun cancelBind(entry: NotificationEntry, row: ExpandableNotificationRow): Boolean {
         val abortedTask: Boolean = entry.abortTask()
         if (abortedTask) {
-            logger.logCancelBindAbortedTask(entry)
+            logger.logCancelBindAbortedTask(row.loggingKey)
         }
         return abortedTask
     }
@@ -256,7 +257,7 @@
         row: ExpandableNotificationRow,
         @InflationFlag contentToUnbind: Int,
     ) {
-        logger.logUnbinding(entry, contentToUnbind)
+        logger.logUnbinding(row.loggingKey, contentToUnbind)
         var curFlag = 1
         var contentLeftToUnbind = contentToUnbind
         while (contentLeftToUnbind != 0) {
@@ -419,7 +420,7 @@
                 try {
                     return@trace Result.success(doInBackgroundInternal())
                 } catch (e: Exception) {
-                    logger.logAsyncTaskException(entry, "inflating", e)
+                    logger.logAsyncTaskException(entry.logKey, "inflating", e)
                     return@trace Result.failure(e)
                 }
             }
@@ -451,11 +452,11 @@
                     logger = logger,
                 )
             logger.logAsyncTaskProgress(
-                entry,
+                row.loggingKey,
                 "getting existing smart reply state (on wrong thread!)",
             )
             val previousSmartReplyState: InflatedSmartReplyState? = row.existingSmartReplyState
-            logger.logAsyncTaskProgress(entry, "inflating smart reply views")
+            logger.logAsyncTaskProgress(entry.logKey, "inflating smart reply views")
             inflateSmartReplyViews(
                 /* result = */ inflationProgress,
                 reInflateFlags,
@@ -467,7 +468,7 @@
                 logger,
             )
             if (AsyncHybridViewInflation.isEnabled) {
-                logger.logAsyncTaskProgress(entry, "inflating single line view")
+                logger.logAsyncTaskProgress(entry.logKey, "inflating single line view")
                 inflationProgress.inflatedSingleLineView =
                     inflationProgress.contentModel.singleLineViewModel?.let {
                         SingleLineViewInflater.inflatePrivateSingleLineView(
@@ -481,7 +482,7 @@
             }
 
             if (LockscreenOtpRedaction.isEnabled) {
-                logger.logAsyncTaskProgress(entry, "inflating public single line view")
+                logger.logAsyncTaskProgress(entry.logKey, "inflating public single line view")
                 inflationProgress.inflatedPublicSingleLineView =
                     inflationProgress.contentModel.publicSingleLineViewModel?.let { viewModel ->
                         SingleLineViewInflater.inflatePublicSingleLineView(
@@ -494,13 +495,13 @@
                     }
             }
 
-            logger.logAsyncTaskProgress(entry, "loading RON images")
+            logger.logAsyncTaskProgress(entry.logKey, "loading RON images")
             inflationProgress.rowImageInflater.loadImagesSynchronously(packageContext)
 
-            logger.logAsyncTaskProgress(entry, "getting row image resolver (on wrong thread!)")
+            logger.logAsyncTaskProgress(entry.logKey, "getting row image resolver (on wrong thread!)")
             val imageResolver = row.imageResolver
             // wait for image resolver to finish preloading
-            logger.logAsyncTaskProgress(entry, "waiting for preloaded images")
+            logger.logAsyncTaskProgress(entry.logKey, "waiting for preloaded images")
             imageResolver.waitForPreloadedImages(IMG_PRELOAD_TIMEOUT_MS)
             return inflationProgress
         }
@@ -547,13 +548,13 @@
         }
 
         override fun abort() {
-            logger.logAsyncTaskProgress(entry, "cancelling inflate")
+            logger.logAsyncTaskProgress(entry.logKey, "cancelling inflate")
             cancel(/* mayInterruptIfRunning= */ true)
             if (cancellationSignal != null) {
-                logger.logAsyncTaskProgress(entry, "cancelling apply")
+                logger.logAsyncTaskProgress(entry.logKey, "cancelling apply")
                 cancellationSignal!!.cancel()
             }
-            logger.logAsyncTaskProgress(entry, "aborted")
+            logger.logAsyncTaskProgress(entry.logKey, "aborted")
         }
 
         override fun handleInflationException(e: Exception) {
@@ -641,11 +642,11 @@
                 (reInflateFlags and FLAG_CONTENT_VIEW_HEADS_UP != 0 &&
                     result.remoteViews.headsUp != null)
             if (inflateContracted || inflateExpanded || inflateHeadsUp) {
-                logger.logAsyncTaskProgress(entry, "inflating contracted smart reply state")
+                logger.logAsyncTaskProgress(entry.logKey, "inflating contracted smart reply state")
                 result.inflatedSmartReplyState = inflater.inflateSmartReplyState(entry)
             }
             if (inflateExpanded) {
-                logger.logAsyncTaskProgress(entry, "inflating expanded smart reply state")
+                logger.logAsyncTaskProgress(entry.logKey, "inflating expanded smart reply state")
                 result.expandedInflatedSmartReplies =
                     inflater.inflateSmartReplyViewHolder(
                         context,
@@ -656,7 +657,7 @@
                     )
             }
             if (inflateHeadsUp) {
-                logger.logAsyncTaskProgress(entry, "inflating heads up smart reply state")
+                logger.logAsyncTaskProgress(entry.logKey, "inflating heads up smart reply state")
                 result.headsUpInflatedSmartReplies =
                     inflater.inflateSmartReplyViewHolder(
                         context,
@@ -687,13 +688,16 @@
 
             val promotedContent =
                 if (PromotedNotificationContentModel.featureFlagEnabled()) {
-                    logger.logAsyncTaskProgress(entry, "extracting promoted notification content")
+                    logger.logAsyncTaskProgress(
+                        entry.logKey,
+                        "extracting promoted notification content"
+                    )
                     val imageModelProvider = rowImageInflater.useForContentModel()
                     promotedNotificationContentExtractor
                         .extractContent(entry, builder, imageModelProvider)
                         .also {
                             logger.logAsyncTaskProgress(
-                                entry,
+                                entry.logKey,
                                 "extracted promoted notification content: $it",
                             )
                         }
@@ -726,7 +730,7 @@
                     AsyncHybridViewInflation.isEnabled &&
                         reInflateFlags and FLAG_CONTENT_VIEW_SINGLE_LINE != 0
                 ) {
-                    logger.logAsyncTaskProgress(entry, "inflating single line view model")
+                    logger.logAsyncTaskProgress(entry.logKey, "inflating single line view model")
                     SingleLineViewInflater.inflateSingleLineViewModel(
                         notification = entry.sbn.notification,
                         messagingStyle = messagingStyle,
@@ -743,7 +747,10 @@
                     LockscreenOtpRedaction.isEnabled &&
                         reInflateFlags and FLAG_CONTENT_VIEW_PUBLIC_SINGLE_LINE != 0
                 ) {
-                    logger.logAsyncTaskProgress(entry, "inflating public single line view model")
+                    logger.logAsyncTaskProgress(
+                        entry.logKey,
+                        "inflating public single line view model"
+                    )
                     if (bindParams.redactionType == REDACTION_TYPE_SENSITIVE_CONTENT) {
                         SingleLineViewInflater.inflateSingleLineViewModel(
                             notification = entry.sbn.notification,
@@ -834,11 +841,10 @@
             logger: NotificationRowContentBinderLogger,
         ): NewRemoteViews {
             return TraceUtils.trace("NotificationContentInflater.createRemoteViews") {
-                val entryForLogging: NotificationEntry = row.entry
                 val contracted =
                     if (reInflateFlags and FLAG_CONTENT_VIEW_CONTRACTED != 0) {
                         logger.logAsyncTaskProgress(
-                            entryForLogging,
+                            row.loggingKey,
                             "creating contracted remote view",
                         )
                         createContentView(builder, bindParams.isMinimized)
@@ -846,7 +852,7 @@
                 val expanded =
                     if (reInflateFlags and FLAG_CONTENT_VIEW_EXPANDED != 0) {
                         logger.logAsyncTaskProgress(
-                            entryForLogging,
+                            row.loggingKey,
                             "creating expanded remote view",
                         )
                         createExpandedView(builder, bindParams.isMinimized)
@@ -854,7 +860,7 @@
                 val headsUp =
                     if (reInflateFlags and FLAG_CONTENT_VIEW_HEADS_UP != 0) {
                         logger.logAsyncTaskProgress(
-                            entryForLogging,
+                            row.loggingKey,
                             "creating heads up remote view",
                         )
                         val isHeadsUpCompact = headsUpStyleProvider.shouldApplyCompactStyle()
@@ -866,7 +872,10 @@
                     } else null
                 val public =
                     if (reInflateFlags and FLAG_CONTENT_VIEW_PUBLIC != 0) {
-                        logger.logAsyncTaskProgress(entryForLogging, "creating public remote view")
+                        logger.logAsyncTaskProgress(
+                            row.loggingKey,
+                            "creating public remote view"
+                        )
                         if (
                             LockscreenOtpRedaction.isEnabled &&
                                 bindParams.redactionType == REDACTION_TYPE_SENSITIVE_CONTENT
@@ -888,7 +897,7 @@
                             reInflateFlags and FLAG_GROUP_SUMMARY_HEADER != 0
                     ) {
                         logger.logAsyncTaskProgress(
-                            entryForLogging,
+                            row.loggingKey,
                             "creating group summary remote view",
                         )
                         builder.makeNotificationGroupHeader()
@@ -899,7 +908,7 @@
                             reInflateFlags and FLAG_LOW_PRIORITY_GROUP_SUMMARY_HEADER != 0
                     ) {
                         logger.logAsyncTaskProgress(
-                            entryForLogging,
+                            row.loggingKey,
                             "creating low-priority group summary remote view",
                         )
                         builder.makeLowPriorityContentView(true /* useRegularSubtext */)
@@ -971,14 +980,14 @@
                 val applyCallback: ApplyCallback =
                     object : ApplyCallback() {
                         override fun setResultView(v: View) {
-                            logger.logAsyncTaskProgress(entry, "contracted view applied")
+                            logger.logAsyncTaskProgress(entry.logKey, "contracted view applied")
                             result.inflatedContentView = v
                         }
 
                         override val remoteView: RemoteViews
                             get() = result.remoteViews.contracted
                     }
-                logger.logAsyncTaskProgress(entry, "applying contracted view")
+                logger.logAsyncTaskProgress(entry.logKey, "applying contracted view")
                 applyRemoteView(
                     inflationExecutor = inflationExecutor,
                     inflateSynchronously = inflateSynchronously,
@@ -1010,14 +1019,14 @@
                 val applyCallback: ApplyCallback =
                     object : ApplyCallback() {
                         override fun setResultView(v: View) {
-                            logger.logAsyncTaskProgress(entry, "expanded view applied")
+                            logger.logAsyncTaskProgress(entry.logKey, "expanded view applied")
                             result.inflatedExpandedView = v
                         }
 
                         override val remoteView: RemoteViews
                             get() = result.remoteViews.expanded
                     }
-                logger.logAsyncTaskProgress(entry, "applying expanded view")
+                logger.logAsyncTaskProgress(entry.logKey, "applying expanded view")
                 applyRemoteView(
                     inflationExecutor = inflationExecutor,
                     inflateSynchronously = inflateSynchronously,
@@ -1049,14 +1058,14 @@
                 val applyCallback: ApplyCallback =
                     object : ApplyCallback() {
                         override fun setResultView(v: View) {
-                            logger.logAsyncTaskProgress(entry, "heads up view applied")
+                            logger.logAsyncTaskProgress(entry.logKey, "heads up view applied")
                             result.inflatedHeadsUpView = v
                         }
 
                         override val remoteView: RemoteViews
                             get() = result.remoteViews.headsUp
                     }
-                logger.logAsyncTaskProgress(entry, "applying heads up view")
+                logger.logAsyncTaskProgress(entry.logKey, "applying heads up view")
                 applyRemoteView(
                     inflationExecutor = inflationExecutor,
                     inflateSynchronously = inflateSynchronously,
@@ -1088,14 +1097,14 @@
                 val applyCallback: ApplyCallback =
                     object : ApplyCallback() {
                         override fun setResultView(v: View) {
-                            logger.logAsyncTaskProgress(entry, "public view applied")
+                            logger.logAsyncTaskProgress(entry.logKey, "public view applied")
                             result.inflatedPublicView = v
                         }
 
                         override val remoteView: RemoteViews
                             get() = result.remoteViews.public!!
                     }
-                logger.logAsyncTaskProgress(entry, "applying public view")
+                logger.logAsyncTaskProgress(entry.logKey, "applying public view")
                 applyRemoteView(
                     inflationExecutor = inflationExecutor,
                     inflateSynchronously = inflateSynchronously,
@@ -1130,14 +1139,17 @@
                     val applyCallback: ApplyCallback =
                         object : ApplyCallback() {
                             override fun setResultView(v: View) {
-                                logger.logAsyncTaskProgress(entry, "group header view applied")
+                                logger.logAsyncTaskProgress(
+                                    entry.logKey,
+                                    "group header view applied"
+                                )
                                 result.inflatedGroupHeaderView = v as NotificationHeaderView?
                             }
 
                             override val remoteView: RemoteViews
                                 get() = result.remoteViews.normalGroupHeader!!
                         }
-                    logger.logAsyncTaskProgress(entry, "applying group header view")
+                    logger.logAsyncTaskProgress(entry.logKey, "applying group header view")
                     applyRemoteView(
                         inflationExecutor = inflationExecutor,
                         inflateSynchronously = inflateSynchronously,
@@ -1173,7 +1185,7 @@
                         object : ApplyCallback() {
                             override fun setResultView(v: View) {
                                 logger.logAsyncTaskProgress(
-                                    entry,
+                                    entry.logKey,
                                     "low-priority group header view applied",
                                 )
                                 result.inflatedMinimizedGroupHeaderView =
@@ -1183,7 +1195,10 @@
                             override val remoteView: RemoteViews
                                 get() = result.remoteViews.minimizedGroupHeader!!
                         }
-                    logger.logAsyncTaskProgress(entry, "applying low priority group header view")
+                    logger.logAsyncTaskProgress(
+                        entry.logKey,
+                        "applying low priority group header view"
+                    )
                     applyRemoteView(
                         inflationExecutor = inflationExecutor,
                         inflateSynchronously = inflateSynchronously,
@@ -1221,7 +1236,7 @@
             )
             val cancellationSignal = CancellationSignal()
             cancellationSignal.setOnCancelListener {
-                logger.logAsyncTaskProgress(entry, "apply cancelled")
+                logger.logAsyncTaskProgress(entry.logKey, "apply cancelled")
                 Trace.endAsyncSection(APPLY_TRACE_METHOD, System.identityHashCode(row))
                 runningInflations.values.forEach(
                     Consumer { obj: CancellationSignal -> obj.cancel() }
@@ -1278,7 +1293,7 @@
                     handleInflationError(
                         runningInflations,
                         e,
-                        row.entry,
+                        row,
                         callback,
                         logger,
                         "applying view synchronously",
@@ -1303,7 +1318,7 @@
                             handleInflationError(
                                 runningInflations,
                                 InflationException(invalidReason),
-                                row.entry,
+                                row,
                                 callback,
                                 logger,
                                 "applied invalid view",
@@ -1362,7 +1377,7 @@
                             handleInflationError(
                                 runningInflations,
                                 e,
-                                row.entry,
+                                row,
                                 callback,
                                 logger,
                                 "applying view",
@@ -1465,15 +1480,15 @@
         private fun handleInflationError(
             runningInflations: HashMap<Int, CancellationSignal>,
             e: Exception,
-            notification: NotificationEntry,
+            notification: ExpandableNotificationRow?,
             callback: InflationCallback?,
             logger: NotificationRowContentBinderLogger,
             logContext: String,
         ) {
             Assert.isMainThread()
-            logger.logAsyncTaskException(notification, logContext, e)
+            logger.logAsyncTaskException(notification?.loggingKey, logContext, e)
             runningInflations.values.forEach(Consumer { obj: CancellationSignal -> obj.cancel() })
-            callback?.handleInflationException(notification, e)
+            callback?.handleInflationException(notification?.entry, e)
         }
 
         /**
@@ -1496,7 +1511,7 @@
             if (runningInflations.isNotEmpty()) {
                 return false
             }
-            logger.logAsyncTaskProgress(entry, "finishing")
+            logger.logAsyncTaskProgress(row.loggingKey, "finishing")
 
             // Put the new image index on the row
             row.mImageModelIndex = result.rowImageInflater.getNewImageIndex()
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderLogger.kt
index a32e1d7..e94b2dc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinderLogger.kt
@@ -35,66 +35,66 @@
 class NotificationRowContentBinderLogger
 @Inject
 constructor(@NotifInflationLog private val buffer: LogBuffer) {
-    fun logNotBindingRowWasRemoved(entry: NotificationEntry) {
+    fun logNotBindingRowWasRemoved(entry: String) {
         buffer.log(
             TAG,
             LogLevel.INFO,
-            { str1 = entry.logKey },
+            { str1 = entry },
             { "not inflating $str1: row was removed" }
         )
     }
 
-    fun logBinding(entry: NotificationEntry, @InflationFlag flag: Int) {
+    fun logBinding(entry: String, @InflationFlag flag: Int) {
         buffer.log(
             TAG,
             LogLevel.DEBUG,
             {
-                str1 = entry.logKey
+                str1 = entry
                 int1 = flag
             },
             { "binding views ${flagToString(int1)} for $str1" }
         )
     }
 
-    fun logCancelBindAbortedTask(entry: NotificationEntry) {
+    fun logCancelBindAbortedTask(entry: String) {
         buffer.log(
             TAG,
             LogLevel.INFO,
-            { str1 = entry.logKey },
+            { str1 = entry },
             { "aborted task to cancel binding $str1" }
         )
     }
 
-    fun logUnbinding(entry: NotificationEntry, @InflationFlag flag: Int) {
+    fun logUnbinding(entry: String, @InflationFlag flag: Int) {
         buffer.log(
             TAG,
             LogLevel.DEBUG,
             {
-                str1 = entry.logKey
+                str1 = entry
                 int1 = flag
             },
             { "unbinding views ${flagToString(int1)} for $str1" }
         )
     }
 
-    fun logAsyncTaskProgress(entry: NotificationEntry, progress: String) {
+    fun logAsyncTaskProgress(entry: String?, progress: String) {
         buffer.log(
             TAG,
             LogLevel.DEBUG,
             {
-                str1 = entry.logKey
+                str1 = entry
                 str2 = progress
             },
             { "async task for $str1: $str2" }
         )
     }
 
-    fun logAsyncTaskException(entry: NotificationEntry, logContext: String, exception: Throwable) {
+    fun logAsyncTaskException(entry: String?, logContext: String, exception: Throwable) {
         buffer.log(
             TAG,
             LogLevel.DEBUG,
             {
-                str1 = entry.logKey
+                str1 = entry
                 str2 = logContext
                 str3 = exception.stackTraceToString()
             },
@@ -103,7 +103,7 @@
     }
 
     fun logInflateSingleLine(
-        entry: NotificationEntry,
+        entry: String?,
         @InflationFlag inflationFlags: Int,
         isConversation: Boolean
     ) {
@@ -111,7 +111,7 @@
             TAG,
             LogLevel.DEBUG,
             {
-                str1 = entry.logKey
+                str1 = entry
                 int1 = inflationFlags
                 bool1 = isConversation
             },
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/SingleLineViewInflater.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/SingleLineViewInflater.kt
index ea73b4b..e0c1692 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/SingleLineViewInflater.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/SingleLineViewInflater.kt
@@ -417,8 +417,8 @@
     ): HybridNotificationView? {
         if (AsyncHybridViewInflation.isUnexpectedlyInLegacyMode()) return null
 
-        logger.logInflateSingleLine(entry, reinflateFlags, isConversation)
-        logger.logAsyncTaskProgress(entry, "inflating single-line content view")
+        logger.logInflateSingleLine(entry.logKey, reinflateFlags, isConversation)
+        logger.logAsyncTaskProgress(entry.logKey, "inflating single-line content view")
 
         var view: HybridNotificationView? = null
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/StackScrollerDecorView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/StackScrollerDecorView.java
index cd228e7..a064d1c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/StackScrollerDecorView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/StackScrollerDecorView.java
@@ -260,7 +260,7 @@
     @Override
     public long performRemoveAnimation(long duration, long delay,
             float translationDirection, boolean isHeadsUpAnimation,
-            Runnable onStartedRunnable,
+            boolean isHeadsUpCycling, Runnable onStartedRunnable,
             Runnable onFinishedRunnable,
             AnimatorListenerAdapter animationListener, ClipSide clipSide) {
         // TODO: Use duration
@@ -279,7 +279,7 @@
 
     @Override
     public void performAddAnimation(long delay, long duration, boolean isHeadsUpAppear,
-            Runnable endRunnable) {
+            boolean isHeadsUpCycling, Runnable endRunnable) {
         // TODO: use delay and duration
         setContentVisibleAnimated(true);
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCallTemplateViewWrapper.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCallTemplateViewWrapper.kt
index 2d94694..e887e25 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCallTemplateViewWrapper.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCallTemplateViewWrapper.kt
@@ -16,6 +16,7 @@
 
 package com.android.systemui.statusbar.notification.row.wrapper
 
+import android.app.Flags.notificationsRedesignTemplates
 import android.content.Context
 import android.view.View
 import com.android.internal.widget.CachingIconView
@@ -25,17 +26,13 @@
 import com.android.systemui.statusbar.notification.NotificationUtils
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
 
-/**
- * Wraps a notification containing a call template
- */
-class NotificationCallTemplateViewWrapper constructor(
-    ctx: Context,
-    view: View,
-    row: ExpandableNotificationRow
-) : NotificationTemplateViewWrapper(ctx, view, row) {
+/** Wraps a notification containing a call template */
+class NotificationCallTemplateViewWrapper
+constructor(ctx: Context, view: View, row: ExpandableNotificationRow) :
+    NotificationTemplateViewWrapper(ctx, view, row) {
 
     private val minHeightWithActions: Int =
-            NotificationUtils.getFontScaledHeight(ctx, R.dimen.notification_max_height)
+        NotificationUtils.getFontScaledHeight(ctx, R.dimen.notification_max_height)
     private val callLayout: CallLayout = view as CallLayout
 
     private lateinit var conversationIconContainer: View
@@ -48,13 +45,17 @@
     private fun resolveViews() {
         with(callLayout) {
             conversationIconContainer =
-                    requireViewById(com.android.internal.R.id.conversation_icon_container)
+                requireViewById(com.android.internal.R.id.conversation_icon_container)
             conversationIconView = requireViewById(com.android.internal.R.id.conversation_icon)
             conversationBadgeBg =
-                    requireViewById(com.android.internal.R.id.conversation_icon_badge_bg)
+                requireViewById(com.android.internal.R.id.conversation_icon_badge_bg)
             expandBtn = requireViewById(com.android.internal.R.id.expand_button)
             appName = requireViewById(com.android.internal.R.id.app_name_text)
-            conversationTitleView = requireViewById(com.android.internal.R.id.conversation_text)
+            conversationTitleView =
+                requireViewById(
+                    if (notificationsRedesignTemplates()) com.android.internal.R.id.title
+                    else com.android.internal.R.id.conversation_text
+                )
         }
     }
 
@@ -68,20 +69,12 @@
     override fun updateTransformedTypes() {
         // This also clears the existing types
         super.updateTransformedTypes()
-        addTransformedViews(
-                appName,
-                conversationTitleView
-        )
-        addViewsTransformingToSimilar(
-                conversationIconView,
-                conversationBadgeBg,
-                expandBtn
-        )
+        addTransformedViews(appName, conversationTitleView)
+        addViewsTransformingToSimilar(conversationIconView, conversationBadgeBg, expandBtn)
     }
 
     override fun disallowSingleClick(x: Float, y: Float): Boolean {
-        val isOnExpandButton = expandBtn.visibility == View.VISIBLE &&
-                isOnView(expandBtn, x, y)
+        val isOnExpandButton = expandBtn.visibility == View.VISIBLE && isOnView(expandBtn, x, y)
         return isOnExpandButton || super.disallowSingleClick(x, y)
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationConversationTemplateViewWrapper.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationConversationTemplateViewWrapper.kt
index 9d13ab5..3d5f9e4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationConversationTemplateViewWrapper.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationConversationTemplateViewWrapper.kt
@@ -17,10 +17,12 @@
 package com.android.systemui.statusbar.notification.row.wrapper
 
 import android.app.Flags
+import android.app.Flags.notificationsRedesignTemplates
 import android.content.Context
 import android.graphics.drawable.AnimatedImageDrawable
 import android.view.View
 import android.view.ViewGroup
+import androidx.core.view.isVisible
 import com.android.internal.widget.CachingIconView
 import com.android.internal.widget.ConversationLayout
 import com.android.internal.widget.MessagingGroup
@@ -53,8 +55,8 @@
     private lateinit var badgeIconView: NotificationRowIconView
     private lateinit var conversationBadgeBg: View
     private lateinit var expandBtn: View
-    private lateinit var expandBtnContainer: View
-    private lateinit var imageMessageContainer: ViewGroup
+    private var expandBtnContainer: View? = null
+    private var imageMessageContainer: ViewGroup? = null
     private lateinit var messageContainers: ArrayList<MessagingGroup>
     private lateinit var messagingLinearLayout: MessagingLinearLayout
     private lateinit var conversationTitleView: View
@@ -78,10 +80,14 @@
             conversationBadgeBg =
                 requireViewById(com.android.internal.R.id.conversation_icon_badge_bg)
             expandBtn = requireViewById(com.android.internal.R.id.expand_button)
-            expandBtnContainer = requireViewById(com.android.internal.R.id.expand_button_container)
+            expandBtnContainer = findViewById(com.android.internal.R.id.expand_button_container)
             importanceRing = requireViewById(com.android.internal.R.id.conversation_icon_badge_ring)
             appName = requireViewById(com.android.internal.R.id.app_name_text)
-            conversationTitleView = requireViewById(com.android.internal.R.id.conversation_text)
+            conversationTitleView =
+                requireViewById(
+                    if (notificationsRedesignTemplates()) com.android.internal.R.id.title
+                    else com.android.internal.R.id.conversation_text
+                )
             facePileTop = findViewById(com.android.internal.R.id.conversation_face_pile_top)
             facePileBottom = findViewById(com.android.internal.R.id.conversation_face_pile_bottom)
             facePileBottomBg =
@@ -133,11 +139,21 @@
         expandable: Boolean,
         onClickListener: View.OnClickListener,
         requestLayout: Boolean,
-    ) = conversationLayout.updateExpandability(expandable, onClickListener)
+    ) {
+        if (notificationsRedesignTemplates()) {
+            super.updateExpandability(expandable, onClickListener, requestLayout)
+        } else {
+            conversationLayout.updateExpandability(expandable, onClickListener)
+        }
+    }
 
     override fun disallowSingleClick(x: Float, y: Float): Boolean {
         val isOnExpandButton =
-            expandBtnContainer.visibility == View.VISIBLE && isOnView(expandBtnContainer, x, y)
+            if (notificationsRedesignTemplates()) {
+                expandBtn.isVisible && isOnView(expandBtn, x, y)
+            } else {
+                expandBtnContainer?.visibility == View.VISIBLE && isOnView(expandBtnContainer, x, y)
+            }
         return isOnExpandButton || super.disallowSingleClick(x, y)
     }
 
@@ -158,7 +174,9 @@
         // and the top level image message container.
         val containers =
             messageContainers.asSequence().map { it.messageContainer } +
-                sequenceOf(imageMessageContainer)
+                if (notificationsRedesignTemplates() && imageMessageContainer == null)
+                    emptySequence()
+                else sequenceOf(imageMessageContainer!!)
         val drawables =
             containers
                 .flatMap { it.children }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationHeaderViewWrapper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationHeaderViewWrapper.java
index e8affaa..e9eecdd8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationHeaderViewWrapper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationHeaderViewWrapper.java
@@ -31,7 +31,6 @@
 import android.view.animation.Interpolator;
 import android.view.animation.PathInterpolator;
 import android.widget.DateTimeView;
-import android.widget.FrameLayout;
 import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.TextView;
@@ -42,7 +41,6 @@
 import com.android.internal.widget.CachingIconView;
 import com.android.internal.widget.NotificationCloseButton;
 import com.android.internal.widget.NotificationExpandButton;
-import com.android.systemui.Flags;
 import com.android.systemui.res.R;
 import com.android.systemui.statusbar.TransformableView;
 import com.android.systemui.statusbar.ViewTransformationHelper;
@@ -69,7 +67,6 @@
     private CachingIconView mIcon;
     private NotificationCloseButton mCloseButton;
     private NotificationExpandButton mExpandButton;
-    private FrameLayout mExpandButtonSpacer;
     private View mAltExpandTarget;
     private View mIconContainer;
     protected NotificationHeaderView mNotificationHeader;
@@ -157,10 +154,6 @@
         mHeaderText = mView.findViewById(com.android.internal.R.id.header_text);
         mAppNameText = mView.findViewById(com.android.internal.R.id.app_name_text);
         mExpandButton = mView.findViewById(com.android.internal.R.id.expand_button);
-        if (Flags.uiRichOngoingForceExpanded()) {
-            mExpandButtonSpacer =
-                    mView.findViewById(com.android.internal.R.id.expand_button_spacer);
-        }
         mAltExpandTarget = mView.findViewById(com.android.internal.R.id.alternate_expand_target);
         mIconContainer = mView.findViewById(com.android.internal.R.id.conversation_icon_container);
         mWorkProfileImage = mView.findViewById(com.android.internal.R.id.profile_badge);
@@ -302,9 +295,6 @@
             boolean expandable,
             View.OnClickListener onClickListener,
             boolean requestLayout) {
-        if (Flags.uiRichOngoingForceExpanded() && mExpandButtonSpacer != null) {
-            mExpandButtonSpacer.setVisibility(expandable ? GONE : VISIBLE);
-        }
         mExpandButton.setVisibility(expandable ? VISIBLE : GONE);
         mExpandButton.setOnClickListener(expandable ? onClickListener : null);
         if (mAltExpandTarget != null) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java
index 3ccf506..b9aa571 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java
@@ -33,6 +33,7 @@
 import android.service.notification.StatusBarNotification;
 import android.util.ArraySet;
 import android.view.View;
+import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.ProgressBar;
@@ -42,6 +43,7 @@
 import com.android.internal.util.ContrastColorUtil;
 import com.android.internal.widget.NotificationActionListLayout;
 import com.android.systemui.Dependency;
+import com.android.systemui.Flags;
 import com.android.systemui.UiOffloadThread;
 import com.android.systemui.res.R;
 import com.android.systemui.statusbar.CrossFadeHelper;
@@ -51,6 +53,7 @@
 import com.android.systemui.statusbar.notification.TransformState;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 import com.android.systemui.statusbar.notification.row.HybridNotificationView;
+import com.android.systemui.util.DimensionKt;
 
 import java.util.function.Consumer;
 
@@ -186,9 +189,43 @@
         mActions = mView.findViewById(com.android.internal.R.id.actions);
         mRemoteInputHistory = mView.findViewById(
                 com.android.internal.R.id.notification_material_reply_container);
+
+        adjustTitleAndRightIconForPromotedOngoing();
         updatePendingIntentCancellations();
     }
 
+    private void adjustTitleAndRightIconForPromotedOngoing() {
+        if (Flags.uiRichOngoingForceExpanded() && mRow.isPromotedOngoing() && mRightIcon != null) {
+            final int horizontalMargin;
+            if (notificationsRedesignTemplates()) {
+                horizontalMargin = mView.getResources().getDimensionPixelSize(
+                    com.android.internal.R.dimen.notification_2025_margin);
+            } else {
+                horizontalMargin = (int) DimensionKt.dpToPx(16, mView.getContext());
+            }
+
+            // position right icon to the right available space from expander.
+            final ViewGroup.MarginLayoutParams rightIconLP =
+                (ViewGroup.MarginLayoutParams) mRightIcon.getLayoutParams();
+            rightIconLP.setMarginEnd(horizontalMargin);
+            mRightIcon.setLayoutParams(rightIconLP);
+
+            // align top line view to start of the right icon.
+            final int iconSize = mView.getResources().getDimensionPixelSize(
+                com.android.internal.R.dimen.notification_right_icon_size);
+            final int marginEnd = 2 * horizontalMargin + iconSize;
+            mNotificationTopLine.setHeaderTextMarginEnd(marginEnd);
+
+            // title has too much margin on the right, so we need to reduce it
+            if (mTitle != null) {
+                final ViewGroup.MarginLayoutParams titleLP =
+                    (ViewGroup.MarginLayoutParams) mTitle.getLayoutParams();
+                titleLP.setMarginEnd(marginEnd);
+                mTitle.setLayoutParams(titleLP);
+           }
+        }
+    }
+
     @Nullable
     protected final Icon getLargeIcon(Notification n) {
         Icon modernLargeIcon = n.getLargeIcon();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationViewWrapper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationViewWrapper.java
index 752a8ab..3987ca6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationViewWrapper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationViewWrapper.java
@@ -44,6 +44,7 @@
 import com.android.systemui.statusbar.notification.NotificationFadeAware;
 import com.android.systemui.statusbar.notification.TransformState;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.shared.NotificationBundleUi;
 
 /**
  * Wraps the actual notification content view; used to implement behaviors which are different for
@@ -135,7 +136,10 @@
         }
 
         // Apps targeting Q should fix their dark mode bugs.
-        if (mRow.getEntry().targetSdk >= Build.VERSION_CODES.Q) {
+        int targetSdk = NotificationBundleUi.isEnabled()
+                ? mRow.getEntryAdapter().getTargetSdk()
+                : mRow.getEntry().targetSdk;
+        if (targetSdk >= Build.VERSION_CODES.Q) {
             return false;
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManager.kt
index 02336e4..aa69517 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManager.kt
@@ -87,6 +87,9 @@
      */
     fun onMagneticInteractionEnd(row: ExpandableNotificationRow, velocity: Float? = null)
 
+    /* Reset any roundness that magnetic targets may have */
+    fun resetRoundness()
+
     /**
      * Reset any magnetic and roundable targets set, as well as any internal state.
      *
@@ -124,6 +127,8 @@
                         velocity: Float?,
                     ) {}
 
+                    override fun resetRoundness() {}
+
                     override fun reset() {}
                 }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImpl.kt
index de4af37..9bd5a5b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MagneticNotificationRowManagerImpl.kt
@@ -27,6 +27,7 @@
 import javax.inject.Inject
 import kotlin.math.abs
 import kotlin.math.pow
+import org.jetbrains.annotations.TestOnly
 
 @SysUISingleton
 class MagneticNotificationRowManagerImpl
@@ -41,15 +42,16 @@
     var currentState = State.IDLE
         private set
 
-    // Magnetic and roundable targets
+    // Magnetic targets
     var currentMagneticListeners = listOf<MagneticRowListener?>()
         private set
 
-    var currentRoundableTargets: RoundableTargets? = null
-        private set
-
     private var magneticDetachThreshold = Float.POSITIVE_INFINITY
 
+    // Has the roundable target been set for the magnetic view that is being swiped.
+    val isSwipedViewRoundableSet: Boolean
+        @TestOnly get() = notificationRoundnessManager.isSwipedViewSet
+
     // Animation spring forces
     private val detachForce =
         SpringForce().setStiffness(DETACH_STIFFNESS).setDampingRatio(DETACH_DAMPING_RATIO)
@@ -83,12 +85,14 @@
         sectionsManager: NotificationSectionsManager,
     ) {
         // Update roundable targets
-        currentRoundableTargets =
+        notificationRoundnessManager.clear()
+        val currentRoundableTargets =
             notificationTargetsHelper.findRoundableTargets(
                 expandableNotificationRow,
                 stackScrollLayout,
                 sectionsManager,
             )
+        notificationRoundnessManager.setRoundableTargets(currentRoundableTargets)
 
         // Update magnetic targets
         val newListeners =
@@ -127,6 +131,7 @@
                 currentState = State.PULLING
             }
             State.PULLING -> {
+                updateRoundness(translation)
                 if (canTargetBeDismissed) {
                     pullDismissibleRow(translation)
                 } else {
@@ -141,6 +146,14 @@
         return true
     }
 
+    private fun updateRoundness(translation: Float) {
+        val normalizedTranslation = abs(swipedRowMultiplier * translation) / magneticDetachThreshold
+        notificationRoundnessManager.setRoundnessForAffectedViews(
+            /* roundness */ normalizedTranslation.coerceIn(0f, MAX_PRE_DETACH_ROUNDNESS),
+            /* animate */ false,
+        )
+    }
+
     private fun pullDismissibleRow(translation: Float) {
         val targetTranslation = swipedRowMultiplier * translation
         val crossedThreshold = abs(targetTranslation) >= magneticDetachThreshold
@@ -203,9 +216,10 @@
     private fun detach(listener: MagneticRowListener, toPosition: Float) {
         listener.cancelMagneticAnimations()
         listener.triggerMagneticForce(toPosition, detachForce)
-        currentRoundableTargets?.let {
-            notificationRoundnessManager.setViewsAffectedBySwipe(it.before, it.swiped, it.after)
-        }
+        notificationRoundnessManager.setRoundnessForAffectedViews(
+            /* roundness */ 1f,
+            /* animate */ true,
+        )
         msdlPlayer.playToken(MSDLToken.SWIPE_THRESHOLD_INDICATOR)
     }
 
@@ -240,6 +254,8 @@
         }
     }
 
+    override fun resetRoundness() = notificationRoundnessManager.clear()
+
     override fun reset() {
         currentMagneticListeners.forEach {
             it?.cancelMagneticAnimations()
@@ -247,7 +263,7 @@
         }
         currentState = State.IDLE
         currentMagneticListeners = listOf()
-        currentRoundableTargets = null
+        notificationRoundnessManager.clear()
     }
 
     private fun List<MagneticRowListener?>.swipedListener(): MagneticRowListener? =
@@ -256,6 +272,11 @@
     private fun ExpandableNotificationRow.isSwipedTarget(): Boolean =
         magneticRowListener == currentMagneticListeners.swipedListener()
 
+    private fun NotificationRoundnessManager.clear() = setViewsAffectedBySwipe(null, null, null)
+
+    private fun NotificationRoundnessManager.setRoundableTargets(targets: RoundableTargets) =
+        setViewsAffectedBySwipe(targets.before, targets.swiped, targets.after)
+
     enum class State {
         IDLE,
         TARGETS_SET,
@@ -270,7 +291,7 @@
          * currently being swiped. From the center outwards, the multipliers apply to the neighbors
          * of the swiped view.
          */
-        private val MAGNETIC_TRANSLATION_MULTIPLIERS = listOf(0.18f, 0.28f, 0.5f, 0.28f, 0.18f)
+        private val MAGNETIC_TRANSLATION_MULTIPLIERS = listOf(0.04f, 0.12f, 0.5f, 0.12f, 0.04f)
 
         const val MAGNETIC_REDUCTION = 0.65f
 
@@ -278,7 +299,10 @@
         private const val DETACH_STIFFNESS = 800f
         private const val DETACH_DAMPING_RATIO = 0.95f
         private const val SNAP_BACK_STIFFNESS = 550f
-        private const val SNAP_BACK_DAMPING_RATIO = 0.52f
+        private const val SNAP_BACK_DAMPING_RATIO = 0.6f
+
+        // Maximum value of corner roundness that gets applied during the pre-detach dragging
+        private const val MAX_PRE_DETACH_ROUNDNESS = 0.8f
 
         private val VIBRATION_ATTRIBUTES_PIPELINING =
             VibrationAttributes.Builder()
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MediaContainerView.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MediaContainerView.kt
index bd7bd59..4d10a52 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MediaContainerView.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MediaContainerView.kt
@@ -70,14 +70,15 @@
     }
 
     override fun performRemoveAnimation(
-            duration: Long,
-            delay: Long,
-            translationDirection: Float,
-            isHeadsUpAnimation: Boolean,
-            onStartedRunnable: Runnable?,
-            onFinishedRunnable: Runnable?,
-            animationListener: AnimatorListenerAdapter?,
-            clipSide: ClipSide
+        duration: Long,
+        delay: Long,
+        translationDirection: Float,
+        isHeadsUpAnimation: Boolean,
+        isHeadsUpCycling: Boolean,
+        onStartedRunnable: Runnable?,
+        onFinishedRunnable: Runnable?,
+        animationListener: AnimatorListenerAdapter?,
+        clipSide: ClipSide,
     ): Long {
         return 0
     }
@@ -86,7 +87,8 @@
         delay: Long,
         duration: Long,
         isHeadsUpAppear: Boolean,
-        onEnd: Runnable?
+        isHeadsUpCycling: Boolean,
+        onEnd: Runnable?,
     ) {
         // No animation, it doesn't need it, this would be local
     }
@@ -103,9 +105,7 @@
         assertMediaContainerVisibility(visibility)
     }
 
-    /**
-     * visibility should be aligned with MediaContainerView visibility on the keyguard.
-     */
+    /** visibility should be aligned with MediaContainerView visibility on the keyguard. */
     private fun isVisibilityValid(visibility: Int): Boolean {
         val currentViewState = viewState as? MediaContainerViewState ?: return true
         val shouldBeGone = !currentViewState.shouldBeVisible
@@ -113,8 +113,7 @@
     }
 
     /**
-     * b/298213983
-     * MediaContainerView's visibility is changed to VISIBLE when it should be GONE.
+     * b/298213983 MediaContainerView's visibility is changed to VISIBLE when it should be GONE.
      * This method check this state and logs.
      */
     private fun assertMediaContainerVisibility(visibility: Int) {
@@ -122,8 +121,10 @@
 
         if (currentViewState is MediaContainerViewState) {
             if (!currentViewState.shouldBeVisible && visibility == VISIBLE) {
-                Log.wtf("MediaContainerView", "MediaContainerView should be GONE " +
-                        "but its visibility changed to VISIBLE")
+                Log.wtf(
+                    "MediaContainerView",
+                    "MediaContainerView should be GONE " + "but its visibility changed to VISIBLE",
+                )
             }
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java
index 1d18535..048958e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java
@@ -1458,7 +1458,7 @@
                 if (AsyncHybridViewInflation.isEnabled()) {
                     minExpandHeight += mMinSingleLineHeight;
                 } else {
-                    Log.e(TAG, "getMinHeight: child " + child.getEntry().getKey()
+                    Log.e(TAG, "getMinHeight: child " + child.getKey()
                             + " single line view is null", new Exception());
                 }
             }
@@ -1688,8 +1688,8 @@
     public void addTransientView(View view, int index) {
         if (mLogger != null && view instanceof ExpandableNotificationRow) {
             mLogger.addTransientRow(
-                    ((ExpandableNotificationRow) view).getEntry(),
-                    getContainingNotification().getEntry(),
+                    ((ExpandableNotificationRow) view).getLoggingKey(),
+                    getContainingNotification().getLoggingKey(),
                     index
             );
         }
@@ -1700,8 +1700,8 @@
     public void removeTransientView(View view) {
         if (mLogger != null && view instanceof ExpandableNotificationRow) {
             mLogger.removeTransientRow(
-                    ((ExpandableNotificationRow) view).getEntry(),
-                    getContainingNotification().getEntry()
+                    ((ExpandableNotificationRow) view).getLoggingKey(),
+                    getContainingNotification().getLoggingKey()
             );
         }
         super.removeTransientView(view);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainerLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainerLogger.kt
index 4986b63..d8da412 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainerLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainerLogger.kt
@@ -27,16 +27,16 @@
 @Inject
 constructor(@NotificationRenderLog private val notificationRenderBuffer: LogBuffer) {
     fun addTransientRow(
-        childEntry: NotificationEntry,
-        containerEntry: NotificationEntry,
+        childEntry: String,
+        containerEntry: String,
         index: Int
     ) {
         notificationRenderBuffer.log(
             TAG,
             LogLevel.INFO,
             {
-                str1 = childEntry.logKey
-                str2 = containerEntry.logKey
+                str1 = childEntry
+                str2 = containerEntry
                 int1 = index
             },
             { "addTransientRow: childKey: $str1 -- containerKey: $str2 -- index: $int1" }
@@ -44,15 +44,15 @@
     }
 
     fun removeTransientRow(
-        childEntry: NotificationEntry,
-        containerEntry: NotificationEntry,
+        childEntry: String,
+        containerEntry: String,
     ) {
         notificationRenderBuffer.log(
             TAG,
             LogLevel.INFO,
             {
-                str1 = childEntry.logKey
-                str2 = containerEntry.logKey
+                str1 = childEntry
+                str2 = containerEntry
             },
             { "removeTransientRow: childKey: $str1 -- containerKey: $str2" }
         )
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManager.java
index fa1843e..a53e837 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManager.java
@@ -71,10 +71,8 @@
             Roundable viewBefore,
             ExpandableView viewSwiped,
             Roundable viewAfter) {
-        // This method requires you to change the roundness of the current View targets and reset
-        // the roundness of the old View targets (if any) to 0f.
-        // To avoid conflicts, it generates a set of old Views and removes the current Views
-        // from this set.
+        // This method caches a new set of current View targets and reset the roundness of the old
+        // View targets (if any) to 0f.
         HashSet<Roundable> oldViews = new HashSet<>();
         if (mViewBeforeSwipedView != null) oldViews.add(mViewBeforeSwipedView);
         if (mSwipedView != null) oldViews.add(mSwipedView);
@@ -83,19 +81,16 @@
         mViewBeforeSwipedView = viewBefore;
         if (viewBefore != null) {
             oldViews.remove(viewBefore);
-            viewBefore.requestRoundness(/* top = */ 0f, /* bottom = */ 1f, DISMISS_ANIMATION);
         }
 
         mSwipedView = viewSwiped;
         if (viewSwiped != null) {
             oldViews.remove(viewSwiped);
-            viewSwiped.requestRoundness(/* top = */ 1f, /* bottom = */ 1f, DISMISS_ANIMATION);
         }
 
         mViewAfterSwipedView = viewAfter;
         if (viewAfter != null) {
             oldViews.remove(viewAfter);
-            viewAfter.requestRoundness(/* top = */ 1f, /* bottom = */ 0f, DISMISS_ANIMATION);
         }
 
         // After setting the current Views, reset the views that are still present in the set.
@@ -104,6 +99,34 @@
         }
     }
 
+    void setRoundnessForAffectedViews(float roundness) {
+        if (mViewBeforeSwipedView != null) {
+            mViewBeforeSwipedView.requestBottomRoundness(roundness, DISMISS_ANIMATION);
+        }
+
+        if (mSwipedView != null) {
+            mSwipedView.requestRoundness(roundness, roundness, DISMISS_ANIMATION);
+        }
+
+        if (mViewAfterSwipedView != null) {
+            mViewAfterSwipedView.requestTopRoundness(roundness, DISMISS_ANIMATION);
+        }
+    }
+
+    void setRoundnessForAffectedViews(float roundness, boolean animate) {
+        if (mViewBeforeSwipedView != null) {
+            mViewBeforeSwipedView.requestBottomRoundness(roundness, DISMISS_ANIMATION, animate);
+        }
+
+        if (mSwipedView != null) {
+            mSwipedView.requestRoundness(roundness, roundness, DISMISS_ANIMATION, animate);
+        }
+
+        if (mViewAfterSwipedView != null) {
+            mViewAfterSwipedView.requestTopRoundness(roundness, DISMISS_ANIMATION, animate);
+        }
+    }
+
     void setClearAllInProgress(boolean isClearingAll) {
         mIsClearAllInProgress = isClearingAll;
     }
@@ -138,4 +161,8 @@
     public void setShouldRoundPulsingViews(boolean shouldRoundPulsingViews) {
         mRoundForPulsingViews = shouldRoundPulsingViews;
     }
+
+    public boolean isSwipedViewSet() {
+        return mSwipedView != null;
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.kt
index 043d64e..3d8fe01 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.kt
@@ -278,13 +278,13 @@
             val fs =
                 when (val first = s.firstVisibleChild) {
                     null -> "(null)"
-                    is ExpandableNotificationRow -> first.entry.key
+                    is ExpandableNotificationRow -> first.loggingKey
                     else -> Integer.toHexString(System.identityHashCode(first))
                 }
             val ls =
                 when (val last = s.lastVisibleChild) {
                     null -> "(null)"
-                    is ExpandableNotificationRow -> last.entry.key
+                    is ExpandableNotificationRow -> last.loggingKey
                     else -> Integer.toHexString(System.identityHashCode(last))
                 }
             Log.d(TAG, "updateSections: f=$fs s=$i")
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
index 3ff18ef..6313258 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -789,17 +789,17 @@
     private void logHunSkippedForUnexpectedState(ExpandableNotificationRow enr,
                                                  boolean expected, boolean actual) {
         if (mLogger == null) return;
-        mLogger.hunSkippedForUnexpectedState(enr.getEntry(), expected, actual);
+        mLogger.hunSkippedForUnexpectedState(enr.getLoggingKey(), expected, actual);
     }
 
     private void logHunAnimationSkipped(ExpandableNotificationRow enr, String reason) {
         if (mLogger == null) return;
-        mLogger.hunAnimationSkipped(enr.getEntry(), reason);
+        mLogger.hunAnimationSkipped(enr.getLoggingKey(), reason);
     }
 
     private void logHunAnimationEventAdded(ExpandableNotificationRow enr, int type) {
         if (mLogger == null) return;
-        mLogger.hunAnimationEventAdded(enr.getEntry(), type);
+        mLogger.hunAnimationEventAdded(enr.getLoggingKey(), type);
     }
 
     private void onDrawDebug(Canvas canvas) {
@@ -1810,16 +1810,22 @@
 
     private ExpandableNotificationRow getTopHeadsUpRow() {
         ExpandableNotificationRow row = mTopHeadsUpRow;
-        if (row.isChildInGroup()) {
-            final NotificationEntry groupSummary =
-                    mGroupMembershipManager.getGroupSummary(row.getEntry());
-            if (groupSummary != null) {
-                row = groupSummary.getRow();
+        if (NotificationBundleUi.isEnabled()) {
+            if (mGroupMembershipManager.isChildInGroup(row.getEntryAdapter())
+                    && row.isChildInGroup()) {
+                row = row.getNotificationParent();
+            }
+        } else {
+            if (row.isChildInGroup()) {
+                final NotificationEntry groupSummary =
+                        mGroupMembershipManager.getGroupSummary(row.getEntry());
+                if (groupSummary != null) {
+                    row = groupSummary.getRow();
+                }
             }
         }
         return row;
     }
-
     /**
      * @return the position from where the appear transition ends when expanding.
      * Measured in absolute height.
@@ -1966,10 +1972,19 @@
                     && touchY >= top && touchY <= bottom && touchX >= left && touchX <= right) {
                 if (slidingChild instanceof ExpandableNotificationRow row) {
                     NotificationEntry entry = row.getEntry();
+                    boolean isEntrySummaryForTopHun;
+                    if (NotificationBundleUi.isEnabled()) {
+                        isEntrySummaryForTopHun = Objects.equals(
+                                ((ExpandableNotificationRow) slidingChild).getNotificationParent(),
+                                mTopHeadsUpRow);
+                    } else {
+                        isEntrySummaryForTopHun = mTopHeadsUpRow != null &&
+                                mGroupMembershipManager.getGroupSummary(mTopHeadsUpRow.getEntry())
+                                == entry;
+                    }
                     if (!mIsExpanded && row.isHeadsUp() && row.isPinned()
                             && mTopHeadsUpRow != row
-                            && mGroupMembershipManager.getGroupSummary(mTopHeadsUpRow.getEntry())
-                            != entry) {
+                            && !isEntrySummaryForTopHun) {
                         continue;
                     }
                     return row.getViewAtPosition(touchY - childTop);
@@ -2902,17 +2917,17 @@
         if (child instanceof ExpandableNotificationRow) {
             if (container instanceof NotificationChildrenContainer) {
                 mLogger.addTransientChildNotificationToChildContainer(
-                        ((ExpandableNotificationRow) child).getEntry(),
+                        ((ExpandableNotificationRow) child).getLoggingKey(),
                         ((NotificationChildrenContainer) container)
-                                .getContainingNotification().getEntry()
+                                .getContainingNotification().getLoggingKey()
                 );
             } else if (container instanceof NotificationStackScrollLayout) {
                 mLogger.addTransientChildNotificationToNssl(
-                        ((ExpandableNotificationRow) child).getEntry()
+                        ((ExpandableNotificationRow) child).getLoggingKey()
                 );
             } else {
                 mLogger.addTransientChildNotificationToViewGroup(
-                        ((ExpandableNotificationRow) child).getEntry(),
+                        ((ExpandableNotificationRow) child).getLoggingKey(),
                         container
                 );
             }
@@ -2922,7 +2937,7 @@
     @Override
     public void addTransientView(View view, int index) {
         if (mLogger != null && view instanceof ExpandableNotificationRow) {
-            mLogger.addTransientRow(((ExpandableNotificationRow) view).getEntry(), index);
+            mLogger.addTransientRow(((ExpandableNotificationRow) view).getLoggingKey(), index);
         }
         super.addTransientView(view, index);
     }
@@ -2930,7 +2945,7 @@
     @Override
     public void removeTransientView(View view) {
         if (mLogger != null && view instanceof ExpandableNotificationRow) {
-            mLogger.removeTransientRow(((ExpandableNotificationRow) view).getEntry());
+            mLogger.removeTransientRow(((ExpandableNotificationRow) view).getLoggingKey());
         }
         super.removeTransientView(view);
     }
@@ -2981,7 +2996,7 @@
         String key = "";
         if (mDebugRemoveAnimation) {
             if (child instanceof ExpandableNotificationRow) {
-                key = ((ExpandableNotificationRow) child).getEntry().getKey();
+                key = ((ExpandableNotificationRow) child).getKey();
             }
             Log.d(TAG, "generateRemoveAnimation " + key);
         }
@@ -3403,7 +3418,7 @@
                         + " isHeadsUp=" + isHeadsUp
                         + " type=" + type
                         + " onBottom=" + onBottom
-                        + " row=" + row.getEntry().getKey());
+                        + " row=" + row.getKey());
             }
             logHunAnimationEventAdded(row, type);
         }
@@ -3478,7 +3493,7 @@
             if (mDebugRemoveAnimation) {
                 String key = "";
                 if (child instanceof ExpandableNotificationRow) {
-                    key = ((ExpandableNotificationRow) child).getEntry().getKey();
+                    key = ((ExpandableNotificationRow) child).getKey();
                 }
                 Log.d(TAG, "created Remove Event - SwipedOut: " + childWasSwipedOut + " " + key);
             }
@@ -4366,7 +4381,7 @@
         if (mLogger == null) {
             return;
         }
-        mLogger.transientNotificationRowTraversalCleaned(transientView.getEntry(), reason);
+        mLogger.transientNotificationRowTraversalCleaned(transientView.getLoggingKey(), reason);
     }
 
     void onPanelTrackingStarted() {
@@ -5060,7 +5075,7 @@
                     + " addAnimation=" + addAnimation
                     + (row.getEntry() == null ? " entry NULL "
                             : " isSeenInShade=" + row.getEntry().isSeenInShade()
-                                    + " row=" + row.getEntry().getKey())
+                                    + " row=" + row.getKey())
                     + " mIsExpanded=" + mIsExpanded
                     + " isHeadsUp=" + isHeadsUp);
         }
@@ -5825,7 +5840,8 @@
                             targets.getBefore(),
                             targets.getSwiped(),
                             targets.getAfter());
-
+            mController.getNotificationRoundnessManager()
+                    .setRoundnessForAffectedViews(/* roundness */ 1f);
         }
 
         updateFirstAndLastBackgroundViews();
@@ -5836,8 +5852,10 @@
 
     void onSwipeEnd() {
         updateFirstAndLastBackgroundViews();
-        mController.getNotificationRoundnessManager()
-                .setViewsAffectedBySwipe(null, null, null);
+        if (!magneticNotificationSwipes()) {
+            mController.getNotificationRoundnessManager()
+                    .setViewsAffectedBySwipe(null, null, null);
+        }
         // Round bottom corners for notification right before shelf.
         mShelf.updateAppearance();
     }
@@ -6763,7 +6781,7 @@
         NotificationChildrenContainer childrenContainer = row.getChildrenContainer();
         if (childrenContainer == null) {
             Log.wtf(TAG, "Tried to update group header alignment for something that's "
-                    + "not a group; key = " + row.getEntry().getKey());
+                    + "not a group; key = " + row.getKey());
             return;
         }
         NotificationHeaderView header = childrenContainer.getGroupHeader();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java
index 888c8cc..5c96470 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java
@@ -545,6 +545,7 @@
 
                 public void handleChildViewDismissed(View view) {
                     // The View needs to clean up the Swipe states, e.g. roundness.
+                    mMagneticNotificationRowManager.resetRoundness();
                     mView.onSwipeEnd();
                     if (mView.getClearAllInProgress()) {
                         return;
@@ -552,7 +553,7 @@
                     if (view instanceof ExpandableNotificationRow row) {
                         if (row.isHeadsUp()) {
                             mHeadsUpManager.addSwipedOutNotification(
-                                    row.getEntry().getSbn().getKey());
+                                    row.getKey());
                         }
                         row.performDismiss(false /* fromAccessibility */);
                     }
@@ -597,7 +598,7 @@
                                 && (parent.areGutsExposed()
                                 || mSwipeHelper.getExposedMenuView() == parent
                                 || (parent.getAttachedChildren().size() == 1
-                                && mDismissibilityProvider.isDismissable(parent.getEntry())))) {
+                                && mDismissibilityProvider.isDismissable(parent.getKey())))) {
                             // In this case the group is expanded and showing the menu for the
                             // group, further interaction should apply to the group, not any
                             // child notifications so we use the parent of the child. We also do the
@@ -629,7 +630,7 @@
                 @Override
                 public void onChildSnapBackOvershoots() {
                     if (Flags.magneticNotificationSwipes()) {
-                        mNotificationRoundnessManager.setViewsAffectedBySwipe(null, null, null);
+                        mMagneticNotificationRowManager.resetRoundness();
                     }
                 }
 
@@ -641,7 +642,7 @@
                                 && row.getEntry().getSbn().getNotification().fullScreenIntent
                                 == null) {
                             mHeadsUpManager.removeNotification(
-                                    row.getEntry().getSbn().getKey(),
+                                    row.getKey(),
                                     /* removeImmediately= */ true,
                                     /* reason= */ "onChildSnappedBack"
                             );
@@ -1954,12 +1955,11 @@
         @Override
         public void bindRow(ExpandableNotificationRow row) {
             row.setHeadsUpAnimatingAwayListener(animatingAway -> {
-                NotificationEntry entry = row.getEntry();
-                mHeadsUpAppearanceController.updateHeader(entry);
-                mHeadsUpAppearanceController.updateHeadsUpAndPulsingRoundness(entry);
+                mHeadsUpAppearanceController.updateHeader(row);
+                mHeadsUpAppearanceController.updateHeadsUpAndPulsingRoundness(row);
                 if (GroupHunAnimationFix.isEnabled() && !animatingAway) {
                     // invalidate list to make sure the row is sorted to the correct section
-                    mHeadsUpManager.onEntryAnimatingAwayEnded(entry);
+                    mHeadsUpManager.onEntryAnimatingAwayEnded(row.getEntry());
                 }
             });
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLogger.kt
index 30658710..871b81d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLogger.kt
@@ -23,15 +23,15 @@
     @NotificationRenderLog private val notificationRenderBuffer: LogBuffer,
     @ShadeLog private val shadeLogBuffer: LogBuffer,
 ) {
-    fun hunAnimationSkipped(entry: NotificationEntry, reason: String) {
+    fun hunAnimationSkipped(entry: String, reason: String) {
         buffer.log(TAG, INFO, {
-            str1 = entry.logKey
+            str1 = entry
             str2 = reason
         }, {
             "heads up animation skipped: key: $str1 reason: $str2"
         })
     }
-    fun hunAnimationEventAdded(entry: NotificationEntry, type: Int) {
+    fun hunAnimationEventAdded(entry: String, type: Int) {
         val reason: String
         reason = if (type == ANIMATION_TYPE_HEADS_UP_DISAPPEAR) {
             "HEADS_UP_DISAPPEAR"
@@ -47,16 +47,16 @@
             type.toString()
         }
         buffer.log(TAG, INFO, {
-            str1 = entry.logKey
+            str1 = entry
             str2 = reason
         }, {
             "heads up animation added: $str1 with type $str2"
         })
     }
 
-    fun hunSkippedForUnexpectedState(entry: NotificationEntry, expected: Boolean, actual: Boolean) {
+    fun hunSkippedForUnexpectedState(entry: String, expected: Boolean, actual: Boolean) {
         buffer.log(TAG, INFO, {
-            str1 = entry.logKey
+            str1 = entry
             bool1 = expected
             bool2 = actual
         }, {
@@ -84,9 +84,9 @@
         })
     }
 
-    fun transientNotificationRowTraversalCleaned(entry: NotificationEntry, reason: String) {
+    fun transientNotificationRowTraversalCleaned(entry: String, reason: String) {
         notificationRenderBuffer.log(TAG, INFO, {
-            str1 = entry.logKey
+            str1 = entry
             str2 = reason
         }, {
             "transientNotificationRowTraversalCleaned: key: $str1 reason: $str2"
@@ -94,12 +94,12 @@
     }
 
     fun addTransientChildNotificationToChildContainer(
-            childEntry: NotificationEntry,
-            containerEntry: NotificationEntry,
+            childEntry: String,
+            containerEntry: String,
     ) {
         notificationRenderBuffer.log(TAG, INFO, {
-            str1 = childEntry.logKey
-            str2 = containerEntry.logKey
+            str1 = childEntry
+            str2 = containerEntry
         }, {
             "addTransientChildToContainer from onViewRemovedInternal: childKey: $str1 " +
                     "-- containerKey: $str2"
@@ -107,21 +107,21 @@
     }
 
     fun addTransientChildNotificationToNssl(
-            childEntry: NotificationEntry,
+            childEntry: String,
     ) {
         notificationRenderBuffer.log(TAG, INFO, {
-            str1 = childEntry.logKey
+            str1 = childEntry
         }, {
             "addTransientRowToNssl from onViewRemovedInternal: childKey: $str1"
         })
     }
 
     fun addTransientChildNotificationToViewGroup(
-            childEntry: NotificationEntry,
+            childEntry: String,
             container: ViewGroup
     ) {
         notificationRenderBuffer.log(TAG, ERROR, {
-            str1 = childEntry.logKey
+            str1 = childEntry
             str2 = container.toString()
         }, {
             "addTransientRowTo unhandled ViewGroup from onViewRemovedInternal: childKey: $str1 " +
@@ -130,14 +130,14 @@
     }
 
     fun addTransientRow(
-            childEntry: NotificationEntry,
+            childEntry: String,
             index: Int
     ) {
         notificationRenderBuffer.log(
                 TAG,
                 INFO,
                 {
-                    str1 = childEntry.logKey
+                    str1 = childEntry
                     int1 = index
                 },
                 { "addTransientRow to NSSL: childKey: $str1 -- index: $int1" }
@@ -145,13 +145,13 @@
     }
 
     fun removeTransientRow(
-            childEntry: NotificationEntry,
+            childEntry: String,
     ) {
         notificationRenderBuffer.log(
                 TAG,
                 INFO,
                 {
-                    str1 = childEntry.logKey
+                    str1 = childEntry
                 },
                 { "removeTransientRow from NSSL: childKey: $str1" }
         )
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
index 06b989a..88d3ad8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
@@ -275,11 +275,7 @@
     public static void debugLogView(View view, String s) {
         String viewString = "";
         if (view instanceof ExpandableNotificationRow row) {
-            if (row.getEntry() == null) {
-                viewString = "ExpandableNotificationRow has null NotificationEntry";
-            } else {
-                viewString = row.getEntry().getSbn().getId() + "";
-            }
+            viewString = row.getKey();
         } else if (view == null) {
             viewString = "View is null";
         } else if (view instanceof SectionHeaderView) {
@@ -413,10 +409,8 @@
      */
     public boolean isCyclingOut(ExpandableNotificationRow row, AmbientState ambientState) {
         if (!NotificationHeadsUpCycling.isEnabled()) return false;
-        if (row.getEntry() == null) return false;
-        if (row.getEntry().getKey() == null) return false;
         String cyclingOutKey = ambientState.getAvalanchePreviousHunKey();
-        return row.getEntry().getKey().equals(cyclingOutKey);
+        return row.getKey().equals(cyclingOutKey);
     }
 
     /**
@@ -424,10 +418,8 @@
      */
     public boolean isCyclingIn(ExpandableNotificationRow row, AmbientState ambientState) {
         if (!NotificationHeadsUpCycling.isEnabled()) return false;
-        if (row.getEntry() == null) return false;
-        if (row.getEntry().getKey() == null) return false;
         String cyclingInKey = ambientState.getAvalancheShowingHunKey();
-        return row.getEntry().getKey().equals(cyclingInKey);
+        return row.getKey().equals(cyclingInKey);
     }
 
     /** Updates the dimmed and hiding sensitive states of the children. */
@@ -1227,13 +1219,17 @@
         float baseZ = ambientState.getBaseZHeight();
 
         if (SceneContainerFlag.isEnabled()) {
-            // SceneContainer flags off this logic, and just sets the baseZ because:
+            // SceneContainer simplifies this logic, because:
             // - there are no overlapping HUNs anymore, no need for multiplying their shadows
             // - shadows for HUNs overlapping with the stack are now set from updateHeadsUpStates
-            // - shadows for HUNs overlapping with the shelf are NOT set anymore, because it only
-            // happens on AOD/Pulsing, where they're displayed on a black background so a shadow
-            // wouldn't be visible.
-            childViewState.setZTranslation(baseZ);
+            if (child.isPinned() || ambientState.getTrackedHeadsUpRow() == child) {
+                // set a default elevation on the HUN, which would be overridden
+                // from updateHeadsUpStates if it is displayed in the shade
+                childViewState.setZTranslation(baseZ + mPinnedZTranslationExtra);
+            } else {
+                // set baseZ for every notification
+                childViewState.setZTranslation(baseZ);
+            }
         } else {
             if (child.mustStayOnScreen() && !childViewState.headsUpIsVisible
                     && !ambientState.isDozingAndNotPulsing(child)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java
index 5e0d57e..4da418e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java
@@ -422,7 +422,7 @@
             if (changingView instanceof ExpandableNotificationRow && mLogger != null) {
                 loggable = true;
                 isHeadsUp = ((ExpandableNotificationRow) changingView).isHeadsUp();
-                key = ((ExpandableNotificationRow) changingView).getEntry().getKey();
+                key = ((ExpandableNotificationRow) changingView).getKey();
             }
             if (event.animationType ==
                     NotificationStackScrollLayout.AnimationEvent.ANIMATION_TYPE_ADD) {
@@ -506,8 +506,8 @@
                 }
                 changingView.performRemoveAnimation(ANIMATION_DURATION_APPEAR_DISAPPEAR,
                         0 /* delay */, translationDirection, false /* isHeadsUpAppear */,
-                        startAnimation, postAnimation, getGlobalAnimationFinishedListener(),
-                        ExpandableView.ClipSide.BOTTOM);
+                        false /* isHeadsUpCycling */, startAnimation, postAnimation,
+                        getGlobalAnimationFinishedListener(), ExpandableView.ClipSide.BOTTOM);
                 needsCustomAnimation = true;
             } else if (event.animationType ==
                     NotificationStackScrollLayout.AnimationEvent.ANIMATION_TYPE_REMOVE_SWIPED_OUT) {
@@ -538,7 +538,7 @@
                     };
                 }
                 changingView.performAddAnimation(0, ANIMATION_DURATION_HEADS_UP_CYCLING,
-                        /* isHeadsUpAppear= */ true, onAnimationEnd);
+                        /* isHeadsUpAppear= */ true, /* isHeadsUpCycling= */ true, onAnimationEnd);
             } else if (event.animationType == ANIMATION_TYPE_HEADS_UP_APPEAR) {
                 mHeadsUpAppearChildren.add(changingView);
 
@@ -559,7 +559,7 @@
                     onAnimationEnd = () -> mLogger.appearAnimationEnded(finalKey);
                 }
                 changingView.performAddAnimation(0, ANIMATION_DURATION_HEADS_UP_APPEAR,
-                        /* isHeadsUpAppear= */ true, onAnimationEnd);
+                        /* isHeadsUpAppear= */ true, /* isHeadsUpCycling= */ false, onAnimationEnd);
             } else if (event.animationType == ANIMATION_TYPE_HEADS_UP_CYCLING_OUT) {
                 mHeadsUpDisappearChildren.add(changingView);
                 Runnable endRunnable = null;
@@ -629,6 +629,7 @@
                             // translation, the actual translation is in StackScrollAlgorithm.
                             /* translationDirection= */ 0.0f,
                             /* isHeadsUpAnimation= */ true,
+                            /* isHeadsUpCycling= */ true,
                             startAnimation, postAnimation,
                             getGlobalAnimationFinishedListener(), ExpandableView.ClipSide.TOP);
                     mAnimationProperties.delay += removeAnimationDelay;
@@ -706,6 +707,7 @@
                     long removeAnimationDelay = changingView.performRemoveAnimation(
                             ANIMATION_DURATION_HEADS_UP_DISAPPEAR,
                             0, 0.0f, true /* isHeadsUpAppear */,
+                            false /* isHeadsUpCycling */,
                             startAnimation, postAnimation,
                             getGlobalAnimationFinishedListener(), ExpandableView.ClipSide.BOTTOM);
                     mAnimationProperties.delay += removeAnimationDelay;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt
index 08d98a1..1dbaf2f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt
@@ -147,7 +147,7 @@
         sceneInteractor.transitionState.map { transition: ObservableTransitionState ->
             transition is Transition &&
                 transition.fromContent == Scenes.Lockscreen &&
-                (transition.toContent == Scenes.Bouncer || transition.toContent == Scenes.Gone)
+                (transition.toContent == Overlays.Bouncer || transition.toContent == Scenes.Gone)
         }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt
index 5c81c8e..33cc62c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt
@@ -20,6 +20,7 @@
 import android.content.Context
 import androidx.annotation.VisibleForTesting
 import com.android.app.tracing.coroutines.flow.flowName
+import com.android.systemui.Flags.glanceableHubV2
 import com.android.systemui.common.shared.model.NotificationContainerBounds
 import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractor
 import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
@@ -49,7 +50,6 @@
 import com.android.systemui.keyguard.ui.viewmodel.AodToLockscreenTransitionViewModel
 import com.android.systemui.keyguard.ui.viewmodel.AodToOccludedTransitionViewModel
 import com.android.systemui.keyguard.ui.viewmodel.AodToPrimaryBouncerTransitionViewModel
-import com.android.systemui.keyguard.ui.viewmodel.DozingToDreamingTransitionViewModel
 import com.android.systemui.keyguard.ui.viewmodel.DozingToGlanceableHubTransitionViewModel
 import com.android.systemui.keyguard.ui.viewmodel.DozingToLockscreenTransitionViewModel
 import com.android.systemui.keyguard.ui.viewmodel.DozingToOccludedTransitionViewModel
@@ -75,6 +75,7 @@
 import com.android.systemui.keyguard.ui.viewmodel.ViewStateAccessor
 import com.android.systemui.res.R
 import com.android.systemui.scene.shared.flag.SceneContainerFlag
+import com.android.systemui.scene.shared.model.Overlays
 import com.android.systemui.scene.shared.model.Scenes
 import com.android.systemui.shade.LargeScreenHeaderHelper
 import com.android.systemui.shade.ShadeDisplayAware
@@ -87,7 +88,9 @@
 import com.android.systemui.statusbar.notification.stack.domain.interactor.NotificationStackAppearanceInteractor
 import com.android.systemui.statusbar.notification.stack.domain.interactor.SharedNotificationContainerInteractor
 import com.android.systemui.unfold.domain.interactor.UnfoldTransitionInteractor
+import com.android.systemui.util.kotlin.BooleanFlowOperators.allOf
 import com.android.systemui.util.kotlin.BooleanFlowOperators.anyOf
+import com.android.systemui.util.kotlin.BooleanFlowOperators.not
 import com.android.systemui.util.kotlin.FlowDumperImpl
 import com.android.systemui.util.kotlin.Utils.Companion.sample as sampleCombine
 import com.android.systemui.util.kotlin.sample
@@ -140,7 +143,6 @@
     private val aodToOccludedTransitionViewModel: AodToOccludedTransitionViewModel,
     private val aodToGlanceableHubTransitionViewModel: AodToGlanceableHubTransitionViewModel,
     private val aodToPrimaryBouncerTransitionViewModel: AodToPrimaryBouncerTransitionViewModel,
-    private val dozingToDreamingTransitionViewModel: DozingToDreamingTransitionViewModel,
     dozingToGlanceableHubTransitionViewModel: DozingToGlanceableHubTransitionViewModel,
     private val dozingToLockscreenTransitionViewModel: DozingToLockscreenTransitionViewModel,
     private val dozingToOccludedTransitionViewModel: DozingToOccludedTransitionViewModel,
@@ -299,20 +301,40 @@
             .distinctUntilChanged()
             .dumpWhileCollecting("configurationBasedDimensions")
 
+    private val isOnAnyBouncer: Flow<Boolean> =
+        anyOf(
+            keyguardTransitionInteractor.transitionValue(ALTERNATE_BOUNCER).map { it > 0f },
+            keyguardTransitionInteractor
+                .transitionValue(
+                    content = Overlays.Bouncer,
+                    stateWithoutSceneContainer = PRIMARY_BOUNCER,
+                )
+                .map { it > 0f },
+        )
+
     /** If the user is visually on one of the unoccluded lockscreen states. */
     val isOnLockscreen: Flow<Boolean> =
-        anyOf(
-                keyguardTransitionInteractor.transitionValue(AOD).map { it > 0f },
-                keyguardTransitionInteractor.transitionValue(DOZING).map { it > 0f },
-                keyguardTransitionInteractor.transitionValue(ALTERNATE_BOUNCER).map { it > 0f },
-                keyguardTransitionInteractor
-                    .transitionValue(
-                        scene = Scenes.Bouncer,
-                        stateWithoutSceneContainer = PRIMARY_BOUNCER,
-                    )
-                    .map { it > 0f },
-                keyguardTransitionInteractor.transitionValue(LOCKSCREEN).map { it > 0f },
-            )
+        if (glanceableHubV2()) {
+                anyOf(
+                    keyguardTransitionInteractor.transitionValue(AOD).map { it > 0f },
+                    keyguardTransitionInteractor.transitionValue(DOZING).map { it > 0f },
+                    keyguardTransitionInteractor.transitionValue(LOCKSCREEN).map { it > 0f },
+                    allOf(
+                        // Exclude bouncer showing over communal hub, as this should not be
+                        // considered
+                        // "lockscreen"
+                        not(communalSceneInteractor.isCommunalVisible),
+                        isOnAnyBouncer,
+                    ),
+                )
+            } else {
+                anyOf(
+                    keyguardTransitionInteractor.transitionValue(AOD).map { it > 0f },
+                    keyguardTransitionInteractor.transitionValue(DOZING).map { it > 0f },
+                    keyguardTransitionInteractor.transitionValue(LOCKSCREEN).map { it > 0f },
+                    isOnAnyBouncer,
+                )
+            }
             .flowName("isOnLockscreen")
             .stateIn(
                 scope = applicationScope,
@@ -338,7 +360,7 @@
     private val isOnGlanceableHub: Flow<Boolean> =
         combine(
                 keyguardTransitionInteractor.isFinishedIn(
-                    scene = Scenes.Communal,
+                    content = Scenes.Communal,
                     stateWithoutSceneContainer = GLANCEABLE_HUB,
                 ),
                 anyOf(
@@ -579,7 +601,6 @@
             aodToOccludedTransitionViewModel.lockscreenAlpha(viewState),
             aodToGlanceableHubTransitionViewModel.lockscreenAlpha(viewState),
             aodToPrimaryBouncerTransitionViewModel.notificationAlpha,
-            dozingToDreamingTransitionViewModel.notificationAlpha,
             dozingToLockscreenTransitionViewModel.lockscreenAlpha,
             dozingToOccludedTransitionViewModel.lockscreenAlpha(viewState),
             dozingToPrimaryBouncerTransitionViewModel.notificationAlpha,
@@ -615,7 +636,7 @@
                 anyOf(
                     isKeyguardOccluded,
                     keyguardTransitionInteractor
-                        .transitionValue(scene = Scenes.Gone, stateWithoutSceneContainer = GONE)
+                        .transitionValue(content = Scenes.Gone, stateWithoutSceneContainer = GONE)
                         .map { it == 1f },
                 )
             }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
index a9b3753..face1c7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
@@ -163,7 +163,7 @@
 import com.android.systemui.scrim.ScrimView;
 import com.android.systemui.settings.UserTracker;
 import com.android.systemui.settings.brightness.BrightnessSliderController;
-import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractor;
+import com.android.systemui.settings.brightness.data.repository.BrightnessMirrorShowingRepository;
 import com.android.systemui.shade.CameraLauncher;
 import com.android.systemui.shade.GlanceableHubContainerController;
 import com.android.systemui.shade.NotificationShadeWindowView;
@@ -589,7 +589,7 @@
 
     private final ColorExtractor.OnColorsChangedListener mOnColorsChangedListener =
             (extractor, which) -> updateTheme();
-    private final BrightnessMirrorShowingInteractor mBrightnessMirrorShowingInteractor;
+    private final BrightnessMirrorShowingRepository mBrightnessMirrorShowingRepository;
 
     // Only use before the scene container. Null if scene container is enabled.
     @Nullable private final GlanceableHubContainerController mGlanceableHubContainerController;
@@ -709,7 +709,7 @@
             AlternateBouncerInteractor alternateBouncerInteractor,
             UserTracker userTracker,
             ActivityStarter activityStarter,
-            BrightnessMirrorShowingInteractor brightnessMirrorShowingInteractor,
+            BrightnessMirrorShowingRepository brightnessMirrorShowingRepository,
             GlanceableHubContainerController glanceableHubContainerController,
             EmergencyGestureIntentFactory emergencyGestureIntentFactory,
             ViewCaptureAwareWindowManager viewCaptureAwareWindowManager,
@@ -805,7 +805,7 @@
         mAlternateBouncerInteractor = alternateBouncerInteractor;
         mUserTracker = userTracker;
         mActivityStarter = activityStarter;
-        mBrightnessMirrorShowingInteractor = brightnessMirrorShowingInteractor;
+        mBrightnessMirrorShowingRepository = brightnessMirrorShowingRepository;
         if (!SceneContainerFlag.isEnabled()) {
             mGlanceableHubContainerController = glanceableHubContainerController;
         } else {
@@ -1110,7 +1110,7 @@
                 mIdleOnCommunalConsumer);
         if (SceneContainerFlag.isEnabled() || QSComposeFragment.isEnabled()) {
             mJavaAdapter.alwaysCollectFlow(
-                    mBrightnessMirrorShowingInteractor.isShowing(),
+                    mBrightnessMirrorShowingRepository.isShowing(),
                     this::setBrightnessMirrorShowing
             );
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java
index 548ab83..7f4ac37 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java
@@ -215,13 +215,13 @@
     @Override
     public void onHeadsUpPinned(NotificationEntry entry) {
         updatePinnedStatus();
-        updateHeader(entry);
-        updateHeadsUpAndPulsingRoundness(entry);
+        updateHeader(entry.getRow());
+        updateHeadsUpAndPulsingRoundness(entry.getRow());
     }
 
     @Override
     public void onHeadsUpStateChanged(@NonNull NotificationEntry entry, boolean isHeadsUp) {
-        updateHeadsUpAndPulsingRoundness(entry);
+        updateHeadsUpAndPulsingRoundness(entry.getRow());
         mPhoneStatusBarTransitions.onHeadsUpStateChanged(isHeadsUp);
     }
 
@@ -416,8 +416,8 @@
     @Override
     public void onHeadsUpUnPinned(NotificationEntry entry) {
         updatePinnedStatus();
-        updateHeader(entry);
-        updateHeadsUpAndPulsingRoundness(entry);
+        updateHeader(entry.getRow());
+        updateHeadsUpAndPulsingRoundness(entry.getRow());
     }
 
     public void setAppearFraction(float expandedHeight, float appearFraction) {
@@ -448,9 +448,8 @@
         ExpandableNotificationRow previousTracked = mTrackedChild;
         mTrackedChild = trackedChild;
         if (previousTracked != null) {
-            NotificationEntry entry = previousTracked.getEntry();
-            updateHeader(entry);
-            updateHeadsUpAndPulsingRoundness(entry);
+            updateHeader(previousTracked);
+            updateHeadsUpAndPulsingRoundness(previousTracked);
         }
     }
 
@@ -460,13 +459,12 @@
 
     private void updateHeadsUpHeaders() {
         mHeadsUpManager.getAllEntries().forEach(entry -> {
-            updateHeader(entry);
-            updateHeadsUpAndPulsingRoundness(entry);
+            updateHeader(entry.getRow());
+            updateHeadsUpAndPulsingRoundness(entry.getRow());
         });
     }
 
-    public void updateHeader(NotificationEntry entry) {
-        ExpandableNotificationRow row = entry.getRow();
+    public void updateHeader(ExpandableNotificationRow row) {
         float headerVisibleAmount = 1.0f;
         // To fix the invisible HUN group header issue
         if (!AsyncGroupHeaderViewInflation.isEnabled()) {
@@ -480,10 +478,9 @@
 
     /**
      * Update the HeadsUp and the Pulsing roundness based on current state
-     * @param entry target notification
+     * @param row target notification row
      */
-    public void updateHeadsUpAndPulsingRoundness(NotificationEntry entry) {
-        ExpandableNotificationRow row = entry.getRow();
+    public void updateHeadsUpAndPulsingRoundness(ExpandableNotificationRow row) {
         boolean isTrackedChild = row == mTrackedChild;
         if (row.isPinned() || row.isHeadsUpAnimatingAway() || isTrackedChild) {
             float roundness = MathUtils.saturate(1f - mAppearFraction);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LSShadeTransitionLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LSShadeTransitionLogger.kt
index 686efb7..edaf400 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LSShadeTransitionLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LSShadeTransitionLogger.kt
@@ -34,9 +34,8 @@
     private val displayMetrics: DisplayMetrics
 ) {
     fun logUnSuccessfulDragDown(startingChild: View?) {
-        val entry = (startingChild as? ExpandableNotificationRow)?.entry
         buffer.log(TAG, LogLevel.INFO, {
-            str1 = entry?.key ?: "no entry"
+            str1 = (startingChild as? ExpandableNotificationRow)?.loggingKey ?: "no entry"
         }, {
             "Tried to drag down but can't drag down on $str1"
         })
@@ -49,27 +48,24 @@
     }
 
     fun logDragDownStarted(startingChild: ExpandableView?) {
-        val entry = (startingChild as? ExpandableNotificationRow)?.entry
         buffer.log(TAG, LogLevel.INFO, {
-            str1 = entry?.key ?: "no entry"
+            str1 = (startingChild as? ExpandableNotificationRow)?.loggingKey ?: "no entry"
         }, {
             "The drag down has started on $str1"
         })
     }
 
     fun logDraggedDownLockDownShade(startingChild: View?) {
-        val entry = (startingChild as? ExpandableNotificationRow)?.entry
         buffer.log(TAG, LogLevel.INFO, {
-            str1 = entry?.key ?: "no entry"
+            str1 = (startingChild as? ExpandableNotificationRow)?.loggingKey ?: "no entry"
         }, {
             "Dragged down in locked down shade on $str1"
         })
     }
 
     fun logDraggedDown(startingChild: View?, dragLengthY: Int) {
-        val entry = (startingChild as? ExpandableNotificationRow)?.entry
         buffer.log(TAG, LogLevel.INFO, {
-            str1 = entry?.key ?: "no entry"
+            str1 = (startingChild as? ExpandableNotificationRow)?.loggingKey ?: "no entry"
         }, {
             "Drag down succeeded on $str1"
         })
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
index 66f0d4a..74a42ef 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -533,7 +533,10 @@
     private void handleBlurSupportedChanged(boolean isBlurSupported) {
         this.mIsBlurSupported = isBlurSupported;
         if (Flags.bouncerUiRevamp()) {
-            updateDefaultScrimAlphas();
+            // TODO: animate blur fallback when the bouncer is pulled up.
+            for (ScrimState state : ScrimState.values()) {
+                state.setDefaultScrimAlpha(getDefaultScrimAlpha(true));
+            }
             if (isBlurSupported) {
                 ScrimState.BOUNCER_SCRIMMED.setNotifBlurRadius(mBlurConfig.getMaxBlurRadiusPx());
             } else {
@@ -541,7 +544,17 @@
             }
         }
         if (Flags.notificationShadeBlur()) {
+            float inFrontAlpha = mInFrontAlpha;
+            float behindAlpha = mBehindAlpha;
+            float notifAlpha = mNotificationsAlpha;
+
             mState.prepare(mState);
+            applyState();
+            startScrimAnimation(mScrimBehind, behindAlpha);
+            startScrimAnimation(mNotificationsScrim, notifAlpha);
+            startScrimAnimation(mScrimInFront, inFrontAlpha);
+            dispatchBackScrimState(mScrimBehind.getViewAlpha());
+        } else if (Flags.bouncerUiRevamp()) {
             applyAndDispatchState();
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
index bc29769..8c44fe5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -84,7 +84,7 @@
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.scene.domain.interactor.SceneInteractor;
 import com.android.systemui.scene.shared.flag.SceneContainerFlag;
-import com.android.systemui.scene.shared.model.Scenes;
+import com.android.systemui.scene.shared.model.Overlays;
 import com.android.systemui.shade.ShadeController;
 import com.android.systemui.shade.ShadeExpansionChangeEvent;
 import com.android.systemui.shade.ShadeExpansionListener;
@@ -724,8 +724,10 @@
             if (!primaryBouncerIsShowing()) {
                 if (SceneContainerFlag.isEnabled()) {
                     mCentralSurfaces.hideKeyguard();
-                    mSceneInteractorLazy.get().changeScene(
-                            Scenes.Bouncer, "StatusBarKeyguardViewManager.showBouncerOrKeyguard");
+                    mSceneInteractorLazy.get().showOverlay(
+                            Overlays.Bouncer,
+                            "StatusBarKeyguardViewManager.showBouncerOrKeyguard"
+                    );
                 } else {
                     if (Flags.simPinRaceConditionOnRestart()) {
                         if (mPrimaryBouncerInteractor.show(/* isScrimmed= */ true)) {
@@ -816,8 +818,8 @@
                 /* clearDismissAction= */ !SceneContainerFlag.isEnabled());
         if (mKeyguardStateController.isShowing() && !isBouncerShowing()) {
             if (SceneContainerFlag.isEnabled()) {
-                mSceneInteractorLazy.get().changeScene(
-                        Scenes.Bouncer,
+                mSceneInteractorLazy.get().showOverlay(
+                        Overlays.Bouncer,
                         "primary bouncer requested"
                 );
             } else {
@@ -915,8 +917,10 @@
                     // we'll handle the dismiss action after keyguard is gone, so just show the
                     // bouncer
                     if (SceneContainerFlag.isEnabled()) {
-                        mSceneInteractorLazy.get().changeScene(
-                                Scenes.Bouncer, "StatusBarKeyguardViewManager.dismissWithAction");
+                        mSceneInteractorLazy.get().showOverlay(
+                                Overlays.Bouncer,
+                                "StatusBarKeyguardViewManager.dismissWithAction"
+                        );
                     } else {
                         mPrimaryBouncerInteractor.show(/* isScrimmed= */ true);
                     }
@@ -926,8 +930,10 @@
                     mPrimaryBouncerInteractor.setDismissAction(
                             mAfterKeyguardGoneAction, mKeyguardGoneCancelAction);
                     if (SceneContainerFlag.isEnabled()) {
-                        mSceneInteractorLazy.get().changeScene(
-                                Scenes.Bouncer, "StatusBarKeyguardViewManager.dismissWithAction");
+                        mSceneInteractorLazy.get().showOverlay(
+                                Overlays.Bouncer,
+                                "StatusBarKeyguardViewManager.dismissWithAction"
+                        );
                     } else {
                         mPrimaryBouncerInteractor.show(/* isScrimmed= */ true);
                     }
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 ba41fd4..df1680a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java
@@ -670,7 +670,7 @@
     }
 
     private void removeHunAfterClick(ExpandableNotificationRow row) {
-        String key = row.getEntry().getSbn().getKey();
+        String key = row.getKey();
         if (mHeadsUpManager != null && mHeadsUpManager.isHeadsUpEntry(key)) {
             // Release the HUN notification to the shade.
             if (mPresenter.isPresenterFullyCollapsed()) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
index 4d1d64e..74b1c3b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
@@ -58,6 +58,7 @@
 import com.android.systemui.statusbar.SysuiStatusBarStateController;
 import com.android.systemui.statusbar.notification.AboveShelfObserver;
 import com.android.systemui.statusbar.notification.DynamicPrivacyController;
+import com.android.systemui.statusbar.notification.collection.EntryAdapter;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.collection.render.NotifShadeEventSource;
 import com.android.systemui.statusbar.notification.domain.interactor.NotificationAlertsInteractor;
@@ -262,6 +263,23 @@
         }
     }
 
+    @Override
+    public void onExpandClicked(ExpandableNotificationRow row, EntryAdapter clickedEntry,
+            boolean nowExpanded) {
+        mHeadsUpManager.setExpanded(clickedEntry.getKey(), row, nowExpanded);
+        mPowerInteractor.wakeUpIfDozing("NOTIFICATION_CLICK", PowerManager.WAKE_REASON_GESTURE);
+        if (nowExpanded) {
+            if (mStatusBarStateController.getState() == StatusBarState.KEYGUARD) {
+                mShadeTransitionController.goToLockedShade(row, /* needsQSAnimation = */ true);
+            } else if (clickedEntry.isSensitive().getValue() && isInLockedDownShade()) {
+                mStatusBarStateController.setLeaveOpenOnKeyguardHide(true);
+                // launch the bouncer if the device is locked
+                mActivityStarter.dismissKeyguardThenExecute(() -> false /* dismissAction */
+                        , null /* cancelRunnable */, false /* afterKeyguardGone */);
+            }
+        }
+    }
+
     /** @return true if the Shade is shown over the Lockscreen, and the device is locked */
     private boolean isInLockedDownShade() {
         if (SceneContainerFlag.isEnabled()) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt
index d336903..2efc057 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt
@@ -20,6 +20,7 @@
 import android.content.Context
 import android.content.Intent
 import android.content.IntentFilter
+import android.content.pm.PackageManager
 import android.telephony.CarrierConfigManager
 import android.telephony.SubscriptionInfo
 import android.telephony.SubscriptionManager
@@ -192,6 +193,19 @@
         serviceStateChangedEvent
             .mapLatest {
                 val modems = telephonyManager.activeModemCount
+
+                // Assume false for automotive devices which don't have the calling feature.
+                // TODO: b/398045526 to revisit the below.
+                val isAutomotive: Boolean =
+                    context.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
+                val hasFeatureCalling: Boolean =
+                    context.packageManager.hasSystemFeature(
+                        PackageManager.FEATURE_TELEPHONY_CALLING
+                    )
+                if (isAutomotive && !hasFeatureCalling) {
+                    return@mapLatest false
+                }
+
                 // Check the service state for every modem. If any state reports emergency calling
                 // capable, then consider the device to have emergency call capabilities
                 (0..<modems)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractor.kt
index c52536d..10821df 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractor.kt
@@ -21,7 +21,6 @@
 import android.telephony.SubscriptionManager
 import android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING
 import com.android.settingslib.SignalIcon.MobileIconGroup
-import com.android.settingslib.flags.Flags
 import com.android.settingslib.mobile.TelephonyIcons
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.dagger.qualifiers.Background
@@ -29,11 +28,13 @@
 import com.android.systemui.flags.Flags.FILTER_PROVISIONING_NETWORK_SUBSCRIPTIONS
 import com.android.systemui.log.table.TableLogBuffer
 import com.android.systemui.log.table.logDiffsForTable
+import com.android.systemui.statusbar.core.NewStatusBarIcons
 import com.android.systemui.statusbar.core.StatusBarRootModernization
 import com.android.systemui.statusbar.pipeline.dagger.MobileSummaryLog
 import com.android.systemui.statusbar.pipeline.mobile.data.model.SubscriptionModel
 import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository
 import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionsRepository
+import com.android.systemui.statusbar.pipeline.mobile.domain.model.SignalIconModel
 import com.android.systemui.statusbar.pipeline.shared.data.model.ConnectivitySlot
 import com.android.systemui.statusbar.pipeline.shared.data.repository.ConnectivityRepository
 import com.android.systemui.statusbar.policy.data.repository.UserSetupRepository
@@ -85,6 +86,12 @@
     /** Whether the mobile icons can be stacked vertically. */
     val isStackable: StateFlow<Boolean>
 
+    /**
+     * Observable for the subscriptionId of the current mobile data connection. Null if we don't
+     * have a valid subscription id
+     */
+    val activeMobileDataSubscriptionId: StateFlow<Int?>
+
     /** True if the active mobile data subscription has data enabled */
     val activeDataConnectionHasDataEnabled: StateFlow<Boolean>
 
@@ -168,6 +175,9 @@
             )
             .stateIn(scope, SharingStarted.WhileSubscribed(), false)
 
+    override val activeMobileDataSubscriptionId: StateFlow<Int?> =
+        mobileConnectionsRepo.activeMobileDataSubscriptionId
+
     override val activeDataConnectionHasDataEnabled: StateFlow<Boolean> =
         mobileConnectionsRepo.activeMobileDataRepository
             .flatMapLatest { it?.dataEnabled ?: flowOf(false) }
@@ -298,10 +308,16 @@
             .stateIn(scope, SharingStarted.WhileSubscribed(), emptyList())
 
     override val isStackable =
-        if (Flags.newStatusBarIcons() && StatusBarRootModernization.isEnabled) {
+        if (NewStatusBarIcons.isEnabled && StatusBarRootModernization.isEnabled) {
                 icons.flatMapLatest { icons ->
-                    combine(icons.map { it.isNonTerrestrial }) {
-                        it.size == 2 && it.none { isNonTerrestrial -> isNonTerrestrial }
+                    combine(icons.map { it.signalLevelIcon }) { signalLevelIcons ->
+                        // These are only stackable if:
+                        // - They are cellular
+                        // - There's exactly two
+                        // - They have the same number of levels
+                        signalLevelIcons.filterIsInstance<SignalIconModel.Cellular>().let {
+                            it.size == 2 && it[0].numberOfLevels == it[1].numberOfLevels
+                        }
                     }
                 }
             } else {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconViewModel.kt
index e37c3f1..ac301b0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconViewModel.kt
@@ -94,7 +94,12 @@
     }
 
     private val satelliteProvider by lazy {
-        CarrierBasedSatelliteViewModelImpl(subscriptionId, iconInteractor)
+        CarrierBasedSatelliteViewModelImpl(
+            subscriptionId,
+            airplaneModeInteractor,
+            iconInteractor,
+            scope,
+        )
     }
 
     /**
@@ -145,9 +150,15 @@
 /** Representation of this network when it is non-terrestrial (e.g., satellite) */
 private class CarrierBasedSatelliteViewModelImpl(
     override val subscriptionId: Int,
+    airplaneModeInteractor: AirplaneModeInteractor,
     interactor: MobileIconInteractor,
+    scope: CoroutineScope,
 ) : MobileIconViewModelCommon {
-    override val isVisible: StateFlow<Boolean> = MutableStateFlow(true)
+    override val isVisible: StateFlow<Boolean> =
+        airplaneModeInteractor.isAirplaneMode
+            .map { !it }
+            .stateIn(scope, SharingStarted.WhileSubscribed(), false)
+
     override val icon: Flow<SignalIconModel> = interactor.signalLevelIcon
 
     override val contentDescription: Flow<MobileContentDescription?> = MutableStateFlow(null)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconsViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconsViewModel.kt
index 6176a3e..288e49e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconsViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconsViewModel.kt
@@ -63,6 +63,8 @@
     @VisibleForTesting
     val reuseCache = ConcurrentHashMap<Int, Pair<MobileIconViewModel, CoroutineScope>>()
 
+    val activeMobileDataSubscriptionId: StateFlow<Int?> = interactor.activeMobileDataSubscriptionId
+
     val subscriptionIdsFlow: StateFlow<List<Int>> =
         interactor.filteredSubscriptions
             .mapLatest { subscriptions ->
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/StackedMobileIconViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/StackedMobileIconViewModel.kt
index a2c2a3c..2c85a51 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/StackedMobileIconViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/StackedMobileIconViewModel.kt
@@ -25,7 +25,7 @@
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
 import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.flatMapLatest
 import kotlinx.coroutines.flow.flowOf
@@ -43,8 +43,14 @@
             initialValue = false,
         )
 
-    private val iconViewModelFlow: StateFlow<List<MobileIconViewModelCommon>> =
-        mobileIconsViewModel.mobileSubViewModels
+    private val iconViewModelFlow: Flow<List<MobileIconViewModelCommon>> =
+        combine(
+            mobileIconsViewModel.mobileSubViewModels,
+            mobileIconsViewModel.activeMobileDataSubscriptionId,
+        ) { viewModels, activeSubId ->
+            // Sort to get the active subscription first, if it's set
+            viewModels.sortedByDescending { it.subscriptionId == activeSubId }
+        }
 
     val dualSim: DualSim? by
         hydrator.hydratedStateOf(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/satellite/domain/interactor/DeviceBasedSatelliteInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/satellite/domain/interactor/DeviceBasedSatelliteInteractor.kt
index 569e02c..4041f3f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/satellite/domain/interactor/DeviceBasedSatelliteInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/satellite/domain/interactor/DeviceBasedSatelliteInteractor.kt
@@ -16,7 +16,6 @@
 
 package com.android.systemui.statusbar.pipeline.satellite.domain.interactor
 
-import com.android.internal.telephony.flags.Flags
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.dagger.qualifiers.Background
 import com.android.systemui.log.LogBuffer
@@ -57,35 +56,19 @@
 
     /** Must be observed by any UI showing Satellite iconography */
     val isSatelliteAllowed =
-        if (Flags.oemEnabledSatelliteFlag()) {
-                repo.isSatelliteAllowedForCurrentLocation
-            } else {
-                flowOf(false)
-            }
-            .distinctUntilChanged()
+        repo.isSatelliteAllowedForCurrentLocation
             .logDiffsForTable(tableLog, columnName = COL_ALLOWED, initialValue = false)
             .stateIn(scope, SharingStarted.WhileSubscribed(), false)
 
     /** See [SatelliteConnectionState] for relevant states */
     val connectionState =
-        if (Flags.oemEnabledSatelliteFlag()) {
-                repo.connectionState
-            } else {
-
-                flowOf(SatelliteConnectionState.Off)
-            }
-            .distinctUntilChanged()
+        repo.connectionState
             .logDiffsForTable(tableLog, initialValue = SatelliteConnectionState.Off)
             .stateIn(scope, SharingStarted.WhileSubscribed(), SatelliteConnectionState.Off)
 
     /** 0-4 description of the connection strength */
     val signalStrength =
-        if (Flags.oemEnabledSatelliteFlag()) {
-                repo.signalStrength
-            } else {
-                flowOf(0)
-            }
-            .distinctUntilChanged()
+        repo.signalStrength
             .logDiffsForTable(tableLog, columnName = COL_LEVEL, initialValue = 0)
             .stateIn(scope, SharingStarted.WhileSubscribed(), 0)
 
@@ -114,28 +97,24 @@
 
     /** When all connections are considered OOS, satellite connectivity is potentially valid */
     val areAllConnectionsOutOfService =
-        if (Flags.oemEnabledSatelliteFlag()) {
-                combine(allConnectionsOos, iconsInteractor.isDeviceInEmergencyCallsOnlyMode) {
-                    connectionsOos,
-                    deviceEmergencyOnly ->
-                    logBuffer.log(
-                        TAG,
-                        LogLevel.INFO,
-                        {
-                            bool1 = connectionsOos
-                            bool2 = deviceEmergencyOnly
-                        },
-                        {
-                            "Updating OOS status. allConnectionsOOs=$bool1 " +
-                                "deviceEmergencyOnly=$bool2"
-                        },
-                    )
-                    // If no connections exist, or all are OOS, then we look to the device-based
-                    // service state to detect if any calls are possible
-                    connectionsOos && !deviceEmergencyOnly
-                }
-            } else {
-                flowOf(false)
+        combine(allConnectionsOos, iconsInteractor.isDeviceInEmergencyCallsOnlyMode) {
+                connectionsOos,
+                deviceEmergencyOnly ->
+                logBuffer.log(
+                    TAG,
+                    LogLevel.INFO,
+                    {
+                        bool1 = connectionsOos
+                        bool2 = deviceEmergencyOnly
+                    },
+                    {
+                        "Updating OOS status. allConnectionsOOs=$bool1 " +
+                            "deviceEmergencyOnly=$bool2"
+                    },
+                )
+                // If no connections exist, or all are OOS, then we look to the device-based
+                // service state to detect if any calls are possible
+                connectionsOos && !deviceEmergencyOnly
             }
             .distinctUntilChanged()
             .logDiffsForTable(tableLog, columnName = COL_FULL_OOS, initialValue = true)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/satellite/ui/DeviceBasedSatelliteBindableIcon.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/satellite/ui/DeviceBasedSatelliteBindableIcon.kt
index f5d0f6b..d51d8da 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/satellite/ui/DeviceBasedSatelliteBindableIcon.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/satellite/ui/DeviceBasedSatelliteBindableIcon.kt
@@ -17,7 +17,6 @@
 package com.android.systemui.statusbar.pipeline.satellite.ui
 
 import android.content.Context
-import com.android.internal.telephony.flags.Flags.oemEnabledSatelliteFlag
 import com.android.systemui.dagger.SysUISingleton
 import com.android.systemui.statusbar.pipeline.icons.shared.model.BindableIcon
 import com.android.systemui.statusbar.pipeline.icons.shared.model.ModernStatusBarViewCreator
@@ -29,10 +28,7 @@
 @SysUISingleton
 class DeviceBasedSatelliteBindableIcon
 @Inject
-constructor(
-    context: Context,
-    viewModel: DeviceBasedSatelliteViewModel,
-) : BindableIcon {
+constructor(context: Context, viewModel: DeviceBasedSatelliteViewModel) : BindableIcon {
     override val slot: String =
         context.getString(com.android.internal.R.string.status_bar_oem_satellite)
 
@@ -42,5 +38,5 @@
         }
     }
 
-    override val shouldBindIcon: Boolean = oemEnabledSatelliteFlag()
+    override val shouldBindIcon: Boolean = true
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/binder/HomeStatusBarViewBinder.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/binder/HomeStatusBarViewBinder.kt
index cd320a1..d734889 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/binder/HomeStatusBarViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/binder/HomeStatusBarViewBinder.kt
@@ -31,6 +31,8 @@
 import com.android.systemui.statusbar.chips.mediaprojection.domain.model.MediaProjectionStopDialogModel
 import com.android.systemui.statusbar.chips.notification.shared.StatusBarNotifChips
 import com.android.systemui.statusbar.chips.ui.binder.OngoingActivityChipBinder
+import com.android.systemui.statusbar.chips.ui.binder.OngoingActivityChipViewBinding
+import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModelLegacy
 import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
 import com.android.systemui.statusbar.core.StatusBarConnectedDisplays
 import com.android.systemui.statusbar.core.StatusBarRootModernization
@@ -149,6 +151,7 @@
                 if (!StatusBarNotifChips.isEnabled && !StatusBarChipsModernization.isEnabled) {
                     val primaryChipViewBinding =
                         OngoingActivityChipBinder.createBinding(primaryChipView)
+
                     launch {
                         viewModel.primaryOngoingActivityChip.collect { primaryChipModel ->
                             OngoingActivityChipBinder.bind(
@@ -156,18 +159,14 @@
                                 primaryChipViewBinding,
                                 iconViewStore,
                             )
-                            if (StatusBarRootModernization.isEnabled) {
-                                when (primaryChipModel) {
-                                    is OngoingActivityChipModel.Active ->
-                                        primaryChipViewBinding.rootView.show(
-                                            shouldAnimateChange = true
-                                        )
 
-                                    is OngoingActivityChipModel.Inactive ->
-                                        primaryChipViewBinding.rootView.hide(
-                                            state = View.GONE,
-                                            shouldAnimateChange = primaryChipModel.shouldAnimate,
-                                        )
+                            if (StatusBarRootModernization.isEnabled) {
+                                launch {
+                                    bindLegacyPrimaryOngoingActivityChipWithVisibility(
+                                        viewModel,
+                                        primaryChipModel,
+                                        primaryChipViewBinding,
+                                    )
                                 }
                             } else {
                                 when (primaryChipModel) {
@@ -213,12 +212,14 @@
                             )
 
                             if (StatusBarRootModernization.isEnabled) {
-                                primaryChipViewBinding.rootView.adjustVisibility(
-                                    chips.primary.toVisibilityModel()
-                                )
-                                secondaryChipViewBinding.rootView.adjustVisibility(
-                                    chips.secondary.toVisibilityModel()
-                                )
+                                launch {
+                                    bindOngoingActivityChipsWithVisibility(
+                                        viewModel,
+                                        chips,
+                                        primaryChipViewBinding,
+                                        secondaryChipViewBinding,
+                                    )
+                                }
                             } else {
                                 listener?.onOngoingActivityStatusChanged(
                                     hasPrimaryOngoingActivity =
@@ -312,6 +313,52 @@
         }
     }
 
+    /** Bind the (legacy) single primary ongoing activity chip with the status bar visibility */
+    private suspend fun bindLegacyPrimaryOngoingActivityChipWithVisibility(
+        viewModel: HomeStatusBarViewModel,
+        primaryChipModel: OngoingActivityChipModel,
+        primaryChipViewBinding: OngoingActivityChipViewBinding,
+    ) {
+        viewModel.canShowOngoingActivityChips.collectLatest { visible ->
+            if (!visible) {
+                primaryChipViewBinding.rootView.hide(shouldAnimateChange = false)
+            } else {
+                when (primaryChipModel) {
+                    is OngoingActivityChipModel.Active -> {
+                        primaryChipViewBinding.rootView.show(shouldAnimateChange = true)
+                    }
+
+                    is OngoingActivityChipModel.Inactive -> {
+                        primaryChipViewBinding.rootView.hide(
+                            state = View.GONE,
+                            shouldAnimateChange = primaryChipModel.shouldAnimate,
+                        )
+                    }
+                }
+            }
+        }
+    }
+
+    /** Bind the primary/secondary chips along with the home status bar's visibility */
+    private suspend fun bindOngoingActivityChipsWithVisibility(
+        viewModel: HomeStatusBarViewModel,
+        chips: MultipleOngoingActivityChipsModelLegacy,
+        primaryChipViewBinding: OngoingActivityChipViewBinding,
+        secondaryChipViewBinding: OngoingActivityChipViewBinding,
+    ) {
+        viewModel.canShowOngoingActivityChips.collectLatest { canShow ->
+            if (!canShow) {
+                primaryChipViewBinding.rootView.hide(shouldAnimateChange = false)
+                secondaryChipViewBinding.rootView.hide(shouldAnimateChange = false)
+            } else {
+                primaryChipViewBinding.rootView.adjustVisibility(chips.primary.toVisibilityModel())
+                secondaryChipViewBinding.rootView.adjustVisibility(
+                    chips.secondary.toVisibilityModel()
+                )
+            }
+        }
+    }
+
     private fun SystemEventAnimationState.isAnimatingChip() =
         when (this) {
             AnimatingIn,
@@ -374,43 +421,42 @@
         if (visibility == View.INVISIBLE || visibility == View.GONE) {
             return
         }
+        alpha = 0f
         visibility = state
     }
 
     // See CollapsedStatusBarFragment#hide.
     private fun View.hide(state: Int = View.INVISIBLE, shouldAnimateChange: Boolean) {
+        animate().cancel()
         if (visibility == View.INVISIBLE || visibility == View.GONE) {
             return
         }
-        val v = this
-        v.animate().cancel()
         if (!shouldAnimateChange) {
-            v.alpha = 0f
-            v.visibility = state
+            alpha = 0f
+            visibility = state
             return
         }
 
-        v.animate()
+        animate()
             .alpha(0f)
             .setDuration(CollapsedStatusBarFragment.FADE_OUT_DURATION.toLong())
             .setStartDelay(0)
             .setInterpolator(Interpolators.ALPHA_OUT)
-            .withEndAction { v.visibility = state }
+            .withEndAction { visibility = state }
     }
 
     // See CollapsedStatusBarFragment#show.
     private fun View.show(shouldAnimateChange: Boolean) {
-        if (visibility == View.VISIBLE) {
+        animate().cancel()
+        if (visibility == View.VISIBLE && alpha >= 1f) {
             return
         }
-        val v = this
-        v.animate().cancel()
-        v.visibility = View.VISIBLE
+        visibility = View.VISIBLE
         if (!shouldAnimateChange) {
-            v.alpha = 1f
+            alpha = 1f
             return
         }
-        v.animate()
+        animate()
             .alpha(1f)
             .setDuration(CollapsedStatusBarFragment.FADE_IN_DURATION.toLong())
             .setInterpolator(Interpolators.ALPHA_IN)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/composable/StackedMobileIcon.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/composable/StackedMobileIcon.kt
index 465a43f..a51da0e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/composable/StackedMobileIcon.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/composable/StackedMobileIcon.kt
@@ -17,9 +17,12 @@
 package com.android.systemui.statusbar.pipeline.shared.ui.composable
 
 import androidx.compose.foundation.Canvas
+import androidx.compose.foundation.layout.Arrangement.spacedBy
 import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxHeight
+import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.width
 import androidx.compose.material3.LocalContentColor
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Alignment
@@ -27,23 +30,28 @@
 import androidx.compose.ui.geometry.CornerRadius
 import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.geometry.Size
+import androidx.compose.ui.graphics.BlendMode
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.graphics.drawscope.DrawScope
 import androidx.compose.ui.platform.LocalDensity
 import androidx.compose.ui.unit.TextUnit
-import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
-import com.android.compose.modifiers.height
-import com.android.compose.modifiers.width
 import com.android.systemui.common.ui.compose.Icon
 import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.StackedMobileIconViewModel
 import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.BarBaseHeightFiveBarsSp
 import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.BarBaseHeightFourBarsSp
 import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.BarsLevelIncrementSp
 import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.BarsVerticalPaddingSp
+import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.ExclamationCutoutRadiusSp
+import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.ExclamationDiameterSp
+import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.ExclamationHeightSp
+import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.ExclamationHorizontalOffset
+import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.ExclamationVerticalSpacing
 import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.HorizontalPaddingFiveBarsSp
 import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.HorizontalPaddingFourBarsSp
 import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.IconHeightSp
+import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.IconPaddingSp
+import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.IconSpacingSp
 import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.IconWidthFiveBarsSp
 import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.IconWidthFourBarsSp
 import com.android.systemui.statusbar.pipeline.shared.ui.composable.StackedMobileIconDimensions.SecondaryBarHeightSp
@@ -58,15 +66,16 @@
     val dualSim = viewModel.dualSim ?: return
 
     val contentColor = LocalContentColor.current
+    val padding = with(LocalDensity.current) { IconPaddingSp.toDp() }
+    val horizontalArrangement = with(LocalDensity.current) { spacedBy(IconSpacingSp.toDp()) }
 
-    Row(verticalAlignment = Alignment.CenterVertically, modifier = modifier) {
+    Row(
+        horizontalArrangement = horizontalArrangement,
+        verticalAlignment = Alignment.CenterVertically,
+        modifier = modifier.padding(horizontal = padding),
+    ) {
         viewModel.networkTypeIcon?.let {
-            Icon(
-                it,
-                tint = contentColor,
-                modifier =
-                    Modifier.height { IconHeightSp.roundToPx() }.padding(start = 1.dp, end = 2.dp),
-            )
+            Icon(it, tint = contentColor, modifier = Modifier.fillMaxHeight())
         }
 
         StackedMobileIcon(dualSim, contentColor)
@@ -79,23 +88,23 @@
     color: Color,
     modifier: Modifier = Modifier,
 ) {
-    val maxNumberOfLevels =
-        max(viewModel.primary.numberOfLevels, viewModel.secondary.numberOfLevels)
-    val dimensions = if (maxNumberOfLevels == 6) FiveBarsDimensions else FourBarsDimensions
+    // Removing 1 to get the real number of bars
+    val numberOfBars = max(viewModel.primary.numberOfLevels, viewModel.secondary.numberOfLevels) - 1
+    val dimensions = if (numberOfBars == 5) FiveBarsDimensions else FourBarsDimensions
     val iconSize =
         with(LocalDensity.current) { dimensions.totalWidth.toDp() to IconHeightSp.toDp() }
 
-    Canvas(modifier.size(width = iconSize.first, height = iconSize.second)) {
+    Canvas(modifier.width(iconSize.first).height(iconSize.second)) {
         val verticalPaddingPx = BarsVerticalPaddingSp.roundToPx()
         val horizontalPaddingPx = dimensions.barsHorizontalPadding.roundToPx()
-        val totalPaddingWidthPx = horizontalPaddingPx * (maxNumberOfLevels - 1)
+        val totalPaddingWidthPx = horizontalPaddingPx * (numberOfBars - 1)
 
-        val barWidthPx = (size.width - totalPaddingWidthPx) / maxNumberOfLevels
+        val barWidthPx = (size.width - totalPaddingWidthPx) / numberOfBars
         val dotHeightPx = SecondaryBarHeightSp.toPx()
         val baseBarHeightPx = dimensions.barBaseHeight.toPx()
 
         var xOffsetPx = 0f
-        for (bar in 1..maxNumberOfLevels) {
+        for (bar in 1..numberOfBars) {
             // Bottom dots representing secondary sim
             val dotYOffsetPx = size.height - dotHeightPx
             if (bar <= viewModel.secondary.numberOfLevels) {
@@ -123,6 +132,10 @@
 
             xOffsetPx += barWidthPx + horizontalPaddingPx
         }
+
+        if (viewModel.primary.showExclamationMark) {
+            drawExclamationCutout(color)
+        }
     }
 }
 
@@ -143,6 +156,39 @@
     )
 }
 
+private fun DrawScope.drawExclamationCutout(color: Color) {
+    // Exclamation mark is bottom aligned with the canvas
+    val exclamationDiameterPx = ExclamationDiameterSp.toPx()
+    val exclamationRadiusPx = ExclamationDiameterSp.toPx() / 2
+    val exclamationTotalHeight =
+        ExclamationHeightSp.toPx() + ExclamationVerticalSpacing.toPx() + exclamationDiameterPx
+    val exclamationDotCenter =
+        Offset(size.width - ExclamationHorizontalOffset.toPx(), size.height - exclamationRadiusPx)
+    val exclamationMarkTopLeft =
+        Offset(exclamationDotCenter.x - exclamationRadiusPx, size.height - exclamationTotalHeight)
+    val exclamationCornerRadius = CornerRadius(exclamationRadiusPx)
+    val cutoutCenter = Offset(exclamationDotCenter.x, size.height - (exclamationTotalHeight / 2))
+
+    // Transparent cutout
+    drawCircle(
+        color = Color.Transparent,
+        radius = ExclamationCutoutRadiusSp.toPx(),
+        center = cutoutCenter,
+        blendMode = BlendMode.SrcIn,
+    )
+
+    // Top bar for the exclamation mark
+    drawRoundRect(
+        color = color,
+        topLeft = exclamationMarkTopLeft,
+        size = Size(exclamationDiameterPx, ExclamationHeightSp.toPx()),
+        cornerRadius = exclamationCornerRadius,
+    )
+
+    // Bottom circle for the exclamation mark
+    drawCircle(color = color, center = exclamationDotCenter, radius = exclamationRadiusPx)
+}
+
 private abstract class BarsDependentDimensions(
     val totalWidth: TextUnit,
     val barsHorizontalPadding: TextUnit,
@@ -166,10 +212,19 @@
 private object StackedMobileIconDimensions {
     // Common dimensions
     val IconHeightSp = 12.sp
+    val IconPaddingSp = 4.sp
+    val IconSpacingSp = 2.sp
     val BarsVerticalPaddingSp = 1.5.sp
     val BarsLevelIncrementSp = 1.sp
     val SecondaryBarHeightSp = 3.sp
 
+    // Exclamation cutout dimensions
+    val ExclamationCutoutRadiusSp = 5.sp
+    val ExclamationDiameterSp = 1.5.sp
+    val ExclamationHeightSp = 4.5.sp
+    val ExclamationVerticalSpacing = 1.sp
+    val ExclamationHorizontalOffset = 1.sp
+
     // Dimensions dependant on the number of total bars
     val IconWidthFiveBarsSp = 18.5.sp
     val IconWidthFourBarsSp = 16.sp
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/composable/StatusBarRoot.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/composable/StatusBarRoot.kt
index 39a1b46..4189221 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/composable/StatusBarRoot.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/composable/StatusBarRoot.kt
@@ -37,6 +37,10 @@
 import com.android.compose.theme.PlatformTheme
 import com.android.keyguard.AlphaOptimizedLinearLayout
 import com.android.systemui.lifecycle.rememberViewModel
+import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
+import com.android.systemui.media.controls.ui.view.MediaHost
+import com.android.systemui.media.controls.ui.view.MediaHostState
+import com.android.systemui.media.dagger.MediaModule.POPUP
 import com.android.systemui.plugins.DarkIconDispatcher
 import com.android.systemui.res.R
 import com.android.systemui.statusbar.chips.ui.compose.OngoingActivityChips
@@ -67,6 +71,7 @@
 import com.android.systemui.statusbar.pipeline.shared.ui.viewmodel.HomeStatusBarViewModel
 import com.android.systemui.statusbar.pipeline.shared.ui.viewmodel.HomeStatusBarViewModel.HomeStatusBarViewModelFactory
 import javax.inject.Inject
+import javax.inject.Named
 
 /** Factory to simplify the dependency management for [StatusBarRoot] */
 class StatusBarRootFactory
@@ -81,6 +86,8 @@
     private val ongoingCallController: OngoingCallController,
     private val darkIconDispatcherStore: DarkIconDispatcherStore,
     private val eventAnimationInteractor: SystemStatusEventAnimationInteractor,
+    private val mediaHierarchyManager: MediaHierarchyManager,
+    @Named(POPUP) private val mediaHost: MediaHost,
 ) {
     fun create(root: ViewGroup, andThen: (ViewGroup) -> Unit): ComposeView {
         val composeView = ComposeView(root.context)
@@ -99,6 +106,8 @@
                     ongoingCallController = ongoingCallController,
                     darkIconDispatcher = darkIconDispatcher,
                     eventAnimationInteractor = eventAnimationInteractor,
+                    mediaHierarchyManager = mediaHierarchyManager,
+                    mediaHost = mediaHost,
                     onViewCreated = andThen,
                 )
             }
@@ -130,6 +139,8 @@
     ongoingCallController: OngoingCallController,
     darkIconDispatcher: DarkIconDispatcher,
     eventAnimationInteractor: SystemStatusEventAnimationInteractor,
+    mediaHierarchyManager: MediaHierarchyManager,
+    mediaHost: MediaHost,
     onViewCreated: (ViewGroup) -> Unit,
 ) {
     val displayId = parent.context.displayId
@@ -237,6 +248,15 @@
 
                     // Add a composable container for `StatusBarPopupChip`s
                     if (StatusBarPopupChips.isEnabled) {
+                        with(mediaHost) {
+                            expansion = MediaHostState.EXPANDED
+                            expandedMatchesParentHeight = true
+                            showsOnlyActiveMedia = true
+                            falsingProtectionNeeded = false
+                            disablePagination = true
+                            init(MediaHierarchyManager.LOCATION_STATUS_BAR_POPUP)
+                        }
+
                         val endSideContent =
                             phoneStatusBarView.requireViewById<AlphaOptimizedLinearLayout>(
                                 R.id.status_bar_end_side_content
@@ -256,7 +276,12 @@
 
                                 setContent {
                                     StatusBarPopupChipsContainer(
-                                        chips = statusBarViewModel.popupChips
+                                        chips = statusBarViewModel.popupChips,
+                                        mediaHost = mediaHost,
+                                        onMediaControlPopupVisibilityChanged = { popupShowing ->
+                                            mediaHierarchyManager.isMediaControlPopupShowing =
+                                                popupShowing
+                                        },
                                     )
                                 }
                             }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModel.kt
index 9ae2cb2..807e905 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModel.kt
@@ -149,6 +149,9 @@
      */
     val isHomeStatusBarAllowedByScene: StateFlow<Boolean>
 
+    /** True if the home status bar is showing, and there is no HUN happening */
+    val canShowOngoingActivityChips: Flow<Boolean>
+
     /** True if the operator name view is not hidden due to HUN or other visibility state */
     val shouldShowOperatorNameView: Flow<Boolean>
     val isClockVisible: Flow<VisibilityModel>
@@ -412,6 +415,15 @@
             )
             .flowOn(bgDispatcher)
 
+    override val canShowOngoingActivityChips: Flow<Boolean> =
+        combine(
+            isHomeStatusBarAllowed,
+            keyguardInteractor.isSecureCameraActive,
+            headsUpNotificationInteractor.statusBarHeadsUpStatus,
+        ) { isHomeStatusBarAllowed, isSecureCameraActive, headsUpState ->
+            isHomeStatusBarAllowed && !isSecureCameraActive && !headsUpState.isPinned
+        }
+
     override val isClockVisible: Flow<VisibilityModel> =
         combine(
                 shouldHomeStatusBarBeVisible,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModel.kt
index 7d9a7d4..2dc17f4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModel.kt
@@ -78,6 +78,7 @@
                 currentScene == Scenes.Lockscreen &&
                     Overlays.NotificationsShade !in currentOverlays &&
                     Overlays.QuickSettingsShade !in currentOverlays &&
+                    Overlays.Bouncer !in currentOverlays &&
                     !isDozing &&
                     !showHeadsUpStatusBar
             }
diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/TouchpadTutorialModule.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/TouchpadTutorialModule.kt
index d8a9527..d2f1d3c 100644
--- a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/TouchpadTutorialModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/TouchpadTutorialModule.kt
@@ -133,14 +133,14 @@
     override fun BackGesture(
         onDoneButtonClicked: () -> Unit,
         onBack: () -> Unit,
-        isAutoProceed: Boolean,
+        onAutoProceed: (suspend () -> Unit)?,
     ) {
         BackGestureTutorialScreen(
             backGestureScreenViewModel,
             easterEggGestureViewModel,
             onDoneButtonClicked,
             onBack,
-            isAutoProceed,
+            onAutoProceed,
         )
     }
 
@@ -148,14 +148,14 @@
     override fun HomeGesture(
         onDoneButtonClicked: () -> Unit,
         onBack: () -> Unit,
-        isAutoProceed: Boolean,
+        onAutoProceed: (suspend () -> Unit)?,
     ) {
         HomeGestureTutorialScreen(
             homeGestureScreenViewModel,
             easterEggGestureViewModel,
             onDoneButtonClicked,
             onBack,
-            isAutoProceed,
+            onAutoProceed,
         )
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/BackGestureTutorialScreen.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/BackGestureTutorialScreen.kt
index c28483c..2e2a97d9 100644
--- a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/BackGestureTutorialScreen.kt
+++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/BackGestureTutorialScreen.kt
@@ -33,7 +33,7 @@
     easterEggGestureViewModel: EasterEggGestureViewModel,
     onDoneButtonClicked: () -> Unit,
     onBack: () -> Unit,
-    isAutoProceed: Boolean = false,
+    onAutoProceed: (suspend () -> Unit)? = null,
 ) {
     val screenConfig =
         TutorialScreenConfig(
@@ -48,7 +48,6 @@
                     bodyErrorResId = R.string.touchpad_back_gesture_error_body,
                 ),
             animations = TutorialScreenConfig.Animations(educationResId = R.raw.trackpad_back_edu),
-            hasNextButton = isAutoProceed,
         )
     GestureTutorialScreen(
         screenConfig = screenConfig,
@@ -61,6 +60,7 @@
         onEasterEggFinished = easterEggGestureViewModel::onEasterEggFinished,
         onDoneButtonClicked = onDoneButtonClicked,
         onBack = onBack,
+        onAutoProceed = onAutoProceed,
     )
 }
 
diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt
index 47c82e3..db3e31b 100644
--- a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt
+++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt
@@ -49,6 +49,7 @@
     onEasterEggFinished: () -> Unit,
     onDoneButtonClicked: () -> Unit,
     onBack: () -> Unit,
+    onAutoProceed: (suspend () -> Unit)? = null,
 ) {
     BackHandler(onBack = onBack)
     var cachedTutorialState: TutorialActionState by
@@ -64,7 +65,7 @@
         easterEggTriggered,
         onEasterEggFinished,
     ) {
-        ActionTutorialContent(tutorialState, onDoneButtonClicked, screenConfig)
+        ActionTutorialContent(tutorialState, onDoneButtonClicked, screenConfig, onAutoProceed)
     }
 }
 
diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/HomeGestureTutorialScreen.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/HomeGestureTutorialScreen.kt
index b238a8d..3e27dfb 100644
--- a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/HomeGestureTutorialScreen.kt
+++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/HomeGestureTutorialScreen.kt
@@ -32,7 +32,7 @@
     easterEggGestureViewModel: EasterEggGestureViewModel,
     onDoneButtonClicked: () -> Unit,
     onBack: () -> Unit,
-    isAutoProceed: Boolean = false,
+    onAutoProceed: (suspend () -> Unit)? = null,
 ) {
     val screenConfig =
         TutorialScreenConfig(
@@ -47,7 +47,6 @@
                     bodyErrorResId = R.string.touchpad_home_gesture_error_body,
                 ),
             animations = TutorialScreenConfig.Animations(educationResId = R.raw.trackpad_home_edu),
-            hasNextButton = isAutoProceed,
         )
     GestureTutorialScreen(
         screenConfig = screenConfig,
@@ -60,6 +59,7 @@
         onEasterEggFinished = easterEggGestureViewModel::onEasterEggFinished,
         onDoneButtonClicked = onDoneButtonClicked,
         onBack = onBack,
+        onAutoProceed = onAutoProceed,
     )
 }
 
diff --git a/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserLockedInteractor.kt b/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserLockedInteractor.kt
index ef29a38..3bd8af6 100644
--- a/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserLockedInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserLockedInteractor.kt
@@ -18,12 +18,20 @@
 
 import android.os.UserHandle
 import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Background
 import com.android.systemui.user.data.repository.UserRepository
 import javax.inject.Inject
+import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.flowOn
 
 @SysUISingleton
-class UserLockedInteractor @Inject constructor(val userRepository: UserRepository) {
+class UserLockedInteractor
+@Inject
+constructor(
+    @Background val backgroundDispatcher: CoroutineDispatcher,
+    val userRepository: UserRepository,
+) {
     fun isUserUnlocked(userHandle: UserHandle?): Flow<Boolean> =
-        userRepository.isUserUnlocked(userHandle)
+        userRepository.isUserUnlocked(userHandle).flowOn(backgroundDispatcher)
 }
diff --git a/packages/SystemUI/src/com/android/systemui/volume/Events.java b/packages/SystemUI/src/com/android/systemui/volume/Events.java
index e10d1cb..b8eb518 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/Events.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/Events.java
@@ -37,16 +37,16 @@
 public class Events {
     private static final String TAG = Util.logTag(Events.class);
 
-    public static final int EVENT_SHOW_DIALOG = 0;  // (reason|int) (keyguard|bool)
-    public static final int EVENT_DISMISS_DIALOG = 1; // (reason|int)
+    @Deprecated public static final int EVENT_SHOW_DIALOG = 0;  // (reason|int) (keyguard|bool)
+    @Deprecated public static final int EVENT_DISMISS_DIALOG = 1; // (reason|int)
     public static final int EVENT_ACTIVE_STREAM_CHANGED = 2; // (stream|int)
     public static final int EVENT_EXPAND = 3; // (expand|bool)
     public static final int EVENT_KEY = 4; // (stream|int) (lastAudibleStreamVolume)
     public static final int EVENT_COLLECTION_STARTED = 5;
     public static final int EVENT_COLLECTION_STOPPED = 6;
-    public static final int EVENT_ICON_CLICK = 7; // (stream|int) (icon_state|int)
-    public static final int EVENT_SETTINGS_CLICK = 8;
-    public static final int EVENT_TOUCH_LEVEL_CHANGED = 9; // (stream|int) (level|int)
+    @Deprecated public static final int EVENT_ICON_CLICK = 7; // (stream|int) (icon_state|int)
+    @Deprecated public static final int EVENT_SETTINGS_CLICK = 8;
+    @Deprecated public static final int EVENT_TOUCH_LEVEL_CHANGED = 9; // (stream|int) (level|int)
     public static final int EVENT_LEVEL_CHANGED = 10; // (stream|int) (level|int)
     public static final int EVENT_INTERNAL_RINGER_MODE_CHANGED = 11; // (mode|int)
     public static final int EVENT_EXTERNAL_RINGER_MODE_CHANGED = 12; // (mode|int)
@@ -55,12 +55,12 @@
     public static final int EVENT_MUTE_CHANGED = 15;  // (stream|int) (muted|bool)
     public static final int EVENT_TOUCH_LEVEL_DONE = 16;  // (stream|int) (level|int)
     public static final int EVENT_ZEN_CONFIG_CHANGED = 17; // (allow/disallow|string)
-    public static final int EVENT_RINGER_TOGGLE = 18; // (ringer_mode)
+    @Deprecated  public static final int EVENT_RINGER_TOGGLE = 18; // (ringer_mode)
     public static final int EVENT_SHOW_USB_OVERHEAT_ALARM = 19; // (reason|int) (keyguard|bool)
     public static final int EVENT_DISMISS_USB_OVERHEAT_ALARM = 20; // (reason|int) (keyguard|bool)
     public static final int EVENT_ODI_CAPTIONS_CLICK = 21;
     public static final int EVENT_ODI_CAPTIONS_TOOLTIP_CLICK = 22;
-    public static final int EVENT_SLIDER_TOUCH_TRACKING = 23; // (tracking|bool)
+    @Deprecated public static final int EVENT_SLIDER_TOUCH_TRACKING = 23; // (tracking|bool)
 
     private static final String[] EVENT_TAGS = {
             "show_dialog",
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt
index 0bdf99e..14eede6 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt
@@ -24,6 +24,7 @@
 import androidx.annotation.LayoutRes
 import androidx.compose.ui.util.fastForEachIndexed
 import androidx.constraintlayout.motion.widget.MotionLayout
+import androidx.constraintlayout.motion.widget.MotionScene
 import androidx.dynamicanimation.animation.FloatValueHolder
 import androidx.dynamicanimation.animation.SpringAnimation
 import androidx.dynamicanimation.animation.SpringForce
@@ -47,6 +48,7 @@
 import javax.inject.Inject
 import kotlin.properties.Delegates
 import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.coroutineScope
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.flow.mapLatest
@@ -55,6 +57,7 @@
 // Ensure roundness and color of button is updated when progress is changed by a minimum fraction.
 private const val BUTTON_MIN_VISIBLE_CHANGE = 0.05F
 
+@OptIn(ExperimentalCoroutinesApi::class)
 @VolumeDialogScope
 class VolumeDialogRingerViewBinder
 @Inject
@@ -208,6 +211,13 @@
                                     ringerState.orientation,
                                     ringerBackgroundView,
                                 )
+                                drawerContainer
+                                    .getTransition(R.id.close_to_open_transition)
+                                    .setInterpolatorInfo(
+                                        MotionScene.Transition.INTERPOLATE_REFERENCE_ID,
+                                        null,
+                                        R.anim.volume_dialog_ringer_open,
+                                    )
                                 drawerContainer.transitionToState(
                                     R.id.volume_dialog_ringer_drawer_open
                                 )
@@ -370,6 +380,12 @@
         orientation: Int,
     ) {
         setTransition(R.id.close_to_open_transition)
+        getTransition(R.id.close_to_open_transition)
+            .setInterpolatorInfo(
+                MotionScene.Transition.INTERPOLATE_REFERENCE_ID,
+                null,
+                R.anim.volume_dialog_ringer_close,
+            )
         updateCloseState(this, selectedIndex, orientation, ringerBackground)
         transitionToState(R.id.volume_dialog_ringer_drawer_close)
     }
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModel.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModel.kt
index b0d6d622..69a939a 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModel.kt
@@ -25,6 +25,7 @@
 import android.os.VibrationEffect
 import android.widget.Toast
 import com.android.internal.R as internalR
+import com.android.internal.logging.UiEventLogger
 import com.android.settingslib.Utils
 import com.android.settingslib.notification.domain.interactor.NotificationsSoundPolicyInteractor
 import com.android.settingslib.volume.shared.model.AudioStream
@@ -43,6 +44,7 @@
 import com.android.systemui.volume.dialog.ringer.domain.VolumeDialogRingerInteractor
 import com.android.systemui.volume.dialog.ringer.shared.model.VolumeDialogRingerModel
 import com.android.systemui.volume.dialog.shared.VolumeDialogLogger
+import com.android.systemui.volume.dialog.ui.VolumeDialogUiEvent
 import javax.inject.Inject
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.CoroutineScope
@@ -73,6 +75,7 @@
     private val volumeDialogLogger: VolumeDialogLogger,
     private val visibilityInteractor: VolumeDialogVisibilityInteractor,
     configurationController: ConfigurationController,
+    private val uiEventLogger: UiEventLogger,
     private val systemClock: SystemClock,
 ) {
 
@@ -112,6 +115,7 @@
             .build()
 
     private var lastClickTime = 0L
+
     init {
         ringerViewModel
             .onEach { viewModelState ->
@@ -137,6 +141,7 @@
             provideTouchFeedback(ringerMode)
             maybeShowToast(ringerMode)
             ringerInteractor.setRingerMode(ringerMode)
+            ringerMode.toVolumeDialogUiEvent()?.let(uiEventLogger::log)
         }
         visibilityInteractor.resetDismissTimeout()
         drawerState.value =
@@ -312,3 +317,12 @@
         }
     }
 }
+
+private fun RingerMode.toVolumeDialogUiEvent(): VolumeDialogUiEvent? {
+    return when (value) {
+        RINGER_MODE_NORMAL -> VolumeDialogUiEvent.RINGER_MODE_NORMAL
+        RINGER_MODE_VIBRATE -> VolumeDialogUiEvent.RINGER_MODE_VIBRATE
+        RINGER_MODE_SILENT -> VolumeDialogUiEvent.RINGER_MODE_SILENT
+        else -> null
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/settings/ui/viewmodel/VolumeDialogSettingsButtonViewModel.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/settings/ui/viewmodel/VolumeDialogSettingsButtonViewModel.kt
index 0e4e707..94c66cc 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/dialog/settings/ui/viewmodel/VolumeDialogSettingsButtonViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/settings/ui/viewmodel/VolumeDialogSettingsButtonViewModel.kt
@@ -32,12 +32,14 @@
 import com.airbnb.lottie.model.KeyPath
 import com.airbnb.lottie.value.LottieValueCallback
 import com.android.internal.R as internalR
+import com.android.internal.logging.UiEventLogger
 import com.android.systemui.dagger.qualifiers.Application
 import com.android.systemui.dagger.qualifiers.UiBackground
 import com.android.systemui.lottie.await
 import com.android.systemui.res.R
 import com.android.systemui.volume.dialog.dagger.scope.VolumeDialog
 import com.android.systemui.volume.dialog.settings.domain.VolumeDialogSettingsButtonInteractor
+import com.android.systemui.volume.dialog.ui.VolumeDialogUiEvent
 import com.android.systemui.volume.panel.component.mediaoutput.domain.interactor.MediaDeviceSessionInteractor
 import com.android.systemui.volume.panel.component.mediaoutput.domain.interactor.MediaOutputInteractor
 import com.android.systemui.volume.panel.shared.model.filterData
@@ -71,6 +73,7 @@
     mediaOutputInteractor: MediaOutputInteractor,
     private val mediaDeviceSessionInteractor: MediaDeviceSessionInteractor,
     private val interactor: VolumeDialogSettingsButtonInteractor,
+    private val uiEventLogger: UiEventLogger,
 ) {
 
     @SuppressLint("UseCompatLoadingForDrawables")
@@ -160,6 +163,7 @@
 
     fun onButtonClicked() {
         interactor.onButtonClicked()
+        uiEventLogger.log(VolumeDialogUiEvent.VOLUME_DIALOG_SETTINGS_CLICK)
     }
 
     private data class PlaybackStates(val isPreviousActive: Boolean?, val isCurrentActive: Boolean)
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/VolumeDialogSliderViewBinder.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/VolumeDialogSliderViewBinder.kt
index 1c0fabe..8b0f7c4 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/VolumeDialogSliderViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/VolumeDialogSliderViewBinder.kt
@@ -23,23 +23,19 @@
 import androidx.compose.animation.fadeIn
 import androidx.compose.animation.fadeOut
 import androidx.compose.foundation.gestures.Orientation
+import androidx.compose.foundation.interaction.DragInteraction
 import androidx.compose.foundation.interaction.MutableInteractionSource
 import androidx.compose.foundation.layout.BoxScope
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.material3.ExperimentalMaterial3Api
-import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
 import androidx.compose.material3.Icon
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.SliderDefaults
-import androidx.compose.material3.SliderState
-import androidx.compose.material3.VerticalSlider
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.getValue
-import androidx.compose.runtime.mutableFloatStateOf
 import androidx.compose.runtime.remember
-import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.input.pointer.pointerInput
@@ -48,17 +44,17 @@
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.compose.theme.PlatformTheme
 import com.android.compose.ui.graphics.painter.DrawablePainter
+import com.android.systemui.haptics.slider.SliderHapticFeedbackFilter
 import com.android.systemui.haptics.slider.compose.ui.SliderHapticsViewModel
-import com.android.systemui.lifecycle.rememberViewModel
 import com.android.systemui.res.R
 import com.android.systemui.volume.dialog.sliders.dagger.VolumeDialogSliderScope
 import com.android.systemui.volume.dialog.sliders.ui.compose.VolumeDialogSliderTrack
 import com.android.systemui.volume.dialog.sliders.ui.viewmodel.VolumeDialogOverscrollViewModel
 import com.android.systemui.volume.dialog.sliders.ui.viewmodel.VolumeDialogSliderViewModel
-import com.android.systemui.volume.haptics.ui.VolumeHapticsConfigsProvider
+import com.android.systemui.volume.ui.slider.AccessibilityParams
+import com.android.systemui.volume.ui.slider.Haptics
+import com.android.systemui.volume.ui.slider.Slider
 import javax.inject.Inject
-import kotlin.math.round
-import kotlin.math.roundToInt
 import kotlinx.coroutines.coroutineScope
 import kotlinx.coroutines.currentCoroutineContext
 import kotlinx.coroutines.isActive
@@ -90,7 +86,7 @@
     }
 }
 
-@OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class)
+@OptIn(ExperimentalMaterial3Api::class)
 @Composable
 private fun VolumeDialogSlider(
     viewModel: VolumeDialogSliderViewModel,
@@ -108,78 +104,45 @@
         )
     val collectedSliderStateModel by viewModel.state.collectAsStateWithLifecycle(null)
     val sliderStateModel = collectedSliderStateModel ?: return
-
-    val steps = with(sliderStateModel.valueRange) { endInclusive - start - 1 }.toInt()
-
     val interactionSource = remember { MutableInteractionSource() }
-    val hapticsViewModel: SliderHapticsViewModel? =
-        hapticsViewModelFactory?.let {
-            rememberViewModel(traceName = "SliderHapticsViewModel") {
-                it.create(
-                    interactionSource,
-                    sliderStateModel.valueRange,
-                    Orientation.Vertical,
-                    VolumeHapticsConfigsProvider.sliderHapticFeedbackConfig(
-                        sliderStateModel.valueRange
-                    ),
-                    VolumeHapticsConfigsProvider.seekableSliderTrackerConfig,
-                )
+
+    LaunchedEffect(interactionSource) {
+        interactionSource.interactions.collect {
+            when (it) {
+                is DragInteraction.Start -> viewModel.onSliderDragStarted()
+                is DragInteraction.Cancel -> viewModel.onSliderDragFinished()
+                is DragInteraction.Stop -> viewModel.onSliderDragFinished()
             }
         }
-
-    val sliderState =
-        remember(steps, sliderStateModel.valueRange) {
-            SliderState(
-                    value = sliderStateModel.value,
-                    valueRange = sliderStateModel.valueRange,
-                    steps = steps,
-                )
-                .also { sliderState ->
-                    sliderState.onValueChangeFinished = {
-                        viewModel.onStreamChangeFinished(sliderState.value.roundToInt())
-                        hapticsViewModel?.onValueChangeEnded()
-                    }
-                    sliderState.onValueChange = { newValue ->
-                        sliderState.value = newValue
-                        hapticsViewModel?.addVelocityDataPoint(newValue)
-                        overscrollViewModel.setSlider(
-                            value = sliderState.value,
-                            min = sliderState.valueRange.start,
-                            max = sliderState.valueRange.endInclusive,
-                        )
-                        viewModel.setStreamVolume(newValue, true)
-                    }
-                }
-        }
-
-    var lastDiscreteStep by remember { mutableFloatStateOf(round(sliderStateModel.value)) }
-    LaunchedEffect(sliderStateModel.value) {
-        val value = sliderStateModel.value
-        sliderState.value = value
-        if (value != lastDiscreteStep) {
-            lastDiscreteStep = value
-            hapticsViewModel?.onValueChange(value)
-        }
     }
 
-    VerticalSlider(
-        state = sliderState,
-        enabled = !sliderStateModel.isDisabled,
-        reverseDirection = true,
+    Slider(
+        value = sliderStateModel.value,
+        valueRange = sliderStateModel.valueRange,
+        onValueChanged = { value ->
+            overscrollViewModel.setSlider(
+                value = value,
+                min = sliderStateModel.valueRange.start,
+                max = sliderStateModel.valueRange.endInclusive,
+            )
+            viewModel.setStreamVolume(value, true)
+        },
+        onValueChangeFinished = { viewModel.onSliderChangeFinished(it) },
+        isEnabled = !sliderStateModel.isDisabled,
+        isReverseDirection = true,
+        isVertical = true,
         colors = colors,
         interactionSource = interactionSource,
-        modifier =
-            modifier.pointerInput(Unit) {
-                coroutineScope {
-                    val currentContext = currentCoroutineContext()
-                    awaitPointerEventScope {
-                        while (currentContext.isActive) {
-                            viewModel.onTouchEvent(awaitPointerEvent())
-                        }
-                    }
-                }
-            },
-        track = {
+        haptics =
+            hapticsViewModelFactory?.let {
+                Haptics.Enabled(
+                    hapticsViewModelFactory = it,
+                    hapticFilter = SliderHapticFeedbackFilter(),
+                    orientation = Orientation.Vertical,
+                )
+            } ?: Haptics.Disabled,
+        stepDistance = 1f,
+        track = { sliderState ->
             VolumeDialogSliderTrack(
                 sliderState,
                 colors = colors,
@@ -192,6 +155,19 @@
                 },
             )
         },
+        accessibilityParams =
+            AccessibilityParams(label = "", currentStateDescription = "", disabledMessage = ""),
+        modifier =
+            modifier.pointerInput(Unit) {
+                coroutineScope {
+                    val currentContext = currentCoroutineContext()
+                    awaitPointerEventScope {
+                        while (currentContext.isActive) {
+                            viewModel.onTouchEvent(awaitPointerEvent())
+                        }
+                    }
+                }
+            },
     )
 }
 
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderViewModel.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderViewModel.kt
index 9ac052a..19b2880 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderViewModel.kt
@@ -19,6 +19,7 @@
 import androidx.compose.ui.geometry.Offset
 import androidx.compose.ui.input.pointer.PointerEvent
 import androidx.compose.ui.input.pointer.PointerEventType
+import com.android.internal.logging.UiEventLogger
 import com.android.systemui.util.time.SystemClock
 import com.android.systemui.volume.Events
 import com.android.systemui.volume.dialog.dagger.scope.VolumeDialog
@@ -30,6 +31,7 @@
 import com.android.systemui.volume.dialog.sliders.domain.interactor.VolumeDialogSliderInteractor
 import com.android.systemui.volume.dialog.sliders.domain.model.VolumeDialogSliderType
 import com.android.systemui.volume.dialog.sliders.shared.model.SliderInputEvent
+import com.android.systemui.volume.dialog.ui.VolumeDialogUiEvent
 import javax.inject.Inject
 import kotlin.math.roundToInt
 import kotlinx.coroutines.CoroutineScope
@@ -69,6 +71,7 @@
     private val inputEventsInteractor: VolumeDialogSliderInputEventsInteractor,
     private val systemClock: SystemClock,
     private val logger: VolumeDialogLogger,
+    private val uiEventLogger: UiEventLogger,
 ) {
 
     private val userVolumeUpdates = MutableStateFlow<VolumeUpdate?>(null)
@@ -99,9 +102,11 @@
                                     isMuted = isMuted,
                                     isRoutedToBluetooth = routedToBluetooth,
                                 )
+
                             is VolumeDialogSliderType.RemoteMediaStream -> {
                                 volumeDialogSliderIconProvider.getCastIcon(isMuted)
                             }
+
                             is VolumeDialogSliderType.AudioSharingStream -> {
                                 volumeDialogSliderIconProvider.getAudioSharingIcon(isMuted)
                             }
@@ -135,8 +140,19 @@
         }
     }
 
-    fun onStreamChangeFinished(volume: Int) {
-        logger.onVolumeSliderAdjustmentFinished(volume = volume, stream = sliderType.audioStream)
+    fun onSliderDragStarted() {
+        uiEventLogger.log(VolumeDialogUiEvent.VOLUME_DIALOG_SLIDER_STARTED_TRACKING_TOUCH)
+    }
+
+    fun onSliderDragFinished() {
+        uiEventLogger.log(VolumeDialogUiEvent.VOLUME_DIALOG_SLIDER_STOPPED_TRACKING_TOUCH)
+    }
+
+    fun onSliderChangeFinished(volume: Float) {
+        logger.onVolumeSliderAdjustmentFinished(
+            volume = volume.roundToInt(),
+            stream = sliderType.audioStream,
+        )
     }
 
     fun onTouchEvent(pointerEvent: PointerEvent) {
@@ -146,14 +162,17 @@
                 inputEventsInteractor.onTouchEvent(
                     SliderInputEvent.Touch.Start(position.x, position.y)
                 )
+
             PointerEventType.Move ->
                 inputEventsInteractor.onTouchEvent(
                     SliderInputEvent.Touch.Move(position.x, position.y)
                 )
+
             PointerEventType.Scroll ->
                 inputEventsInteractor.onTouchEvent(
                     SliderInputEvent.Touch.Move(position.x, position.y)
                 )
+
             PointerEventType.Release ->
                 inputEventsInteractor.onTouchEvent(
                     SliderInputEvent.Touch.End(position.x, position.y)
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/VolumeDialogUiEvent.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/VolumeDialogUiEvent.kt
new file mode 100644
index 0000000..cf1b69e
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/VolumeDialogUiEvent.kt
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2025 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.volume.dialog.ui
+
+import com.android.internal.logging.UiEvent
+import com.android.internal.logging.UiEventLogger
+
+/** UI events for Volume Dialog. */
+enum class VolumeDialogUiEvent(val metricId: Int) : UiEventLogger.UiEventEnum {
+    @UiEvent(doc = "The ringer mode was toggled to silent") RINGER_MODE_SILENT(154),
+    @UiEvent(doc = "The ringer mode was toggled to vibrate") RINGER_MODE_VIBRATE(155),
+    @UiEvent(doc = "The ringer mode was toggled to normal") RINGER_MODE_NORMAL(334),
+    @UiEvent(doc = "The volume dialog settings icon was clicked") VOLUME_DIALOG_SETTINGS_CLICK(143),
+    @UiEvent(doc = "The volume dialog was shown because the volume changed")
+    VOLUME_DIALOG_SHOW_VOLUME_CHANGED(128),
+    @UiEvent(doc = "The volume dialog was shown because the volume changed remotely")
+    VOLUME_DIALOG_SHOW_REMOTE_VOLUME_CHANGED(129),
+    @UiEvent(doc = "The volume dialog was shown because the usb high temperature alarm changed")
+    VOLUME_DIALOG_SHOW_USB_TEMP_ALARM_CHANGED(130),
+    @UiEvent(doc = "The volume dialog was dismissed because of a touch outside the dialog")
+    VOLUME_DIALOG_DISMISS_TOUCH_OUTSIDE(134),
+    @UiEvent(
+        doc =
+            "The system asked the volume dialog to close, e.g. for a navigation bar " +
+                "touch, or ActivityManager ACTION_CLOSE_SYSTEM_DIALOGS broadcast."
+    )
+    VOLUME_DIALOG_DISMISS_SYSTEM(135),
+    @UiEvent(doc = "The volume dialog was dismissed because it timed out")
+    VOLUME_DIALOG_DISMISS_TIMEOUT(136),
+    @UiEvent(doc = "The volume dialog was dismissed because the screen turned off")
+    VOLUME_DIALOG_DISMISS_SCREEN_OFF(137),
+    @UiEvent(doc = "The volume dialog was dismissed because the settings icon was clicked")
+    VOLUME_DIALOG_DISMISS_SETTINGS(138),
+    @UiEvent(doc = "The volume dialog was dismissed because the stream no longer exists")
+    VOLUME_DIALOG_DISMISS_STREAM_GONE(140),
+    @UiEvent(
+        doc = "The volume dialog was dismissed because the usb high temperature alarm " + "changed"
+    )
+    VOLUME_DIALOG_DISMISS_USB_TEMP_ALARM_CHANGED(142),
+    @UiEvent(doc = "The right-most slider started tracking touch")
+    VOLUME_DIALOG_SLIDER_STARTED_TRACKING_TOUCH(1620),
+    @UiEvent(doc = "The right-most slider stopped tracking touch")
+    VOLUME_DIALOG_SLIDER_STOPPED_TRACKING_TOUCH(1621);
+
+    override fun getId() = metricId
+}
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/binder/VolumeDialogViewBinder.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/binder/VolumeDialogViewBinder.kt
index 0c10aaa..feb4769 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/binder/VolumeDialogViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/binder/VolumeDialogViewBinder.kt
@@ -148,7 +148,7 @@
                         junkListener?.let(animation::removeUpdateListener)
                         junkListener =
                             jankListenerFactory.show(view).also(animation::addUpdateListener)
-                        animation.animateToFinalPosition(FRACTION_SHOW)
+                        animation.suspendAnimate(FRACTION_SHOW)
                     }
                     is VolumeDialogVisibilityModel.Dismissed -> {
                         tracer.traceVisibilityEnd(it)
diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/viewmodel/VolumeDialogPluginViewModel.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/viewmodel/VolumeDialogPluginViewModel.kt
index 1765f01..6d16300 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/viewmodel/VolumeDialogPluginViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/ui/viewmodel/VolumeDialogPluginViewModel.kt
@@ -16,6 +16,7 @@
 
 package com.android.systemui.volume.dialog.ui.viewmodel
 
+import com.android.internal.logging.UiEventLogger
 import com.android.systemui.volume.Events
 import com.android.systemui.volume.dialog.VolumeDialog
 import com.android.systemui.volume.dialog.dagger.scope.VolumeDialogPlugin
@@ -26,6 +27,7 @@
 import com.android.systemui.volume.dialog.shared.VolumeDialogLogger
 import com.android.systemui.volume.dialog.shared.model.CsdWarningConfigModel
 import com.android.systemui.volume.dialog.shared.model.VolumeDialogVisibilityModel
+import com.android.systemui.volume.dialog.ui.VolumeDialogUiEvent
 import javax.inject.Inject
 import javax.inject.Provider
 import kotlinx.coroutines.CoroutineScope
@@ -44,6 +46,7 @@
     private val volumeDialogProvider: Provider<VolumeDialog>,
     private val logger: VolumeDialogLogger,
     val csdWarningConfigModel: CsdWarningConfigModel,
+    private val uiEventLogger: UiEventLogger,
 ) {
 
     fun launchVolumeDialog() {
@@ -52,11 +55,11 @@
                 with(visibilityModel) {
                     if (this is VolumeDialogVisibilityModel.Visible) {
                         showDialog()
-                        Events.writeEvent(Events.EVENT_SHOW_DIALOG, reason, keyguardLocked)
+                        toVolumeDialogUiEvent()?.let(uiEventLogger::log)
                         logger.onShow(reason)
                     }
                     if (this is VolumeDialogVisibilityModel.Dismissed) {
-                        Events.writeEvent(Events.EVENT_DISMISS_DIALOG, reason)
+                        toVolumeDialogUiEvent()?.let(uiEventLogger::log)
                         logger.onDismiss(reason)
                     }
                 }
@@ -86,3 +89,29 @@
             .show()
     }
 }
+
+private fun VolumeDialogVisibilityModel.Dismissed.toVolumeDialogUiEvent(): VolumeDialogUiEvent? {
+    return when (reason) {
+        Events.DISMISS_REASON_TOUCH_OUTSIDE ->
+            VolumeDialogUiEvent.VOLUME_DIALOG_DISMISS_TOUCH_OUTSIDE
+        Events.DISMISS_REASON_VOLUME_CONTROLLER -> VolumeDialogUiEvent.VOLUME_DIALOG_DISMISS_SYSTEM
+        Events.DISMISS_REASON_TIMEOUT -> VolumeDialogUiEvent.VOLUME_DIALOG_DISMISS_TIMEOUT
+        Events.DISMISS_REASON_SCREEN_OFF -> VolumeDialogUiEvent.VOLUME_DIALOG_DISMISS_SCREEN_OFF
+        Events.DISMISS_REASON_SETTINGS_CLICKED -> VolumeDialogUiEvent.VOLUME_DIALOG_DISMISS_SETTINGS
+        Events.DISMISS_STREAM_GONE -> VolumeDialogUiEvent.VOLUME_DIALOG_DISMISS_STREAM_GONE
+        Events.DISMISS_REASON_USB_OVERHEAD_ALARM_CHANGED ->
+            VolumeDialogUiEvent.VOLUME_DIALOG_DISMISS_USB_TEMP_ALARM_CHANGED
+        else -> null
+    }
+}
+
+private fun VolumeDialogVisibilityModel.Visible.toVolumeDialogUiEvent(): VolumeDialogUiEvent? {
+    return when (reason) {
+        Events.SHOW_REASON_VOLUME_CHANGED -> VolumeDialogUiEvent.VOLUME_DIALOG_SHOW_VOLUME_CHANGED
+        Events.SHOW_REASON_REMOTE_VOLUME_CHANGED ->
+            VolumeDialogUiEvent.VOLUME_DIALOG_SHOW_REMOTE_VOLUME_CHANGED
+        Events.SHOW_REASON_USB_OVERHEAD_ALARM_CHANGED ->
+            VolumeDialogUiEvent.VOLUME_DIALOG_SHOW_USB_TEMP_ALARM_CHANGED
+        else -> null
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioSharingStreamSliderViewModel.kt b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioSharingStreamSliderViewModel.kt
index 3efb2b4..3d98eba 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioSharingStreamSliderViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioSharingStreamSliderViewModel.kt
@@ -116,8 +116,8 @@
         override val isEnabled: Boolean
             get() = true
 
-        override val a11yStep: Int
-            get() = 1
+        override val a11yStep: Float
+            get() = 1f
 
         override val disabledMessage: String?
             get() = null
diff --git a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioStreamSliderViewModel.kt b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioStreamSliderViewModel.kt
index f9d776b..9d32285 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioStreamSliderViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/AudioStreamSliderViewModel.kt
@@ -165,7 +165,7 @@
             label = label,
             disabledMessage = disabledMessage,
             isEnabled = isEnabled,
-            a11yStep = volumeRange.step,
+            a11yStep = volumeRange.step.toFloat(),
             a11yClickDescription =
                 if (isAffectedByMute) {
                     context.getString(
@@ -307,7 +307,7 @@
         override val label: String,
         override val disabledMessage: String?,
         override val isEnabled: Boolean,
-        override val a11yStep: Int,
+        override val a11yStep: Float,
         override val a11yClickDescription: String?,
         override val a11yStateDescription: String?,
         override val isMutable: Boolean,
diff --git a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/CastVolumeSliderViewModel.kt b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/CastVolumeSliderViewModel.kt
index d74a433..a6c8091 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/CastVolumeSliderViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/CastVolumeSliderViewModel.kt
@@ -86,7 +86,7 @@
             icon = Icon.Resource(R.drawable.ic_cast, null),
             label = context.getString(R.string.media_device_cast),
             isEnabled = true,
-            a11yStep = 1,
+            a11yStep = 1f,
         )
     }
 
@@ -96,7 +96,7 @@
         override val icon: Icon,
         override val label: String,
         override val isEnabled: Boolean,
-        override val a11yStep: Int,
+        override val a11yStep: Float,
     ) : SliderState {
         override val hapticFilter: SliderHapticFeedbackFilter
             get() = SliderHapticFeedbackFilter()
diff --git a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/SliderState.kt b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/SliderState.kt
index f135371..4bc237b 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/SliderState.kt
+++ b/packages/SystemUI/src/com/android/systemui/volume/panel/component/volume/slider/ui/viewmodel/SliderState.kt
@@ -36,7 +36,7 @@
      * A11y slider controls works by adjusting one step up or down. The default slider step isn't
      * enough to trigger rounding to the correct value.
      */
-    val a11yStep: Int
+    val a11yStep: Float
     val a11yClickDescription: String?
     val a11yStateDescription: String?
     val disabledMessage: String?
@@ -49,7 +49,7 @@
         override val icon: Icon? = null
         override val label: String = ""
         override val disabledMessage: String? = null
-        override val a11yStep: Int = 0
+        override val a11yStep: Float = 0f
         override val a11yClickDescription: String? = null
         override val a11yStateDescription: String? = null
         override val isEnabled: Boolean = true
diff --git a/packages/SystemUI/src/com/android/systemui/volume/ui/slider/Slider.kt b/packages/SystemUI/src/com/android/systemui/volume/ui/slider/Slider.kt
new file mode 100644
index 0000000..d3562e2
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/volume/ui/slider/Slider.kt
@@ -0,0 +1,265 @@
+/*
+ * Copyright (C) 2025 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.
+ */
+
+@file:OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class)
+
+package com.android.systemui.volume.ui.slider
+
+import androidx.compose.animation.core.Animatable
+import androidx.compose.animation.core.Spring
+import androidx.compose.animation.core.SpringSpec
+import androidx.compose.foundation.gestures.Orientation
+import androidx.compose.foundation.interaction.MutableInteractionSource
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
+import androidx.compose.material3.Slider
+import androidx.compose.material3.SliderColors
+import androidx.compose.material3.SliderDefaults
+import androidx.compose.material3.SliderState
+import androidx.compose.material3.VerticalSlider
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableFloatStateOf
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.runtime.setValue
+import androidx.compose.runtime.snapshotFlow
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.semantics.ProgressBarRangeInfo
+import androidx.compose.ui.semantics.SemanticsPropertyReceiver
+import androidx.compose.ui.semantics.clearAndSetSemantics
+import androidx.compose.ui.semantics.contentDescription
+import androidx.compose.ui.semantics.disabled
+import androidx.compose.ui.semantics.progressBarRangeInfo
+import androidx.compose.ui.semantics.setProgress
+import androidx.compose.ui.semantics.stateDescription
+import com.android.systemui.haptics.slider.SliderHapticFeedbackFilter
+import com.android.systemui.haptics.slider.compose.ui.SliderHapticsViewModel
+import com.android.systemui.lifecycle.rememberViewModel
+import com.android.systemui.res.R
+import com.android.systemui.volume.haptics.ui.VolumeHapticsConfigsProvider
+import kotlin.math.round
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.filter
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.launch
+
+private val defaultSpring =
+    SpringSpec<Float>(dampingRatio = Spring.DampingRatioNoBouncy, stiffness = Spring.StiffnessHigh)
+private val defaultTrack: @Composable (SliderState) -> Unit =
+    @Composable { SliderDefaults.Track(it) }
+
+@Composable
+fun Slider(
+    value: Float,
+    valueRange: ClosedFloatingPointRange<Float>,
+    onValueChanged: (Float) -> Unit,
+    onValueChangeFinished: ((Float) -> Unit)?,
+    stepDistance: Float,
+    isEnabled: Boolean,
+    accessibilityParams: AccessibilityParams,
+    modifier: Modifier = Modifier,
+    colors: SliderColors = SliderDefaults.colors(),
+    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
+    haptics: Haptics = Haptics.Disabled,
+    isVertical: Boolean = false,
+    isReverseDirection: Boolean = false,
+    track: (@Composable (SliderState) -> Unit)? = null,
+) {
+    require(stepDistance > 0) { "stepDistance must be positive" }
+    val coroutineScope = rememberCoroutineScope()
+    val snappedValue = snapValue(value, valueRange, stepDistance)
+    val hapticsViewModel = haptics.createViewModel(snappedValue, valueRange, interactionSource)
+
+    val animatable = remember { Animatable(snappedValue) }
+    var animationJob: Job? by remember { mutableStateOf(null) }
+    val sliderState =
+        remember(valueRange) { SliderState(value = snappedValue, valueRange = valueRange) }
+    val valueChange: (Float) -> Unit = { newValue ->
+        hapticsViewModel?.onValueChange(newValue)
+        val snappedNewValue = snapValue(newValue, valueRange, stepDistance)
+        if (animatable.targetValue != snappedNewValue) {
+            onValueChanged(snappedNewValue)
+            animationJob?.cancel()
+            animationJob =
+                coroutineScope.launch {
+                    animatable.animateTo(
+                        targetValue = snappedNewValue,
+                        animationSpec = defaultSpring,
+                    )
+                }
+        }
+    }
+    val semantics =
+        accessibilityParams.createSemantics(
+            animatable.targetValue,
+            valueRange,
+            valueChange,
+            isEnabled,
+            stepDistance,
+        )
+
+    LaunchedEffect(snappedValue) {
+        if (!animatable.isRunning && animatable.targetValue != snappedValue) {
+            animationJob?.cancel()
+            animationJob =
+                coroutineScope.launch {
+                    animatable.animateTo(targetValue = snappedValue, animationSpec = defaultSpring)
+                }
+        }
+    }
+
+    sliderState.onValueChangeFinished = {
+        hapticsViewModel?.onValueChangeEnded()
+        onValueChangeFinished?.invoke(animatable.targetValue)
+    }
+    sliderState.onValueChange = valueChange
+    sliderState.value = animatable.value
+
+    if (isVertical) {
+        VerticalSlider(
+            state = sliderState,
+            enabled = isEnabled,
+            reverseDirection = isReverseDirection,
+            interactionSource = interactionSource,
+            colors = colors,
+            track = track ?: defaultTrack,
+            modifier = modifier.clearAndSetSemantics(semantics),
+        )
+    } else {
+        Slider(
+            state = sliderState,
+            enabled = isEnabled,
+            interactionSource = interactionSource,
+            colors = colors,
+            track = track ?: defaultTrack,
+            modifier = modifier.clearAndSetSemantics(semantics),
+        )
+    }
+}
+
+private fun snapValue(
+    value: Float,
+    valueRange: ClosedFloatingPointRange<Float>,
+    stepDistance: Float,
+): Float {
+    if (stepDistance == 0f) {
+        return value
+    }
+    val coercedValue = value.coerceIn(valueRange)
+    return Math.round(coercedValue / stepDistance) * stepDistance
+}
+
+@Composable
+private fun AccessibilityParams.createSemantics(
+    value: Float,
+    valueRange: ClosedFloatingPointRange<Float>,
+    onValueChanged: (Float) -> Unit,
+    isEnabled: Boolean,
+    stepDistance: Float,
+): SemanticsPropertyReceiver.() -> Unit {
+    val semanticsContentDescription =
+        disabledMessage
+            ?.takeIf { !isEnabled }
+            ?.let { message ->
+                stringResource(R.string.volume_slider_disabled_message_template, label, message)
+            } ?: label
+    return {
+        contentDescription = semanticsContentDescription
+        if (isEnabled) {
+            currentStateDescription?.let { stateDescription = it }
+            progressBarRangeInfo = ProgressBarRangeInfo(value, valueRange)
+        } else {
+            disabled()
+        }
+        setProgress { targetValue ->
+            val targetDirection =
+                when {
+                    targetValue > value -> 1
+                    targetValue < value -> -1
+                    else -> 0
+                }
+
+            val newValue =
+                (value + targetDirection * stepDistance).coerceIn(
+                    valueRange.start,
+                    valueRange.endInclusive,
+                )
+            onValueChanged(newValue)
+            true
+        }
+    }
+}
+
+@Composable
+private fun Haptics.createViewModel(
+    value: Float,
+    valueRange: ClosedFloatingPointRange<Float>,
+    interactionSource: MutableInteractionSource,
+): SliderHapticsViewModel? {
+    return when (this) {
+        is Haptics.Disabled -> null
+        is Haptics.Enabled -> {
+            hapticsViewModelFactory.let {
+                rememberViewModel(traceName = "SliderHapticsViewModel") {
+                        it.create(
+                            interactionSource,
+                            valueRange,
+                            orientation,
+                            VolumeHapticsConfigsProvider.sliderHapticFeedbackConfig(
+                                valueRange,
+                                hapticFilter,
+                            ),
+                            VolumeHapticsConfigsProvider.seekableSliderTrackerConfig,
+                        )
+                    }
+                    .also { hapticsViewModel ->
+                        var lastDiscreteStep by remember { mutableFloatStateOf(value) }
+                        LaunchedEffect(value) {
+                            snapshotFlow { value }
+                                .map { round(it) }
+                                .filter { it != lastDiscreteStep }
+                                .distinctUntilChanged()
+                                .collect { discreteStep ->
+                                    lastDiscreteStep = discreteStep
+                                    hapticsViewModel.onValueChange(discreteStep)
+                                }
+                        }
+                    }
+            }
+        }
+    }
+}
+
+data class AccessibilityParams(
+    val label: String,
+    val currentStateDescription: String?,
+    val disabledMessage: String?,
+)
+
+sealed interface Haptics {
+    data object Disabled : Haptics
+
+    data class Enabled(
+        val hapticsViewModelFactory: SliderHapticsViewModel.Factory,
+        val hapticFilter: SliderHapticFeedbackFilter,
+        val orientation: Orientation,
+    ) : Haptics
+}
diff --git a/packages/SystemUI/src/com/android/systemui/wmshell/BubblesManager.java b/packages/SystemUI/src/com/android/systemui/wmshell/BubblesManager.java
index e764015..b23efce 100644
--- a/packages/SystemUI/src/com/android/systemui/wmshell/BubblesManager.java
+++ b/packages/SystemUI/src/com/android/systemui/wmshell/BubblesManager.java
@@ -23,6 +23,7 @@
 import static android.service.notification.NotificationListenerService.REASON_APP_CANCEL_ALL;
 import static android.service.notification.NotificationListenerService.REASON_GROUP_SUMMARY_CANCELED;
 import static android.service.notification.NotificationListenerService.REASON_PACKAGE_BANNED;
+import static android.service.notification.NotificationListenerService.REASON_PACKAGE_CHANGED;
 import static android.service.notification.NotificationStats.DISMISSAL_BUBBLE;
 import static android.service.notification.NotificationStats.DISMISS_SENTIMENT_NEUTRAL;
 
@@ -451,7 +452,8 @@
             public void onEntryRemoved(NotificationEntry entry,
                     @NotifCollection.CancellationReason int reason) {
                 if (reason == REASON_APP_CANCEL || reason == REASON_APP_CANCEL_ALL
-                        || reason == REASON_PACKAGE_BANNED) {
+                        || reason == REASON_PACKAGE_BANNED
+                        || reason == REASON_PACKAGE_CHANGED) {
                     BubblesManager.this.onEntryRemoved(entry);
                 }
             }
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
index e2cfbc6..a42f5d3 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
@@ -65,6 +65,8 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import static java.util.Collections.emptySet;
+
 import android.app.Activity;
 import android.app.ActivityTaskManager;
 import android.app.IActivityTaskManager;
@@ -155,6 +157,7 @@
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.scene.domain.interactor.SceneInteractor;
 import com.android.systemui.scene.shared.flag.SceneContainerFlag;
+import com.android.systemui.scene.shared.model.Overlays;
 import com.android.systemui.scene.shared.model.Scenes;
 import com.android.systemui.settings.UserTracker;
 import com.android.systemui.shared.system.TaskStackChangeListener;
@@ -190,6 +193,7 @@
 import java.util.List;
 import java.util.Optional;
 import java.util.Random;
+import java.util.Set;
 import java.util.concurrent.Executor;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -2775,7 +2779,7 @@
         private void setPrimaryBouncerVisibility(boolean isVisible) {
             if (SceneContainerFlag.isEnabled()) {
                 ObservableTransitionState transitionState = new ObservableTransitionState.Idle(
-                        isVisible ? Scenes.Bouncer : Scenes.Lockscreen);
+                        Scenes.Lockscreen, isVisible ? Set.of(Overlays.Bouncer) : emptySet());
                 when(mSceneInteractor.getTransitionState()).thenReturn(
                         MutableStateFlow(transitionState));
                 onTransitionStateChanged(transitionState);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/animation/FontInterpolatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/animation/FontInterpolatorTest.kt
index 2e63439..c2a495d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/animation/FontInterpolatorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/animation/FontInterpolatorTest.kt
@@ -64,6 +64,12 @@
             "'wght' 500, 'ital' 0.5, 'GRAD' 450",
             interp.lerp(startFont, endFont, 0.5f, 0.5f),
         )
+
+        // Ensure axes rounded correctly to nearest step
+        assertSameAxes(
+            "'wght' 490, 'ital' 0.5, 'GRAD' 446",
+            interp.lerp(startFont, endFont, 0.492f, 0.492f),
+        )
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModelTest.kt
index f04fc86..dbbdcf7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsContentViewModelTest.kt
@@ -28,9 +28,11 @@
 import com.android.settingslib.bluetooth.CachedBluetoothDevice
 import com.android.settingslib.bluetooth.LocalBluetoothManager
 import com.android.settingslib.flags.Flags
+import com.android.systemui.Flags.FLAG_QS_TILE_DETAILED_VIEW
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.animation.DialogTransitionAnimator
 import com.android.systemui.animation.Expandable
+import com.android.systemui.flags.EnableSceneContainer
 import com.android.systemui.kosmos.testDispatcher
 import com.android.systemui.kosmos.testScope
 import com.android.systemui.plugins.ActivityStarter
@@ -194,9 +196,9 @@
     }
 
     @Test
-    fun testShowDetailsContent_noAnimation() {
+    fun testShowDialog_noAnimation() {
         testScope.runTest {
-            bluetoothDetailsContentViewModel.showDetailsContent(null, null)
+            bluetoothDetailsContentViewModel.showDialog(null)
             runCurrent()
 
             verify(mDialogTransitionAnimator, never()).show(any(), any(), any())
@@ -204,9 +206,9 @@
     }
 
     @Test
-    fun testShowDetailsContent_animated() {
+    fun testShowDialog_animated() {
         testScope.runTest {
-            bluetoothDetailsContentViewModel.showDetailsContent(expandable, null)
+            bluetoothDetailsContentViewModel.showDialog(expandable)
             runCurrent()
 
             verify(mDialogTransitionAnimator).show(any(), any(), anyBoolean())
@@ -214,9 +216,11 @@
     }
 
     @Test
-    fun testShowDetailsContent_animated_inDetailsView() {
+    @EnableSceneContainer
+    @EnableFlags(FLAG_QS_TILE_DETAILED_VIEW)
+    fun testBindDetailsView() {
         testScope.runTest {
-            bluetoothDetailsContentViewModel.showDetailsContent(expandable, mockView)
+            bluetoothDetailsContentViewModel.bindDetailsView(mockView)
             runCurrent()
 
             verify(bluetoothDetailsContentManager).bind(mockView)
@@ -225,10 +229,10 @@
     }
 
     @Test
-    fun testShowDetailsContent_animated_callInBackgroundThread() {
+    fun testShowDialog_animated_callInBackgroundThread() {
         testScope.runTest {
             backgroundExecutor.execute {
-                bluetoothDetailsContentViewModel.showDetailsContent(expandable, null)
+                bluetoothDetailsContentViewModel.showDialog(expandable)
                 runCurrent()
 
                 verify(mDialogTransitionAnimator).show(any(), any(), anyBoolean())
@@ -237,10 +241,12 @@
     }
 
     @Test
-    fun testShowDetailsContent_animated_callInBackgroundThread_inDetailsView() {
+    @EnableSceneContainer
+    @EnableFlags(FLAG_QS_TILE_DETAILED_VIEW)
+    fun testBindDetailsView_callInBackgroundThread() {
         testScope.runTest {
             backgroundExecutor.execute {
-                bluetoothDetailsContentViewModel.showDetailsContent(expandable, mockView)
+                bluetoothDetailsContentViewModel.bindDetailsView(mockView)
                 runCurrent()
 
                 verify(bluetoothDetailsContentManager).bind(mockView)
@@ -250,9 +256,21 @@
     }
 
     @Test
-    fun testShowDetailsContent_fetchDeviceItem() {
+    fun testShowDialog_fetchDeviceItem() {
         testScope.runTest {
-            bluetoothDetailsContentViewModel.showDetailsContent(null, null)
+            bluetoothDetailsContentViewModel.showDialog(null)
+            runCurrent()
+
+            verify(deviceItemInteractor).deviceItemUpdate
+        }
+    }
+
+    @Test
+    @EnableSceneContainer
+    @EnableFlags(FLAG_QS_TILE_DETAILED_VIEW)
+    fun testBindDetailsView_fetchDeviceItem() {
+        testScope.runTest {
+            bluetoothDetailsContentViewModel.bindDetailsView(mockView)
             runCurrent()
 
             verify(deviceItemInteractor).deviceItemUpdate
@@ -263,7 +281,24 @@
     fun testStartSettingsActivity_activityLaunched_dialogDismissed() {
         testScope.runTest {
             whenever(deviceItem.cachedBluetoothDevice).thenReturn(cachedBluetoothDevice)
-            bluetoothDetailsContentViewModel.showDetailsContent(null, null)
+            bluetoothDetailsContentViewModel.showDialog(null)
+            runCurrent()
+
+            val clickedView = View(context)
+            bluetoothDetailsContentViewModel.onPairNewDeviceClicked(clickedView)
+
+            verify(uiEventLogger).log(BluetoothTileDialogUiEvent.PAIR_NEW_DEVICE_CLICKED)
+            verify(activityStarter).postStartActivityDismissingKeyguard(any(), anyInt(), nullable())
+        }
+    }
+
+    @Test
+    @EnableSceneContainer
+    @EnableFlags(FLAG_QS_TILE_DETAILED_VIEW)
+    fun testStartSettingsActivity_activityLaunched_detailsViewDismissed() {
+        testScope.runTest {
+            whenever(deviceItem.cachedBluetoothDevice).thenReturn(cachedBluetoothDevice)
+            bluetoothDetailsContentViewModel.bindDetailsView(mockView)
             runCurrent()
 
             val clickedView = View(context)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/composable/BouncerContentTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/composable/BouncerContentTest.kt
index 1320223..4e08596 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/composable/BouncerContentTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/composable/BouncerContentTest.kt
@@ -33,7 +33,7 @@
 import com.android.systemui.authentication.data.repository.fakeAuthenticationRepository
 import com.android.systemui.authentication.shared.model.AuthenticationMethodModel
 import com.android.systemui.bouncer.ui.BouncerDialogFactory
-import com.android.systemui.bouncer.ui.viewmodel.bouncerSceneContentViewModelFactory
+import com.android.systemui.bouncer.ui.viewmodel.bouncerOverlayContentViewModelFactory
 import com.android.systemui.flags.Flags
 import com.android.systemui.flags.fakeFeatureFlagsClassic
 import com.android.systemui.lifecycle.rememberViewModel
@@ -98,9 +98,9 @@
             BouncerContent(
                 viewModel =
                     rememberViewModel("test") {
-                        kosmos.bouncerSceneContentViewModelFactory.create()
+                        kosmos.bouncerOverlayContentViewModelFactory.create()
                     },
-                layout = BouncerSceneLayout.BESIDE_USER_SWITCHER,
+                layout = BouncerOverlayLayout.BESIDE_USER_SWITCHER,
                 modifier = Modifier.fillMaxSize().testTag("BouncerContent"),
                 dialogFactory = bouncerDialogFactory,
             )
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImplTest.kt
index b731c4f..0a8325d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterImplTest.kt
@@ -38,11 +38,7 @@
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaData
 import com.android.systemui.media.controls.shared.model.SmartspaceMediaLoadingModel
 import com.android.systemui.media.controls.ui.controller.MediaPlayerData
-import com.android.systemui.media.controls.util.MediaFlags
-import com.android.systemui.media.controls.util.MediaSmartspaceLogger
 import com.android.systemui.media.controls.util.MediaUiEventLogger
-import com.android.systemui.media.controls.util.mediaSmartspaceLogger
-import com.android.systemui.media.controls.util.mockMediaSmartspaceLogger
 import com.android.systemui.settings.UserTracker
 import com.android.systemui.statusbar.NotificationLockscreenUserManager
 import com.android.systemui.testKosmos
@@ -95,7 +91,6 @@
     @Mock private lateinit var smartspaceData: SmartspaceMediaData
     @Mock private lateinit var smartspaceMediaRecommendationItem: SmartspaceAction
     @Mock private lateinit var logger: MediaUiEventLogger
-    @Mock private lateinit var mediaFlags: MediaFlags
     @Mock private lateinit var cardAction: SmartspaceAction
 
     private lateinit var mediaDataFilter: MediaDataFilterImpl
@@ -104,12 +99,7 @@
     private lateinit var dataGuest: MediaData
     private lateinit var dataPrivateProfile: MediaData
     private val clock = FakeSystemClock()
-    private val smartspaceLogger = kosmos.mockMediaSmartspaceLogger
-    private val repository: MediaFilterRepository =
-        with(kosmos) {
-            mediaSmartspaceLogger = mockMediaSmartspaceLogger
-            mediaFilterRepository
-        }
+    private val repository: MediaFilterRepository = with(kosmos) { mediaFilterRepository }
     private val mediaLogger = kosmos.mockMediaLogger
 
     @Before
@@ -126,7 +116,6 @@
                 executor,
                 clock,
                 logger,
-                mediaFlags,
                 repository,
                 mediaLogger,
             )
@@ -541,22 +530,8 @@
     @Test
     fun onSwipeToDismiss_setsTimedOut() {
         mediaDataFilter.onMediaDataLoaded(KEY, null, dataMain)
-        mediaDataFilter.onSwipeToDismiss(1)
+        mediaDataFilter.onSwipeToDismiss()
 
-        verify(smartspaceLogger, never())
-            .logSmartspaceCardUIEvent(
-                eq(MediaSmartspaceLogger.SMARTSPACE_CARD_DISMISS_EVENT),
-                anyInt(),
-                anyInt(),
-                anyInt(),
-                anyInt(),
-                anyBoolean(),
-                anyBoolean(),
-                anyInt(),
-                anyInt(),
-                anyInt(),
-                eq(true),
-            )
         verify(mediaDataProcessor).setInactive(eq(KEY), eq(true), eq(true))
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessorTest.kt
index f9e8cbfc..93c27f0 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessorTest.kt
@@ -243,7 +243,6 @@
                 mediaDataCombineLatest = mediaDataCombineLatest,
                 mediaDataFilter = mediaDataFilter,
                 mediaFilterRepository = mediaFilterRepository,
-                mediaFlags = kosmos.mediaFlags,
             )
         mediaCarouselInteractor.start()
         verify(mediaTimeoutListener).stateCallback = capture(stateCallbackCaptor)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/animation/ColorSchemeTransitionTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/animation/ColorSchemeTransitionTest.kt
index 4d0605f..90a8ad5 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/animation/ColorSchemeTransitionTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/animation/ColorSchemeTransitionTest.kt
@@ -18,9 +18,12 @@
 
 import android.animation.ValueAnimator
 import android.graphics.Color
+import android.platform.test.annotations.DisableFlags
+import android.platform.test.annotations.EnableFlags
 import android.testing.TestableLooper
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
+import com.android.systemui.Flags
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.media.controls.ui.view.GutsViewHolder
 import com.android.systemui.media.controls.ui.view.MediaViewHolder
@@ -33,6 +36,7 @@
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.anyInt
 import org.mockito.Mock
 import org.mockito.Mockito.never
 import org.mockito.Mockito.times
@@ -49,7 +53,9 @@
 class ColorSchemeTransitionTest : SysuiTestCase() {
 
     private interface ExtractCB : (ColorScheme) -> Int
+
     private interface ApplyCB : (Int) -> Unit
+
     private lateinit var colorTransition: AnimatingColorTransition
     private lateinit var colorSchemeTransition: ColorSchemeTransition
 
@@ -79,7 +85,7 @@
                 mediaViewHolder,
                 multiRippleController,
                 turbulenceNoiseController,
-                animatingColorTransitionFactory
+                animatingColorTransitionFactory,
             )
 
         colorTransition =
@@ -154,10 +160,21 @@
         verify(applyColor).invoke(expectedColor)
     }
 
+    @DisableFlags(Flags.FLAG_MEDIA_CONTROLS_A11Y_COLORS)
     @Test
-    fun testColorSchemeTransition_update() {
+    fun testColorSchemeTransition_update_legacy() {
         colorSchemeTransition.updateColorScheme(colorScheme)
         verify(mockAnimatingTransition, times(8)).updateColorScheme(colorScheme)
         verify(gutsViewHolder).colorScheme = colorScheme
     }
+
+    @EnableFlags(Flags.FLAG_MEDIA_CONTROLS_A11Y_COLORS)
+    @Test
+    fun testColorSchemeTransition_update() {
+        colorSchemeTransition.updateColorScheme(colorScheme)
+        verify(mockAnimatingTransition, times(3)).updateColorScheme(colorScheme)
+        verify(gutsViewHolder).setColors(colorScheme)
+        verify(multiRippleController).updateColor(anyInt())
+        verify(turbulenceNoiseController).updateNoiseColor(anyInt())
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaCarouselControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaCarouselControllerTest.kt
index aaf5559..2001a3e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaCarouselControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaCarouselControllerTest.kt
@@ -56,7 +56,6 @@
 import com.android.systemui.media.controls.ui.view.MediaHostState
 import com.android.systemui.media.controls.ui.view.MediaScrollView
 import com.android.systemui.media.controls.ui.viewmodel.mediaCarouselViewModel
-import com.android.systemui.media.controls.util.MediaFlags
 import com.android.systemui.media.controls.util.MediaUiEventLogger
 import com.android.systemui.plugins.ActivityStarter
 import com.android.systemui.plugins.FalsingManager
@@ -136,7 +135,6 @@
     @Mock lateinit var mediaViewController: MediaViewController
     @Mock lateinit var mediaCarousel: MediaScrollView
     @Mock lateinit var pageIndicator: PageIndicator
-    @Mock lateinit var mediaFlags: MediaFlags
     @Mock lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor
     @Mock lateinit var globalSettings: GlobalSettings
     private val transitionRepository = kosmos.fakeKeyguardTransitionRepository
@@ -196,7 +194,6 @@
                 dumpManager = dumpManager,
                 logger = logger,
                 debugLogger = debugLogger,
-                mediaFlags = mediaFlags,
                 keyguardUpdateMonitor = keyguardUpdateMonitor,
                 keyguardTransitionInteractor = kosmos.keyguardTransitionInteractor,
                 globalSettings = globalSettings,
@@ -881,8 +878,15 @@
             var updatedVisibility = false
             mediaCarouselController.updateHostVisibility = { updatedVisibility = true }
             mediaCarouselController.mediaCarousel = mediaCarousel
+            kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "")
+            kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+                SuccessFingerprintAuthenticationStatus(0, true)
+            )
+            runCurrent()
 
             val job = mediaCarouselController.listenForAnyStateToGoneKeyguardTransition(this)
+
+            kosmos.sceneInteractor.changeScene(Scenes.Gone, "")
             kosmos.setSceneTransition(Idle(Scenes.Gone))
 
             verify(mediaCarousel).visibility = View.VISIBLE
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManagerTest.kt
index 6ca4ae2..14b1412 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManagerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManagerTest.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.media.controls.ui.controller
 
 import android.graphics.Rect
+import android.platform.test.annotations.EnableFlags
 import android.provider.Settings
 import android.testing.TestableLooper
 import android.view.ViewGroup
@@ -36,7 +37,6 @@
 import com.android.systemui.keyguard.WakefulnessLifecycle
 import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
 import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
-import com.android.systemui.keyguard.data.repository.keyguardRepository
 import com.android.systemui.keyguard.domain.interactor.keyguardInteractor
 import com.android.systemui.keyguard.shared.model.KeyguardState
 import com.android.systemui.kosmos.testScope
@@ -50,6 +50,7 @@
 import com.android.systemui.shade.domain.interactor.ShadeInteractor
 import com.android.systemui.statusbar.StatusBarState
 import com.android.systemui.statusbar.SysuiStatusBarStateController
+import com.android.systemui.statusbar.featurepods.popups.StatusBarPopupChips
 import com.android.systemui.statusbar.phone.KeyguardBypassController
 import com.android.systemui.statusbar.policy.FakeConfigurationController
 import com.android.systemui.statusbar.policy.KeyguardStateController
@@ -581,6 +582,36 @@
         }
 
     @Test
+    @EnableFlags(StatusBarPopupChips.FLAG_NAME)
+    fun testStatusBarPopupLocation() =
+        testScope.runTest {
+            mediaHierarchyManager.isMediaControlPopupShowing = true
+            runCurrent()
+
+            verify(mediaCarouselController)
+                .onDesiredLocationChanged(
+                    eq(MediaHierarchyManager.LOCATION_STATUS_BAR_POPUP),
+                    nullable(),
+                    eq(false),
+                    anyLong(),
+                    anyLong(),
+                )
+            clearInvocations(mediaCarouselController)
+
+            mediaHierarchyManager.isMediaControlPopupShowing = false
+            runCurrent()
+
+            verify(mediaCarouselController)
+                .onDesiredLocationChanged(
+                    eq(MediaHierarchyManager.LOCATION_QQS),
+                    any<MediaHostState>(),
+                    eq(false),
+                    anyLong(),
+                    anyLong(),
+                )
+        }
+
+    @Test
     fun testCommunalLocationVisibilityWithShadeShowing() =
         testScope.runTest {
             whenever(mediaDataManager.hasActiveMediaOrRecommendation()).thenReturn(true)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaSwitchingControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaSwitchingControllerTest.java
index 88c2697..5c26dac 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaSwitchingControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaSwitchingControllerTest.java
@@ -1573,6 +1573,25 @@
         assertThat(items.get(1).isFirstDeviceInGroup()).isFalse();
     }
 
+    @EnableFlags(Flags.FLAG_ENABLE_OUTPUT_SWITCHER_DEVICE_GROUPING)
+    @Test
+    public void deviceListUpdateWithDifferentDevices_firstSelectedDeviceIsFirstDeviceInGroup() {
+        when(mLocalMediaManager.isPreferenceRouteListingExist()).thenReturn(true);
+        doReturn(mMediaDevices)
+                .when(mLocalMediaManager)
+                .getSelectedMediaDevice();
+        mMediaSwitchingController.start(mCb);
+        reset(mCb);
+        mMediaSwitchingController.getMediaItemList().clear();
+        mMediaSwitchingController.onDeviceListUpdate(mMediaDevices);
+        mMediaDevices.clear();
+        mMediaDevices.add(mMediaDevice2);
+        mMediaSwitchingController.onDeviceListUpdate(mMediaDevices);
+
+        List<MediaItem> items = mMediaSwitchingController.getMediaItemList();
+        assertThat(items.get(0).isFirstDeviceInGroup()).isTrue();
+    }
+
     private int getNumberOfConnectDeviceButtons() {
         int numberOfConnectDeviceButtons = 0;
         for (MediaItem item : mMediaSwitchingController.getMediaItemList()) {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/BluetoothTileTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/BluetoothTileTest.kt
index cfe34f4..6f71df5 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/BluetoothTileTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/BluetoothTileTest.kt
@@ -39,7 +39,7 @@
 import com.android.systemui.util.mockito.mock
 import com.android.systemui.util.mockito.whenever
 import com.google.common.truth.Truth.assertThat
-import kotlin.test.assertTrue
+import dagger.Lazy
 import kotlinx.coroutines.Job
 import org.junit.After
 import org.junit.Before
@@ -96,8 +96,9 @@
                 qsLogger,
                 bluetoothController,
                 featureFlags,
-                bluetoothDetailsContentViewModel,
-            )
+            ) {
+                bluetoothDetailsContentViewModel
+            }
 
         tile.initialize()
         testableLooper.processAllMessages()
@@ -206,7 +207,6 @@
     @Test
     @DisableFlags(QsDetailedView.FLAG_NAME)
     fun handleClick_hasSatelliteFeatureButNoQsTileDialogAndClickIsProcessing_doNothing() {
-        mSetFlagsRule.enableFlags(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
         `when`(featureFlags.isEnabled(com.android.systemui.flags.Flags.BLUETOOTH_QS_TILE_DIALOG))
             .thenReturn(false)
         `when`(clickJob.isCompleted).thenReturn(false)
@@ -218,34 +218,8 @@
     }
 
     @Test
-    @DisableFlags(QsDetailedView.FLAG_NAME)
-    fun handleClick_noSatelliteFeatureAndNoQsTileDialog_directSetBtEnable() {
-        mSetFlagsRule.disableFlags(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
-        `when`(featureFlags.isEnabled(com.android.systemui.flags.Flags.BLUETOOTH_QS_TILE_DIALOG))
-            .thenReturn(false)
-
-        tile.handleClick(null)
-
-        verify(bluetoothController).setBluetoothEnabled(any())
-    }
-
-    @Test
-    @DisableFlags(QsDetailedView.FLAG_NAME)
-    fun handleClick_noSatelliteFeatureButHasQsTileDialog_showDialog() {
-        mSetFlagsRule.disableFlags(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
-        `when`(featureFlags.isEnabled(com.android.systemui.flags.Flags.BLUETOOTH_QS_TILE_DIALOG))
-            .thenReturn(true)
-
-        tile.handleClick(null)
-
-        verify(bluetoothDetailsContentViewModel)
-            .showDetailsContent(/* expandable= */ null, /* view= */ null)
-    }
-
-    @Test
     @EnableFlags(QsDetailedView.FLAG_NAME)
     fun handleClick_hasSatelliteFeatureAndQsDetailedViewIsEnabledAndClickIsProcessing_doNothing() {
-        mSetFlagsRule.enableFlags(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
         `when`(featureFlags.isEnabled(com.android.systemui.flags.Flags.BLUETOOTH_QS_TILE_DIALOG))
             .thenReturn(false)
         `when`(clickJob.isCompleted).thenReturn(false)
@@ -259,19 +233,6 @@
     }
 
     @Test
-    @EnableFlags(QsDetailedView.FLAG_NAME)
-    fun handleClick_noSatelliteFeatureAndQsDetailedViewIsEnabled_returnDetailsViewModel() {
-        mSetFlagsRule.disableFlags(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
-        `when`(featureFlags.isEnabled(com.android.systemui.flags.Flags.BLUETOOTH_QS_TILE_DIALOG))
-            .thenReturn(false)
-        var currentModel: TileDetailsViewModel? = null
-
-        tile.getDetailsViewModel { model: TileDetailsViewModel? -> currentModel = model }
-
-        assertTrue(currentModel != null)
-    }
-
-    @Test
     fun testMetadataListener_whenDisconnected_isUnregistered() {
         val state = QSTile.BooleanState()
         val cachedDevice = mock<CachedBluetoothDevice>()
@@ -308,7 +269,7 @@
         qsLogger: QSLogger,
         bluetoothController: BluetoothController,
         featureFlags: FeatureFlagsClassic,
-        bluetoothDetailsContentViewModel: BluetoothDetailsContentViewModel,
+        lazyBluetoothDetailsContentViewModel: Lazy<BluetoothDetailsContentViewModel>,
     ) :
         BluetoothTile(
             qsHost,
@@ -322,7 +283,7 @@
             qsLogger,
             bluetoothController,
             featureFlags,
-            bluetoothDetailsContentViewModel,
+            lazyBluetoothDetailsContentViewModel,
         ) {
         var restrictionChecked: String? = null
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateLegacyTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateLegacyTest.java
index 3d0a8f6..ebbe023 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateLegacyTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateLegacyTest.java
@@ -878,4 +878,18 @@
         mMobileDataLayout.setVisibility(mobileDataVisible ? View.VISIBLE : View.GONE);
         mConnectedWifi.setVisibility(connectedWifiVisible ? View.VISIBLE : View.GONE);
     }
+
+    @Test
+    public void updateDialog_wifiIsDisabled_turnOffProgressBar() {
+        when(mInternetDetailsContentController.isWifiEnabled()).thenReturn(false);
+        mInternetDialogDelegateLegacy.mIsProgressBarVisible = true;
+
+        mInternetDialogDelegateLegacy.updateDialog(false);
+
+        mBgExecutor.runAllReady();
+        mInternetDialogDelegateLegacy.mDataInternetContent.observe(
+                mInternetDialogDelegateLegacy.mLifecycleOwner, i -> {
+                    assertThat(mInternetDialogDelegateLegacy.mIsProgressBarVisible).isFalse();
+                });
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionIntentCreatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionIntentCreatorTest.kt
index 67eaf7b..6005725 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionIntentCreatorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionIntentCreatorTest.kt
@@ -19,29 +19,39 @@
 import android.content.ComponentName
 import android.content.Context
 import android.content.Intent
+import android.content.pm.ActivityInfo
+import android.content.pm.PackageInfo
+import android.content.pm.PackageManager
 import android.net.Uri
+import android.platform.test.annotations.DisableFlags
+import android.platform.test.annotations.EnableFlags
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.ext.truth.content.IntentSubject.assertThat as assertThatIntent
 import androidx.test.filters.SmallTest
-import com.android.systemui.res.R
 import com.android.systemui.SysuiTestCase
+import com.android.systemui.res.R
+import com.android.systemui.shared.Flags
 import com.android.systemui.util.mockito.eq
 import com.android.systemui.util.mockito.mock
 import com.google.common.truth.Truth.assertThat
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Test
 import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.anyInt
 import org.mockito.Mockito.`when` as whenever
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 class ActionIntentCreatorTest : SysuiTestCase() {
+    val context = mock<Context>()
+    val packageManager = mock<PackageManager>()
+    private val actionIntentCreator = ActionIntentCreator(context, packageManager)
 
     @Test
     fun testCreateShare() {
         val uri = Uri.parse("content://fake")
 
-        val output = ActionIntentCreator.createShare(uri)
+        val output = actionIntentCreator.createShare(uri)
 
         assertThatIntent(output).hasAction(Intent.ACTION_CHOOSER)
         assertThatIntent(output)
@@ -66,7 +76,7 @@
     fun testCreateShare_embeddedUserIdRemoved() {
         val uri = Uri.parse("content://555@fake")
 
-        val output = ActionIntentCreator.createShare(uri)
+        val output = actionIntentCreator.createShare(uri)
 
         assertThatIntent(output.getParcelableExtra(Intent.EXTRA_INTENT, Intent::class.java))
             .hasData(Uri.parse("content://fake"))
@@ -77,7 +87,7 @@
         val uri = Uri.parse("content://fake")
         val subject = "Example subject"
 
-        val output = ActionIntentCreator.createShareWithSubject(uri, subject)
+        val output = actionIntentCreator.createShareWithSubject(uri, subject)
 
         assertThatIntent(output).hasAction(Intent.ACTION_CHOOSER)
         assertThatIntent(output)
@@ -101,7 +111,7 @@
         val uri = Uri.parse("content://fake")
         val extraText = "Extra text"
 
-        val output = ActionIntentCreator.createShareWithText(uri, extraText)
+        val output = actionIntentCreator.createShareWithText(uri, extraText)
 
         assertThatIntent(output).hasAction(Intent.ACTION_CHOOSER)
         assertThatIntent(output)
@@ -121,13 +131,13 @@
     }
 
     @Test
-    fun testCreateEdit() {
+    @DisableFlags(Flags.FLAG_USE_PREFERRED_IMAGE_EDITOR)
+    fun testCreateEditLegacy() {
         val uri = Uri.parse("content://fake")
-        val context = mock<Context>()
 
         whenever(context.getString(eq(R.string.config_screenshotEditor))).thenReturn("")
 
-        val output = ActionIntentCreator.createEdit(uri, context)
+        val output = actionIntentCreator.createEdit(uri)
 
         assertThatIntent(output).hasAction(Intent.ACTION_EDIT)
         assertThatIntent(output).hasData(uri)
@@ -144,26 +154,126 @@
     }
 
     @Test
-    fun testCreateEdit_embeddedUserIdRemoved() {
+    @DisableFlags(Flags.FLAG_USE_PREFERRED_IMAGE_EDITOR)
+    fun testCreateEditLegacy_embeddedUserIdRemoved() {
         val uri = Uri.parse("content://555@fake")
-        val context = mock<Context>()
         whenever(context.getString(eq(R.string.config_screenshotEditor))).thenReturn("")
 
-        val output = ActionIntentCreator.createEdit(uri, context)
+        val output = actionIntentCreator.createEdit(uri)
 
         assertThatIntent(output).hasData(Uri.parse("content://fake"))
     }
 
     @Test
-    fun testCreateEdit_withEditor() {
+    @DisableFlags(Flags.FLAG_USE_PREFERRED_IMAGE_EDITOR)
+    fun testCreateEditLegacy_withEditor() {
         val uri = Uri.parse("content://fake")
-        val context = mock<Context>()
         val component = ComponentName("com.android.foo", "com.android.foo.Something")
 
         whenever(context.getString(eq(R.string.config_screenshotEditor)))
             .thenReturn(component.flattenToString())
 
-        val output = ActionIntentCreator.createEdit(uri, context)
+        val output = actionIntentCreator.createEdit(uri)
+
+        assertThatIntent(output).hasComponent(component)
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_USE_PREFERRED_IMAGE_EDITOR)
+    fun testCreateEdit() {
+        val uri = Uri.parse("content://fake")
+
+        whenever(context.getString(eq(R.string.config_screenshotEditor))).thenReturn("")
+
+        val output = actionIntentCreator.createEdit(uri)
+
+        assertThatIntent(output).hasAction(Intent.ACTION_EDIT)
+        assertThatIntent(output).hasData(uri)
+        assertThatIntent(output).hasType("image/png")
+        assertWithMessage("getComponent()").that(output.component).isNull()
+        assertThat(output.getStringExtra("edit_source")).isEqualTo("screenshot")
+        assertThatIntent(output)
+            .hasFlags(
+                Intent.FLAG_GRANT_READ_URI_PERMISSION or
+                    Intent.FLAG_GRANT_WRITE_URI_PERMISSION or
+                    Intent.FLAG_ACTIVITY_NEW_TASK or
+                    Intent.FLAG_ACTIVITY_CLEAR_TASK
+            )
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_USE_PREFERRED_IMAGE_EDITOR)
+    fun testCreateEdit_embeddedUserIdRemoved() {
+        val uri = Uri.parse("content://555@fake")
+        whenever(context.getString(eq(R.string.config_screenshotEditor))).thenReturn("")
+
+        val output = actionIntentCreator.createEdit(uri)
+
+        assertThatIntent(output).hasData(Uri.parse("content://fake"))
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_USE_PREFERRED_IMAGE_EDITOR)
+    fun testCreateEdit_withPreferredEditorEnabled() {
+        val uri = Uri.parse("content://fake")
+        val fallbackComponent = ComponentName("com.android.foo", "com.android.foo.Something")
+        val preferredComponent = ComponentName("com.android.bar", "com.android.bar.Something")
+
+        val packageInfo =
+            PackageInfo().apply {
+                activities =
+                    arrayOf(
+                        ActivityInfo().apply {
+                            packageName = preferredComponent.packageName
+                            name = preferredComponent.className
+                        }
+                    )
+            }
+        whenever(packageManager.getPackageInfo(eq(preferredComponent.packageName), anyInt()))
+            .thenReturn(packageInfo)
+        whenever(context.getString(eq(R.string.config_screenshotEditor)))
+            .thenReturn(fallbackComponent.flattenToString())
+        whenever(context.getString(eq(R.string.config_preferredScreenshotEditor)))
+            .thenReturn(preferredComponent.flattenToString())
+
+        val output = actionIntentCreator.createEdit(uri)
+
+        assertThatIntent(output).hasComponent(preferredComponent)
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_USE_PREFERRED_IMAGE_EDITOR)
+    fun testCreateEdit_withPreferredEditorDisabled() {
+        val uri = Uri.parse("content://fake")
+        val fallbackComponent = ComponentName("com.android.foo", "com.android.foo.Something")
+        val preferredComponent = ComponentName("com.android.bar", "com.android.bar.Something")
+
+        val packageInfo =
+            PackageInfo().apply {
+                activities = arrayOf() // no activities
+            }
+        whenever(packageManager.getPackageInfo(eq(preferredComponent.packageName), anyInt()))
+            .thenReturn(packageInfo)
+        whenever(context.getString(eq(R.string.config_screenshotEditor)))
+            .thenReturn(fallbackComponent.flattenToString())
+        whenever(context.getString(eq(R.string.config_preferredScreenshotEditor)))
+            .thenReturn(preferredComponent.flattenToString())
+
+        val output = actionIntentCreator.createEdit(uri)
+
+        assertThatIntent(output).hasComponent(fallbackComponent)
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_USE_PREFERRED_IMAGE_EDITOR)
+    fun testCreateEdit_withFallbackEditor() {
+        val uri = Uri.parse("content://fake")
+        val component = ComponentName("com.android.foo", "com.android.foo.Something")
+
+        whenever(context.getString(eq(R.string.config_screenshotEditor)))
+            .thenReturn(component.flattenToString())
+
+        val output = actionIntentCreator.createEdit(uri)
 
         assertThatIntent(output).hasComponent(component)
     }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewControllerTest.kt
index 856ece7..e42bf19 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewControllerTest.kt
@@ -55,7 +55,7 @@
 import com.android.systemui.qs.flags.QSComposeFragment
 import com.android.systemui.res.R
 import com.android.systemui.settings.brightness.data.repository.BrightnessMirrorShowingRepository
-import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractor
+import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractorPassThrough
 import com.android.systemui.shade.NotificationShadeWindowView.InteractionEventHandler
 import com.android.systemui.shade.data.repository.ShadeAnimationRepository
 import com.android.systemui.shade.data.repository.ShadeRepositoryImpl
@@ -168,7 +168,7 @@
 
     private val brightnessMirrorShowingRepository = BrightnessMirrorShowingRepository()
     private val brightnessMirrorShowingInteractor =
-        BrightnessMirrorShowingInteractor(brightnessMirrorShowingRepository)
+        BrightnessMirrorShowingInteractorPassThrough(brightnessMirrorShowingRepository)
 
     private lateinit var falsingCollector: FalsingCollectorFake
     private lateinit var fakeClock: FakeSystemClock
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilderTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilderTest.java
index e8b50d5..81213ca 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilderTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilderTest.java
@@ -130,7 +130,7 @@
     private CollectionReadyForBuildListener mReadyForBuildListener;
     private List<NotificationEntryBuilder> mPendingSet = new ArrayList<>();
     private List<NotificationEntry> mEntrySet = new ArrayList<>();
-    private List<ListEntry> mBuiltList = new ArrayList<>();
+    private List<PipelineEntry> mBuiltList = new ArrayList<>();
     private TestableStabilityManager mStabilityManager;
     private TestableNotifFilter mFinalizeFilter;
 
@@ -723,26 +723,26 @@
 
     @Test
     public void testNotifSectionsChildrenUpdated() {
-        ArrayList<ListEntry> pkg1Entries = new ArrayList<>();
-        ArrayList<ListEntry> pkg2Entries = new ArrayList<>();
-        ArrayList<ListEntry> pkg3Entries = new ArrayList<>();
+        ArrayList<PipelineEntry> pkg1Entries = new ArrayList<>();
+        ArrayList<PipelineEntry> pkg2Entries = new ArrayList<>();
+        ArrayList<PipelineEntry> pkg3Entries = new ArrayList<>();
         final NotifSectioner pkg1Sectioner = spy(new PackageSectioner(PACKAGE_1) {
             @Override
-            public void onEntriesUpdated(List<ListEntry> entries) {
+            public void onEntriesUpdated(List<PipelineEntry> entries) {
                 super.onEntriesUpdated(entries);
                 pkg1Entries.addAll(entries);
             }
         });
         final NotifSectioner pkg2Sectioner = spy(new PackageSectioner(PACKAGE_2) {
             @Override
-            public void onEntriesUpdated(List<ListEntry> entries) {
+            public void onEntriesUpdated(List<PipelineEntry> entries) {
                 super.onEntriesUpdated(entries);
                 pkg2Entries.addAll(entries);
             }
         });
         final NotifSectioner pkg3Sectioner = spy(new PackageSectioner(PACKAGE_3) {
             @Override
-            public void onEntriesUpdated(List<ListEntry> entries) {
+            public void onEntriesUpdated(List<PipelineEntry> entries) {
                 super.onEntriesUpdated(entries);
                 pkg3Entries.addAll(entries);
             }
@@ -2478,7 +2478,7 @@
                     mBuiltList.size());
 
             for (int i = 0; i < expectedEntries.length; i++) {
-                ListEntry outEntry = mBuiltList.get(i);
+                PipelineEntry outEntry = mBuiltList.get(i);
                 ExpectedEntry expectedEntry = expectedEntries[i];
 
                 if (expectedEntry instanceof ExpectedNotif) {
@@ -2653,7 +2653,7 @@
         }
 
         @Override
-        public int compare(@NonNull ListEntry o1, @NonNull ListEntry o2) {
+        public int compare(@NonNull PipelineEntry o1, @NonNull PipelineEntry o2) {
             boolean contains1 = mPreferredPackages.contains(
                     o1.getRepresentativeEntry().getSbn().getPackageName());
             boolean contains2 = mPreferredPackages.contains(
@@ -2691,37 +2691,37 @@
         }
 
         @Override
-        public boolean isInSection(ListEntry entry) {
+        public boolean isInSection(PipelineEntry entry) {
             return mPackages.contains(entry.getRepresentativeEntry().getSbn().getPackageName());
         }
     }
 
     private static class RecordingOnBeforeTransformGroupsListener
             implements OnBeforeTransformGroupsListener {
-        List<ListEntry> mEntriesReceived;
+        List<PipelineEntry> mEntriesReceived;
 
         @Override
-        public void onBeforeTransformGroups(List<ListEntry> list) {
+        public void onBeforeTransformGroups(List<PipelineEntry> list) {
             mEntriesReceived = new ArrayList<>(list);
         }
     }
 
     private static class RecordingOnBeforeSortListener
             implements OnBeforeSortListener {
-        List<ListEntry> mEntriesReceived;
+        List<PipelineEntry> mEntriesReceived;
 
         @Override
-        public void onBeforeSort(List<ListEntry> list) {
+        public void onBeforeSort(List<PipelineEntry> list) {
             mEntriesReceived = new ArrayList<>(list);
         }
     }
 
     private static class RecordingOnBeforeRenderListener
             implements OnBeforeRenderListListener {
-        List<ListEntry> mEntriesReceived;
+        List<PipelineEntry> mEntriesReceived;
 
         @Override
-        public void onBeforeRenderList(List<ListEntry> list) {
+        public void onBeforeRenderList(List<PipelineEntry> list) {
             mEntriesReceived = new ArrayList<>(list);
         }
     }
@@ -2800,7 +2800,7 @@
         }
 
         @Override
-        public boolean isEntryReorderingAllowed(@NonNull ListEntry entry) {
+        public boolean isEntryReorderingAllowed(@NonNull PipelineEntry entry) {
             return mAllowEntryReodering;
         }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ChannelEditorDialogControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ChannelEditorDialogControllerTest.kt
index c5b19ab..0b2fea5 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ChannelEditorDialogControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ChannelEditorDialogControllerTest.kt
@@ -31,13 +31,13 @@
 import android.view.View
 
 import com.android.systemui.SysuiTestCase
+import com.android.systemui.shade.domain.interactor.FakeShadeDialogContextInteractor
 
 import org.junit.Assert.assertEquals
 import org.junit.Before
 import org.junit.runner.RunWith
 import org.junit.Test
 import org.mockito.Answers
-import org.mockito.ArgumentMatchers.anyBoolean
 import org.mockito.ArgumentMatchers.eq
 import org.mockito.Mock
 import org.mockito.Mockito
@@ -66,11 +66,14 @@
     @Mock
     private lateinit var dialog: ChannelEditorDialog
 
+    private val shadeDialogContextInteractor = FakeShadeDialogContextInteractor(mContext)
+
     @Before
     fun setup() {
         MockitoAnnotations.initMocks(this)
         `when`(dialogBuilder.build()).thenReturn(dialog)
-        controller = ChannelEditorDialogController(mContext, mockNoMan, dialogBuilder)
+        controller =
+            ChannelEditorDialogController(shadeDialogContextInteractor, mockNoMan, dialogBuilder)
 
         channel1 = NotificationChannel(TEST_CHANNEL, TEST_CHANNEL_NAME, IMPORTANCE_DEFAULT)
         channel2 = NotificationChannel(TEST_CHANNEL2, TEST_CHANNEL_NAME2, IMPORTANCE_NONE)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java
index 24d8d1c..acfa94a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java
@@ -611,7 +611,8 @@
     public void testCanDismiss_immediately() throws Exception {
         ExpandableNotificationRow row =
                 mNotificationTestHelper.createRow(mNotificationTestHelper.createNotification());
-        when(mNotificationTestHelper.getDismissibilityProvider().isDismissable(row.getEntry()))
+        when(mNotificationTestHelper.getDismissibilityProvider().isDismissable(
+                row.getEntry().getKey()))
                 .thenReturn(true);
         row.performDismiss(false);
         verify(mNotificationTestHelper.getOnUserInteractionCallback())
@@ -623,7 +624,8 @@
     public void testCanDismiss() throws Exception {
         ExpandableNotificationRow row =
                 mNotificationTestHelper.createRow(mNotificationTestHelper.createNotification());
-        when(mNotificationTestHelper.getDismissibilityProvider().isDismissable(row.getEntry()))
+        when(mNotificationTestHelper.getDismissibilityProvider().isDismissable(
+                row.getEntry().getKey()))
                 .thenReturn(true);
         row.performDismiss(false);
         TestableLooper.get(this).processAllMessages();
@@ -635,7 +637,8 @@
     public void testCannotDismiss() throws Exception {
         ExpandableNotificationRow row =
                 mNotificationTestHelper.createRow(mNotificationTestHelper.createNotification());
-        when(mNotificationTestHelper.getDismissibilityProvider().isDismissable(row.getEntry()))
+        when(mNotificationTestHelper.getDismissibilityProvider().isDismissable(
+                row.getEntry().getKey()))
                 .thenReturn(false);
         row.performDismiss(false);
         verify(mNotificationTestHelper.getOnUserInteractionCallback(), never())
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerWithScenesTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerWithScenesTest.kt
index 99b99ee..0c0ef9d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerWithScenesTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerWithScenesTest.kt
@@ -549,7 +549,7 @@
             if (isVisible) {
                 Scenes.Lockscreen
             } else {
-                Scenes.Bouncer
+                Scenes.Communal
             }
         sceneInteractor.changeScene(key, "test")
         sceneInteractor.setTransitionState(
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java
index 7d3aa47..89b7bee 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java
@@ -144,7 +144,7 @@
 import com.android.systemui.scene.shared.flag.SceneContainerFlag;
 import com.android.systemui.settings.UserTracker;
 import com.android.systemui.settings.brightness.BrightnessSliderController;
-import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractor;
+import com.android.systemui.settings.brightness.data.repository.BrightnessMirrorShowingRepository;
 import com.android.systemui.shade.CameraLauncher;
 import com.android.systemui.shade.GlanceableHubContainerController;
 import com.android.systemui.shade.NotificationPanelView;
@@ -388,8 +388,8 @@
     private final ScreenLifecycle mScreenLifecycle = new ScreenLifecycle(mDumpManager);
     private MessageRouterImpl mMessageRouter = new MessageRouterImpl(mMainExecutor);
 
-    private final BrightnessMirrorShowingInteractor mBrightnessMirrorShowingInteractor =
-            mKosmos.getBrightnessMirrorShowingInteractor();
+    private final BrightnessMirrorShowingRepository mBrightnessMirrorShowingRepository =
+            mKosmos.getBrightnessMirrorShowingRepository();
 
     private final StatusBarModePerDisplayRepository mStatusBarModePerDisplayRepository =
             mKosmos.getStatusBarModePerDisplayRepository();
@@ -639,7 +639,7 @@
                 mAlternateBouncerInteractor,
                 mUserTracker,
                 mActivityStarter,
-                mBrightnessMirrorShowingInteractor,
+                mBrightnessMirrorShowingRepository,
                 mGlanceableHubContainerController,
                 mEmergencyGestureIntentFactory,
                 mViewCaptureAwareWindowManager,
@@ -1146,11 +1146,11 @@
         final ScrimStartable scrimStartable = mKosmos.getScrimStartable();
         scrimStartable.start();
 
-        mBrightnessMirrorShowingInteractor.setMirrorShowing(true);
+        mBrightnessMirrorShowingRepository.setMirrorShowing(true);
         mTestScope.getTestScheduler().runCurrent();
         verify(mScrimController, atLeastOnce()).transitionTo(ScrimState.BRIGHTNESS_MIRROR);
 
-        mBrightnessMirrorShowingInteractor.setMirrorShowing(false);
+        mBrightnessMirrorShowingRepository.setMirrorShowing(false);
         mTestScope.getTestScheduler().runCurrent();
         ArgumentCaptor<ScrimState> captor = ArgumentCaptor.forClass(ScrimState.class);
         // The default is to call the one with the callback argument
@@ -1162,12 +1162,12 @@
     @DisableSceneContainer
     @EnableFlags(QSComposeFragment.FLAG_NAME)
     public void brightnesShowingChanged_qsUiRefactorFlagEnabled_ScrimControllerNotified() {
-        mBrightnessMirrorShowingInteractor.setMirrorShowing(true);
+        mBrightnessMirrorShowingRepository.setMirrorShowing(true);
         mTestScope.getTestScheduler().runCurrent();
         verify(mScrimController, atLeastOnce()).legacyTransitionTo(ScrimState.BRIGHTNESS_MIRROR);
         clearInvocations(mScrimController);
 
-        mBrightnessMirrorShowingInteractor.setMirrorShowing(false);
+        mBrightnessMirrorShowingRepository.setMirrorShowing(false);
         mTestScope.getTestScheduler().runCurrent();
         ArgumentCaptor<ScrimState> captor = ArgumentCaptor.forClass(ScrimState.class);
         // The default is to call the one with the callback argument
@@ -1179,7 +1179,7 @@
     @DisableSceneContainer
     @DisableFlags(QSComposeFragment.FLAG_NAME)
     public void brightnesShowingChanged_flagsDisabled_ScrimControllerNotified() {
-        mBrightnessMirrorShowingInteractor.setMirrorShowing(true);
+        mBrightnessMirrorShowingRepository.setMirrorShowing(true);
         mTestScope.getTestScheduler().runCurrent();
         verify(mScrimController, never()).legacyTransitionTo(ScrimState.BRIGHTNESS_MIRROR);
         verify(mScrimController, never())
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
index 1088676..ffb861d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
@@ -113,7 +113,7 @@
 @SmallTest
 // TODO(b/381263619) there are more changes and tweaks required to match the new bouncer/shade specs
 // Disabling for now but it will be fixed before the flag is fully ramped up.
-@DisableFlags(Flags.FLAG_BOUNCER_UI_REVAMP)
+@DisableFlags({Flags.FLAG_BOUNCER_UI_REVAMP, Flags.FLAG_NOTIFICATION_SHADE_BLUR})
 public class ScrimControllerTest extends SysuiTestCase {
 
     @Rule public Expect mExpect = Expect.create();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java
index dde6e2e..0d99c0e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java
@@ -93,7 +93,7 @@
 import com.android.systemui.plugins.ActivityStarter;
 import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
 import com.android.systemui.scene.domain.interactor.SceneInteractor;
-import com.android.systemui.scene.shared.model.Scenes;
+import com.android.systemui.scene.shared.model.Overlays;
 import com.android.systemui.shade.NotificationShadeWindowView;
 import com.android.systemui.shade.ShadeController;
 import com.android.systemui.shade.ShadeExpansionChangeEvent;
@@ -927,7 +927,7 @@
     @EnableSceneContainer
     public void showPrimaryBouncer() {
         mStatusBarKeyguardViewManager.showPrimaryBouncer(false);
-        verify(mSceneInteractor).changeScene(eq(Scenes.Bouncer), anyString());
+        verify(mSceneInteractor).showOverlay(eq(Overlays.Bouncer), anyString());
     }
 
     @Test
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionParameterizedTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionParameterizedTest.kt
similarity index 100%
rename from packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionParameterizedTest.kt
rename to packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionParameterizedTest.kt
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt
similarity index 90%
rename from packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt
rename to packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt
index d17abd7..9e914ad 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar.pipeline.mobile.domain.interactor
 
 import android.os.ParcelUuid
+import android.platform.test.annotations.EnableFlags
 import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
 import android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING
 import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET
@@ -33,9 +34,12 @@
 import com.android.systemui.kosmos.runCurrent
 import com.android.systemui.kosmos.runTest
 import com.android.systemui.kosmos.testScope
+import com.android.systemui.statusbar.core.NewStatusBarIcons
+import com.android.systemui.statusbar.core.StatusBarRootModernization
 import com.android.systemui.statusbar.pipeline.mobile.data.model.SubscriptionModel
 import com.android.systemui.statusbar.pipeline.mobile.data.repository.FakeMobileConnectionRepository
 import com.android.systemui.statusbar.pipeline.mobile.data.repository.fake
+import com.android.systemui.statusbar.pipeline.mobile.data.repository.fakeMobileConnectionsRepository
 import com.android.systemui.statusbar.pipeline.mobile.data.repository.mobileConnectionsRepository
 import com.android.systemui.statusbar.pipeline.mobile.data.repository.mobileConnectionsRepositoryLogbufferName
 import com.android.systemui.statusbar.pipeline.shared.data.model.ConnectivitySlot
@@ -61,10 +65,10 @@
             mobileConnectionsRepository.fake.run {
                 setMobileConnectionRepositoryMap(
                     mapOf(
-                        SUB_1_ID to CONNECTION_1,
-                        SUB_2_ID to CONNECTION_2,
-                        SUB_3_ID to CONNECTION_3,
-                        SUB_4_ID to CONNECTION_4,
+                        SUB_1_ID to FakeMobileConnectionRepository(SUB_1_ID, mock()),
+                        SUB_2_ID to FakeMobileConnectionRepository(SUB_2_ID, mock()),
+                        SUB_3_ID to FakeMobileConnectionRepository(SUB_3_ID, mock()),
+                        SUB_4_ID to FakeMobileConnectionRepository(SUB_4_ID, mock()),
                     )
                 )
                 setActiveMobileDataSubscriptionId(SUB_1_ID)
@@ -492,7 +496,10 @@
     @Test
     fun activeDataConnection_turnedOn() =
         kosmos.runTest {
-            CONNECTION_1.setDataEnabled(true)
+            (fakeMobileConnectionsRepository.getRepoForSubId(SUB_1_ID)
+                    as FakeMobileConnectionRepository)
+                .dataEnabled
+                .value = true
 
             val latest by collectLastValue(underTest.activeDataConnectionHasDataEnabled)
 
@@ -502,10 +509,17 @@
     @Test
     fun activeDataConnection_turnedOff() =
         kosmos.runTest {
-            CONNECTION_1.setDataEnabled(true)
+            (fakeMobileConnectionsRepository.getRepoForSubId(SUB_1_ID)
+                    as FakeMobileConnectionRepository)
+                .dataEnabled
+                .value = true
+
             val latest by collectLastValue(underTest.activeDataConnectionHasDataEnabled)
 
-            CONNECTION_1.setDataEnabled(false)
+            (fakeMobileConnectionsRepository.getRepoForSubId(SUB_1_ID)
+                    as FakeMobileConnectionRepository)
+                .dataEnabled
+                .value = false
 
             assertThat(latest).isFalse()
         }
@@ -897,6 +911,69 @@
             assertThat(latest).isEqualTo(2)
         }
 
+    @Test
+    @EnableFlags(NewStatusBarIcons.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    fun isStackable_tracksNumberOfSubscriptions() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.isStackable)
+
+            connectionsRepository.setSubscriptions(listOf(SUB_1))
+            assertThat(latest).isFalse()
+
+            connectionsRepository.setSubscriptions(listOf(SUB_1, SUB_2))
+            assertThat(latest).isTrue()
+
+            connectionsRepository.setSubscriptions(listOf(SUB_1, SUB_2, SUB_3_OPP))
+            assertThat(latest).isFalse()
+        }
+
+    @Test
+    @EnableFlags(NewStatusBarIcons.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    fun isStackable_checksForTerrestrialConnections() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.isStackable)
+
+            connectionsRepository.setSubscriptions(listOf(SUB_1, SUB_2))
+            setNumberOfLevelsForSubId(SUB_1_ID, 5)
+            setNumberOfLevelsForSubId(SUB_2_ID, 5)
+            assertThat(latest).isTrue()
+
+            (fakeMobileConnectionsRepository.getRepoForSubId(SUB_1_ID)
+                    as FakeMobileConnectionRepository)
+                .isNonTerrestrial
+                .value = true
+
+            assertThat(latest).isFalse()
+        }
+
+    @Test
+    @EnableFlags(NewStatusBarIcons.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    fun isStackable_checksForNumberOfBars() =
+        kosmos.runTest {
+            val latest by collectLastValue(underTest.isStackable)
+
+            // Number of levels is the same for both
+            connectionsRepository.setSubscriptions(listOf(SUB_1, SUB_2))
+            setNumberOfLevelsForSubId(SUB_1_ID, 5)
+            setNumberOfLevelsForSubId(SUB_2_ID, 5)
+
+            assertThat(latest).isTrue()
+
+            // Change the number of levels to be different than SUB_2
+            setNumberOfLevelsForSubId(SUB_1_ID, 6)
+
+            assertThat(latest).isFalse()
+        }
+
+    private fun setNumberOfLevelsForSubId(subId: Int, numberOfLevels: Int) {
+        with(kosmos) {
+            (fakeMobileConnectionsRepository.getRepoForSubId(subId)
+                    as FakeMobileConnectionRepository)
+                .numberOfLevels
+                .value = numberOfLevels
+        }
+    }
+
     /**
      * Convenience method for creating a pair of subscriptions to test the filteredSubscriptions
      * flow.
@@ -937,7 +1014,6 @@
                 carrierName = "Carrier $SUB_1_ID",
                 profileClass = PROFILE_CLASS_UNSET,
             )
-        private val CONNECTION_1 = FakeMobileConnectionRepository(SUB_1_ID, mock())
 
         private const val SUB_2_ID = 2
         private val SUB_2 =
@@ -946,7 +1022,6 @@
                 carrierName = "Carrier $SUB_2_ID",
                 profileClass = PROFILE_CLASS_UNSET,
             )
-        private val CONNECTION_2 = FakeMobileConnectionRepository(SUB_2_ID, mock())
 
         private const val SUB_3_ID = 3
         private val SUB_3_OPP =
@@ -957,7 +1032,6 @@
                 carrierName = "Carrier $SUB_3_ID",
                 profileClass = PROFILE_CLASS_UNSET,
             )
-        private val CONNECTION_3 = FakeMobileConnectionRepository(SUB_3_ID, mock())
 
         private const val SUB_4_ID = 4
         private val SUB_4_OPP =
@@ -968,6 +1042,5 @@
                 carrierName = "Carrier $SUB_4_ID",
                 profileClass = PROFILE_CLASS_UNSET,
             )
-        private val CONNECTION_4 = FakeMobileConnectionRepository(SUB_4_ID, mock())
     }
 }
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconViewModelTest.kt
similarity index 96%
rename from packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconViewModelTest.kt
rename to packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconViewModelTest.kt
index 8ea888e..804e7d63 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconViewModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconViewModelTest.kt
@@ -35,6 +35,8 @@
 import com.android.systemui.log.table.logcatTableLogBuffer
 import com.android.systemui.res.R
 import com.android.systemui.statusbar.connectivity.MobileIconCarrierIdOverridesFake
+import com.android.systemui.statusbar.core.NewStatusBarIcons
+import com.android.systemui.statusbar.core.StatusBarRootModernization
 import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository
 import com.android.systemui.statusbar.pipeline.airplane.domain.interactor.AirplaneModeInteractor
 import com.android.systemui.statusbar.pipeline.mobile.data.model.DataConnectionState
@@ -252,6 +254,21 @@
         }
 
     @Test
+    fun isVisible_satellite_respectsAirplaneMode() =
+        testScope.runTest {
+            val latest by collectLastValue(underTest.isVisible)
+
+            repository.isNonTerrestrial.value = true
+            airplaneModeInteractor.setIsAirplaneMode(false)
+
+            assertThat(latest).isTrue()
+
+            airplaneModeInteractor.setIsAirplaneMode(true)
+
+            assertThat(latest).isFalse()
+        }
+
+    @Test
     fun contentDescription_notInService_usesNoPhone() =
         testScope.runTest {
             val latest by collectLastValue(underTest.contentDescription)
@@ -843,7 +860,23 @@
         }
 
     @Test
-    fun netTypeBackground_flagOn_notNullWhenPrioritizedCapabilities() =
+    @EnableFlags(NewStatusBarIcons.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    fun netTypeBackground_sliceUiEnabled_notNullWhenPrioritizedCapabilities_newIcons() =
+        testScope.runTest {
+            flags.set(NEW_NETWORK_SLICE_UI, true)
+            createAndSetViewModel()
+
+            val latest by collectLastValue(underTest.networkTypeBackground)
+
+            repository.hasPrioritizedNetworkCapabilities.value = true
+
+            assertThat(latest)
+                .isEqualTo(Icon.Resource(R.drawable.mobile_network_type_background_updated, null))
+        }
+
+    @Test
+    @DisableFlags(NewStatusBarIcons.FLAG_NAME, StatusBarRootModernization.FLAG_NAME)
+    fun netTypeBackground_sliceUiDisabled_notNullWhenPrioritizedCapabilities_oldIcons() =
         testScope.runTest {
             flags.set(NEW_NETWORK_SLICE_UI, true)
             createAndSetViewModel()
diff --git a/packages/SystemUI/tests/src/com/android/systemui/stylus/StylusManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/stylus/StylusManagerTest.kt
index 516541d..242865b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/stylus/StylusManagerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/stylus/StylusManagerTest.kt
@@ -28,6 +28,7 @@
 import com.android.dx.mockito.inline.extended.ExtendedMockito.never
 import com.android.dx.mockito.inline.extended.ExtendedMockito.times
 import com.android.dx.mockito.inline.extended.ExtendedMockito.verify
+import com.android.dx.mockito.inline.extended.MockedVoidMethod
 import com.android.dx.mockito.inline.extended.StaticMockitoSession
 import com.android.internal.logging.InstanceId
 import com.android.internal.logging.UiEventLogger
@@ -245,7 +246,7 @@
     @Test
     fun onInputDeviceAdded_btStylus_firstUsed_setsFlag() {
         stylusManager.onInputDeviceAdded(BT_STYLUS_DEVICE_ID)
-        verify({ InputSettings.setStylusEverUsed(mContext, true) }, times(1))
+        verify(MockedVoidMethod { InputSettings.setStylusEverUsed(mContext, true) }, times(1))
     }
 
     @Test
@@ -511,7 +512,7 @@
 
         stylusManager.onBatteryStateChanged(STYLUS_DEVICE_ID, 1, batteryState)
 
-        verify({ InputSettings.setStylusEverUsed(mContext, true) }, times(1))
+        verify(MockedVoidMethod { InputSettings.setStylusEverUsed(mContext, true) }, times(1))
     }
 
     @Test
@@ -612,7 +613,7 @@
 
         stylusManager.onBatteryStateChanged(STYLUS_DEVICE_ID, 1, batteryState)
 
-        verify({ InputSettings.setStylusEverUsed(mContext, true) }, never())
+        verify(MockedVoidMethod { InputSettings.setStylusEverUsed(mContext, true) }, never())
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/unfold/UnfoldLatencyTrackerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/unfold/UnfoldLatencyTrackerTest.kt
index a1122c3..a553b17 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/unfold/UnfoldLatencyTrackerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/unfold/UnfoldLatencyTrackerTest.kt
@@ -18,10 +18,12 @@
 
 import android.hardware.devicestate.DeviceStateManager
 import android.hardware.devicestate.DeviceStateManager.FoldStateListener
+import android.platform.test.annotations.DisableFlags
 import android.provider.Settings
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import com.android.internal.util.LatencyTracker
+import com.android.systemui.Flags
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.foldedDeviceStateList
 import com.android.systemui.halfFoldedDeviceState
@@ -46,6 +48,7 @@
 
 @RunWith(AndroidJUnit4::class)
 @SmallTest
+@DisableFlags(Flags.FLAG_UNFOLD_LATENCY_TRACKING_FIX)
 class UnfoldLatencyTrackerTest : SysuiTestCase() {
 
     @Mock lateinit var latencyTracker: LatencyTracker
diff --git a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java
index a38d71b..68d84ec 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java
@@ -25,6 +25,7 @@
 import static android.service.notification.NotificationListenerService.REASON_APP_CANCEL;
 import static android.service.notification.NotificationListenerService.REASON_GROUP_SUMMARY_CANCELED;
 import static android.service.notification.NotificationListenerService.REASON_PACKAGE_BANNED;
+import static android.service.notification.NotificationListenerService.REASON_PACKAGE_CHANGED;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
 import static com.android.server.notification.Flags.FLAG_SCREENSHARE_NOTIFICATION_HIDING;
@@ -1126,6 +1127,18 @@
     }
 
     @Test
+    public void testNotifsPackageChanged_entryListenerRemove() {
+        mEntryListener.onEntryAdded(mRow);
+        mBubbleController.updateBubble(mBubbleEntry);
+
+        assertTrue(mBubbleController.hasBubbles());
+
+        // Removes the notification
+        mEntryListener.onEntryRemoved(mRow, REASON_PACKAGE_CHANGED);
+        assertFalse(mBubbleController.hasBubbles());
+    }
+
+    @Test
     public void removeBubble_intercepted() {
         mEntryListener.onEntryAdded(mRow);
         mBubbleController.updateBubble(mBubbleEntry);
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/bouncer/ui/viewmodel/BouncerViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/bouncer/ui/viewmodel/BouncerViewModelKosmos.kt
index 3bfd958..4d1c271 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/bouncer/ui/viewmodel/BouncerViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/bouncer/ui/viewmodel/BouncerViewModelKosmos.kt
@@ -34,9 +34,7 @@
 import com.android.systemui.user.ui.viewmodel.userSwitcherViewModel
 import kotlinx.coroutines.flow.StateFlow
 
-val Kosmos.bouncerUserActionsViewModel by Fixture {
-    BouncerUserActionsViewModel(bouncerInteractor = bouncerInteractor)
-}
+val Kosmos.bouncerUserActionsViewModel by Fixture { BouncerUserActionsViewModel() }
 
 val Kosmos.bouncerUserActionsViewModelFactory by Fixture {
     object : BouncerUserActionsViewModel.Factory {
@@ -46,8 +44,8 @@
     }
 }
 
-val Kosmos.bouncerSceneContentViewModel by Fixture {
-    BouncerSceneContentViewModel(
+val Kosmos.bouncerOverlayContentViewModel by Fixture {
+    BouncerOverlayContentViewModel(
         applicationContext = applicationContext,
         bouncerInteractor = bouncerInteractor,
         authenticationInteractor = authenticationInteractor,
@@ -65,10 +63,10 @@
     )
 }
 
-val Kosmos.bouncerSceneContentViewModelFactory by Fixture {
-    object : BouncerSceneContentViewModel.Factory {
-        override fun create(): BouncerSceneContentViewModel {
-            return bouncerSceneContentViewModel
+val Kosmos.bouncerOverlayContentViewModelFactory by Fixture {
+    object : BouncerOverlayContentViewModel.Factory {
+        override fun create(): BouncerOverlayContentViewModel {
+            return bouncerOverlayContentViewModel
         }
     }
 }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/ui/viewmodel/CommunalTransitionViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/ui/viewmodel/CommunalTransitionViewModelKosmos.kt
index 7b0c09c..9109b36 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/ui/viewmodel/CommunalTransitionViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/ui/viewmodel/CommunalTransitionViewModelKosmos.kt
@@ -18,6 +18,7 @@
 
 import com.android.systemui.communal.domain.interactor.communalInteractor
 import com.android.systemui.communal.domain.interactor.communalSceneInteractor
+import com.android.systemui.communal.domain.interactor.communalSettingsInteractor
 import com.android.systemui.communal.util.communalColors
 import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor
 import com.android.systemui.keyguard.ui.viewmodel.dreamingToGlanceableHubTransitionViewModel
@@ -41,5 +42,6 @@
             communalSceneInteractor = communalSceneInteractor,
             keyguardTransitionInteractor = keyguardTransitionInteractor,
             communalColors = communalColors,
+            communalSettingsInteractor = communalSettingsInteractor,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt
index 60b371a..02cf1f5 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt
@@ -62,7 +62,7 @@
 import com.android.systemui.scene.sceneContainerConfig
 import com.android.systemui.scene.shared.model.sceneDataSource
 import com.android.systemui.scene.ui.view.mockWindowRootViewProvider
-import com.android.systemui.settings.brightness.domain.interactor.brightnessMirrorShowingInteractor
+import com.android.systemui.settings.brightness.data.repository.brightnessMirrorShowingRepository
 import com.android.systemui.shade.data.repository.shadeRepository
 import com.android.systemui.shade.domain.interactor.shadeInteractor
 import com.android.systemui.shade.domain.interactor.shadeLayoutParams
@@ -162,7 +162,7 @@
     val sharedNotificationContainerInteractor by lazy {
         kosmos.sharedNotificationContainerInteractor
     }
-    val brightnessMirrorShowingInteractor by lazy { kosmos.brightnessMirrorShowingInteractor }
+    val brightnessMirrorShowingRepository by lazy { kosmos.brightnessMirrorShowingRepository }
     val qsLongPressEffect by lazy { kosmos.qsLongPressEffect }
     val shadeController by lazy { kosmos.shadeController }
     val shadeRepository by lazy { kosmos.shadeRepository }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/data/repository/MediaFilterRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/data/repository/MediaFilterRepositoryKosmos.kt
index 7964c11..e11534e8 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/data/repository/MediaFilterRepositoryKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/data/repository/MediaFilterRepositoryKosmos.kt
@@ -16,16 +16,8 @@
 
 package com.android.systemui.media.controls.data.repository
 
-import android.content.applicationContext
 import com.android.systemui.kosmos.Kosmos
-import com.android.systemui.media.controls.util.mediaSmartspaceLogger
 import com.android.systemui.util.time.systemClock
 
 val Kosmos.mediaFilterRepository by
-    Kosmos.Fixture {
-        MediaFilterRepository(
-            applicationContext = applicationContext,
-            systemClock = systemClock,
-            smartspaceLogger = mediaSmartspaceLogger,
-        )
-    }
+    Kosmos.Fixture { MediaFilterRepository(systemClock = systemClock) }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterKosmos.kt
index 61d5f1e..dae5119 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/MediaDataFilterKosmos.kt
@@ -22,7 +22,6 @@
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.media.controls.data.repository.mediaFilterRepository
 import com.android.systemui.media.controls.shared.mediaLogger
-import com.android.systemui.media.controls.util.mediaFlags
 import com.android.systemui.media.controls.util.mediaUiEventLogger
 import com.android.systemui.settings.userTracker
 import com.android.systemui.statusbar.notificationLockscreenUserManager
@@ -38,13 +37,12 @@
                 BroadcastSender(
                     applicationContext,
                     WakeLockFake.Builder(applicationContext),
-                    fakeExecutor
+                    fakeExecutor,
                 ),
             lockscreenUserManager = notificationLockscreenUserManager,
             executor = fakeExecutor,
             systemClock = fakeSystemClock,
             logger = mediaUiEventLogger,
-            mediaFlags = mediaFlags,
             mediaFilterRepository = mediaFilterRepository,
             mediaLogger = mediaLogger,
         )
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaCarouselInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaCarouselInteractorKosmos.kt
index ca1b3f5..e6b732a 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaCarouselInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/domain/pipeline/interactor/MediaCarouselInteractorKosmos.kt
@@ -26,7 +26,6 @@
 import com.android.systemui.media.controls.domain.pipeline.mediaResumeListener
 import com.android.systemui.media.controls.domain.pipeline.mediaSessionBasedFilter
 import com.android.systemui.media.controls.domain.pipeline.mediaTimeoutListener
-import com.android.systemui.media.controls.util.mediaFlags
 
 val Kosmos.mediaCarouselInteractor by
     Kosmos.Fixture {
@@ -40,6 +39,5 @@
             mediaDataCombineLatest = mediaDataCombineLatest,
             mediaDataFilter = mediaDataFilter,
             mediaFilterRepository = mediaFilterRepository,
-            mediaFlags = mediaFlags,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModelKosmos.kt
index 054ac2e..5e6434d 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/ui/viewmodel/MediaCarouselViewModelKosmos.kt
@@ -24,7 +24,6 @@
 import com.android.systemui.media.controls.domain.pipeline.interactor.factory.mediaControlInteractorFactory
 import com.android.systemui.media.controls.domain.pipeline.interactor.mediaCarouselInteractor
 import com.android.systemui.media.controls.shared.mediaLogger
-import com.android.systemui.media.controls.util.mediaFlags
 import com.android.systemui.media.controls.util.mediaUiEventLogger
 import com.android.systemui.statusbar.notification.collection.provider.visualStabilityProvider
 
@@ -40,7 +39,6 @@
             controlInteractorFactory = mediaControlInteractorFactory,
             recommendationsViewModel = mediaRecommendationsViewModel,
             logger = mediaUiEventLogger,
-            mediaFlags = mediaFlags,
             mediaLogger = mediaLogger,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/tiles/base/interactor/FakeQSTileUserActionInteractor.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/tiles/base/interactor/FakeQSTileUserActionInteractor.kt
index bc1c60c..c058490 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/tiles/base/interactor/FakeQSTileUserActionInteractor.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/tiles/base/interactor/FakeQSTileUserActionInteractor.kt
@@ -33,7 +33,4 @@
     override suspend fun handleInput(input: QSTileInput<T>) {
         mutex.withLock { mutableInputs.add(input) }
     }
-
-    override var detailsViewModel: TileDetailsViewModel? =
-        FakeTileDetailsViewModel("FakeQSTileUserActionInteractor")
 }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt
index f0350ac..3bd8729 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt
@@ -32,7 +32,6 @@
         Scenes.QuickSettings,
         Scenes.Shade,
         Scenes.Lockscreen,
-        Scenes.Bouncer,
         Scenes.Gone,
         Scenes.Communal,
         Scenes.Dream,
@@ -42,7 +41,7 @@
 val Kosmos.initialSceneKey by Fixture { Scenes.Lockscreen }
 
 var Kosmos.overlayKeys by Fixture {
-    listOf(Overlays.NotificationsShade, Overlays.QuickSettingsShade)
+    listOf(Overlays.NotificationsShade, Overlays.QuickSettingsShade, Overlays.Bouncer)
 }
 
 val Kosmos.fakeOverlaysByKeys by Fixture { overlayKeys.associateWith { FakeOverlay(it) } }
@@ -62,7 +61,6 @@
             Scenes.Dream to 2,
             Scenes.Shade to 3,
             Scenes.QuickSettings to 4,
-            Scenes.Bouncer to 5,
         )
 
     SceneContainerConfig(
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/data/repository/SceneContainerRepositoryUtil.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/data/repository/SceneContainerRepositoryUtil.kt
index c95b2dc..025608a 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/data/repository/SceneContainerRepositoryUtil.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/data/repository/SceneContainerRepositoryUtil.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.scene.data.repository
 
 import com.android.compose.animation.scene.ObservableTransitionState
+import com.android.compose.animation.scene.OverlayKey
 import com.android.compose.animation.scene.SceneKey
 import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
 import com.android.systemui.keyguard.shared.model.KeyguardState
@@ -38,7 +39,7 @@
     stateTransition: TransitionStep? = null,
     fillInStateSteps: Boolean = true,
     scope: TestScope = testScope,
-    repository: SceneContainerRepository = sceneContainerRepository
+    repository: SceneContainerRepository = sceneContainerRepository,
 ) {
     var state: TransitionStep? = stateTransition
     if (SceneContainerFlag.isEnabled) {
@@ -61,7 +62,7 @@
 fun Kosmos.setSceneTransition(
     transition: ObservableTransitionState,
     scope: TestScope = testScope,
-    repository: SceneContainerRepository = sceneContainerRepository
+    repository: SceneContainerRepository = sceneContainerRepository,
 ) {
     repository.setTransitionState(mutableTransitionState)
     mutableTransitionState.value = transition
@@ -76,7 +77,7 @@
     isInitiatedByUserInput: Boolean = false,
     isUserInputOngoing: Flow<Boolean> = flowOf(false),
     previewProgress: Flow<Float> = flowOf(0f),
-    isInPreviewStage: Flow<Boolean> = flowOf(false)
+    isInPreviewStage: Flow<Boolean> = flowOf(false),
 ): ObservableTransitionState.Transition {
     return ObservableTransitionState.Transition(
         fromScene = from,
@@ -86,17 +87,64 @@
         isInitiatedByUserInput = isInitiatedByUserInput,
         isUserInputOngoing = isUserInputOngoing,
         previewProgress = previewProgress,
-        isInPreviewStage = isInPreviewStage
+        isInPreviewStage = isInPreviewStage,
     )
 }
 
-fun Idle(currentScene: SceneKey): ObservableTransitionState.Idle {
-    return ObservableTransitionState.Idle(currentScene)
+fun ShowOverlay(
+    overlay: OverlayKey,
+    fromScene: SceneKey,
+    currentOverlays: Flow<Set<OverlayKey>> = flowOf(setOf(overlay)),
+    progress: Flow<Float> = flowOf(0f),
+    isInitiatedByUserInput: Boolean = false,
+    isUserInputOngoing: Flow<Boolean> = flowOf(false),
+    previewProgress: Flow<Float> = flowOf(0f),
+    isInPreviewStage: Flow<Boolean> = flowOf(false),
+): ObservableTransitionState.Transition {
+    return ObservableTransitionState.Transition.showOverlay(
+        overlay = overlay,
+        fromScene = fromScene,
+        currentOverlays = currentOverlays,
+        progress = progress,
+        isInitiatedByUserInput = isInitiatedByUserInput,
+        isUserInputOngoing = isUserInputOngoing,
+        previewProgress = previewProgress,
+        isInPreviewStage = isInPreviewStage,
+    )
+}
+
+fun HideOverlay(
+    overlay: OverlayKey,
+    toScene: SceneKey,
+    currentOverlays: Flow<Set<OverlayKey>> = flowOf(setOf(overlay)),
+    progress: Flow<Float> = flowOf(0f),
+    isInitiatedByUserInput: Boolean = false,
+    isUserInputOngoing: Flow<Boolean> = flowOf(false),
+    previewProgress: Flow<Float> = flowOf(0f),
+    isInPreviewStage: Flow<Boolean> = flowOf(false),
+): ObservableTransitionState.Transition {
+    return ObservableTransitionState.Transition.hideOverlay(
+        overlay = overlay,
+        toScene = toScene,
+        currentOverlays = currentOverlays,
+        progress = progress,
+        isInitiatedByUserInput = isInitiatedByUserInput,
+        isUserInputOngoing = isUserInputOngoing,
+        previewProgress = previewProgress,
+        isInPreviewStage = isInPreviewStage,
+    )
+}
+
+fun Idle(
+    currentScene: SceneKey,
+    currentOverlays: Set<OverlayKey> = emptySet(),
+): ObservableTransitionState.Idle {
+    return ObservableTransitionState.Idle(currentScene, currentOverlays)
 }
 
 private fun getStateWithUndefined(
     sceneTransition: ObservableTransitionState,
-    state: TransitionStep
+    state: TransitionStep,
 ): TransitionStep {
     return when (sceneTransition) {
         is ObservableTransitionState.Idle -> {
@@ -109,7 +157,7 @@
                         state.to
                     },
                 value = state.value,
-                transitionState = state.transitionState
+                transitionState = state.transitionState,
             )
         }
         is ObservableTransitionState.Transition -> {
@@ -127,7 +175,7 @@
                         state.from
                     },
                 value = state.value,
-                transitionState = state.transitionState
+                transitionState = state.transitionState,
             )
         }
         else -> state
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/shared/model/FakeSceneDataSource.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/shared/model/FakeSceneDataSource.kt
index f9917ac..66a190c 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/shared/model/FakeSceneDataSource.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/shared/model/FakeSceneDataSource.kt
@@ -115,8 +115,14 @@
      * If [force] is `true`, there will be no check that [isPaused] is true.
      *
      * If [expectedScene] is provided, will assert that it's indeed the latest called.
+     *
+     * If [expectedOverlays] is provided, will assert they are indeed present.
      */
-    fun unpause(force: Boolean = false, expectedScene: SceneKey? = null) {
+    fun unpause(
+        force: Boolean = false,
+        expectedScene: SceneKey? = null,
+        expectedOverlays: Set<OverlayKey>? = null,
+    ) {
         check(force || _isPaused) { "Can't unpause what's already not paused!" }
 
         _isPaused = false
@@ -128,9 +134,12 @@
         check(expectedScene == null || currentScene.value == expectedScene) {
             """
                 Unexpected scene while unpausing.
-                Expected $expectedScene but was $currentScene.
+                Expected $expectedScene but was ${currentScene.value}.
             """
                 .trimIndent()
         }
+        check(expectedOverlays == null || expectedOverlays == currentOverlays.value) {
+            "Expected $expectedOverlays, but instead found overlays ${currentOverlays.value}."
+        }
     }
 }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/settings/brightness/domain/interactor/BrightnessMirrorShowingInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/settings/brightness/domain/interactor/BrightnessMirrorShowingInteractorKosmos.kt
index 8f6b829..d4bed16 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/settings/brightness/domain/interactor/BrightnessMirrorShowingInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/settings/brightness/domain/interactor/BrightnessMirrorShowingInteractorKosmos.kt
@@ -20,4 +20,6 @@
 import com.android.systemui.settings.brightness.data.repository.brightnessMirrorShowingRepository
 
 val Kosmos.brightnessMirrorShowingInteractor by
-    Kosmos.Fixture { BrightnessMirrorShowingInteractor(brightnessMirrorShowingRepository) }
+    Kosmos.Fixture {
+        BrightnessMirrorShowingInteractorPassThrough(brightnessMirrorShowingRepository)
+    }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java
index 562ac0c..804ec9f 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java
@@ -56,7 +56,7 @@
     private StatusBarNotification mSbn = null;
 
     /* ListEntry properties */
-    private GroupEntry mParent;
+    private PipelineEntry mParent;
     private NotifSection mNotifSection;
 
     /* If set, use this creation time instead of mClock.uptimeMillis */
@@ -91,7 +91,7 @@
     }
 
     /** Update an the parent on an existing entry */
-    public static void setNewParent(NotificationEntry entry, GroupEntry parent) {
+    public static void setNewParent(NotificationEntry entry, PipelineEntry parent) {
         entry.setParent(parent);
     }
 
@@ -135,7 +135,7 @@
     /**
      * Sets the parent.
      */
-    public NotificationEntryBuilder setParent(@Nullable GroupEntry parent) {
+    public NotificationEntryBuilder setParent(@Nullable PipelineEntry parent) {
         mParent = parent;
         return this;
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt
index 09c632c..771e1a5 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt
@@ -91,16 +91,17 @@
 import com.android.systemui.util.Assert.runWithCurrentThreadAsMainThread
 import com.android.systemui.util.DeviceConfigProxyFake
 import com.android.systemui.util.concurrency.FakeExecutor
-import com.android.systemui.util.mockito.whenever
 import com.android.systemui.util.time.FakeSystemClock
 import java.util.concurrent.CountDownLatch
 import java.util.concurrent.Executor
 import java.util.concurrent.TimeUnit
+import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.test.TestScope
 import org.junit.Assert.assertTrue
 import org.mockito.ArgumentCaptor
 import org.mockito.ArgumentMatchers
 import org.mockito.Mockito
+import org.mockito.kotlin.whenever
 
 class ExpandableNotificationRowBuilder(
     private val context: Context,
@@ -149,7 +150,10 @@
 
         mGroupExpansionManager = GroupExpansionManagerImpl(mDumpManager, mGroupMembershipManager)
         mUserManager = Mockito.mock(UserManager::class.java, STUB_ONLY)
-        mHeadsUpManager = Mockito.mock(HeadsUpManager::class.java, STUB_ONLY)
+        mHeadsUpManager =
+            Mockito.mock(HeadsUpManager::class.java, STUB_ONLY).apply {
+                whenever(isTrackingHeadsUp()).thenReturn(MutableStateFlow(false))
+            }
         mIconManager =
             IconManager(
                 Mockito.mock(CommonNotifCollection::class.java, STUB_ONLY),
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/data/repository/HeadsUpNotificationRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/data/repository/HeadsUpNotificationRepositoryKosmos.kt
index 1fa6236..3406d81 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/data/repository/HeadsUpNotificationRepositoryKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/data/repository/HeadsUpNotificationRepositoryKosmos.kt
@@ -35,6 +35,10 @@
         orderedHeadsUpRows.map { it.firstOrNull() }.distinctUntilChanged()
     override val activeHeadsUpRows: Flow<Set<HeadsUpRowRepository>> =
         orderedHeadsUpRows.map { it.toSet() }.distinctUntilChanged()
+    override val isTrackingHeadsUp: MutableStateFlow<Boolean> = MutableStateFlow(false)
+
+    override fun isHeadsUpEntry(key: String): Boolean =
+        orderedHeadsUpRows.value.any { it.key == key }
 
     override fun setHeadsUpAnimatingAway(animatingAway: Boolean) {
         isHeadsUpAnimatingAway.value = animatingAway
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt
index 51bb94f..17ef208 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt
@@ -30,7 +30,6 @@
 import com.android.systemui.keyguard.ui.viewmodel.aodToLockscreenTransitionViewModel
 import com.android.systemui.keyguard.ui.viewmodel.aodToOccludedTransitionViewModel
 import com.android.systemui.keyguard.ui.viewmodel.aodToPrimaryBouncerTransitionViewModel
-import com.android.systemui.keyguard.ui.viewmodel.dozingToDreamingTransitionViewModel
 import com.android.systemui.keyguard.ui.viewmodel.dozingToGlanceableHubTransitionViewModel
 import com.android.systemui.keyguard.ui.viewmodel.dozingToLockscreenTransitionViewModel
 import com.android.systemui.keyguard.ui.viewmodel.dozingToOccludedTransitionViewModel
@@ -84,7 +83,6 @@
         aodToLockscreenTransitionViewModel = aodToLockscreenTransitionViewModel,
         aodToOccludedTransitionViewModel = aodToOccludedTransitionViewModel,
         aodToPrimaryBouncerTransitionViewModel = aodToPrimaryBouncerTransitionViewModel,
-        dozingToDreamingTransitionViewModel = dozingToDreamingTransitionViewModel,
         dozingToGlanceableHubTransitionViewModel = dozingToGlanceableHubTransitionViewModel,
         dozingToLockscreenTransitionViewModel = dozingToLockscreenTransitionViewModel,
         dozingToOccludedTransitionViewModel = dozingToOccludedTransitionViewModel,
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallTestHelper.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallTestHelper.kt
index d09d010..8ff7c7d 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallTestHelper.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallTestHelper.kt
@@ -76,6 +76,7 @@
         promotedContent: PromotedNotificationContentModel? = null,
         contentIntent: PendingIntent? = null,
         uid: Int = DEFAULT_UID,
+        appName: String = "Fake name",
     ) {
         if (StatusBarChipsModernization.isEnabled) {
             activeNotificationListRepository.addNotif(
@@ -87,6 +88,7 @@
                     contentIntent = contentIntent,
                     promotedContent = promotedContent,
                     uid = uid,
+                    appName = appName,
                 )
             )
         } else {
@@ -96,6 +98,7 @@
                     notificationIcon = statusBarChipIconView,
                     intent = contentIntent,
                     notificationKey = key,
+                    appName = appName,
                     promotedContent = promotedContent,
                 )
             )
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/FakeMobileIconsInteractor.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/FakeMobileIconsInteractor.kt
index 9b6f205..8fa82ca 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/FakeMobileIconsInteractor.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/FakeMobileIconsInteractor.kt
@@ -58,6 +58,8 @@
 
     override val defaultDataSubId: MutableStateFlow<Int?> = MutableStateFlow(DEFAULT_DATA_SUB_ID)
 
+    override val activeMobileDataSubscriptionId: MutableStateFlow<Int?> = MutableStateFlow(null)
+
     private val _activeDataConnectionHasDataEnabled = MutableStateFlow(false)
     override val activeDataConnectionHasDataEnabled = _activeDataConnectionHasDataEnabled
 
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/util/MediaSmartspaceLoggerKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/StackedMobileIconViewModelKosmos.kt
similarity index 65%
rename from packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/util/MediaSmartspaceLoggerKosmos.kt
rename to packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/StackedMobileIconViewModelKosmos.kt
index c63dec5..880ba5e 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/util/MediaSmartspaceLoggerKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/StackedMobileIconViewModelKosmos.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2025 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.
@@ -14,10 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.systemui.media.controls.util
+package com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel
 
 import com.android.systemui.kosmos.Kosmos
-import org.mockito.Mockito.mock
 
-var Kosmos.mediaSmartspaceLogger by Kosmos.Fixture { MediaSmartspaceLogger() }
-val Kosmos.mockMediaSmartspaceLogger by Kosmos.Fixture { mock(MediaSmartspaceLogger::class.java) }
+val Kosmos.stackedMobileIconViewModel: StackedMobileIconViewModel by
+    Kosmos.Fixture { StackedMobileIconViewModel(mobileIconsViewModel) }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/user/domain/interactor/UserLockedInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/user/domain/interactor/UserLockedInteractorKosmos.kt
index fd95508..933c351 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/user/domain/interactor/UserLockedInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/user/domain/interactor/UserLockedInteractorKosmos.kt
@@ -17,7 +17,10 @@
 package com.android.systemui.user.domain.interactor
 
 import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.testDispatcher
 import com.android.systemui.user.data.repository.userRepository
 
 val Kosmos.userLockedInteractor by
-    Kosmos.Fixture { UserLockedInteractor(userRepository = userRepository) }
+    Kosmos.Fixture {
+        UserLockedInteractor(backgroundDispatcher = testDispatcher, userRepository = userRepository)
+    }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModelKosmos.kt
index 9f3150f..919d36b 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/ringer/ui/viewmodel/VolumeDialogRingerDrawerViewModelKosmos.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.volume.dialog.ringer.ui.viewmodel
 
 import android.content.applicationContext
+import com.android.internal.logging.uiEventLogger
 import com.android.systemui.haptics.vibratorHelper
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.applicationCoroutineScope
@@ -41,6 +42,7 @@
             volumeDialogLogger = volumeDialogLogger,
             visibilityInteractor = volumeDialogVisibilityInteractor,
             configurationController = configurationController,
+            uiEventLogger = uiEventLogger,
             systemClock = fakeSystemClock,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/settings/ui/viewmodel/VolumeDialogSettingsButtonViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/settings/ui/viewmodel/VolumeDialogSettingsButtonViewModelKosmos.kt
index 0ae3b03..a17611b 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/settings/ui/viewmodel/VolumeDialogSettingsButtonViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/settings/ui/viewmodel/VolumeDialogSettingsButtonViewModelKosmos.kt
@@ -17,6 +17,7 @@
 package com.android.systemui.volume.dialog.settings.ui.viewmodel
 
 import android.content.applicationContext
+import com.android.internal.logging.uiEventLogger
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.applicationCoroutineScope
 import com.android.systemui.kosmos.testScope
@@ -33,5 +34,6 @@
             mediaOutputInteractor,
             mediaDeviceSessionInteractor,
             volumeDialogSettingsButtonInteractor,
+            uiEventLogger,
         )
     }
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderViewModelKosmos.kt
index 90bbb28..c9396f5 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderViewModelKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/dialog/sliders/ui/viewmodel/VolumeDialogSliderViewModelKosmos.kt
@@ -16,6 +16,7 @@
 
 package com.android.systemui.volume.dialog.sliders.ui.viewmodel
 
+import com.android.internal.logging.uiEventLogger
 import com.android.systemui.kosmos.Kosmos
 import com.android.systemui.kosmos.applicationCoroutineScope
 import com.android.systemui.util.time.systemClock
@@ -35,6 +36,7 @@
             coroutineScope = applicationCoroutineScope,
             volumeDialogSliderIconProvider = volumeDialogSliderIconProvider,
             systemClock = systemClock,
+            uiEventLogger = uiEventLogger,
             logger = volumeDialogLogger,
         )
     }
diff --git a/packages/SystemUI/tools/lint/README b/packages/SystemUI/tools/lint/README
deleted file mode 100644
index 0745196..0000000
--- a/packages/SystemUI/tools/lint/README
+++ /dev/null
@@ -1,26 +0,0 @@
-This directory contains configuration files for lint, which is run
-in as an upload hook for repo upload.
-
-lint.xml contains checks that are turned on or off, or whitelisted /
-blacklisted for particular directories, if they are different from
-the default.
-
-baseline.xml contains the list of existing "grandfathered" lint
-errors in the codebase. It is generated using ./tools/lint/update_baseline.sh
-
-When you hit a lint error that should not be triggered, there are 3
-possible resolutions:
-1. Use tools:ignore or @SuppressLint annotation. This is preferred
-   for cases where the lint violation is intended, so that reviewers
-   can review whether the suppression is appropriate.
-2. Use tools/lint.xml to ignore a lint check which we don't care
-   about for any file, or checks that are not actionable by the
-   CL author (e.g. translation issues)
-3. If there are lint errors that should be fixed, but cannot be done
-   immediately for some reason, the issue should be added to
-   baseline.xml.
-
-
-References
-- https://developer.android.com/studio/write/lint.html
-- http://tools.android.com/tips/lint-checks
diff --git a/packages/SystemUI/tools/lint/baseline.xml b/packages/SystemUI/tools/lint/baseline.xml
deleted file mode 100644
index 43f8300..0000000
--- a/packages/SystemUI/tools/lint/baseline.xml
+++ /dev/null
@@ -1,89764 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="4">
-
-    <issue
-        id="LintError"
-        message="No `.class` files were found in project &quot;.&quot;, so none of the classfile based checks could be run. Does the project need to be built first?">
-        <location
-            file="."/>
-    </issue>
-
-    <issue
-        id="StopShip"
-        message="`STOPSHIP` comment found; points to code which must be fixed prior to release"
-        errorLine1="    &lt;!-- STOPSHIP Monitoring strings still need to be finalized and approved -->"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1152"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="DuplicateIds"
-        message="Duplicate id `@+id/wifi_combo`, already defined earlier in this layout"
-        errorLine1="            android:id=&quot;@+id/wifi_combo&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/status_bar_wifi_group.xml"
-            line="57"
-            column="13"/>
-        <location
-            file="res/layout/status_bar_wifi_group.xml"
-            line="22"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="CutPasteId"
-        message="The id `R.id.tuner_zen_switch` has already been looked up in this method; possible cut &amp; paste error?"
-        errorLine1="        ViewGroup detail_header = findViewById(R.id.tuner_zen_switch);"
-        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/com/android/systemui/tuner/TunerZenModePanel.java"
-            line="71"
-            column="35"/>
-        <location
-            file="src/com/android/systemui/tuner/TunerZenModePanel.java"
-            line="56"
-            column="25"/>
-    </issue>
-
-    <issue
-        id="DuplicateIncludedIds"
-        message="Duplicate id @+id/center_group, defined or included multiple times in layout/nav_bar_tuner_inflater.xml: [layout/nav_bar_tuner_inflater.xml => layout/navigation_layout.xml defines @+id/center_group, layout/nav_bar_tuner_inflater.xml => layout/navigation_layout_rot90.xml defines @+id/center_group]"
-        errorLine1="    &lt;include android:id=&quot;@+id/rot90&quot; layout=&quot;@layout/navigation_layout_rot90&quot; />"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/nav_bar_tuner_inflater.xml"
-            line="25"
-            column="5"/>
-        <location
-            file="res/layout/navigation_layout.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/layout/navigation_layout_rot90.xml"
-            line="43"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="DuplicateIncludedIds"
-        message="Duplicate id @+id/ends_group, defined or included multiple times in layout/nav_bar_tuner_inflater.xml: [layout/nav_bar_tuner_inflater.xml => layout/navigation_layout.xml defines @+id/ends_group, layout/nav_bar_tuner_inflater.xml => layout/navigation_layout_rot90.xml defines @+id/ends_group]"
-        errorLine1="    &lt;include android:id=&quot;@+id/rot90&quot; layout=&quot;@layout/navigation_layout_rot90&quot; />"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/nav_bar_tuner_inflater.xml"
-            line="25"
-            column="5"/>
-        <location
-            file="res/layout/navigation_layout.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/layout/navigation_layout_rot90.xml"
-            line="35"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="DuplicateIncludedIds"
-        message="Duplicate id @+id/nav_buttons, defined or included multiple times in layout/nav_bar_tuner_inflater.xml: [layout/nav_bar_tuner_inflater.xml => layout/navigation_layout.xml defines @+id/nav_buttons, layout/nav_bar_tuner_inflater.xml => layout/navigation_layout_rot90.xml defines @+id/nav_buttons]"
-        errorLine1="    &lt;include android:id=&quot;@+id/rot90&quot; layout=&quot;@layout/navigation_layout_rot90&quot; />"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/nav_bar_tuner_inflater.xml"
-            line="25"
-            column="5"/>
-        <location
-            file="res/layout/navigation_layout.xml"
-            line="28"
-            column="9"/>
-        <location
-            file="res/layout/navigation_layout_rot90.xml"
-            line="28"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="DuplicateIncludedIds"
-        message="Duplicate id @+id/qs_detail_header_progress, defined or included multiple times in layout/qs_panel.xml: [layout/qs_panel.xml => layout/qs_detail.xml defines @+id/qs_detail_header_progress, layout/qs_panel.xml => layout/quick_status_bar_expanded_header.xml defines @+id/qs_detail_header_progress]"
-        errorLine1="    &lt;include android:id=&quot;@+id/qs_detail&quot; layout=&quot;@layout/qs_detail&quot; />"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_panel.xml"
-            line="68"
-            column="5"/>
-        <location
-            file="res/layout/qs_detail.xml"
-            line="37"
-            column="9"/>
-        <location
-            file="res/layout/quick_status_bar_expanded_header.xml"
-            line="58"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="MissingPrefix"
-        message="Unexpected namespace prefix &quot;xmlns&quot; found for tag `LinearLayout`"
-        errorLine1="        xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_facet_button.xml"
-            line="22"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="MissingPrefix"
-        message="Unexpected namespace prefix &quot;xmlns&quot; found for tag `RelativeLayout`"
-        errorLine1="        xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_qs_panel.xml"
-            line="31"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="MissingPrefix"
-        message="Unexpected namespace prefix &quot;xmlns&quot; found for tag `RelativeLayout`"
-        errorLine1="        xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_qs_panel.xml"
-            line="32"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="SdCardPath"
-        message="Do not hardcode &quot;/sdcard/&quot;; use `Environment.getExternalStorageDirectory().getPath()` instead"
-        errorLine1="        ? new GestureRecorder(&quot;/sdcard/statusbar_gestures.dat&quot;)"
-        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/com/android/systemui/statusbar/phone/StatusBar.java"
-            line="407"
-            column="31"/>
-    </issue>
-
-    <issue
-        id="Suspicious0dp"
-        message="Suspicious size: this will make the view invisible, should be used with `layout_weight`"
-        errorLine1="            android:layout_height=&quot;0dp&quot; />"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_tile_label.xml"
-            line="37"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="IncludeLayoutParam"
-        message="Layout parameter `layout_alignParentTop` ignored unless both `layout_width` and `layout_height` are also specified on `&lt;include>` tag"
-        errorLine1="            android:layout_alignParentTop=&quot;true&quot;/>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_fullscreen_user_switcher.xml"
-            line="34"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="ExtraText"
-        message="Unexpected text found in layout file: &quot;&quot;>&quot;"
-        errorLine1="        android:alpha=&quot;0&quot;/>&quot;>"
-        errorLine2="                           ^">
-        <location
-            file="res/layout/docked_stack_divider.xml"
-            line="30"
-            column="28"/>
-    </issue>
-
-    <issue
-        id="ExtraText"
-        message="Unexpected text found in layout file: &quot;->&quot;"
-        errorLine1="&lt;merge xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>->"
-        errorLine2="                                                                  ^">
-        <location
-            file="res/layout/qs_customize_panel_content.xml"
-            line="18"
-            column="67"/>
-    </issue>
-
-    <issue
-        id="SpUsage"
-        message="Should use &quot;`sp`&quot; instead of &quot;`dp`&quot; for text sizes"
-        errorLine1="                android:textSize=&quot;40dp&quot;"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/mland.xml"
-            line="60"
-            column="17"/>
-    </issue>
-
-    <issue
-        id="SpUsage"
-        message="Should use &quot;`sp`&quot; instead of &quot;`dp`&quot; for text sizes"
-        errorLine1="        android:textSize=&quot;11dp&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/quick_status_bar_expanded_header.xml"
-            line="74"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="SpUsage"
-        message="Should use &quot;`sp`&quot; instead of &quot;`dp`&quot; for text sizes"
-        errorLine1="        android:textSize=&quot;20dp&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/status_bar_no_recent_apps.xml"
-            line="29"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="            android:singleLine=&quot;true&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/app_ops_info.xml"
-            line="52"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/battery_percentage_view.xml"
-            line="24"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_fullscreen_user_pod.xml"
-            line="41"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="            android:singleLine=&quot;true&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_left_navigation_bar.xml"
-            line="86"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="            android:singleLine=&quot;true&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_navigation_bar.xml"
-            line="84"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="            android:singleLine=&quot;true&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_right_navigation_bar.xml"
-            line="88"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_status_bar_header.xml"
-            line="38"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_top_navigation_bar.xml"
-            line="31"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="                android:singleLine=&quot;true&quot;"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/fingerprint_dialog.xml"
-            line="63"
-            column="17"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="                android:singleLine=&quot;true&quot;"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/fingerprint_dialog.xml"
-            line="78"
-            column="17"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/foreground_service_item.xml"
-            line="43"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/foreground_service_title.xml"
-            line="28"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/heads_up_status_bar_layout.xml"
-            line="39"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/hybrid_notification.xml"
-            line="28"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/hybrid_notification.xml"
-            line="35"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="    android:singleLine=&quot;true&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/hybrid_overflow_number.xml"
-            line="25"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: False is the default, so just remove the attribute"
-        errorLine1="            android:singleLine=&quot;false&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/keyboard_shortcut_app_item.xml"
-            line="45"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="          android:singleLine=&quot;true&quot;"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/keyboard_shortcuts_key_view.xml"
-            line="24"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/keyguard_status_bar.xml"
-            line="76"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="            android:singleLine=&quot;true&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/notification_info.xml"
-            line="51"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot; />"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/operator_name.xml"
-            line="30"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="                android:singleLine=&quot;true&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_footer_impl.xml"
-            line="68"
-            column="17"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_tile_label.xml"
-            line="78"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/quick_qs_status_icons.xml"
-            line="37"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/quick_status_bar_header_system_icons.xml"
-            line="38"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/recents_task_view_header.xml"
-            line="43"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/recents_task_view_header_overlay.xml"
-            line="40"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="            android:singleLine=&quot;true&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/remote_input.xml"
-            line="42"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/split_clock_view.xml"
-            line="28"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/split_clock_view.xml"
-            line="37"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/split_clock_view.xml"
-            line="50"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="                    android:singleLine=&quot;true&quot;"
-        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/status_bar.xml"
-            line="78"
-            column="21"/>
-    </issue>
-
-    <issue
-        id="Deprecated"
-        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
-        errorLine1="        android:singleLine=&quot;true&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/status_bar_alarm_group.xml"
-            line="32"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Orientation"
-        message="No orientation specified, and the default is horizontal. This is a common source of bugs when children are added dynamically."
-        errorLine1="    &lt;LinearLayout"
-        errorLine2="    ^">
-        <location
-            file="res/layout/signal_cluster_view.xml"
-            line="112"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_left_70`; missing conversion character in &apos;`% a`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_left_70&quot; msgid=&quot;3612060638991687254&quot;>&quot;Gawing 70% ang nasa kaliwa&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-tl/strings.xml"
-            line="754"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_left_70`; missing conversion character in &apos;`% n`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_left_70&quot; msgid=&quot;3612060638991687254&quot;>&quot;70% no ecrã esquerdo&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="754"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_left_50`; missing conversion character in &apos;`% a`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_left_50&quot; msgid=&quot;1248083470322193075&quot;>&quot;Gawing 50% ang nasa kaliwa&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-tl/strings.xml"
-            line="755"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_left_50`; missing conversion character in &apos;`% n`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_left_50&quot; msgid=&quot;1248083470322193075&quot;>&quot;50% no ecrã esquerdo&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="755"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_left_30`; missing conversion character in &apos;`% a`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_left_30&quot; msgid=&quot;543324403127069386&quot;>&quot;Gawing 30% ang nasa kaliwa&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-tl/strings.xml"
-            line="756"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_left_30`; missing conversion character in &apos;`% n`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_left_30&quot; msgid=&quot;543324403127069386&quot;>&quot;30% no ecrã esquerdo&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="756"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_70`; missing conversion character in &apos;`% a`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_70&quot; msgid=&quot;5090779195650364522&quot;>&quot;Gawing 70% ang nasa itaas&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-tl/strings.xml"
-            line="759"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_70`; missing conversion character in &apos;`% n`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_70&quot; msgid=&quot;5090779195650364522&quot;>&quot;70% no ecrã superior&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="759"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_50`; missing conversion character in &apos;`% a`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_50&quot; msgid=&quot;6385859741925078668&quot;>&quot;Gawing 50% ang nasa itaas&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-tl/strings.xml"
-            line="760"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_50`; missing conversion character in &apos;`% n`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_50&quot; msgid=&quot;6385859741925078668&quot;>&quot;50% no ecrã superior&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="760"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_30`; missing conversion character in &apos;`% a`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_30&quot; msgid=&quot;6201455163864841205&quot;>&quot;Gawing 30% ang nasa itaas&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-tl/strings.xml"
-            line="761"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_30`; missing conversion character in &apos;`% n`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_30&quot; msgid=&quot;6201455163864841205&quot;>&quot;30% no ecrã superior&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="761"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_70`; missing conversion character in &apos;`% a`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_70&quot; msgid=&quot;5090779195650364522&quot;>&quot;70 % arriba&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-gl/strings.xml"
-            line="761"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_50`; missing conversion character in &apos;`% a`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_50&quot; msgid=&quot;6385859741925078668&quot;>&quot;50 % arriba&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-gl/strings.xml"
-            line="762"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_30`; missing conversion character in &apos;`% a`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_30&quot; msgid=&quot;6201455163864841205&quot;>&quot;30 % arriba&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-gl/strings.xml"
-            line="763"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_70`; missing conversion character in &apos;`% g`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_70&quot; msgid=&quot;5090779195650364522&quot;>&quot;70% górnej części ekranu&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-pl/strings.xml"
-            line="769"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_50`; missing conversion character in &apos;`% g`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_50&quot; msgid=&quot;6385859741925078668&quot;>&quot;50% górnej części ekranu&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-pl/strings.xml"
-            line="770"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_30`; missing conversion character in &apos;`% g`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_30&quot; msgid=&quot;6201455163864841205&quot;>&quot;30% górnej części ekranu&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-pl/strings.xml"
-            line="771"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_70`; missing conversion character in &apos;`% n`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_70&quot; msgid=&quot;5090779195650364522&quot;>&quot;70 % nahoře&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-cs/strings.xml"
-            line="771"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_50`; missing conversion character in &apos;`% n`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_50&quot; msgid=&quot;6385859741925078668&quot;>&quot;50 % nahoře&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-cs/strings.xml"
-            line="772"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatInvalid"
-        message="Incorrect formatting string `accessibility_action_divider_top_30`; missing conversion character in &apos;`% n`&apos; ?"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_30&quot; msgid=&quot;6201455163864841205&quot;>&quot;30 % nahoře&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-cs/strings.xml"
-            line="773"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatMatches"
-        message="Inconsistent formatting types for argument #1 in format string `accessibility_action_divider_top_70` (&apos;% 70e&apos;): Found both &apos;`o`&apos; and &apos;`e`&apos; (in values-de/strings.xml)"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_70&quot; msgid=&quot;5090779195650364522&quot;>&quot;Ezarri goialdea % 70en&quot;&lt;/string>"
-        errorLine2="                                                                                                    ~~~~~">
-        <location
-            file="res/values-eu/strings.xml"
-            line="761"
-            column="101"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="763"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatMatches"
-        message="Inconsistent formatting types for argument #1 in format string `accessibility_action_divider_top_50` (&apos;% 50e&apos;): Found both &apos;`o`&apos; and &apos;`e`&apos; (in values-de/strings.xml)"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_50&quot; msgid=&quot;6385859741925078668&quot;>&quot;Ezarri goialdea % 50en&quot;&lt;/string>"
-        errorLine2="                                                                                                    ~~~~~">
-        <location
-            file="res/values-eu/strings.xml"
-            line="762"
-            column="101"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="764"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="StringFormatMatches"
-        message="Inconsistent formatting types for argument #1 in format string `accessibility_action_divider_top_30` (&apos;% 30e&apos;): Found both &apos;`o`&apos; and &apos;`e`&apos; (in values-de/strings.xml)"
-        errorLine1="    &lt;string name=&quot;accessibility_action_divider_top_30&quot; msgid=&quot;6201455163864841205&quot;>&quot;Ezarri goialdea % 30en&quot;&lt;/string>"
-        errorLine2="                                                                                                    ~~~~~">
-        <location
-            file="res/values-eu/strings.xml"
-            line="763"
-            column="101"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="765"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;per&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_level&quot; msgid=&quot;7451474187113371965&quot;>&quot;Battery &lt;xliff:g id=&quot;NUMBER&quot;>%d&lt;/xliff:g> per cent.&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="174"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;per&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_level&quot; msgid=&quot;7451474187113371965&quot;>&quot;Battery &lt;xliff:g id=&quot;NUMBER&quot;>%d&lt;/xliff:g> per cent.&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="174"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;per&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_level&quot; msgid=&quot;7451474187113371965&quot;>&quot;Battery &lt;xliff:g id=&quot;NUMBER&quot;>%d&lt;/xliff:g> per cent.&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="174"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;per&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_level&quot; msgid=&quot;7451474187113371965&quot;>&quot;Battery &lt;xliff:g id=&quot;NUMBER&quot;>%d&lt;/xliff:g> per cent.&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="174"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;percent&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_level_charging&quot; msgid=&quot;1147587904439319646&quot;>&quot;Battery charging, &lt;xliff:g id=&quot;BATTERY_PERCENTAGE&quot;>%d&lt;/xliff:g> percent.&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="175"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;percent&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_level_charging&quot; msgid=&quot;1147587904439319646&quot;>&quot;Battery charging, &lt;xliff:g id=&quot;BATTERY_PERCENTAGE&quot;>%d&lt;/xliff:g> percent.&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="175"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;percent&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_level_charging&quot; msgid=&quot;1147587904439319646&quot;>&quot;Battery charging, &lt;xliff:g id=&quot;BATTERY_PERCENTAGE&quot;>%d&lt;/xliff:g> percent.&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="175"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;percent&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_level_charging&quot; msgid=&quot;1147587904439319646&quot;>&quot;Battery charging, &lt;xliff:g id=&quot;BATTERY_PERCENTAGE&quot;>%d&lt;/xliff:g> percent.&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="175"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;Devices&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;quick_settings_bluetooth_multiple_devices_label&quot; msgid=&quot;3912245565613684735&quot;>&quot;Bluetooth (&lt;xliff:g id=&quot;NUMBER&quot;>%d&lt;/xliff:g> Devices)&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="282"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;Devices&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;quick_settings_bluetooth_multiple_devices_label&quot; msgid=&quot;3912245565613684735&quot;>&quot;Bluetooth (&lt;xliff:g id=&quot;NUMBER&quot;>%d&lt;/xliff:g> Devices)&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="282"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;Devices&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;quick_settings_bluetooth_multiple_devices_label&quot; msgid=&quot;3912245565613684735&quot;>&quot;Bluetooth (&lt;xliff:g id=&quot;NUMBER&quot;>%d&lt;/xliff:g> Devices)&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="282"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;Devices&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;quick_settings_bluetooth_multiple_devices_label&quot; msgid=&quot;3912245565613684735&quot;>&quot;Bluetooth (&lt;xliff:g id=&quot;NUMBER&quot;>%d&lt;/xliff:g> Devices)&quot;&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="282"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;percent&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_level&quot;>Battery &lt;xliff:g id=&quot;number&quot;>%d&lt;/xliff:g> percent.&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="436"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;percent&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_level_charging&quot;>Battery charging, &lt;xliff:g id=&quot;battery_percentage&quot;>%d&lt;/xliff:g> percent.&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="439"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="PluralsCandidate"
-        message="Formatting %d followed by words (&quot;Devices&quot;): This should probably be a plural rather than a string"
-        errorLine1="    &lt;string name=&quot;quick_settings_bluetooth_multiple_devices_label&quot;>Bluetooth (&lt;xliff:g id=&quot;number&quot;>%d&lt;/xliff:g> Devices)&lt;/string>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="683"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ExportedContentProvider"
-        message="Exported content providers can provide access to potentially sensitive data"
-        errorLine1="        &lt;provider android:name=&quot;.keyguard.KeyguardSliceProvider&quot;"
-        errorLine2="        ^">
-        <location
-            file="AndroidManifest.xml"
-            line="605"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ExportedReceiver"
-        message="Exported receiver does not require permission"
-        errorLine1="        &lt;receiver"
-        errorLine2="        ^">
-        <location
-            file="AndroidManifest.xml"
-            line="611"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ExportedService"
-        message="Exported service does not require permission"
-        errorLine1="        &lt;service android:name=&quot;SystemUIService&quot;"
-        errorLine2="        ^">
-        <location
-            file="AndroidManifest.xml"
-            line="242"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ExportedService"
-        message="Exported service does not require permission"
-        errorLine1="        &lt;service"
-        errorLine2="        ^">
-        <location
-            file="AndroidManifest.xml"
-            line="516"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="DrawAllocation"
-        message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
-        errorLine1="            mWindowManagerProxy.setTouchRegion(new Rect(mHandle.getLeft(), mHandle.getTop(),"
-        errorLine2="                                               ^">
-        <location
-            file="src/com/android/systemui/stackdivider/DividerView.java"
-            line="362"
-            column="48"/>
-    </issue>
-
-    <issue
-        id="DrawAllocation"
-        message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
-        errorLine1="        mLayoutAlgorithm.getTaskStackBounds(mDisplayRect, new Rect(0, 0, width, height),"
-        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/com/android/systemui/recents/views/TaskStackView.java"
-            line="1193"
-            column="59"/>
-    </issue>
-
-    <issue
-        id="ObsoleteLayoutParam"
-        message="Invalid layout param in a `LinearLayout`: `layout_alignParentTop`"
-        errorLine1="            android:layout_alignParentTop=&quot;true&quot;/>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_fullscreen_user_switcher.xml"
-            line="34"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="ObsoleteLayoutParam"
-        message="Invalid layout param in a `FrameLayout`: `layout_weight`"
-        errorLine1="        android:layout_weight=&quot;0&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/contextual.xml"
-            line="31"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ObsoleteLayoutParam"
-        message="Invalid layout param in a `FrameLayout`: `layout_weight`"
-        errorLine1="        android:layout_weight=&quot;0&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/contextual.xml"
-            line="44"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ObsoleteLayoutParam"
-        message="Invalid layout param in a `FrameLayout`: `layout_weight`"
-        errorLine1="        android:layout_weight=&quot;0&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/contextual.xml"
-            line="55"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ObsoleteLayoutParam"
-        message="Invalid layout param in a `FrameLayout`: `layout_weight`"
-        errorLine1="        android:layout_weight=&quot;0&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/contextual.xml"
-            line="66"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="UseCompoundDrawables"
-        message="This tag and its children can be replaced by one `&lt;TextView/>` and a compound drawable"
-        errorLine1="&lt;LinearLayout"
-        errorLine2="^">
-        <location
-            file="res/layout/car_fullscreen_user_pod.xml"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UseCompoundDrawables"
-        message="This tag and its children can be replaced by one `&lt;TextView/>` and a compound drawable"
-        errorLine1="    &lt;LinearLayout"
-        errorLine2="    ^">
-        <location
-            file="res/layout/qs_detail_items.xml"
-            line="34"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="MergeRootFrame"
-        message="This `&lt;FrameLayout>` can be replaced with a `&lt;merge>` tag"
-        errorLine1="&lt;FrameLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/layout/forced_resizable_activity.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="MergeRootFrame"
-        message="This `&lt;FrameLayout>` can be replaced with a `&lt;merge>` tag"
-        errorLine1="&lt;FrameLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/layout/mland.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="MergeRootFrame"
-        message="This `&lt;FrameLayout>` can be replaced with a `&lt;merge>` tag"
-        errorLine1="&lt;FrameLayout"
-        errorLine2="^">
-        <location
-            file="res/layout/navigation_layout.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="MergeRootFrame"
-        message="This `&lt;FrameLayout>` can be replaced with a `&lt;merge>` tag"
-        errorLine1="&lt;FrameLayout"
-        errorLine2="^">
-        <location
-            file="res/layout-sw600dp/navigation_layout_rot90.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="MergeRootFrame"
-        message="This `&lt;FrameLayout>` can be replaced with a `&lt;merge>` tag"
-        errorLine1="&lt;FrameLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/layout/quick_settings_header_info.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="MergeRootFrame"
-        message="This `&lt;FrameLayout>` can be replaced with a `&lt;merge>` tag"
-        errorLine1="&lt;FrameLayout"
-        errorLine2="^">
-        <location
-            file="res/layout/recents.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="InefficientWeight"
-        message="Use a `layout_height` of `0dp` instead of `wrap_content` for better performance"
-        errorLine1="                android:layout_height=&quot;wrap_content&quot;"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/notification_info.xml"
-            line="109"
-            column="17"/>
-    </issue>
-
-    <issue
-        id="InefficientWeight"
-        message="Use a `layout_width` of `0dp` instead of `wrap_content` for better performance"
-        errorLine1="        android:layout_width=&quot;wrap_content&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/quick_settings_footer.xml"
-            line="30"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="NestedWeights"
-        message="Nested weights are bad for performance"
-        errorLine1="                android:layout_weight=&quot;1&quot;"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_footer_impl.xml"
-            line="62"
-            column="17"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@color/notification_guts_bg_color` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="        android:background=&quot;@color/notification_guts_bg_color&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/app_ops_info.xml"
-            line="29"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@color/car_user_switcher_background_color` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="        android:background=&quot;@color/car_user_switcher_background_color&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_fullscreen_user_switcher.xml"
-            line="22"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@drawable/system_bar_background` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@drawable/system_bar_background&quot;>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_left_navigation_bar.xml"
-            line="26"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@drawable/system_bar_background` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@drawable/system_bar_background&quot;>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_left_navigation_bar_unprovisioned.xml"
-            line="26"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@drawable/system_bar_background` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@drawable/system_bar_background&quot;>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_navigation_bar.xml"
-            line="25"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@drawable/system_bar_background` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@drawable/system_bar_background&quot;>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_navigation_bar_unprovisioned.xml"
-            line="25"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@color/car_qs_background_primary` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@color/car_qs_background_primary&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_qs_panel.xml"
-            line="22"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@drawable/system_bar_background` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@drawable/system_bar_background&quot;>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_right_navigation_bar.xml"
-            line="26"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@drawable/system_bar_background` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@drawable/system_bar_background&quot;>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_right_navigation_bar_unprovisioned.xml"
-            line="26"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@drawable/system_bar_background` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@drawable/system_bar_background&quot;>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_top_navigation_bar.xml"
-            line="24"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@drawable/car_card_rounded_background` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@drawable/car_card_rounded_background&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_volume_dialog.xml"
-            line="19"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `?android:attr/colorForeground` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;?android:attr/colorForeground&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/divider.xml"
-            line="20"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@color/fingerprint_dialog_dim_color` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@color/fingerprint_dialog_dim_color&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/fingerprint_dialog.xml"
-            line="22"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `#4dffffff` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;#4dffffff&quot; />"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/horizontal_divider.xml"
-            line="25"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `?android:attr/dividerHorizontal` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;?android:attr/dividerHorizontal&quot; />"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/keyboard_shortcuts_category_separator.xml"
-            line="25"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@android:color/black` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@android:color/black&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/nav_bar_tuner_inflater.xml"
-            line="19"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@drawable/system_bar_background` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@drawable/system_bar_background&quot;>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/navigation_bar.xml"
-            line="25"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@color/notification_divider_color` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@color/notification_divider_color&quot; />"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/notification_children_divider.xml"
-            line="23"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@color/notification_guts_bg_color` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@color/notification_guts_bg_color&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/notification_info.xml"
-            line="27"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@color/notification_guts_bg_color` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@color/notification_guts_bg_color&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/notification_snooze.xml"
-            line="24"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `?android:selectableItemBackgroundBorderless` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;?android:selectableItemBackgroundBorderless&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/pip_menu_action.xml"
-            line="21"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `?android:attr/listDivider` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;?android:attr/listDivider&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_customize_tile_divider.xml"
-            line="24"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `?android:attr/colorForeground` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;?android:attr/colorForeground&quot; />"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_divider.xml"
-            line="20"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `?android:attr/colorPrimary` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;?android:attr/colorPrimary&quot; >"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/quick_settings_footer.xml"
-            line="26"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `#88000000` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;#88000000&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/recents_incompatible_app_overlay.xml"
-            line="21"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@drawable/search_bg_transparent` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@drawable/search_bg_transparent&quot;>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/recents_search_bar.xml"
-            line="20"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `?android:attr/colorAccent` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;?android:attr/colorAccent&quot;>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons.xml"
-            line="31"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `?android:attr/colorAccent` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;?android:attr/colorAccent&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="28"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `?android:attr/colorAccent` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;?android:attr/colorAccent&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="28"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `?android:attr/colorAccent` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;?android:attr/colorAccent&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_text_area.xml"
-            line="23"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `@drawable/system_bar_background` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;@drawable/system_bar_background&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/status_bar.xml"
-            line="27"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;?android:attr/selectableItemBackground&quot;>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/status_bar_alarm_group.xml"
-            line="26"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="Overdraw"
-        message="Possible overdraw: Root element paints background `#CC000000` with a theme that also paints a background (inferred theme is `@style/Theme.SystemUI`)"
-        errorLine1="    android:background=&quot;#CC000000&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/tv_pip_menu.xml"
-            line="25"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.array.car_facet_icons` appears to be unused"
-        errorLine1="    &lt;array name=&quot;car_facet_icons&quot; />"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/arrays_car.xml"
-            line="25"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.array.car_facet_intent_uris` appears to be unused"
-        errorLine1="    &lt;array name=&quot;car_facet_intent_uris&quot; />"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/arrays_car.xml"
-            line="26"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.array.car_facet_longpress_intent_uris` appears to be unused"
-        errorLine1="    &lt;array name=&quot;car_facet_longpress_intent_uris&quot; />"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/arrays_car.xml"
-            line="27"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.array.car_facet_package_filters` appears to be unused"
-        errorLine1="    &lt;array name=&quot;car_facet_package_filters&quot;/>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/arrays_car.xml"
-            line="28"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.array.car_facet_category_filters` appears to be unused"
-        errorLine1="    &lt;array name=&quot;car_facet_category_filters&quot;/>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/arrays_car.xml"
-            line="29"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.assist_disclosure_trace` appears to be unused"
-        errorLine1="&lt;pathInterpolator xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/interpolator/assist_disclosure_trace.xml"
-            line="18"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.background_protect_secondary` appears to be unused"
-        errorLine1="&lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/color/background_protect_secondary.xml"
-            line="18"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.background_protected` appears to be unused"
-        errorLine1="&lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/color/background_protected.xml"
-            line="18"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.car_navigation_button` appears to be unused"
-        errorLine1="&lt;merge xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/layout/car_navigation_button.xml"
-            line="20"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.car_rounded_bg_bottom` appears to be unused"
-        errorLine1="&lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/car_rounded_bg_bottom.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.car_top_navigation_bar` appears to be unused"
-        errorLine1="&lt;com.android.systemui.statusbar.car.CarNavigationBarView"
-        errorLine2="^">
-        <location
-            file="res/layout/car_top_navigation_bar.xml"
-            line="20"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.car_user_switcher_close_pages_animation` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/anim/car_user_switcher_close_pages_animation.xml"
-            line="15"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.car_user_switcher_close_pod_animation` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/anim/car_user_switcher_close_pod_animation.xml"
-            line="15"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.car_user_switcher_open_pages_animation` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/anim/car_user_switcher_open_pages_animation.xml"
-            line="15"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.car_user_switcher_open_pod_animation` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/anim/car_user_switcher_open_pod_animation.xml"
-            line="15"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ticker_background_color` appears to be unused"
-        errorLine1="    &lt;drawable name=&quot;ticker_background_color&quot;>#ff1d1d1d&lt;/drawable>"
-        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="21"
-            column="15"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.notification_panel_solid_background` appears to be unused"
-        errorLine1="    &lt;color name=&quot;notification_panel_solid_background&quot;>#ff000000&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="25"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.status_bar_notification_row_background_color` appears to be unused"
-        errorLine1="    &lt;drawable name=&quot;status_bar_notification_row_background_color&quot;>#ff090909&lt;/drawable>"
-        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="26"
-            column="15"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.notification_list_shadow_top` appears to be unused"
-        errorLine1="    &lt;color name=&quot;notification_list_shadow_top&quot;>#80000000&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="27"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.heads_up_notification_bg_pressed` appears to be unused"
-        errorLine1="    &lt;drawable name=&quot;heads_up_notification_bg_pressed&quot;>#ff33B5E5&lt;/drawable>"
-        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="28"
-            column="15"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.qs_batterymeter_frame_color` appears to be unused"
-        errorLine1="    &lt;color name=&quot;qs_batterymeter_frame_color&quot;>#FF404040&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="29"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.qs_tile_divider` appears to be unused"
-        errorLine1="    &lt;color name=&quot;qs_tile_divider&quot;>#29ffffff&lt;/color>&lt;!-- 16% white -->"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="30"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.qs_detail_button` appears to be unused"
-        errorLine1="    &lt;color name=&quot;qs_detail_button&quot;>@*android:color/quaternary_device_default_settings&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="32"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.qs_detail_button_white` appears to be unused"
-        errorLine1="    &lt;color name=&quot;qs_detail_button_white&quot;>#B3FFFFFF&lt;/color>&lt;!-- 70% white -->"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="33"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.qs_user_detail_icon_muted` appears to be unused"
-        errorLine1="    &lt;color name=&quot;qs_user_detail_icon_muted&quot;>#FFFFFFFF&lt;/color> &lt;!-- not so muted after all -->"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="36"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.keyguard_overflow_content_color` appears to be unused"
-        errorLine1="    &lt;color name=&quot;keyguard_overflow_content_color&quot;>#ff686868&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="40"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.recents_task_view_lock_to_app_button_background_color` appears to be unused"
-        errorLine1="    &lt;color name=&quot;recents_task_view_lock_to_app_button_background_color&quot;>#ffe6e6e6&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="57"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.recents_task_view_lock_to_app_button_color` appears to be unused"
-        errorLine1="    &lt;color name=&quot;recents_task_view_lock_to_app_button_color&quot;>#ff666666&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="59"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.recents_freeform_workspace_bg_color` appears to be unused"
-        errorLine1="    &lt;color name=&quot;recents_freeform_workspace_bg_color&quot;>#33FFFFFF&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="61"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.keyguard_affordance` appears to be unused"
-        errorLine1="    &lt;color name=&quot;keyguard_affordance&quot;>#ffffffff&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="68"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.segmented_buttons_background` appears to be unused"
-        errorLine1="    &lt;color name=&quot;segmented_buttons_background&quot;>#14FFFFFF&lt;/color>&lt;!-- 8% white -->"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="121"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.logout_button_bg_color` appears to be unused"
-        errorLine1="    &lt;color name=&quot;logout_button_bg_color&quot;>#ccffffff&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="172"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.recents_tv_card_background_color` appears to be unused"
-        errorLine1="    &lt;color name=&quot;recents_tv_card_background_color&quot;>#FF263238&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors_tv.xml"
-            line="20"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.recents_tv_card_title_text_color` appears to be unused"
-        errorLine1="    &lt;color name=&quot;recents_tv_card_title_text_color&quot;>#CCEEEEEE&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors_tv.xml"
-            line="21"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.recents_tv_dismiss_text_color` appears to be unused"
-        errorLine1="    &lt;color name=&quot;recents_tv_dismiss_text_color&quot;>#7FEEEEEE&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors_tv.xml"
-            line="22"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.recents_tv_text_shadow_color` appears to be unused"
-        errorLine1="    &lt;color name=&quot;recents_tv_text_shadow_color&quot;>#7F000000&lt;/color>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors_tv.xml"
-            line="23"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.status_bar_config_maxNotificationIcons` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;status_bar_config_maxNotificationIcons&quot;>5&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-sw720dp/config.xml"
-            line="23"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.quick_settings_max_rows` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;quick_settings_max_rows&quot;>2&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-land/config.xml"
-            line="24"
-            column="14"/>
-        <location
-            file="res/values-sw600dp/config.xml"
-            line="24"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.bool.config_recents_use_hardware_layers` appears to be unused"
-        errorLine1="    &lt;bool name=&quot;config_recents_use_hardware_layers&quot;>false&lt;/bool>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="25"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.bool.config_notifications_round_rect_clipping` appears to be unused"
-        errorLine1="    &lt;bool name=&quot;config_notifications_round_rect_clipping&quot;>true&lt;/bool>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="38"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.config_maxNotificationIcons` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;config_maxNotificationIcons&quot;>5&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="59"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.bool.config_showPhoneRSSIForData` appears to be unused"
-        errorLine1="    &lt;bool name=&quot;config_showPhoneRSSIForData&quot;>false&lt;/bool>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="62"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.bool.config_showRotationLock` appears to be unused"
-        errorLine1="    &lt;bool name=&quot;config_showRotationLock&quot;>true&lt;/bool>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="68"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.config_vibration_duration` appears to be unused"
-        errorLine1="    &lt;integer translatable=&quot;false&quot; name=&quot;config_vibration_duration&quot;>0&lt;/integer>"
-        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="71"
-            column="35"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.config_search_panel_view_vibration_duration` appears to be unused"
-        errorLine1="    &lt;integer translatable=&quot;false&quot; name=&quot;config_search_panel_view_vibration_duration&quot;>20&lt;/integer>"
-        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="74"
-            column="35"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.one_finger_pop_duration_ms` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;one_finger_pop_duration_ms&quot;>10&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="90"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.bool.quick_settings_wide` appears to be unused"
-        errorLine1="    &lt;bool name=&quot;quick_settings_wide&quot;>false&lt;/bool>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="111"
-            column="11"/>
-        <location
-            file="res/values-land/dimens.xml"
-            line="34"
-            column="11"/>
-        <location
-            file="res/values-sw600dp-land/config.xml"
-            line="19"
-            column="11"/>
-        <location
-            file="res/values-w550dp-land/config.xml"
-            line="25"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.quick_settings_user_time_settings_tile_span` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;quick_settings_user_time_settings_tile_span&quot;>1&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="120"
-            column="14"/>
-        <location
-            file="res/values-land/config.xml"
-            line="27"
-            column="14"/>
-        <location
-            file="res/values-sw600dp/config.xml"
-            line="27"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.bool.quick_settings_rssi_tile_capitalization` appears to be unused"
-        errorLine1="    &lt;bool name=&quot;quick_settings_rssi_tile_capitalization&quot;>true&lt;/bool>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="141"
-            column="11"/>
-        <location
-            file="res/values-mcc262-mnc07/config.xml"
-            line="24"
-            column="11"/>
-        <location
-            file="res/values-mcc262-mnc08/config.xml"
-            line="24"
-            column="11"/>
-        <location
-            file="res/values-mcc262-mnc11/config.xml"
-            line="24"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.quick_settings_brightness_dialog_short_timeout` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;quick_settings_brightness_dialog_short_timeout&quot;>2000&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="144"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.quick_settings_brightness_dialog_long_timeout` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;quick_settings_brightness_dialog_long_timeout&quot;>4000&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="145"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.bool.doze_pulse_on_notifications` appears to be unused"
-        errorLine1="    &lt;bool name=&quot;doze_pulse_on_notifications&quot;>true&lt;/bool>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="237"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.days_to_show_hotspot_tile` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;days_to_show_hotspot_tile&quot;>30&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="304"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.days_to_show_color_inversion_tile` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;days_to_show_color_inversion_tile&quot;>7&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="307"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.zen_mode_max_conditions` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;zen_mode_max_conditions&quot;>5&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="313"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.carrier_network_change_anim_time` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;carrier_network_change_anim_time&quot;>3000&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="325"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.volume_expand_animation_duration` appears to be unused"
-        errorLine1="    &lt;item name=&quot;volume_expand_animation_duration&quot; type=&quot;integer&quot;>300&lt;/item>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="328"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.bool.quick_settings_show_full_alarm` appears to be unused"
-        errorLine1="    &lt;bool name=&quot;quick_settings_show_full_alarm&quot;>false&lt;/bool>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config.xml"
-            line="375"
-            column="11"/>
-        <location
-            file="res/values-sw410dp/config.xml"
-            line="23"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.bool.config_enablePersistentDockedActivity` appears to be unused"
-        errorLine1="    &lt;bool name=&quot;config_enablePersistentDockedActivity&quot;>false&lt;/bool>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config_car.xml"
-            line="23"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.config_persistentDockedActivityIntentUri` appears to be unused"
-        errorLine1="    &lt;string name=&quot;config_persistentDockedActivityIntentUri&quot; translatable=&quot;false&quot;>&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/config_car.xml"
-            line="24"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.peek_window_y_offset` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;peek_window_y_offset&quot;>-12dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="20"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.fraction.battery_button_height_fraction` appears to be unused"
-        errorLine1="    &lt;fraction name=&quot;battery_button_height_fraction&quot;>10.5%&lt;/fraction>"
-        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-hdpi/dimens.xml"
-            line="20"
-            column="15"/>
-        <location
-            file="res/values-mdpi/dimens.xml"
-            line="19"
-            column="15"/>
-        <location
-            file="res/values-tvdpi/dimens.xml"
-            line="19"
-            column="15"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.fraction.battery_subpixel_smoothing_left` appears to be unused"
-        errorLine1="    &lt;fraction name=&quot;battery_subpixel_smoothing_left&quot;>20%&lt;/fraction>"
-        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-hdpi/dimens.xml"
-            line="24"
-            column="15"/>
-        <location
-            file="res/values-mdpi/dimens.xml"
-            line="23"
-            column="15"/>
-        <location
-            file="res/values-tvdpi/dimens.xml"
-            line="23"
-            column="15"/>
-        <location
-            file="res/values-xhdpi/dimens.xml"
-            line="23"
-            column="15"/>
-        <location
-            file="res/values-xxhdpi/dimens.xml"
-            line="23"
-            column="15"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.fraction.battery_subpixel_smoothing_right` appears to be unused"
-        errorLine1="    &lt;fraction name=&quot;battery_subpixel_smoothing_right&quot;>12%&lt;/fraction>"
-        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-hdpi/dimens.xml"
-            line="25"
-            column="15"/>
-        <location
-            file="res/values-mdpi/dimens.xml"
-            line="24"
-            column="15"/>
-        <location
-            file="res/values-tvdpi/dimens.xml"
-            line="24"
-            column="15"/>
-        <location
-            file="res/values-xhdpi/dimens.xml"
-            line="24"
-            column="15"/>
-        <location
-            file="res/values-xxhdpi/dimens.xml"
-            line="24"
-            column="15"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.notification_panel_min_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;notification_panel_min_height&quot;>770dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-sw720dp/dimens.xml"
-            line="28"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.panel_float` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;panel_float&quot;>56dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-sw720dp/dimens.xml"
-            line="30"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.peek_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;peek_height&quot;>@dimen/close_handle_height&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-sw600dp/dimens.xml"
-            line="39"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_brightness_padding_top` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_brightness_padding_top&quot;>6dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-sw600dp-land/dimens.xml"
-            line="41"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.snooze_option_text_size` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;snooze_option_text_size&quot;>14sp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="183"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.snooze_option_padding` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;snooze_option_padding&quot;>8dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="186"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.navigation_extra_key_width` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;navigation_extra_key_width&quot;>36dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="221"
-            column="12"/>
-        <location
-            file="res/values-sw360dp/dimens.xml"
-            line="23"
-            column="12"/>
-        <location
-            file="res/values-sw600dp/dimens.xml"
-            line="32"
-            column="12"/>
-        <location
-            file="res/values-sw900dp/dimens.xml"
-            line="23"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.navbar_search_snap_margin` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;navbar_search_snap_margin&quot;>40dip&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="228"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.navbar_search_outerring_diameter` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;navbar_search_outerring_diameter&quot;>340dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="231"
-            column="12"/>
-        <location
-            file="res/values-sw600dp/dimens.xml"
-            line="23"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.navbar_search_outerring_radius` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;navbar_search_outerring_radius&quot;>170dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="234"
-            column="12"/>
-        <location
-            file="res/values-sw600dp/dimens.xml"
-            line="26"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.navbar_search_panel_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;navbar_search_panel_height&quot;>230dip&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="237"
-            column="12"/>
-        <location
-            file="res/values-sw600dp/dimens.xml"
-            line="29"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.close_handle_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;close_handle_height&quot;>36dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="243"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.car_status_bar_header_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;car_status_bar_header_height&quot;>128dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="249"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.status_bar_header_padding_bottom` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;status_bar_header_padding_bottom&quot;>48dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="252"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_header_system_icons_area_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_header_system_icons_area_height&quot;>48dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="256"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.status_bar_header_height_expanded` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;status_bar_header_height_expanded&quot;>124dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="273"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.carrier_label_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;carrier_label_height&quot;>24dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="336"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.one_finger_pop_limit` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;one_finger_pop_limit&quot;>0dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="339"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.notification_panel_min_height_frac` appears to be unused"
-        errorLine1="    &lt;item type=&quot;dimen&quot; name=&quot;notification_panel_min_height_frac&quot;>0%&lt;/item>"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="343"
-            column="24"/>
-        <location
-            file="res/values-sw600dp/dimens.xml"
-            line="35"
-            column="24"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.blinds_pop_threshold` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;blinds_pop_threshold&quot;>0dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="345"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_header_gear_translation` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_header_gear_translation&quot;>16dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="360"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_dual_tile_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_dual_tile_height&quot;>112dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="368"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_dual_tile_padding_vertical` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_dual_tile_padding_vertical&quot;>8dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="369"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_tile_padding_top_large_text` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_tile_padding_top_large_text&quot;>4dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="372"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_tile_padding_bottom` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_tile_padding_bottom&quot;>16dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="374"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_tile_spacing` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_tile_spacing&quot;>4dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="375"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_detail_header_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_detail_header_height&quot;>56dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="378"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_detail_back_margin_end` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_detail_back_margin_end&quot;>16dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="390"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_battery_padding` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_battery_padding&quot;>2dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="394"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_notif_collapsed_space` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_notif_collapsed_space&quot;>64dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="409"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_footer_dialog_icon_size` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_footer_dialog_icon_size&quot;>24sp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="423"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_footer_dialog_icon_margin` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_footer_dialog_icon_margin&quot;>8sp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="425"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.zen_mode_condition_detail_button_padding` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;zen_mode_condition_detail_button_padding&quot;>8dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="433"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.zen_mode_condition_detail_item_spacing` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;zen_mode_condition_detail_item_spacing&quot;>12dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="436"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.glowpadview_glow_radius` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;glowpadview_glow_radius&quot;>75dip&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="448"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.glowpadview_inner_radius` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;glowpadview_inner_radius&quot;>15dip&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="451"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.speed_bump_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;speed_bump_height&quot;>16dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="482"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.edge_tap_area_width` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;edge_tap_area_width&quot;>48dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="527"
-            column="12"/>
-        <location
-            file="res/values-sw600dp/dimens.xml"
-            line="66"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.multi_user_switch_expanded_margin` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;multi_user_switch_expanded_margin&quot;>8dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="536"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.multi_user_switch_collapsed_margin` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;multi_user_switch_collapsed_margin&quot;>13dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="539"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.clock_expanded_bottom_margin` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;clock_expanded_bottom_margin&quot;>20dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="553"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.clock_collapsed_bottom_margin` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;clock_collapsed_bottom_margin&quot;>10dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="556"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.clock_collapsed_bottom_margin_large_text` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;clock_collapsed_bottom_margin_large_text&quot;>6dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="559"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.multi_user_switch_width_collapsed` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;multi_user_switch_width_collapsed&quot;>34dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="562"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.multi_user_switch_width_expanded` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;multi_user_switch_width_expanded&quot;>48dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="565"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.multi_user_avatar_collapsed_size` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;multi_user_avatar_collapsed_size&quot;>22dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="571"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_time_collapsed_size` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_time_collapsed_size&quot;>14sp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="580"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_date_collapsed_size` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_date_collapsed_size&quot;>14sp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="589"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.qs_date_time_translation` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;qs_date_time_translation&quot;>8dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="591"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.header_battery_margin_expanded` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;header_battery_margin_expanded&quot;>6dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="610"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.header_battery_margin_keyguard` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;header_battery_margin_keyguard&quot;>6dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="613"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.battery_level_text_size` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;battery_level_text_size&quot;>12sp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="653"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.wide_type_icon_start_padding` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;wide_type_icon_start_padding&quot;>2dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="680"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.signal_cluster_margin_start` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;signal_cluster_margin_start&quot;>2.5dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="705"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_slider_interspacing` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_slider_interspacing&quot;>8dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="749"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_offset_top` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_offset_top&quot;>0dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="752"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_button_size` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_button_size&quot;>48dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="755"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_dialog_margin_bottom` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_dialog_margin_bottom&quot;>4dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="758"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_dialog_padding_top` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_dialog_padding_top&quot;>8dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="759"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_dialog_padding_end` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_dialog_padding_end&quot;>40dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="760"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_row_padding_bottom` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_row_padding_bottom&quot;>9.4dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="762"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_row_padding_start` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_row_padding_start&quot;>4dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="763"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_row_header_padding_start` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_row_header_padding_start&quot;>16dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="764"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_row_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_row_height&quot;>64dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="765"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_row_slider_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_row_slider_height&quot;>48dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="766"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_row_slider_padding_start` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_row_slider_padding_start&quot;>12dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="767"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_expander_margin_end` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_expander_margin_end&quot;>2dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="769"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.volume_expander_margin_top` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;volume_expander_margin_top&quot;>6dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="770"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.fab_size` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;fab_size&quot;>56dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="778"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.fab_margin` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;fab_margin&quot;>16dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="779"
-            column="12"/>
-        <location
-            file="res/values-sw600dp/dimens.xml"
-            line="84"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.fab_elevation` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;fab_elevation&quot;>12dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="780"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.fab_press_translation_z` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;fab_press_translation_z&quot;>9dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="781"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.battery_detail_graph_space_top` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;battery_detail_graph_space_top&quot;>27dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="789"
-            column="12"/>
-        <location
-            file="res/values-land/dimens.xml"
-            line="30"
-            column="12"/>
-        <location
-            file="res/values-sw600dp-land/dimens.xml"
-            line="37"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.battery_detail_graph_space_bottom` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;battery_detail_graph_space_bottom&quot;>27dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="790"
-            column="12"/>
-        <location
-            file="res/values-land/dimens.xml"
-            line="31"
-            column="12"/>
-        <location
-            file="res/values-sw600dp-land/dimens.xml"
-            line="38"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.recents_layout_side_margin_tablet_docked` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;recents_layout_side_margin_tablet_docked&quot;>16dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="810"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.recents_layout_side_margin_tablet_xlarge_docked` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;recents_layout_side_margin_tablet_xlarge_docked&quot;>16dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="812"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.recents_freeform_layout_bottom_margin` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;recents_freeform_layout_bottom_margin&quot;>16dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="836"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.recents_freeform_layout_task_padding` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;recents_freeform_layout_task_padding&quot;>8dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="839"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.recents_task_affiliation_color_min_alpha_percentage` appears to be unused"
-        errorLine1="    &lt;item name=&quot;recents_task_affiliation_color_min_alpha_percentage&quot; format=&quot;float&quot; type=&quot;dimen&quot;>0.6&lt;/item>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="876"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.recents_task_view_remove_anim_translation_x` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;recents_task_view_remove_anim_translation_x&quot;>100dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="885"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.recents_recents_row_dim_alpha` appears to be unused"
-        errorLine1="    &lt;item name=&quot;recents_recents_row_dim_alpha&quot; format=&quot;float&quot; type=&quot;dimen&quot;>0.5&lt;/item>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="888"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.cell_overlay_padding` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;cell_overlay_padding&quot;>18dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="921"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.top_padding` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;top_padding&quot;>0dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="944"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.bottom_padding` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;bottom_padding&quot;>48dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="945"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.wireless_charging_dots_radius_start` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;wireless_charging_dots_radius_start&quot;>0dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="988"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.wireless_charging_dots_radius_end` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;wireless_charging_dots_radius_end&quot;>4dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="989"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.wireless_charging_circle_radius_start` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;wireless_charging_circle_radius_start&quot;>28dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="990"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.wireless_charging_circle_radius_end` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;wireless_charging_circle_radius_end&quot;>84dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="991"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.wireless_charging_angle_offset` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;wireless_charging_angle_offset&quot;>20&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="992"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.wireless_charging_scale_dots_duration` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;wireless_charging_scale_dots_duration&quot;>83&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="993"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.wireless_charging_num_dots` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;wireless_charging_num_dots&quot;>16&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="994"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.logout_button_layout_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;logout_button_layout_height&quot;>32dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="1018"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.logout_button_padding_horizontal` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;logout_button_padding_horizontal&quot;>16dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="1019"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.logout_button_margin_bottom` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;logout_button_margin_bottom&quot;>12dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="1020"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.logout_button_corner_radius` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;logout_button_corner_radius&quot;>2dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens.xml"
-            line="1021"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.car_navigation_button_width` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;car_navigation_button_width&quot;>64dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens_car.xml"
-            line="26"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.car_navigation_bar_width` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;car_navigation_bar_width&quot;>760dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens_car.xml"
-            line="27"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.car_user_switcher_container_anim_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;car_user_switcher_container_anim_height&quot;>-420dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens_car.xml"
-            line="44"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.recents_grid_padding_left_right` appears to be unused"
-        errorLine1="  &lt;dimen name=&quot;recents_grid_padding_left_right&quot;>32dp&lt;/dimen>"
-        errorLine2="         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens_grid.xml"
-            line="19"
-            column="10"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.recents_grid_padding_top_bottom` appears to be unused"
-        errorLine1="  &lt;dimen name=&quot;recents_grid_padding_top_bottom&quot;>150dp&lt;/dimen>"
-        errorLine2="         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/dimens_grid.xml"
-            line="20"
-            column="10"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.dismiss_all_shape` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/dismiss_all_shape.xml"
-            line="1"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.dismiss_all_shape_animation` appears to be unused"
-        errorLine1="&lt;animated-vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/dismiss_all_shape_animation.xml"
-            line="1"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.dismiss_all_shape_animation_1` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; >"
-        errorLine2="^">
-        <location
-            file="res/anim/dismiss_all_shape_animation_1.xml"
-            line="15"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.dismiss_all_shape_animation_2` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; >"
-        errorLine2="^">
-        <location
-            file="res/anim/dismiss_all_shape_animation_2.xml"
-            line="15"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.dismiss_all_shape_animation_3` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; >"
-        errorLine2="^">
-        <location
-            file="res/anim/dismiss_all_shape_animation_3.xml"
-            line="15"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.dismiss_all_shape_animation_rectangle_path_1` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; >"
-        errorLine2="^">
-        <location
-            file="res/anim/dismiss_all_shape_animation_rectangle_path_1.xml"
-            line="15"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.dismiss_all_shape_animation_rectangle_path_1_1` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; >"
-        errorLine2="^">
-        <location
-            file="res/anim/dismiss_all_shape_animation_rectangle_path_1_1.xml"
-            line="15"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.dismiss_all_shape_animation_rectangle_path_1_2` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; >"
-        errorLine2="^">
-        <location
-            file="res/anim/dismiss_all_shape_animation_rectangle_path_1_2.xml"
-            line="15"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.divider` appears to be unused"
-        errorLine1="&lt;View xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/layout/divider.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.fab_elevation` appears to be unused"
-        errorLine1="&lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/anim/fab_elevation.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.fingerprint_icon` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/fingerprint_icon.xml"
-            line="18"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.header_dot` appears to be unused"
-        errorLine1="&lt;shape"
-        errorLine2="^">
-        <location
-            file="res/drawable/header_dot.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.horizontal_divider` appears to be unused"
-        errorLine1="&lt;View"
-        errorLine2="^">
-        <location
-            file="res/layout/horizontal_divider.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_access_alarms_small` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_access_alarms_small.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_android` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_android.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_aod_charging_24dp` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_aod_charging_24dp.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_cancel_white_24dp` appears to be unused">
-        <location
-            file="res/drawable-hdpi/ic_cancel_white_24dp.png"/>
-        <location
-            file="res/drawable-mdpi/ic_cancel_white_24dp.png"/>
-        <location
-            file="res/drawable-xhdpi/ic_cancel_white_24dp.png"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_cast` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_cast.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_chevron_left` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_chevron_left.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_chevron_up` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_chevron_up.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_close` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_close.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_data_off` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_data_off.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_data_on` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_data_on.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_data_unavailable` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_data_unavailable.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.mipmap.ic_daydreams` appears to be unused">
-        <location
-            file="res/mipmap-hdpi/ic_daydreams.png"/>
-        <location
-            file="res/mipmap-mdpi/ic_daydreams.png"/>
-        <location
-            file="res/mipmap-xhdpi/ic_daydreams.png"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_delete` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_delete.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_dismiss_outline` appears to be unused">
-        <location
-            file="res/drawable-hdpi/ic_dismiss_outline.png"/>
-        <location
-            file="res/drawable-mdpi/ic_dismiss_outline.png"/>
-        <location
-            file="res/drawable-xhdpi/ic_dismiss_outline.png"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_drag_handle` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_drag_handle.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_expand_less` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_expand_less.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_expand_more` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_expand_more.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_history` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_history.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_hotspot_unavailable` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_hotspot_unavailable.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_invert_colors` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_invert_colors.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_landscape_to_rotate_animation_interpolator_0` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_landscape_to_rotate_animation_interpolator_0.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_landscape_to_rotate_arrows_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_landscape_to_rotate_arrows_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_landscape_to_rotate_bottom_merged_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_landscape_to_rotate_bottom_merged_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_landscape_to_rotate_landscape_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_landscape_to_rotate_landscape_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_lock_to_app_24dp` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_lock_to_app_24dp.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_notify_button_bg` appears to be unused"
-        errorLine1="&lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_notify_button_bg.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_person` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_person.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_portrait_to_rotate_arrows_0_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_portrait_to_rotate_arrows_0_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_portrait_to_rotate_arrows_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_portrait_to_rotate_arrows_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_portrait_to_rotate_bottom_merged_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_portrait_to_rotate_bottom_merged_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_portrait_to_rotate_device_0_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_portrait_to_rotate_device_0_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_portrait_to_rotate_device_merged_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_portrait_to_rotate_device_merged_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_qs_back` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_qs_back.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_qs_battery_saver` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_qs_battery_saver.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_qs_lock` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_qs_lock.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_qs_lock_open` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_qs_lock_open.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_qs_network_logging` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_qs_network_logging.xml"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_qs_ringer_audible` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_qs_ringer_audible.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_qs_ringer_silent` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_qs_ringer_silent.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_qs_ringer_vibrate` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_qs_ringer_vibrate.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_rotate_to_landscape_animation_interpolator_0` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_rotate_to_landscape_animation_interpolator_0.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_rotate_to_landscape_arrows_0_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_rotate_to_landscape_arrows_0_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_rotate_to_landscape_arrows_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_rotate_to_landscape_arrows_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_rotate_to_landscape_bottom_merged_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_rotate_to_landscape_bottom_merged_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_rotate_to_landscape_landscape_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_rotate_to_landscape_landscape_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_rotate_to_portrait_animation_interpolator_0` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_rotate_to_portrait_animation_interpolator_0.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_rotate_to_portrait_arrows_0_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_rotate_to_portrait_arrows_0_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_rotate_to_portrait_arrows_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_rotate_to_portrait_arrows_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_rotate_to_portrait_bottom_merged_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_rotate_to_portrait_bottom_merged_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_rotate_to_portrait_device_0_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_rotate_to_portrait_device_0_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_rotate_to_portrait_device_merged_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_rotate_to_portrait_device_merged_animation.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_blink_1` appears to be unused"
-        errorLine1="&lt;objectAnimator xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_blink_1.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_blink_2` appears to be unused"
-        errorLine1="&lt;objectAnimator xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_blink_2.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_blink_3` appears to be unused"
-        errorLine1="&lt;objectAnimator xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_blink_3.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_signal_workmode_disable_animation` appears to be unused"
-        errorLine1="&lt;animated-vector"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_signal_workmode_disable_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_disable_animation_interpolator_0` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_disable_animation_interpolator_0.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_disable_animation_interpolator_1` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_disable_animation_interpolator_1.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_disable_animation_interpolator_2` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_disable_animation_interpolator_2.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_disable_animation_interpolator_3` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_disable_animation_interpolator_3.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_disable_animation_interpolator_4` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_disable_animation_interpolator_4.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_disable_animation_interpolator_5` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_disable_animation_interpolator_5.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_disable_cross_1_pathdata_interpolator` appears to be unused"
-        errorLine1="&lt;pathInterpolator xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_disable_cross_1_pathdata_interpolator.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_disable_left_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_disable_left_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_disable_mask_1_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_disable_mask_1_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_disable_rectangle_path_3_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_disable_rectangle_path_3_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_disable_rectangle_path_3_position_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_disable_rectangle_path_3_position_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_disable_rectangle_path_4_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_disable_rectangle_path_4_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_disable_rectangle_path_4_position_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_disable_rectangle_path_4_position_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_disable_right_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_disable_right_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_disable_stick_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_disable_stick_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_disable_stickito_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_disable_stickito_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_disable_whole_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_disable_whole_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_signal_workmode_enable` appears to be unused"
-        errorLine1="&lt;vector"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_signal_workmode_enable.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_signal_workmode_enable_animation` appears to be unused"
-        errorLine1="&lt;animated-vector"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_signal_workmode_enable_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_animation_cross_1` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; >"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_animation_cross_1.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_animation_ic_signal_briefcase` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; >"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_animation_ic_signal_briefcase.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_enable_animation_interpolator_0` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_enable_animation_interpolator_0.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_enable_animation_interpolator_1` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_enable_animation_interpolator_1.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_enable_animation_interpolator_2` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_enable_animation_interpolator_2.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_enable_animation_interpolator_3` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_enable_animation_interpolator_3.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_enable_animation_interpolator_4` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_enable_animation_interpolator_4.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_enable_animation_interpolator_5` appears to be unused"
-        errorLine1="&lt;pathInterpolator"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_enable_animation_interpolator_5.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_animation_mask` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; >"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_animation_mask.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_enable_cross_1_pathdata_interpolator` appears to be unused"
-        errorLine1="&lt;pathInterpolator xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_enable_cross_1_pathdata_interpolator.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_left_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_left_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_mask_1_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_mask_1_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.interpolator.ic_signal_workmode_enable_mask_pathdata_interpolator` appears to be unused"
-        errorLine1="&lt;pathInterpolator xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/interpolator/ic_signal_workmode_enable_mask_pathdata_interpolator.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_rectangle_path_3_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_rectangle_path_3_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_rectangle_path_3_position_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_rectangle_path_3_position_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_rectangle_path_4_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_rectangle_path_4_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_rectangle_path_4_position_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_rectangle_path_4_position_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_right_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_right_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_stick_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_stick_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_stickito_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_stickito_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.ic_signal_workmode_enable_whole_animation` appears to be unused"
-        errorLine1="&lt;set"
-        errorLine2="^">
-        <location
-            file="res/anim/ic_signal_workmode_enable_whole_animation.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_sim` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_sim.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_speaker` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_speaker.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_speaker_group` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_speaker_group.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_swap` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_swap.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_sysbar_back_light_old` appears to be unused">
-        <location
-            file="res/drawable-sw900dp-xxhdpi/ic_sysbar_back_light_old.png"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_sysbar_lights_out_dot_large` appears to be unused">
-        <location
-            file="res/drawable-hdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-mdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-sw600dp-xhdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-sw600dp-xxhdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-xhdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-xxhdpi/ic_sysbar_lights_out_dot_large.png"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_tv` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_tv.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_width` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_width.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_zen_all` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_zen_all.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_zen_important` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_zen_important.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.ic_zen_none` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/ic_zen_none.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.integer.car_user_switcher_anim_cascade_delay_ms` appears to be unused"
-        errorLine1="    &lt;integer name=&quot;car_user_switcher_anim_cascade_delay_ms&quot;>27&lt;/integer>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/integers_car.xml"
-            line="19"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.navigation_bar_height` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;navigation_bar_height&quot;>@*android:dimen/navigation_bar_height&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/internal.xml"
-            line="19"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.navigation_bar_height_car_mode` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;navigation_bar_height_car_mode&quot;>@*android:dimen/navigation_bar_height_car_mode&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/internal.xml"
-            line="20"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.keyguard_overflow_number_background` appears to be unused"
-        errorLine1="&lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/keyguard_overflow_number_background.xml"
-            line="18"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.logout_button_background` appears to be unused"
-        errorLine1="&lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/logout_button_background.xml"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.dimen.moon_size` appears to be unused"
-        errorLine1="    &lt;dimen name=&quot;moon_size&quot;>30dp&lt;/dimen>"
-        errorLine2="           ~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/mland_config.xml"
-            line="33"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.nav_bar_tuner_inflater` appears to be unused"
-        errorLine1="&lt;com.android.systemui.tuner.PreviewNavInflater"
-        errorLine2="^">
-        <location
-            file="res/layout/nav_bar_tuner_inflater.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.nav_control_widget` appears to be unused"
-        errorLine1="&lt;LinearLayout"
-        errorLine2="^">
-        <location
-            file="res/layout/nav_control_widget.xml"
-            line="18"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.nav_width_view` appears to be unused"
-        errorLine1="&lt;SeekBar"
-        errorLine2="^">
-        <location
-            file="res/layout/nav_width_view.xml"
-            line="20"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.navigation_bar_app_item` appears to be unused"
-        errorLine1="&lt;ImageView xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/layout/navigation_bar_app_item.xml"
-            line="21"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.notification_expand_more` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/notification_expand_more.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.notification_guts_buttons` appears to be unused"
-        errorLine1="&lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/color/notification_guts_buttons.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.pin_delete_color` appears to be unused"
-        errorLine1="&lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/color/pin_delete_color.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.pin_divider_color` appears to be unused"
-        errorLine1="&lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/color/pin_divider_color.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.pip_dismiss` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/pip_dismiss.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.pip_notification_icon` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/pip_notification_icon.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.pop_ball` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/pop_ball.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.pop_belt` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/pop_belt.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.pop_droid` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/pop_droid.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.pop_pizza` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/pop_pizza.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.pop_stripes` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/pop_stripes.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.pop_swirl` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/pop_swirl.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.pop_vortex` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/pop_vortex.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.pop_vortex2` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/pop_vortex2.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.preference_widget_settings` appears to be unused"
-        errorLine1="&lt;LinearLayout"
-        errorLine2="^">
-        <location
-            file="res/layout/preference_widget_settings.xml"
-            line="18"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.qs_add_tiles_list` appears to be unused"
-        errorLine1="&lt;FrameLayout"
-        errorLine2="^">
-        <location
-            file="res/layout/qs_add_tiles_list.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.qs_subhead_caret` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/qs_subhead_caret.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.qs_tile_background` appears to be unused"
-        errorLine1="&lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/drawable/qs_tile_background.xml"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.qs_tile_layout` appears to be unused"
-        errorLine1="&lt;com.android.systemui.qs.TileLayout"
-        errorLine2="^">
-        <location
-            file="res/layout/qs_tile_layout.xml"
-            line="18"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.color.qs_user_detail_name` appears to be unused"
-        errorLine1="&lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/color/qs_user_detail_name.xml"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.quick_header_bg` appears to be unused"
-        errorLine1="&lt;ripple xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/quick_header_bg.xml"
-            line="18"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.recents_freeform_workspace_bg` appears to be unused"
-        errorLine1="&lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/recents_freeform_workspace_bg.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.recents_move_task_freeform_dark` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/recents_move_task_freeform_dark.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.recents_move_task_freeform_light` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/recents_move_task_freeform_light.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.recents_search_bar` appears to be unused"
-        errorLine1="&lt;FrameLayout"
-        errorLine2="^">
-        <location
-            file="res/layout/recents_search_bar.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.recents_status_gradient` appears to be unused">
-        <location
-            file="res/drawable-hdpi/recents_status_gradient.9.png"/>
-        <location
-            file="res/drawable-mdpi/recents_status_gradient.9.png"/>
-        <location
-            file="res/drawable-xhdpi/recents_status_gradient.9.png"/>
-        <location
-            file="res/drawable-xxhdpi/recents_status_gradient.9.png"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.recents_task_shadow` appears to be unused">
-        <location
-            file="res/drawable-xxhdpi/recents_task_shadow.9.png"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.recents_task_view_header_progress_bar` appears to be unused"
-        errorLine1="&lt;ProgressBar"
-        errorLine2="^">
-        <location
-            file="res/layout/recents_task_view_header_progress_bar.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.remote` appears to be unused">
-        <location
-            file="res/drawable-xhdpi/remote.png"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.scorecard_gameover` appears to be unused"
-        errorLine1="&lt;shape"
-        errorLine2="^">
-        <location
-            file="res/drawable/scorecard_gameover.xml"
-            line="2"
-            column="1"/>
-        <location
-            file="res/drawable-nodpi/scorecard_gameover.xml"
-            line="2"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.search_bg_transparent` appears to be unused">
-        <location
-            file="res/drawable-hdpi/search_bg_transparent.9.png"/>
-        <location
-            file="res/drawable-mdpi/search_bg_transparent.9.png"/>
-        <location
-            file="res/drawable-xhdpi/search_bg_transparent.9.png"/>
-        <location
-            file="res/drawable-xxhdpi/search_bg_transparent.9.png"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.search_panel_scrim` appears to be unused"
-        errorLine1="&lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
-        errorLine2="^">
-        <location
-            file="res/drawable-land/search_panel_scrim.xml"
-            line="19"
-            column="1"/>
-        <location
-            file="res/drawable-sw600dp/search_panel_scrim.xml"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.shelf_menu_anchor` appears to be unused"
-        errorLine1="&lt;FrameLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/layout/shelf_menu_anchor.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.signal_cluster_view` appears to be unused"
-        errorLine1="&lt;com.android.systemui.statusbar.SignalClusterView"
-        errorLine2="^">
-        <location
-            file="res/layout/signal_cluster_view.xml"
-            line="20"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.split_clock_view` appears to be unused"
-        errorLine1="&lt;com.android.systemui.statusbar.policy.SplitClockView"
-        errorLine2="^">
-        <location
-            file="res/layout/split_clock_view.xml"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.stat_notify_more` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/stat_notify_more.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.stat_sys_auto_rotate_landscape` appears to be unused"
-        errorLine1="&lt;inset xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/stat_sys_auto_rotate_landscape.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.stat_sys_auto_rotate_portrait` appears to be unused"
-        errorLine1="&lt;inset xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/stat_sys_auto_rotate_portrait.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.stat_sys_managed_profile_status_off` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/stat_sys_managed_profile_status_off.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.stat_sys_no_sims` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/stat_sys_no_sims.xml"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.stat_sys_signal_in` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/stat_sys_signal_in.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.stat_sys_signal_inout` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/stat_sys_signal_inout.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.stat_sys_signal_out` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/stat_sys_signal_out.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.stat_sys_wifi_in` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/stat_sys_wifi_in.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.stat_sys_wifi_inout` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/stat_sys_wifi_inout.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.stat_sys_wifi_out` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/stat_sys_wifi_out.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.status_bar_alarm_group` appears to be unused"
-        errorLine1="&lt;LinearLayout"
-        errorLine2="^">
-        <location
-            file="res/layout/status_bar_alarm_group.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.status_bar_no_recent_apps` appears to be unused"
-        errorLine1="&lt;FrameLayout"
-        errorLine2="^">
-        <location
-            file="res/layout/status_bar_no_recent_apps.xml"
-            line="20"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_clear_all_button` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_clear_all_button&quot;>Clear&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-af-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-am-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-ar-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-be-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-bg-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-ca-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-cs-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-da-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-de-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-el-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-en-rGB-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-es-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-es-rUS-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-et-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-fa-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-fi-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-fr-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-hi-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-hr-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-hu-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-in-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-it-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-iw-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-ja-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-ko-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-lt-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-lv-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-ms-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-nb-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-nl-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-pl-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-pt-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-ro-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-ru-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-sk-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-sl-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-sr-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-sv-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-sw-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-th-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-tl-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-tr-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-uk-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-vi-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW-large/strings.xml"
-            line="22"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="23"
-            column="13"/>
-        <location
-            file="res/values-zu-large/strings.xml"
-            line="22"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_recent_remove_item_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_recent_remove_item_title&quot;>Remove from list&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="28"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="24"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="24"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_recent_inspect_item_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_recent_inspect_item_title&quot;>App info&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="31"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="25"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="25"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_no_recent_apps` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_no_recent_apps&quot;>Your recent screens appear here&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="26"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="26"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_accessibility_dismiss_recents` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_accessibility_dismiss_recents&quot;>Dismiss recent apps&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="27"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="27"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.plurals.status_bar_accessibility_recent_apps` appears to be unused"
-        errorLine1="    &lt;plurals name=&quot;status_bar_accessibility_recent_apps&quot;>"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="42"
-            column="14"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="28"
-            column="14"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="28"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_no_notifications_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_no_notifications_title&quot;>No notifications&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="36"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="30"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="32"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_ongoing_events_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_ongoing_events_title&quot;>Ongoing&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="31"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="33"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="33"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_latest_events_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_latest_events_title&quot;>Notifications&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="59"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="36"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="36"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="36"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="36"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="32"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="36"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="36"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="36"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="36"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="36"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="34"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="34"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.battery_low_percent_format_hybrid` appears to be unused"
-        errorLine1="    &lt;string name=&quot;battery_low_percent_format_hybrid&quot;>&lt;xliff:g id=&quot;percentage&quot;>%1$s&lt;/xliff:g> remaining, about &lt;xliff:g id=&quot;time&quot;>%2$s&lt;/xliff:g> left based on your usage&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="35"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="37"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.battery_low_percent_format_hybrid_short` appears to be unused"
-        errorLine1="    &lt;string name=&quot;battery_low_percent_format_hybrid_short&quot;>&lt;xliff:g id=&quot;percentage&quot;>%1$s&lt;/xliff:g> remaining, about &lt;xliff:g id=&quot;time&quot;>%2$s&lt;/xliff:g> left&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="78"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="42"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="36"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="38"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.battery_low_percent_format_saver_started` appears to be unused"
-        errorLine1="    &lt;string name=&quot;battery_low_percent_format_saver_started&quot;>&lt;xliff:g id=&quot;percentage&quot;>%s&lt;/xliff:g> remaining. Battery Saver is on.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="37"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="39"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="39"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.invalid_charger` appears to be unused"
-        errorLine1="    &lt;string name=&quot;invalid_charger&quot;>Can\&apos;t charge via USB. Use the charger that came with your device.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="87"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="44"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="42"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="42"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="42"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="42"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="38"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="42"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="42"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="42"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="42"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="42"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="40"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="40"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.battery_low_why` appears to be unused"
-        errorLine1="    &lt;string name=&quot;battery_low_why&quot;>Settings&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="97"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="44"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="45"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="44"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="45"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="44"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="45"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="45"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="44"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="41"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="45"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="44"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="45"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="45"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="45"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="44"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="45"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="43"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="43"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_settings_settings_button` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_settings_settings_button&quot;>Settings&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="109"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="51"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="45"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="47"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="47"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_settings_wifi_button` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_settings_wifi_button&quot;>Wi-Fi&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="46"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="49"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="48"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_settings_mute_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_settings_mute_label&quot;>MUTE&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="51"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="51"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="51"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="51"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="48"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="51"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="51"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="50"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_settings_notifications` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_settings_notifications&quot;>Notifications&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="124"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="50"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="52"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.bluetooth_tethered` appears to be unused"
-        errorLine1="    &lt;string name=&quot;bluetooth_tethered&quot;>Bluetooth tethered&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="130"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="57"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="51"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="53"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_input_method_settings_configure_input_methods` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_input_method_settings_configure_input_methods&quot;>Set up input methods&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="58"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="52"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="54"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="54"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_use_physical_keyboard` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_use_physical_keyboard&quot;>Physical keyboard&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="59"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="57"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="57"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="57"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="57"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="53"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="57"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="57"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="57"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="57"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="56"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="57"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="55"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="55"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.compat_mode_on` appears to be unused"
-        errorLine1="    &lt;string name=&quot;compat_mode_on&quot;>Zoom to fill screen&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="74"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="68"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="70"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="70"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.compat_mode_off` appears to be unused"
-        errorLine1="    &lt;string name=&quot;compat_mode_off&quot;>Stretch to fill screen&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="185"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="75"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="69"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="72"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="71"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.screenshot_saving_ticker` appears to be unused"
-        errorLine1="    &lt;string name=&quot;screenshot_saving_ticker&quot;>Saving screenshot\u2026&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="191"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="77"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="74"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="75"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="74"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="75"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="74"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="75"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="75"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="74"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="71"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="75"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="74"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="75"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="75"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="75"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="74"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="75"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="73"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="73"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.usb_preference_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;usb_preference_title&quot;>USB file transfer options&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="79"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="81"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.use_mtp_button_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;use_mtp_button_title&quot;>Mount as a media player (MTP)&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="211"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="86"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="80"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="82"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.use_ptp_button_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;use_ptp_button_title&quot;>Mount as a camera (PTP)&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="213"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="87"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="81"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="83"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="83"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.installer_cd_button_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;installer_cd_button_title&quot;>Install Android File Transfer app for Mac&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="215"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="88"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="86"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="86"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="86"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="86"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="82"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="86"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="86"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="86"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="86"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="85"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="86"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="84"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="84"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_search_light` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_search_light&quot;>Search&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="95"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="92"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="93"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="92"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="93"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="92"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="93"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="93"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="92"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="89"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="93"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="92"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="93"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="93"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="93"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="92"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="93"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="91"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="91"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.recents_caption_resize` appears to be unused"
-        errorLine1="    &lt;string name=&quot;recents_caption_resize&quot;>Select new task layout&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="105"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="106"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="105"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="106"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="105"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="106"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="106"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="105"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="102"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="106"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="105"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="106"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="106"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="106"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="105"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="106"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="104"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="104"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_fingerprint_dialog_app_icon` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_fingerprint_dialog_app_icon&quot;>Application icon&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="109"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="109"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="109"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="109"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="106"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="109"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="109"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="108"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_compatibility_zoom_button` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_compatibility_zoom_button&quot;>Compatibility zoom button.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="108"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="110"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="110"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_compatibility_zoom_example` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_compatibility_zoom_example&quot;>Zoom smaller to larger screen.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="109"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="111"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_bluetooth_disconnected` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_bluetooth_disconnected&quot;>Bluetooth disconnected.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="111"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="113"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_no_battery` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_no_battery&quot;>No battery.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="112"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="114"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_battery_one_bar` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_one_bar&quot;>Battery one bar.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="113"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="115"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_battery_two_bars` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_two_bars&quot;>Battery two bars.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="120"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="114"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="116"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_battery_three_bars` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_three_bars&quot;>Battery three bars.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="287"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="121"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="115"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="117"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="117"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_battery_full` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_full&quot;>Battery full.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="289"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="122"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="120"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="120"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="120"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="120"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="116"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="120"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="120"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="120"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="120"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="119"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="120"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="118"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="118"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_wifi_name` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_wifi_name&quot;>Connected to &lt;xliff:g id=&quot;wifi&quot; example=&quot;Home Network&quot;>%s&lt;/xliff:g>.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="130"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="131"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="130"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="131"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="130"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="131"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="131"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="130"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="127"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="131"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="130"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="131"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="131"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="131"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="130"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="131"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="129"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="129"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_no_wimax` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_no_wimax&quot;>No WiMAX.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="324"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="130"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="132"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_wimax_one_bar` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_wimax_one_bar&quot;>WiMAX one bar.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="326"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="131"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="133"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_wimax_two_bars` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_wimax_two_bars&quot;>WiMAX two bars.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="328"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="138"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="132"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="134"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_wimax_three_bars` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_wimax_three_bars&quot;>WiMAX three bars.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="330"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="133"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="135"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="135"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_wimax_signal_full` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_wimax_signal_full&quot;>WiMAX signal full.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="332"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="140"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="138"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="138"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="138"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="138"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="134"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="138"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="138"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="138"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="138"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="138"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="136"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="136"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_no_signal` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_no_signal&quot;>No signal.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="340"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="140"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="140"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="140"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="140"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="137"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="140"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="140"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="139"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_zero_bars` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_zero_bars&quot;>Zero bars.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="344"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="139"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="141"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_one_bar` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_one_bar&quot;>One bar.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="346"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="140"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="142"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_two_bars` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_two_bars&quot;>Two bars.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="348"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="141"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="143"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_three_bars` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_three_bars&quot;>Three bars.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="350"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="142"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="144"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_signal_full` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_signal_full&quot;>Signal full.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="352"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="143"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="145"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_desc_on` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_desc_on&quot;>On.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="355"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="144"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="146"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_desc_off` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_desc_off&quot;>Off.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="357"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="145"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="147"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_desc_connected` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_desc_connected&quot;>Connected.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="152"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="146"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="148"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="148"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_desc_connecting` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_desc_connecting&quot;>Connecting.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="153"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="147"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="150"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="149"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.data_connection_hspa` appears to be unused"
-        errorLine1="    &lt;string name=&quot;data_connection_hspa&quot;>HSPA&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="155"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="152"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="153"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="152"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="153"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="152"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="153"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="153"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="152"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="149"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="153"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="152"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="153"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="153"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="153"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="152"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="153"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="151"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="151"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_data_connection_wifi` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_data_connection_wifi&quot;>Wi-Fi&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="400"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="160"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="162"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_no_sim` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_no_sim&quot;>No SIM.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="403"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="167"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="161"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="163"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_cell_data` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_cell_data&quot;>Mobile Data&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="162"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="164"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="164"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_cell_data_on` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_cell_data_on&quot;>Mobile Data On&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="169"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="167"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="167"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="167"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="167"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="163"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="167"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="167"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="167"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="167"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="167"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="165"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="165"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_bluetooth_tether` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_bluetooth_tether&quot;>Bluetooth tethering.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="418"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="169"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="169"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="169"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="169"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="166"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="169"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="169"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="168"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_vpn_on` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_vpn_on&quot;>VPN on.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="174"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="168"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="170"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="170"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_no_sims` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_no_sims&quot;>No SIM card.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="175"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="169"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="172"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="171"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_battery_details` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_battery_details&quot;>Open battery details&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="433"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="174"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="175"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="174"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="175"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="174"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="175"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="175"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="174"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="171"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="175"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="174"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="175"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="175"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="175"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="174"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="175"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="173"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="173"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_settings_button` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_settings_button&quot;>System settings.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="442"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="174"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="176"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="176"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_notifications_button` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_notifications_button&quot;>Notifications.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="175"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="177"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_remove_notification` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_remove_notification&quot;>Clear notification.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="451"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="177"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="179"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_gps_enabled` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_gps_enabled&quot;>GPS enabled.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="454"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="184"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="184"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="184"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="184"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="178"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="184"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="184"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="184"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="184"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="180"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="180"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_gps_acquiring` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_gps_acquiring&quot;>GPS acquiring.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="457"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="185"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="185"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="185"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="185"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="179"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="184"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="185"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="185"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="185"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="182"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="185"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="183"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="181"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="181"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_work_mode` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_work_mode&quot;>@string/quick_settings_work_mode_label&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="472"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_recents_item_launched` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_recents_item_launched&quot;>Starting &lt;xliff:g id=&quot;app&quot; example=&quot;Calendar&quot;>%s&lt;/xliff:g>.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="197"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="197"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="197"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="197"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="191"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="197"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="197"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="197"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="197"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="193"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="193"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_notification_dismissed` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_notification_dismissed&quot;>Notification dismissed.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="192"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="197"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="195"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="194"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="194"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_desc_settings` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_desc_settings&quot;>Settings&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="199"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="199"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="199"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="199"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="196"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="201"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="199"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="198"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="198"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_wifi` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_wifi&quot;>&lt;xliff:g id=&quot;signal&quot; example=&quot;Three bars&quot;>%1$s&lt;/xliff:g>.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="203"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="203"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="203"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="203"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="200"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="203"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="202"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="202"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_mobile` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_mobile&quot;>Mobile &lt;xliff:g id=&quot;signal&quot; example=&quot;Three bars&quot;>%1$s&lt;/xliff:g>. &lt;xliff:g id=&quot;type&quot; example=&quot;4G&quot;>%2$s&lt;/xliff:g>. &lt;xliff:g id=&quot;network&quot; example=&quot;T-Mobile&quot;>%3$s&lt;/xliff:g>.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="203"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="205"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_battery` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_battery&quot;>Battery &lt;xliff:g id=&quot;state&quot; example=&quot;50% charging&quot;>%s&lt;/xliff:g>.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="204"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="206"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_airplane_off` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_airplane_off&quot;>Airplane mode off.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="211"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="211"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="211"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="211"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="205"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="211"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="211"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="211"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="211"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="207"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="207"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_airplane_on` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_airplane_on&quot;>Airplane mode on.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="212"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="212"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="212"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="212"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="206"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="211"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="212"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="212"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="212"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="209"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="212"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="210"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="208"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="208"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_bluetooth_off` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_bluetooth_off&quot;>Bluetooth off.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="533"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="218"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="218"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="218"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="218"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="215"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="218"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="217"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_bluetooth_connecting` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_bluetooth_connecting&quot;>Bluetooth connecting.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="223"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="223"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="223"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="223"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="217"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="223"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="223"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="223"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="223"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="219"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="219"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_bluetooth_connected` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_bluetooth_connected&quot;>Bluetooth connected.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="224"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="224"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="224"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="224"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="218"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="223"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="224"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="224"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="224"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="221"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="224"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="222"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="220"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="220"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_close` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_close&quot;>Close panel.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="229"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="229"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="229"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="229"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="226"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="229"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="230"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="228"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="228"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_flashlight_off` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_flashlight_off&quot;>Flashlight off.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="229"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="234"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="232"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="231"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_flashlight_on` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_flashlight_on&quot;>Flashlight on.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="237"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="234"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="237"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="234"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="237"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="237"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="234"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="234"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="231"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="236"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="237"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="237"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="237"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="234"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="237"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="235"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="233"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="233"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_ambient_display_charging` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_ambient_display_charging&quot;>Charging&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="246"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="248"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.data_usage_disabled_dialog_3g_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;data_usage_disabled_dialog_3g_title&quot;>2G-3G data is paused&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="253"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="253"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="253"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="253"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="247"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="253"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="253"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="253"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="253"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="249"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="249"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.data_usage_disabled_dialog_4g_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;data_usage_disabled_dialog_4g_title&quot;>4G data is paused&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="254"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="254"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="254"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="254"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="248"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="253"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="254"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="254"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="254"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="251"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="254"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="252"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="250"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="250"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.gps_notification_searching_text` appears to be unused"
-        errorLine1="    &lt;string name=&quot;gps_notification_searching_text&quot;>Searching for GPS&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="613"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="259"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="259"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="259"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="259"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="253"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="259"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="259"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="259"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="259"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="255"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="255"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.gps_notification_found_text` appears to be unused"
-        errorLine1="    &lt;string name=&quot;gps_notification_found_text&quot;>Location set by GPS&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="616"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="260"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="260"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="260"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="260"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="254"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="259"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="260"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="260"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="260"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="257"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="260"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="258"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="256"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="256"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_notification_inspect_item_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_notification_inspect_item_title&quot;>Notification settings&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="637"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="263"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="265"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.status_bar_notification_app_settings_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;status_bar_notification_app_settings_title&quot;>&lt;xliff:g id=&quot;app_name&quot; example=&quot;Calendar&quot;>%s&lt;/xliff:g> settings&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="641"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="264"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="266"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="266"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_rotation_lock_off` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_rotation_lock_off&quot;>Screen will rotate automatically.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="644"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="265"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="267"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="267"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_rotation_lock_off_changed` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_rotation_lock_off_changed&quot;>Screen will now rotate automatically.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="653"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="276"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="276"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="268"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="276"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="276"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="276"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="276"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="270"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_rotation_lock_on_landscape_changed` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_rotation_lock_on_landscape_changed&quot;>Screen is now locked in landscape orientation.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="656"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="269"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="271"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="271"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_rotation_lock_on_portrait_changed` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_rotation_lock_on_portrait_changed&quot;>Screen is now locked in portrait orientation.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="659"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="276"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="276"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="276"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="270"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="276"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="276"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="274"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="272"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="272"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.ethernet_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;ethernet_label&quot;>Ethernet&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="668"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="273"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="275"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="275"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_dnd_priority_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_dnd_priority_label&quot;>Priority only&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="675"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="286"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="276"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="278"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_dnd_alarms_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_dnd_alarms_label&quot;>Alarms only&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="677"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="287"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="277"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="279"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="279"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_dnd_none_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_dnd_none_label&quot;>Total silence&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="679"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="288"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="286"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="286"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="278"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="286"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="286"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="286"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="286"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="280"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_bluetooth_multiple_devices_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_bluetooth_multiple_devices_label&quot;>Bluetooth (&lt;xliff:g id=&quot;number&quot;>%d&lt;/xliff:g> Devices)&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="683"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="288"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="288"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="286"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="286"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="286"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="280"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="286"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="286"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="288"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="288"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="288"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="288"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="284"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="282"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="282"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_bluetooth_off_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_bluetooth_off_label&quot;>Bluetooth Off&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="685"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="291"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="289"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="289"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="287"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="287"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="287"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="281"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="287"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="287"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="289"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="289"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="289"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="289"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="285"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="283"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="283"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_brightness_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_brightness_label&quot;>Brightness&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="288"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="290"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="290"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_rotation_value` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_rotation_value&quot;>&lt;xliff:g name=&quot;rotation&quot; example=&quot;Portrait&quot;>%s&lt;/xliff:g> mode&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="705"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="291"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="293"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_rotation_locked_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_rotation_locked_label&quot;>Rotation locked&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="707"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="292"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="294"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_rotation_locked_portrait_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_rotation_locked_portrait_label&quot;>Portrait&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="709"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="293"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="295"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_rotation_locked_landscape_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_rotation_locked_landscape_label&quot;>Landscape&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="294"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="296"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="296"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_ime_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_ime_label&quot;>Input Method&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="295"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="297"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_location_off_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_location_off_label&quot;>Location Off&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="717"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="297"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="299"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_media_device_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_media_device_label&quot;>Media device&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="719"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="298"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="300"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_rssi_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_rssi_label&quot;>RSSI&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="721"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="299"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="301"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_rssi_emergency_only` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_rssi_emergency_only&quot;>Emergency Calls Only&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="723"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="300"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="302"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_settings_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_settings_label&quot;>Settings&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="301"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="303"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_time_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_time_label&quot;>Time&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="302"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="306"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="304"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="304"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_user_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_user_label&quot;>Me&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="303"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="305"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_user_new_user` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_user_new_user&quot;>New user&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="733"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="315"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="305"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="307"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_wifi_not_connected` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_wifi_not_connected&quot;>Not Connected&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="737"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="317"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="315"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="315"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="307"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="315"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="315"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="315"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="315"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="309"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_wifi_no_network` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_wifi_no_network&quot;>No Network&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="739"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="316"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="316"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="308"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="316"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="316"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="316"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="316"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="310"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_wifi_off_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_wifi_off_label&quot;>Wi-Fi Off&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="741"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="319"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="317"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="317"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="315"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="315"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="315"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="309"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="315"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="315"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="317"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="317"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="317"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="317"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="313"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="311"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="311"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_wifi_on_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_wifi_on_label&quot;>Wi-Fi On&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="743"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="316"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="316"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="316"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="310"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="316"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="316"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="314"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="312"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="312"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_cast_device_default_description` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_cast_device_default_description&quot;>Ready to cast&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="755"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="326"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="324"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="324"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="322"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="322"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="322"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="316"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="322"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="322"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="324"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="324"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="324"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="324"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="320"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="318"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="318"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_brightness_dialog_auto_brightness_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_brightness_dialog_auto_brightness_label&quot;>AUTO&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="761"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="327"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="327"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="319"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="327"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="327"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="327"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="327"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="321"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_color_space_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_color_space_label&quot;>Color correction mode&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="765"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="327"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="327"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="327"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="321"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="327"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="327"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="325"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="323"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="323"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_tethering_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_tethering_label&quot;>Tethering&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="777"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="335"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="335"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="333"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="333"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="333"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="327"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="333"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="333"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="335"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="335"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="335"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="335"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="331"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="329"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="329"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_notifications_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_notifications_label&quot;>Notifications&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="791"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="349"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="340"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="345"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="340"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="345"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="341"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="340"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="343"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="343"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="340"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="335"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="343"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="342"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="345"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="345"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="345"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="340"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="345"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="339"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="337"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="337"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.recents_search_bar_label` appears to be unused"
-        errorLine1="    &lt;string name=&quot;recents_search_bar_label&quot;>search&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="371"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="362"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="362"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="363"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="362"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="365"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="365"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="362"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="357"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="365"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="364"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="362"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="361"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="359"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="359"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.recents_multistack_add_stack_dialog_split_horizontal` appears to be unused"
-        errorLine1="    &lt;string name=&quot;recents_multistack_add_stack_dialog_split_horizontal&quot;>Split Horizontal&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="855"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="372"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="372"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="364"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="372"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="371"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="366"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.recents_multistack_add_stack_dialog_split_vertical` appears to be unused"
-        errorLine1="    &lt;string name=&quot;recents_multistack_add_stack_dialog_split_vertical&quot;>Split Vertical&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="857"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="371"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="365"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="372"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="369"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="367"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="367"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.recents_multistack_add_stack_dialog_split_custom` appears to be unused"
-        errorLine1="    &lt;string name=&quot;recents_multistack_add_stack_dialog_split_custom&quot;>Split Custom&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="859"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="371"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="371"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="372"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="371"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="371"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="366"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="371"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="370"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="368"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="368"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.expanded_header_battery_charged` appears to be unused"
-        errorLine1="    &lt;string name=&quot;expanded_header_battery_charged&quot;>Charged&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="871"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="385"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="371"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="373"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.expanded_header_battery_charging` appears to be unused"
-        errorLine1="    &lt;string name=&quot;expanded_header_battery_charging&quot;>Charging&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="874"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="372"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="374"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.expanded_header_battery_charging_with_time` appears to be unused"
-        errorLine1="    &lt;string name=&quot;expanded_header_battery_charging_with_time&quot;>&lt;xliff:g id=&quot;charging_time&quot; example=&quot;2 hrs 25 min&quot;>%s&lt;/xliff:g> until full&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="877"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="373"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="375"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.expanded_header_battery_not_charging` appears to be unused"
-        errorLine1="    &lt;string name=&quot;expanded_header_battery_not_charging&quot;>Not charging&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="880"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="384"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="384"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="374"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="384"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="384"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="384"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="384"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="376"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.ssl_ca_cert_warning` appears to be unused"
-        errorLine1="    &lt;string name=&quot;ssl_ca_cert_warning&quot;>Network may\nbe monitored&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="886"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="385"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="385"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="375"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="385"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="385"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="385"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="385"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="377"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.description_target_search` appears to be unused"
-        errorLine1="    &lt;string name=&quot;description_target_search&quot;>Search&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="889"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="390"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="384"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="384"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="376"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="384"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="378"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.description_direction_up` appears to be unused"
-        errorLine1="    &lt;string name=&quot;description_direction_up&quot;>Slide up for &lt;xliff:g id=&quot;target_description&quot; example=&quot;Unlock&quot;>%s&lt;/xliff:g>.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="891"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="391"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="385"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="385"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="377"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="385"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="384"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="381"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="379"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="379"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.description_direction_left` appears to be unused"
-        errorLine1="    &lt;string name=&quot;description_direction_left&quot;>&quot;Slide left for &lt;xliff:g id=&quot;target_description&quot; example=&quot;Unlock&quot;>%s&lt;/xliff:g>.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="893"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="392"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="384"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="378"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="385"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="383"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="382"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="380"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="380"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.keyguard_more_overflow_text` appears to be unused"
-        errorLine1="    &lt;string name=&quot;keyguard_more_overflow_text&quot;>+&lt;xliff:g id=&quot;number_of_notifications&quot; example=&quot;5&quot;>%d&lt;/xliff:g>&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="911"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="398"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="394"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="394"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="390"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="392"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="392"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="384"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="392"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="391"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="394"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="394"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="394"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="394"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="388"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="386"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="386"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.speed_bump_explanation` appears to be unused"
-        errorLine1="    &lt;string name=&quot;speed_bump_explanation&quot;>Less urgent notifications below&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="914"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="399"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="390"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="395"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="390"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="395"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="391"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="390"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="393"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="393"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="390"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="385"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="393"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="392"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="395"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="395"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="395"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="390"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="395"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="389"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="387"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="387"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_multi_user_switch_switcher` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_multi_user_switch_switcher&quot;>Switch user&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="970"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="417"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="413"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="413"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="411"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="411"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="403"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="411"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="413"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="413"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="413"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="413"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="405"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_multi_user_switch_switcher_with_current` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_multi_user_switch_switcher_with_current&quot;>Switch user, current user &lt;xliff:g id=&quot;current_user_name&quot; example=&quot;John Doe&quot;>%s&lt;/xliff:g>&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="973"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="418"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="414"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="414"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="412"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="412"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="404"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="412"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="411"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="414"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="414"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="414"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="414"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="406"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_multi_user_switch_inactive` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_multi_user_switch_inactive&quot;>Current user &lt;xliff:g id=&quot;current_user_name&quot; example=&quot;John Doe&quot;>%s&lt;/xliff:g>&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="976"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="419"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="415"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="415"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="411"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="413"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="413"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="405"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="413"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="412"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="415"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="415"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="415"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="415"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="409"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="407"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="407"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_multi_user_switch_quick_contact` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_multi_user_switch_quick_contact&quot;>Show profile&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="979"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="420"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="411"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="416"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="411"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="416"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="412"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="411"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="414"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="414"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="411"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="406"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="414"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="413"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="416"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="416"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="416"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="411"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="416"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="410"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="408"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="408"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.guest_notification_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;guest_notification_title&quot;>Guest user&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1018"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="433"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="419"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="421"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.guest_notification_text` appears to be unused"
-        errorLine1="    &lt;string name=&quot;guest_notification_text&quot;>To delete apps and data, remove guest user&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1021"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="434"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="430"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="430"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="420"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="430"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="430"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="430"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="430"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="422"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.guest_notification_remove_action` appears to be unused"
-        errorLine1="    &lt;string name=&quot;guest_notification_remove_action&quot;>REMOVE GUEST&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1024"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="431"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="431"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="421"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="431"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="431"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="431"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="431"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="423"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.user_logout_notification_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;user_logout_notification_title&quot;>Logout user&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1027"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="432"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="432"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="430"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="430"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="422"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="430"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="432"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="432"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="432"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="432"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="424"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.user_logout_notification_text` appears to be unused"
-        errorLine1="    &lt;string name=&quot;user_logout_notification_text&quot;>Logout current user&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1030"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="433"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="433"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="431"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="431"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="423"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="431"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="430"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="433"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="433"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="433"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="433"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="427"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="425"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="425"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.user_logout_notification_action` appears to be unused"
-        errorLine1="    &lt;string name=&quot;user_logout_notification_action&quot;>LOGOUT USER&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1033"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="434"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="434"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="430"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="432"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="432"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="424"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="432"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="431"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="434"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="434"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="434"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="429"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="434"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="428"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="426"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="426"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.battery_saver_notification_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;battery_saver_notification_title&quot;>Battery Saver is on&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1060"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="443"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="443"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="441"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="441"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="433"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="441"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="440"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="443"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="443"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="443"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="443"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="435"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.battery_saver_notification_text` appears to be unused"
-        errorLine1="    &lt;string name=&quot;battery_saver_notification_text&quot;>Reduces performance and background data&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1063"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="444"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="444"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="440"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="442"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="442"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="434"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="442"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="441"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="444"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="444"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="444"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="444"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="438"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="436"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="436"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.battery_saver_notification_action_text` appears to be unused"
-        errorLine1="    &lt;string name=&quot;battery_saver_notification_action_text&quot;>Turn off Battery Saver&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1066"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="440"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="440"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="441"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="440"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="443"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="443"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="440"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="435"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="443"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="442"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="440"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="439"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="437"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="437"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.profile_owned_footer` appears to be unused"
-        errorLine1="    &lt;string name=&quot;profile_owned_footer&quot;>Profile may be monitored&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1090"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="457"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="453"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="453"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="451"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="451"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="443"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="451"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="450"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="453"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="453"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="453"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="453"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="445"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.vpn_footer` appears to be unused"
-        errorLine1="    &lt;string name=&quot;vpn_footer&quot;>Network may be monitored&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1093"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="458"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="454"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="454"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="450"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="452"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="452"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="444"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="452"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="451"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="454"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="454"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="454"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="454"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="448"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="446"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="446"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.branded_vpn_footer` appears to be unused"
-        errorLine1="    &lt;string name=&quot;branded_vpn_footer&quot;>Network may be monitored&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1096"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="459"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="450"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="455"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="450"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="455"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="451"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="450"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="453"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="453"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="450"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="445"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="453"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="452"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="455"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="455"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="455"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="450"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="455"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="449"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="447"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="447"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_title_profile_owned` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_title_profile_owned&quot;>Profile monitoring&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1147"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="476"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="467"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="467"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="468"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="467"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="467"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="462"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="467"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="466"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="464"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="464"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.disable_vpn` appears to be unused"
-        errorLine1="    &lt;string name=&quot;disable_vpn&quot;>Disable VPN&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1163"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="481"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="477"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="477"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="473"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="475"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="475"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="467"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="475"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="474"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="477"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="477"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="477"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="477"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="471"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="469"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="469"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.disconnect_vpn` appears to be unused"
-        errorLine1="    &lt;string name=&quot;disconnect_vpn&quot;>Disconnect VPN&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1166"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="473"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="478"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="473"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="478"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="474"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="473"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="476"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="476"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="473"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="468"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="476"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="475"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="478"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="478"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="478"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="473"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="478"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="472"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="470"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="470"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_do_header_generic` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_do_header_generic&quot;>Your device is managed by &lt;xliff:g id=&quot;device_owner_app&quot; example=&quot;Google Mobile Management&quot;>%1$s&lt;/xliff:g>.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1202"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="480"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="482"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_do_header_with_name` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_do_header_with_name&quot;>&lt;xliff:g id=&quot;organization_name&quot; example=&quot;Foo, Inc.&quot;>%1$s&lt;/xliff:g> uses &lt;xliff:g id=&quot;device_owner_app&quot; example=&quot;Google Mobile Management&quot;>%2$s&lt;/xliff:g> to manage your device.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1205"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="481"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="483"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_do_body` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_do_body&quot;>Your admin can monitor and manage settings, corporate access, apps, data associated with your device, and your device\&apos;s location information.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1208"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="482"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="484"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_do_learn_more_separator` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_do_learn_more_separator&quot;>&quot; &quot;&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1211"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="483"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="485"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_do_learn_more` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_do_learn_more&quot;>Learn more&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1214"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="484"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="486"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="486"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_do_body_vpn` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_do_body_vpn&quot;>You\&apos;re connected to &lt;xliff:g id=&quot;vpn_app&quot;>%1$s&lt;/xliff:g>, which can monitor your network activity, including emails, apps, and websites.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1217"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="485"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="487"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="487"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_ca_cert_settings_separator` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_ca_cert_settings_separator&quot;>&quot; &quot;&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1226"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="488"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="490"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_ca_cert_settings` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_ca_cert_settings&quot;>Open trusted credentials&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1229"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="489"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="491"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_network_logging` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_network_logging&quot;>Your admin has turned on network logging, which monitors traffic on your device.\n\nFor more information, contact your admin.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1232"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="490"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="492"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_vpn` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_vpn&quot;>You gave an app permission to set up a VPN connection.\n\nThis app can monitor your device and network activity, including emails, apps, and websites.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1235"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="491"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="493"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="493"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_vpn_profile_owned` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_vpn_profile_owned&quot;>Your work profile is managed by &lt;xliff:g id=&quot;organization&quot;>%1$s&lt;/xliff:g>.\n\nYour admin is capable of monitoring your network activity including emails, apps, and websites.\n\nFor more information, contact your admin.\n\nYou\&apos;re also connected to a VPN, which can monitor your network activity.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1238"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="492"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="494"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_app` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_app&quot;>You\&apos;re connected to"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1244"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="494"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="496"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_app_personal` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_app_personal&quot;>You\&apos;re connected to &lt;xliff:g id=&quot;application&quot;>%1$s&lt;/xliff:g>, which can monitor your personal network activity, including emails, apps, and websites.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1249"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="495"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="497"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.branded_monitoring_description_app_personal` appears to be unused"
-        errorLine1="    &lt;string name=&quot;branded_monitoring_description_app_personal&quot;>You\&apos;re connected to &lt;xliff:g id=&quot;application&quot;>%1$s&lt;/xliff:g>, which can monitor your personal network activity, including emails, apps, and websites.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1252"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="496"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="498"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_app_work` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_app_work&quot;>Your work profile is managed by"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1255"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="497"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="499"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.monitoring_description_app_personal_work` appears to be unused"
-        errorLine1="    &lt;string name=&quot;monitoring_description_app_personal_work&quot;>Your work profile is managed by"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1261"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="498"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="500"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.keyguard_indication_trust_granted` appears to be unused"
-        errorLine1="    &lt;string name=&quot;keyguard_indication_trust_granted&quot;>Unlocked for &lt;xliff:g id=&quot;user_name&quot; example=&quot;John Doe&quot;>%1$s&lt;/xliff:g>&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1269"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="499"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="501"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="501"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.keyguard_indication_trust_managed` appears to be unused"
-        errorLine1="    &lt;string name=&quot;keyguard_indication_trust_managed&quot;>&lt;xliff:g id=&quot;trust_agent&quot; example=&quot;Smart Lock&quot;>%1$s&lt;/xliff:g> is running&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1272"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="500"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="502"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.hidden_notifications_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;hidden_notifications_title&quot;>Get notifications faster&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1278"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="516"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="502"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="504"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.hidden_notifications_text` appears to be unused"
-        errorLine1="    &lt;string name=&quot;hidden_notifications_text&quot;>See them before you unlock&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1281"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="517"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="503"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="505"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.hidden_notifications_cancel` appears to be unused"
-        errorLine1="    &lt;string name=&quot;hidden_notifications_cancel&quot;>No thanks&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1284"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="518"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="504"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="508"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="506"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="506"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.hidden_notifications_setup` appears to be unused"
-        errorLine1="    &lt;string name=&quot;hidden_notifications_setup&quot;>Set up&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1287"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="519"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="505"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="507"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.volume_zen_end_now` appears to be unused"
-        errorLine1="    &lt;string name=&quot;volume_zen_end_now&quot;>Turn off now&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1293"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="521"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="517"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="517"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="507"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="517"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="517"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="517"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="517"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="509"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_volume_expand` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_volume_expand&quot;>Expand&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1299"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="523"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="519"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="519"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="517"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="517"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="509"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="517"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="516"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="519"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="519"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="519"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="519"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="511"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_volume_collapse` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_volume_collapse&quot;>Collapse&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1302"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="524"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="520"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="520"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="516"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="518"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="518"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="510"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="518"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="517"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="520"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="520"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="520"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="520"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="514"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="512"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="512"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_output_chooser` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_output_chooser&quot;>Switch output device&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1305"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="516"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="521"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="516"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="521"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="517"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="516"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="519"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="519"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="516"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="511"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="519"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="518"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="521"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="521"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="521"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="516"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="521"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="515"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="513"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="513"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_reset_confirmation_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_reset_confirmation_title&quot;>Hide &lt;xliff:g id=&quot;tile_label&quot; example=&quot;Hotspot&quot;>%1$s&lt;/xliff:g>?&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1330"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="533"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="533"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="531"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="531"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="523"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="531"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="530"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="533"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="533"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="533"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="533"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="525"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_reset_confirmation_message` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_reset_confirmation_message&quot;>It will reappear the next time you turn it on in settings.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1333"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="538"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="534"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="534"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="530"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="532"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="532"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="524"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="532"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="531"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="534"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="534"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="534"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="534"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="528"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="526"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="526"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings_reset_confirmation_button` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings_reset_confirmation_button&quot;>Hide&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1336"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="530"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="535"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="530"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="535"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="531"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="530"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="533"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="533"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="530"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="525"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="533"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="532"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="535"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="535"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="535"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="530"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="535"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="529"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="527"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="527"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.ring_toggle_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;ring_toggle_title&quot;>Calls&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1351"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="549"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="540"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="545"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="540"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="545"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="541"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="540"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="543"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="543"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="540"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="535"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="543"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="542"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="545"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="545"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="545"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="540"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="545"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="539"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="537"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="537"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.volume_stream_muted` appears to be unused"
-        errorLine1="    &lt;string name=&quot;volume_stream_muted&quot; translatable=&quot;false&quot;>%s silent&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1361"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.volume_stream_vibrate` appears to be unused"
-        errorLine1="    &lt;string name=&quot;volume_stream_vibrate&quot; translatable=&quot;false&quot;>%s vibrate&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1362"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.volume_stream_suppressed` appears to be unused"
-        errorLine1="    &lt;string name=&quot;volume_stream_suppressed&quot; translatable=&quot;false&quot;>%1$s silent — %2$s&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1363"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.volume_stream_muted_dnd` appears to be unused"
-        errorLine1="    &lt;string name=&quot;volume_stream_muted_dnd&quot; translatable=&quot;false&quot;>%s silent — Total silence&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1364"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.volume_stream_limited_dnd` appears to be unused"
-        errorLine1="    &lt;string name=&quot;volume_stream_limited_dnd&quot; translatable=&quot;false&quot;>%s — Priority only&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1365"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.volume_stream_vibrate_dnd` appears to be unused"
-        errorLine1="    &lt;string name=&quot;volume_stream_vibrate_dnd&quot; translatable=&quot;false&quot;>%s vibrate — Priority only&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1366"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.output_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;output_title&quot;>Media output&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1385"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="551"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="553"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.output_calls_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;output_calls_title&quot;>Phone call output&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1386"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="552"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="554"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.output_none_found` appears to be unused"
-        errorLine1="    &lt;string name=&quot;output_none_found&quot;>No devices found&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1387"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="553"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="555"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.output_none_found_service_off` appears to be unused"
-        errorLine1="    &lt;string name=&quot;output_none_found_service_off&quot;>No devices found. Try turning on &lt;xliff:g id=&quot;service&quot; example=&quot;Bluetooth&quot;>%1$s&lt;/xliff:g>&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1388"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="568"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="554"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="556"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.output_service_bt` appears to be unused"
-        errorLine1="    &lt;string name=&quot;output_service_bt&quot;>Bluetooth&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1389"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="569"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="555"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="557"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.output_service_wifi` appears to be unused"
-        errorLine1="    &lt;string name=&quot;output_service_wifi&quot;>Wi-Fi&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1390"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="570"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="556"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="558"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="558"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.output_service_bt_wifi` appears to be unused"
-        errorLine1="    &lt;string name=&quot;output_service_bt_wifi&quot;>Bluetooth and Wi-Fi&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1391"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="571"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="557"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="559"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.show_battery_percentage` appears to be unused"
-        errorLine1="    &lt;string name=&quot;show_battery_percentage&quot;>Show embedded battery percentage&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1397"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="569"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="569"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="559"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="569"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="569"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="569"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="569"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="561"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.show_battery_percentage_summary` appears to be unused"
-        errorLine1="    &lt;string name=&quot;show_battery_percentage_summary&quot;>Show battery level percentage inside the status bar icon when not charging&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1400"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="570"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="570"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="568"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="568"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="560"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="568"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="570"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="570"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="570"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="570"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="564"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="562"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="562"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.quick_settings` appears to be unused"
-        errorLine1="    &lt;string name=&quot;quick_settings&quot;>Quick Settings&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1403"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="571"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="568"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="571"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="569"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="569"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="561"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="569"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="568"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="571"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="571"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="571"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="566"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="571"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="563"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.overview` appears to be unused"
-        errorLine1="    &lt;string name=&quot;overview&quot;>Overview&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1409"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="577"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="568"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="570"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="569"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="568"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="571"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="571"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="568"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="563"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="571"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="570"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="568"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="567"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="565"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="565"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.add_tile` appears to be unused"
-        errorLine1="    &lt;string name=&quot;add_tile&quot;>Add tile&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1433"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="585"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="581"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="578"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="581"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="577"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="579"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="579"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="571"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="579"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="578"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="581"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="581"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="581"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="581"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="575"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="573"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="573"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.broadcast_tile` appears to be unused"
-        errorLine1="    &lt;string name=&quot;broadcast_tile&quot;>Broadcast Tile&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1436"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="586"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="577"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="582"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="579"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="582"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="578"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="577"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="580"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="580"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="577"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="572"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="580"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="579"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="582"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="582"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="582"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="577"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="582"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="576"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="574"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="574"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.regrettable_lack_of_easter_egg` appears to be unused"
-        errorLine1="    &lt;string name=&quot;regrettable_lack_of_easter_egg&quot;>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1439"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.activity_not_found` appears to be unused"
-        errorLine1="    &lt;string name=&quot;activity_not_found&quot;>Application is not installed on your device&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1486"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="587"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="589"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.clock_seconds` appears to be unused"
-        errorLine1="    &lt;string name=&quot;clock_seconds&quot;>Show clock seconds&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1489"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="588"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="590"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.clock_seconds_desc` appears to be unused"
-        errorLine1="    &lt;string name=&quot;clock_seconds_desc&quot;>Show clock seconds in the status bar. May impact battery life.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1491"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="589"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="591"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.qs_rearrange` appears to be unused"
-        errorLine1="    &lt;string name=&quot;qs_rearrange&quot;>Rearrange Quick Settings&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1494"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="590"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="592"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.show_brightness` appears to be unused"
-        errorLine1="    &lt;string name=&quot;show_brightness&quot;>Show brightness in Quick Settings&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1496"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="591"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="595"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="593"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="593"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.qs_paging` appears to be unused"
-        errorLine1="    &lt;string name=&quot;qs_paging&quot; translatable=&quot;false&quot;>Use the new Quick Settings&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1498"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.experimental` appears to be unused"
-        errorLine1="    &lt;string name=&quot;experimental&quot;>Experimental&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1502"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="592"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="594"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="594"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.qs_customize` appears to be unused"
-        errorLine1="    &lt;string name=&quot;qs_customize&quot; translatable=&quot;false&quot;>Allow long-press customize in Quick Settings&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1504"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.qs_customize_info` appears to be unused"
-        errorLine1="    &lt;string name=&quot;qs_customize_info&quot; translatable=&quot;false&quot;>Info&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1505"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.qs_customize_remove` appears to be unused"
-        errorLine1="    &lt;string name=&quot;qs_customize_remove&quot; translatable=&quot;false&quot;>Remove&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1506"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.no_tiles_add` appears to be unused"
-        errorLine1="    &lt;string name=&quot;no_tiles_add&quot; translatable=&quot;false&quot;>No tiles to add&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1507"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.show_silently` appears to be unused"
-        errorLine1="    &lt;string name=&quot;show_silently&quot;>Show notifications silently&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1520"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="610"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="596"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="598"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.block` appears to be unused"
-        errorLine1="    &lt;string name=&quot;block&quot;>Block all notifications&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1522"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="611"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="597"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="599"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.do_not_silence` appears to be unused"
-        errorLine1="    &lt;string name=&quot;do_not_silence&quot;>Don\&apos;t silence&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1524"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="612"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="598"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="600"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="600"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.do_not_silence_block` appears to be unused"
-        errorLine1="    &lt;string name=&quot;do_not_silence_block&quot;>Don\&apos;t silence or block&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1526"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="613"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="599"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="601"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.tuner_full_importance_settings_on` appears to be unused"
-        errorLine1="    &lt;string name=&quot;tuner_full_importance_settings_on&quot;>On&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1530"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="615"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="611"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="611"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="601"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="611"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="611"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="611"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="611"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="605"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="603"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="603"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.tuner_full_importance_settings_off` appears to be unused"
-        errorLine1="    &lt;string name=&quot;tuner_full_importance_settings_off&quot;>Off&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1531"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="616"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="612"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="612"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="610"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="610"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="602"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="610"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="612"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="612"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="612"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="607"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="612"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="604"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.notification_header_default_channel` appears to be unused"
-        errorLine1="    &lt;string name=&quot;notification_header_default_channel&quot;>Notifications&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1558"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="618"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="614"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="611"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="614"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="610"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="612"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="612"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="604"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="612"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="611"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="614"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="614"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="614"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="609"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="614"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="608"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="606"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="606"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.notification_channel_switch_accessibility` appears to be unused"
-        errorLine1="    &lt;string name=&quot;notification_channel_switch_accessibility&quot;>Allow notifications from this channel&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1614"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="639"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="635"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="635"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="631"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="633"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="633"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="625"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="633"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="635"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="635"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="635"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="635"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="629"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="627"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="627"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.notification_done` appears to be unused"
-        errorLine1="    &lt;string name=&quot;notification_done&quot;>Done&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1622"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="642"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="633"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="638"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="635"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="638"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="634"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="633"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="636"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="636"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="633"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="628"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="636"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="635"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="638"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="638"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="638"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="633"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="638"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="632"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="630"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="630"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.battery_panel_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;battery_panel_title&quot;>Battery usage&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1660"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="666"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="658"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="653"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="658"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="650"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="656"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="656"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="644"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="656"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="653"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="658"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="658"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="658"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="658"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="648"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="646"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="646"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.battery_detail_charging_summary` appears to be unused"
-        errorLine1="    &lt;string name=&quot;battery_detail_charging_summary&quot;>Battery Saver not available during charging&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1663"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="667"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="652"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="659"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="654"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="659"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="652"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="657"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="657"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="652"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="645"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="657"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="654"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="659"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="659"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="659"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="652"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="659"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="647"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.battery_detail_switch_summary` appears to be unused"
-        errorLine1="    &lt;string name=&quot;battery_detail_switch_summary&quot;>Reduces performance and background data&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1669"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="669"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="654"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="661"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="656"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="661"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="653"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="654"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="659"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="659"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="654"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="647"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="659"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="656"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="661"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="661"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="661"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="654"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="661"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="651"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="649"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="649"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.keyboard_shortcut_group_applications_youtube` appears to be unused"
-        errorLine1="    &lt;string name=&quot;keyboard_shortcut_group_applications_youtube&quot;>YouTube&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1754"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="710"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="700"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="700"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="688"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="700"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="690"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.tuner_full_zen_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;tuner_full_zen_title&quot;>Show with volume controls&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1759"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="712"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="696"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="690"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="694"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="692"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="692"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.volume_up_silent` appears to be unused"
-        errorLine1="    &lt;string name=&quot;volume_up_silent&quot;>Exit do not disturb on volume up&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1769"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="715"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="700"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="707"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="707"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="700"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="705"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="705"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="700"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="693"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="705"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="707"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="707"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="707"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="700"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="707"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="695"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.clock` appears to be unused"
-        errorLine1="    &lt;string name=&quot;clock&quot;>Clock&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1775"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="717"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="709"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="709"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="701"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="707"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="707"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="695"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="707"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="709"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="709"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="709"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="709"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="699"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="697"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="697"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_data_saver_off` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_data_saver_off&quot;>Data Saver is off&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1797"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="709"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="716"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="716"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="708"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="709"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="714"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="714"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="709"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="702"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="714"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="716"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="716"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="716"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="709"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="716"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="706"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="704"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="704"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.nav_bar_default` appears to be unused"
-        errorLine1="    &lt;string name=&quot;nav_bar_default&quot;> (default)&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1819"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="731"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="716"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="723"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="718"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="723"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="715"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="716"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="721"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="721"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="716"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="709"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="721"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="718"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="723"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="723"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="723"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="716"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="723"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="713"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="711"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="711"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.menu_ime` appears to be unused"
-        errorLine1="    &lt;string name=&quot;menu_ime&quot;>Keyboard switcher&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1851"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="744"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="736"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="731"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="736"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="728"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="734"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="734"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="722"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="734"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="731"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="736"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="736"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="736"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="736"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="726"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="724"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="724"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.save` appears to be unused"
-        errorLine1="    &lt;string name=&quot;save&quot;>Save&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1853"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="745"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="730"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="737"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="732"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="737"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="730"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="735"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="735"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="730"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="723"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="735"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="732"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="737"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="737"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="737"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="730"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="737"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="725"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.adjust_button_width` appears to be unused"
-        errorLine1="    &lt;string name=&quot;adjust_button_width&quot;>Adjust button width&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1858"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="747"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="732"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="739"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="734"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="739"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="731"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="732"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="737"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="737"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="732"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="725"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="737"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="734"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="739"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="739"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="739"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="732"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="739"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="729"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="727"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="727"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.accessibility_quick_settings_alarm_set` appears to be unused"
-        errorLine1="    &lt;string name=&quot;accessibility_quick_settings_alarm_set&quot;>Alarm set.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="1985"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="798"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="783"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="790"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="785"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="790"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="782"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="779"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="779"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="779"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="779"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="779"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="783"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="788"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="788"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="783"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="776"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="788"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="785"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="790"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="790"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="790"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="783"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="790"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="780"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="778"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="778"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.pip_phone_minimize` appears to be unused"
-        errorLine1="    &lt;string name=&quot;pip_phone_minimize&quot;>Minimize&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="2024"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="807"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="799"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="799"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="791"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="788"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="788"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="788"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="788"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="788"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="797"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="797"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="785"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="797"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="799"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="799"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="799"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="799"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="789"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="787"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="787"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.pip_notification_title` appears to be unused"
-        errorLine1="    &lt;string name=&quot;pip_notification_title&quot;>&lt;xliff:g id=&quot;name&quot; example=&quot;Google Maps&quot;>%s&lt;/xliff:g> is in picture-in-picture&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="2039"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="812"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="797"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="804"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="799"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="804"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="796"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="797"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="802"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="802"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="797"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="790"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="802"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="799"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="804"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="804"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="804"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="797"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="804"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="792"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="792"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.pip_notification_message` appears to be unused"
-        errorLine1="    &lt;string name=&quot;pip_notification_message&quot;>If you don\&apos;t want &lt;xliff:g id=&quot;name&quot; example=&quot;Google Maps&quot;>%s&lt;/xliff:g> to use this feature, tap to open settings and turn it off.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="2042"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="813"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="798"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="805"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="800"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="805"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="797"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="794"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="798"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="803"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="803"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="798"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="791"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="803"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="800"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="805"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="805"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="805"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="798"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="805"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="795"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="793"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="793"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.change_theme_reboot` appears to be unused"
-        errorLine1="    &lt;string name=&quot;change_theme_reboot&quot; translatable=&quot;false&quot;>Changing the theme requires a restart.&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="2057"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.theme` appears to be unused"
-        errorLine1="    &lt;string name=&quot;theme&quot; translatable=&quot;false&quot;>Theme&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="2059"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.default_theme` appears to be unused"
-        errorLine1="    &lt;string name=&quot;default_theme&quot; translatable=&quot;false&quot;>Default&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="2061"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.qs_dnd_until` appears to be unused"
-        errorLine1="    &lt;string name=&quot;qs_dnd_until&quot;>Until &lt;xliff:g name=&quot;time&quot;>%s&lt;/xliff:g>&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="2169"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="856"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="841"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="848"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="843"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="848"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="841"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="846"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="846"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="841"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="834"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="846"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="843"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="848"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="848"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="848"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="841"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="848"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="836"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.qs_dnd_keep` appears to be unused"
-        errorLine1="    &lt;string name=&quot;qs_dnd_keep&quot;>Keep&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="2172"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="857"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="842"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="849"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="844"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="849"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="841"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="842"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="847"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="847"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="842"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="835"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="847"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="844"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="849"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="849"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="849"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="842"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="849"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="837"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="837"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.string.qs_dnd_replace` appears to be unused"
-        errorLine1="    &lt;string name=&quot;qs_dnd_replace&quot;>Replace&lt;/string>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/strings.xml"
-            line="2175"
-            column="13"/>
-        <location
-            file="res/values-af/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-am/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-ar/strings.xml"
-            line="858"
-            column="13"/>
-        <location
-            file="res/values-as/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-az/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-b+sr+Latn/strings.xml"
-            line="843"
-            column="13"/>
-        <location
-            file="res/values-be/strings.xml"
-            line="850"
-            column="13"/>
-        <location
-            file="res/values-bg/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-bn/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-bs/strings.xml"
-            line="845"
-            column="13"/>
-        <location
-            file="res/values-ca/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-cs/strings.xml"
-            line="850"
-            column="13"/>
-        <location
-            file="res/values-da/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-de/strings.xml"
-            line="842"
-            column="13"/>
-        <location
-            file="res/values-el/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-en-rAU/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-en-rCA/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-en-rGB/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-en-rIN/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-en-rXC/strings.xml"
-            line="839"
-            column="13"/>
-        <location
-            file="res/values-es/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-es-rUS/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-et/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-eu/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-fa/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-fi/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-fr/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-fr-rCA/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-gl/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-gu/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-hi/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-hr/strings.xml"
-            line="843"
-            column="13"/>
-        <location
-            file="res/values-hu/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-hy/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-in/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-is/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-it/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-iw/strings.xml"
-            line="848"
-            column="13"/>
-        <location
-            file="res/values-ja/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-ka/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-kk/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-km/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-kn/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-ko/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-ky/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-lo/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-lt/strings.xml"
-            line="848"
-            column="13"/>
-        <location
-            file="res/values-lv/strings.xml"
-            line="843"
-            column="13"/>
-        <location
-            file="res/values-mk/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-ml/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-mn/strings.xml"
-            line="836"
-            column="13"/>
-        <location
-            file="res/values-mr/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-ms/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-my/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-nb/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-ne/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-nl/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-or/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-pa/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-pl/strings.xml"
-            line="848"
-            column="13"/>
-        <location
-            file="res/values-pt/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-pt-rBR/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-pt-rPT/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-ro/strings.xml"
-            line="845"
-            column="13"/>
-        <location
-            file="res/values-ru/strings.xml"
-            line="850"
-            column="13"/>
-        <location
-            file="res/values-si/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-sk/strings.xml"
-            line="850"
-            column="13"/>
-        <location
-            file="res/values-sl/strings.xml"
-            line="850"
-            column="13"/>
-        <location
-            file="res/values-sq/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-sr/strings.xml"
-            line="843"
-            column="13"/>
-        <location
-            file="res/values-sv/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-sw/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-ta/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-te/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-th/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-tl/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-tr/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-uk/strings.xml"
-            line="850"
-            column="13"/>
-        <location
-            file="res/values-ur/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-uz/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-vi/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-zh-rCN/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-zh-rHK/strings.xml"
-            line="840"
-            column="13"/>
-        <location
-            file="res/values-zh-rTW/strings.xml"
-            line="838"
-            column="13"/>
-        <location
-            file="res/values-zu/strings.xml"
-            line="838"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.style.SearchPanelCircle` appears to be unused"
-        errorLine1="    &lt;style name=&quot;SearchPanelCircle&quot;>"
-        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/styles.xml"
-            line="369"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.sun2` appears to be unused"
-        errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/sun2.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.system_in` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/anim/system_in.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.anim.system_out` appears to be unused"
-        errorLine1="&lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/anim/system_out.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.layout.tuner_zen_mode_panel` appears to be unused"
-        errorLine1="&lt;com.android.systemui.tuner.TunerZenModePanel"
-        errorLine2="^">
-        <location
-            file="res/layout/tuner_zen_mode_panel.xml"
-            line="18"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.tv_pip_outline` appears to be unused"
-        errorLine1="&lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/drawable/tv_pip_outline.xml"
-            line="17"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnusedResources"
-        message="The resource `R.drawable.volume_dialog_background` appears to be unused"
-        errorLine1="&lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; >"
-        errorLine2="^">
-        <location
-            file="res/drawable/volume_dialog_background.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UselessParent"
-        message="This `FrameLayout` layout or its `FrameLayout` parent is useless; transfer the `background` attribute to the other view"
-        errorLine1="    &lt;FrameLayout"
-        errorLine2="    ^">
-        <location
-            file="res/layout/brightness_mirror.xml"
-            line="24"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="UselessParent"
-        message="This `FrameLayout` layout or its `FrameLayout` parent is possibly useless"
-        errorLine1="    &lt;FrameLayout"
-        errorLine2="    ^">
-        <location
-            file="res/layout-sw600dp/navigation_layout_rot90.xml"
-            line="22"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="UnusedNamespace"
-        message="Unused namespace `systemui`"
-        errorLine1="    xmlns:systemui=&quot;http://schemas.android.com/apk/res/com.android.systemui&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/keyguard_bottom_area.xml"
-            line="20"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="UnusedNamespace"
-        message="Unused namespace `systemui`"
-        errorLine1="    xmlns:systemui=&quot;http://schemas.android.com/apk/res/com.android.systemui&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/status_bar.xml"
-            line="23"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="TypographyEllipsis"
-        message="Replace &quot;...&quot; with ellipsis character (…, &amp;#8230;) ?"
-        errorLine1="    &lt;string name=&quot;quick_settings_connecting&quot;>Connecting...&lt;/string>"
-        errorLine2="                                             ^">
-        <location
-            file="res/values/strings.xml"
-            line="775"
-            column="46"/>
-    </issue>
-
-    <issue
-        id="TypographyQuotes"
-        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
-        errorLine1="    &lt;string name=&quot;pip_close&quot; msgid=&quot;3480680679023423574&quot;>&quot;\&quot;Кадр в кадре\&quot; – выйти&quot;&lt;/string>"
-        errorLine2="                                                         ^">
-        <location
-            file="res/values-ru/strings_tv.xml"
-            line="24"
-            column="58"/>
-    </issue>
-
-    <issue
-        id="IconDipSize"
-        message="The image `ic_sysbar_lights_out_dot_large.png` varies significantly in its density-independent (dip) size across the various density versions: drawable-mdpi/ic_sysbar_lights_out_dot_large.png: 10x9 dp (10x9 px), drawable-xhdpi/ic_sysbar_lights_out_dot_large.png: 8x6 dp (15x11 px), drawable-hdpi/ic_sysbar_lights_out_dot_large.png: 6x8 dp (9x12 px), drawable-xxhdpi/ic_sysbar_lights_out_dot_large.png: 5x5 dp (15x16 px)">
-        <location
-            file="res/drawable-xxhdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-hdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-xhdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-mdpi/ic_sysbar_lights_out_dot_large.png"/>
-    </issue>
-
-    <issue
-        id="IconDipSize"
-        message="The image `ic_sysbar_lights_out_dot_large.png` varies significantly in its density-independent (dip) size across the various density versions: drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_large.png: 11x8 dp (11x8 px), drawable-sw600dp-xhdpi/ic_sysbar_lights_out_dot_large.png: 9x8 dp (18x15 px), drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_large.png: 7x8 dp (11x12 px), drawable-sw600dp-xxhdpi/ic_sysbar_lights_out_dot_large.png: 6x7 dp (19x21 px)">
-        <location
-            file="res/drawable-sw600dp-xxhdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-sw600dp-xhdpi/ic_sysbar_lights_out_dot_large.png"/>
-        <location
-            file="res/drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_large.png"/>
-    </issue>
-
-    <issue
-        id="IconDipSize"
-        message="The image `ic_sysbar_lights_out_dot_small.png` varies significantly in its density-independent (dip) size across the various density versions: drawable-mdpi/ic_sysbar_lights_out_dot_small.png: 8x9 dp (8x9 px), drawable-xhdpi/ic_sysbar_lights_out_dot_small.png: 6x7 dp (11x13 px), drawable-hdpi/ic_sysbar_lights_out_dot_small.png: 5x4 dp (7x6 px), drawable-xxhdpi/ic_sysbar_lights_out_dot_small.png: 4x4 dp (13x12 px)">
-        <location
-            file="res/drawable-xxhdpi/ic_sysbar_lights_out_dot_small.png"/>
-        <location
-            file="res/drawable-hdpi/ic_sysbar_lights_out_dot_small.png"/>
-        <location
-            file="res/drawable-xhdpi/ic_sysbar_lights_out_dot_small.png"/>
-        <location
-            file="res/drawable-mdpi/ic_sysbar_lights_out_dot_small.png"/>
-    </issue>
-
-    <issue
-        id="IconDensities"
-        message="Missing the following drawables in `drawable-hdpi`: recents_task_shadow.9.png, remote.png">
-        <location
-            file="res/drawable-hdpi"/>
-    </issue>
-
-    <issue
-        id="IconDensities"
-        message="Missing the following drawables in `drawable-mdpi`: recents_task_shadow.9.png, remote.png">
-        <location
-            file="res/drawable-mdpi"/>
-    </issue>
-
-    <issue
-        id="IconDensities"
-        message="Missing the following drawables in `drawable-xhdpi`: recents_task_shadow.9.png (found in drawable-xxhdpi)">
-        <location
-            file="res/drawable-xhdpi"/>
-    </issue>
-
-    <issue
-        id="IconDensities"
-        message="Missing the following drawables in `drawable-xxhdpi`: ic_cancel_white_24dp.png, ic_dismiss_outline.png, remote.png">
-        <location
-            file="res/drawable-xxhdpi"/>
-    </issue>
-
-    <issue
-        id="IconDensities"
-        message="Missing the following drawables in `drawable-xxxhdpi`: ic_cancel_white_24dp.png, ic_dismiss_outline.png, ic_notification_overlay.9.png, ic_qs_brightness_auto_off_alpha.png, ic_qs_brightness_auto_on_alpha.png... (10 more)">
-        <location
-            file="res/drawable-xxxhdpi"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/app_ops_info.xml"
-            line="39"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/assist_orb.xml"
-            line="38"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView android:id=&quot;@+id/user_avatar&quot;"
-        errorLine2="    ^">
-        <location
-            file="res/layout/car_fullscreen_user_pod.xml"
-            line="28"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/car_qs_footer.xml"
-            line="41"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/car_qs_footer.xml"
-            line="49"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/connected_device_signal.xml"
-            line="33"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/global_actions_item.xml"
-            line="31"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView android:id=&quot;@+id/global_screenshot_background&quot;"
-        errorLine2="    ^">
-        <location
-            file="res/layout/global_screenshot.xml"
-            line="19"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView android:id=&quot;@+id/global_screenshot&quot;"
-        errorLine2="    ^">
-        <location
-            file="res/layout/global_screenshot.xml"
-            line="24"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView android:id=&quot;@+id/global_screenshot_flash&quot;"
-        errorLine2="    ^">
-        <location
-            file="res/layout/global_screenshot.xml"
-            line="31"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/keyboard_shortcut_app_item.xml"
-            line="26"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="&lt;ImageView xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/layout/keyboard_shortcuts_key_icon_view.xml"
-            line="18"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="            &lt;ImageView android:id=&quot;@+id/multi_user_avatar&quot;"
-        errorLine2="            ^">
-        <location
-            file="res/layout/keyguard_status_bar.xml"
-            line="50"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="            &lt;ImageView"
-        errorLine2="            ^">
-        <location
-            file="res/layout/mland.xml"
-            line="45"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageButton"
-        errorLine2="        ^">
-        <location
-            file="res/layout/mland.xml"
-            line="73"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageButton"
-        errorLine2="        ^">
-        <location
-            file="res/layout/mland.xml"
-            line="92"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/mobile_signal_group.xml"
-            line="31"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/mobile_signal_group.xml"
-            line="39"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/mobile_signal_group.xml"
-            line="48"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/nav_control_widget.xml"
-            line="28"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/nav_control_widget.xml"
-            line="41"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/nav_control_widget.xml"
-            line="54"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="&lt;ImageView xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
-        errorLine2="^">
-        <location
-            file="res/layout/navigation_bar_app_item.xml"
-            line="21"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/notification_info.xml"
-            line="38"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/notification_snooze.xml"
-            line="42"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="&lt;ImageView"
-        errorLine2="^">
-        <location
-            file="res/layout/pip_menu_action.xml"
-            line="16"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/preference_widget_settings.xml"
-            line="36"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/qs_detail_header.xml"
-            line="47"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/qs_detail_item.xml"
-            line="27"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/qs_detail_items.xml"
-            line="42"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="                &lt;ImageView"
-        errorLine2="                ^">
-        <location
-            file="res/layout/qs_footer_impl.xml"
-            line="93"
-            column="17"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView android:id=&quot;@+id/restricted_padlock&quot;"
-        errorLine2="        ^">
-        <location
-            file="res/layout/qs_tile_label.xml"
-            line="50"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/qs_tile_label.xml"
-            line="59"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/qs_user_detail_item.xml"
-            line="58"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/quick_settings_header_info.xml"
-            line="43"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/quick_settings_header_info.xml"
-            line="69"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/recents.xml"
-            line="37"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/recents_task_view_lock_to_app.xml"
-            line="29"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/rounded_corners.xml"
-            line="21"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/rounded_corners.xml"
-            line="28"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons.xml"
-            line="48"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons.xml"
-            line="55"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons.xml"
-            line="65"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons.xml"
-            line="91"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons.xml"
-            line="98"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons.xml"
-            line="108"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons.xml"
-            line="134"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons.xml"
-            line="141"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons.xml"
-            line="151"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="44"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="51"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="61"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="84"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="91"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="101"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="125"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="132"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="142"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="44"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="52"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="63"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="87"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="95"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="106"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="130"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="138"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="149"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView android:id=&quot;@+id/shelf_menu_anchor_anchor&quot;"
-        errorLine2="    ^">
-        <location
-            file="res/layout/shelf_menu_anchor.xml"
-            line="20"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/signal_cluster_view.xml"
-            line="60"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/signal_cluster_view.xml"
-            line="68"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/signal_cluster_view.xml"
-            line="95"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/signal_cluster_view.xml"
-            line="124"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/status_bar.xml"
-            line="34"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="            &lt;ImageView"
-        errorLine2="            ^">
-        <location
-            file="res/layout/status_bar_mobile_signal_group.xml"
-            line="39"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="            &lt;ImageView"
-        errorLine2="            ^">
-        <location
-            file="res/layout/status_bar_mobile_signal_group.xml"
-            line="47"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/status_bar_mobile_signal_group.xml"
-            line="56"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="            &lt;ImageView"
-        errorLine2="            ^">
-        <location
-            file="res/layout/status_bar_wifi_group.xml"
-            line="39"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="            &lt;ImageView"
-        errorLine2="            ^">
-        <location
-            file="res/layout/status_bar_wifi_group.xml"
-            line="47"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView android:id=&quot;@+id/backdrop_back&quot;"
-        errorLine2="        ^">
-        <location
-            file="res/layout/super_status_bar.xml"
-            line="35"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView android:id=&quot;@+id/backdrop_front&quot;"
-        errorLine2="        ^">
-        <location
-            file="res/layout/super_status_bar.xml"
-            line="39"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/tuner_shortcut_item.xml"
-            line="26"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/tuner_widget_settings_switch.xml"
-            line="24"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView android:id=&quot;@+id/button&quot;"
-        errorLine2="    ^">
-        <location
-            file="res/layout/tv_pip_control_button.xml"
-            line="23"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="    &lt;ImageView"
-        errorLine2="    ^">
-        <location
-            file="res/layout/wireless_charging_layout.xml"
-            line="26"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="ContentDescription"
-        message="[Accessibility] Missing `contentDescription` attribute on image"
-        errorLine1="        &lt;ImageView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/zen_mode_panel.xml"
-            line="136"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RelativeOverlap"
-        message="`@id/group_name` can overlap `@id/info` if @id/group_name grows due to localized text expansion"
-        errorLine1="        &lt;TextView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/notification_info.xml"
-            line="64"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RelativeOverlap"
-        message="`@id/undo` can overlap `@id/expand_button` if @string/snooze_undo grows due to localized text expansion"
-        errorLine1="        &lt;TextView"
-        errorLine2="        ^">
-        <location
-            file="res/layout/notification_snooze.xml"
-            line="51"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlCompat"
-        message="Inconsistent alignment specification between `textAlignment` and `gravity` attributes: was `fill_horizontal|center_vertical`, expected `start`"
-        errorLine1="        android:textAlignment=&quot;viewStart&quot; />"
-        errorLine2="                               ~~~~~~~~~">
-        <location
-            file="res/layout/foreground_service_item.xml"
-            line="46"
-            column="32"/>
-        <location
-            file="res/layout/foreground_service_item.xml"
-            line="42"
-            column="33"/>
-    </issue>
-
-    <issue
-        id="RtlCompat"
-        message="Inconsistent alignment specification between `textAlignment` and `gravity` attributes: was `center_vertical`, expected `start`"
-        errorLine1="        android:textAlignment=&quot;viewStart&quot;"
-        errorLine2="                               ~~~~~~~~~">
-        <location
-            file="res/layout/heads_up_status_bar_layout.xml"
-            line="42"
-            column="32"/>
-        <location
-            file="res/layout/heads_up_status_bar_layout.xml"
-            line="45"
-            column="33"/>
-    </issue>
-
-    <issue
-        id="RtlCompat"
-        message="Inconsistent alignment specification between `textAlignment` and `gravity` attributes: was `center_vertical`, expected `start`"
-        errorLine1="        android:textAlignment=&quot;viewStart&quot;"
-        errorLine2="                               ~~~~~~~~~">
-        <location
-            file="res/layout/switch_bar.xml"
-            line="38"
-            column="32"/>
-        <location
-            file="res/layout/switch_bar.xml"
-            line="32"
-            column="33"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
-        errorLine1="        android:paddingStart=&quot;@dimen/battery_level_padding_start&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/battery_percentage_view.xml"
-            line="28"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
-        errorLine1="        android:paddingLeft=&quot;30dp&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_navigation_bar.xml"
-            line="33"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
-        errorLine1="        android:paddingLeft=&quot;30dp&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_navigation_bar_unprovisioned.xml"
-            line="33"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
-        errorLine1="        android:paddingStart=&quot;6dp&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/heads_up_status_bar_layout.xml"
-            line="43"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="    android:paddingEnd=&quot;@dimen/group_overflow_number_padding&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/hybrid_overflow_number.xml"
-            line="23"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="            android:paddingEnd=&quot;12dp&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/keyboard_shortcut_app_item.xml"
-            line="40"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="            android:paddingEnd=&quot;@dimen/system_icons_keyguard_padding_end&quot; >"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/keyguard_status_bar.xml"
-            line="41"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="            android:paddingEnd=&quot;2dp&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/mobile_signal_group.xml"
-            line="37"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="            android:paddingEnd=&quot;2dp&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/mobile_signal_group.xml"
-            line="44"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="    android:paddingEnd=&quot;8dp&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_detail_buttons.xml"
-            line="20"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
-        errorLine1="            android:paddingStart=&quot;@dimen/qs_detail_header_text_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_detail_header.xml"
-            line="40"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
-        errorLine1="            android:paddingStart=&quot;16dp&quot;>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_footer_impl.xml"
-            line="49"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
-        errorLine1="            android:paddingLeft=&quot;@dimen/screen_pinning_request_inner_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="56"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
-        errorLine1="            android:paddingLeft=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="65"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
-        errorLine1="            android:paddingLeft=&quot;@dimen/screen_pinning_request_inner_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="96"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
-        errorLine1="            android:paddingLeft=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="106"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
-        errorLine1="            android:paddingLeft=&quot;@dimen/screen_pinning_request_inner_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="137"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
-        errorLine1="            android:paddingLeft=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="147"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
-        errorLine1="            android:paddingRight=&quot;@dimen/screen_pinning_request_inner_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="58"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
-        errorLine1="            android:paddingRight=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="68"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
-        errorLine1="            android:paddingRight=&quot;@dimen/screen_pinning_request_inner_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="101"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
-        errorLine1="            android:paddingRight=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="111"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
-        errorLine1="            android:paddingRight=&quot;@dimen/screen_pinning_request_inner_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="144"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
-        errorLine1="            android:paddingRight=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="153"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="    android:paddingEnd=&quot;@dimen/signal_cluster_battery_padding&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/signal_cluster_view.xml"
-            line="27"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="        android:paddingEnd=&quot;6dp&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/signal_cluster_view.xml"
-            line="33"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="            android:paddingEnd=&quot;2dp&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/signal_cluster_view.xml"
-            line="66"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="            android:paddingEnd=&quot;2dp&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/signal_cluster_view.xml"
-            line="73"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
-        errorLine1="        android:paddingStart=&quot;8dp&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/slice_permission_request.xml"
-            line="31"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
-        errorLine1="        android:paddingStart=&quot;8dp&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/slice_permission_request.xml"
-            line="39"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
-        errorLine1="        android:paddingStart=&quot;@dimen/status_bar_padding_start&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/status_bar.xml"
-            line="38"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="                android:paddingEnd=&quot;2dp&quot;"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/status_bar_mobile_signal_group.xml"
-            line="45"
-            column="17"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="                android:paddingEnd=&quot;2dp&quot;"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/status_bar_mobile_signal_group.xml"
-            line="52"
-            column="17"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="                android:paddingEnd=&quot;2dp&quot;"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/status_bar_wifi_group.xml"
-            line="45"
-            column="17"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="                android:paddingEnd=&quot;2dp&quot;"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/status_bar_wifi_group.xml"
-            line="52"
-            column="17"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
-        errorLine1="        android:paddingStart=&quot;48dp&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/switch_bar.xml"
-            line="33"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlSymmetry"
-        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
-        errorLine1="        android:paddingEnd=&quot;@dimen/signal_cluster_battery_padding&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/system_icons.xml"
-            line="27"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
-        errorLine1="        android:gravity=&quot;left&quot;"
-        errorLine2="                         ~~~~">
-        <location
-            file="res/layout/car_navigation_bar.xml"
-            line="32"
-            column="26"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingLeft` with `android:paddingStart=&quot;30dp&quot;` to better support right-to-left layouts"
-        errorLine1="        android:paddingLeft=&quot;30dp&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_navigation_bar.xml"
-            line="33"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
-        errorLine1="        android:gravity=&quot;right&quot;"
-        errorLine2="                         ~~~~~">
-        <location
-            file="res/layout/car_navigation_bar.xml"
-            line="65"
-            column="26"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Redundant attribute `paddingRight`; already defining `paddingEnd` with `targetSdkVersion` 28"
-        errorLine1="            android:paddingRight=&quot;20dp&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_navigation_bar.xml"
-            line="88"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
-        errorLine1="        android:gravity=&quot;left&quot;"
-        errorLine2="                         ~~~~">
-        <location
-            file="res/layout/car_navigation_bar_unprovisioned.xml"
-            line="32"
-            column="26"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingLeft` with `android:paddingStart=&quot;30dp&quot;` to better support right-to-left layouts"
-        errorLine1="        android:paddingLeft=&quot;30dp&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/car_navigation_bar_unprovisioned.xml"
-            line="33"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
-        errorLine1="    android:layout_gravity=&quot;top|right&quot;"
-        errorLine2="                            ~~~~~~~~~">
-        <location
-            file="res/layout/global_actions_wrapped.xml"
-            line="6"
-            column="29"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
-        errorLine1="        android:layout_gravity=&quot;top|right&quot;"
-        errorLine2="                                ~~~~~~~~~">
-        <location
-            file="res/layout/global_actions_wrapped.xml"
-            line="19"
-            column="33"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
-        errorLine1="        android:layout_gravity=&quot;top|right&quot;"
-        errorLine2="                                ~~~~~~~~~">
-        <location
-            file="res/layout/global_actions_wrapped.xml"
-            line="30"
-            column="33"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingLeft` with `android:paddingStart=&quot;@dimen/qs_detail_header_padding&quot;` to better support right-to-left layouts"
-        errorLine1="    android:paddingLeft=&quot;@dimen/qs_detail_header_padding&quot;"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_detail_header.xml"
-            line="21"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart=&quot;@dimen/restricted_padlock_pading&quot;` to better support right-to-left layouts"
-        errorLine1="            android:layout_marginLeft=&quot;@dimen/restricted_padlock_pading&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_tile_label.xml"
-            line="55"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart=&quot;@dimen/restricted_padlock_pading&quot;` to better support right-to-left layouts"
-        errorLine1="                android:layout_marginLeft=&quot;@dimen/restricted_padlock_pading&quot;"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/qs_user_detail_item.xml"
-            line="64"
-            column="17"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
-        errorLine1="        android:layout_gravity=&quot;left|top&quot;"
-        errorLine2="                                ~~~~~~~~">
-        <location
-            file="res/layout/rounded_corners.xml"
-            line="25"
-            column="33"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
-        errorLine1="        android:layout_gravity=&quot;right|bottom&quot;"
-        errorLine2="                                ~~~~~~~~~~~~">
-        <location
-            file="res/layout/rounded_corners.xml"
-            line="33"
-            column="33"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingLeft` with `android:paddingStart=&quot;@dimen/screen_pinning_request_inner_padding&quot;` to better support right-to-left layouts"
-        errorLine1="            android:paddingLeft=&quot;@dimen/screen_pinning_request_inner_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="56"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingLeft` with `android:paddingStart=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;` to better support right-to-left layouts"
-        errorLine1="            android:paddingLeft=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="65"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingLeft` with `android:paddingStart=&quot;@dimen/screen_pinning_request_inner_padding&quot;` to better support right-to-left layouts"
-        errorLine1="            android:paddingLeft=&quot;@dimen/screen_pinning_request_inner_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="96"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingLeft` with `android:paddingStart=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;` to better support right-to-left layouts"
-        errorLine1="            android:paddingLeft=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="106"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingLeft` with `android:paddingStart=&quot;@dimen/screen_pinning_request_inner_padding&quot;` to better support right-to-left layouts"
-        errorLine1="            android:paddingLeft=&quot;@dimen/screen_pinning_request_inner_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="137"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingLeft` with `android:paddingStart=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;` to better support right-to-left layouts"
-        errorLine1="            android:paddingLeft=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_land.xml"
-            line="147"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart=&quot;@dimen/screen_pinning_request_seascape_padding_negative&quot;` to better support right-to-left layouts"
-        errorLine1="            android:layout_marginLeft=&quot;@dimen/screen_pinning_request_seascape_padding_negative&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="49"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart=&quot;@dimen/screen_pinning_request_seascape_button_offset&quot;` to better support right-to-left layouts"
-        errorLine1="            android:layout_marginLeft=&quot;@dimen/screen_pinning_request_seascape_button_offset&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="57"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingRight` with `android:paddingEnd=&quot;@dimen/screen_pinning_request_inner_padding&quot;` to better support right-to-left layouts"
-        errorLine1="            android:paddingRight=&quot;@dimen/screen_pinning_request_inner_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="58"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingRight` with `android:paddingEnd=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;` to better support right-to-left layouts"
-        errorLine1="            android:paddingRight=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="68"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart=&quot;@dimen/screen_pinning_request_seascape_padding_negative&quot;` to better support right-to-left layouts"
-        errorLine1="            android:layout_marginLeft=&quot;@dimen/screen_pinning_request_seascape_padding_negative&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="92"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart=&quot;@dimen/screen_pinning_request_seascape_button_offset&quot;` to better support right-to-left layouts"
-        errorLine1="            android:layout_marginLeft=&quot;@dimen/screen_pinning_request_seascape_button_offset&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="100"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingRight` with `android:paddingEnd=&quot;@dimen/screen_pinning_request_inner_padding&quot;` to better support right-to-left layouts"
-        errorLine1="            android:paddingRight=&quot;@dimen/screen_pinning_request_inner_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="101"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingRight` with `android:paddingEnd=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;` to better support right-to-left layouts"
-        errorLine1="            android:paddingRight=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="111"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart=&quot;@dimen/screen_pinning_request_seascape_padding_negative&quot;` to better support right-to-left layouts"
-        errorLine1="            android:layout_marginLeft=&quot;@dimen/screen_pinning_request_seascape_padding_negative&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="135"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart=&quot;@dimen/screen_pinning_request_seascape_button_offset&quot;` to better support right-to-left layouts"
-        errorLine1="            android:layout_marginLeft=&quot;@dimen/screen_pinning_request_seascape_button_offset&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="143"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingRight` with `android:paddingEnd=&quot;@dimen/screen_pinning_request_inner_padding&quot;` to better support right-to-left layouts"
-        errorLine1="            android:paddingRight=&quot;@dimen/screen_pinning_request_inner_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="144"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingRight` with `android:paddingEnd=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;` to better support right-to-left layouts"
-        errorLine1="            android:paddingRight=&quot;@dimen/screen_pinning_request_nav_icon_padding&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_buttons_sea.xml"
-            line="153"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
-        errorLine1="    android:gravity=&quot;right|center_vertical&quot;"
-        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_land_phone.xml"
-            line="22"
-            column="22"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
-        errorLine1="    android:gravity=&quot;left|center_vertical&quot;"
-        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/screen_pinning_request_sea_phone.xml"
-            line="22"
-            column="22"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
-        errorLine1="        android:layout_gravity=&quot;center_vertical|right&quot;"
-        errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/volume_dialog.xml"
-            line="28"
-            column="33"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingRight` with `android:paddingEnd=&quot;@dimen/volume_dialog_panel_transparent_padding_right&quot;` to better support right-to-left layouts"
-        errorLine1="        android:paddingRight=&quot;@dimen/volume_dialog_panel_transparent_padding_right&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/volume_dialog.xml"
-            line="30"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:paddingLeft` with `android:paddingStart=&quot;@dimen/volume_dialog_panel_transparent_padding&quot;` to better support right-to-left layouts"
-        errorLine1="        android:paddingLeft=&quot;@dimen/volume_dialog_panel_transparent_padding&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/volume_dialog.xml"
-            line="33"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
-        errorLine1="            android:layout_gravity=&quot;right&quot;"
-        errorLine2="                                    ~~~~~">
-        <location
-            file="res/layout/volume_dialog.xml"
-            line="43"
-            column="37"/>
-    </issue>
-
-    <issue
-        id="RtlHardcoded"
-        message="Consider replacing `android:layout_marginRight` with `android:layout_marginEnd=&quot;@dimen/volume_dialog_stream_padding&quot;` to better support right-to-left layouts"
-        errorLine1="                     android:layout_marginRight=&quot;@dimen/volume_dialog_stream_padding&quot;"
-        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/volume_dialog.xml"
-            line="59"
-            column="22"/>
-    </issue>
-
-</issues>
diff --git a/packages/SystemUI/tools/lint/lint.xml b/packages/SystemUI/tools/lint/lint.xml
deleted file mode 100644
index 76773e8..0000000
--- a/packages/SystemUI/tools/lint/lint.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<lint>
-
-    <!-- Translations are done in separate CLs from source changes, so typically it's not actionable
-         by CL authors -->
-    <issue id="MissingTranslation" severity="ignore" />
-    <issue id="ExtraTranslation" severity="ignore" />
-
-    <!-- SystemUI is a priviledged app -->
-    <issue id="ProtectedPermissions" severity="ignore" />
-
-    <!-- SystemUI doesn't have launcher presence -->
-    <issue id="MissingApplicationIcon" severity="ignore" />
-
-    <!-- Make system inserts these attributes -->
-    <issue id="UsesMinSdkAttributes" severity="ignore" />
-    <issue id="MissingVersion" severity="ignore" />
-
-    <!-- Translation import automatically generates all of them -->
-    <issue id="UnusedQuantity" severity="ignore" />
-    <!-- This lint check misses the format used in TextUtils.expandTemplate (^1),
-         so it's not very useful (b/37128132) -->
-    <issue id="ImpliedQuantity" severity="ignore" />
-    <!-- SystemUI's SDK version is always latest so these are not relevant -->
-    <issue id="UnusedAttribute" severity="ignore" />
-    <issue id="NewApi" severity="ignore" />
-
-    <!-- We don't care about WebP for now (having a lint for optiPNG will be great though) -->
-    <issue id="ConvertToWebp" severity="ignore" />
-
-    <!-- b/37129369: MissingRegistered doesn't take libraries into account -->
-    <issue id="MissingRegistered" severity="ignore" />
-
-
-    <!-- We don't care about app indexing -->
-    <issue id="GoogleAppIndexingWarning" severity="ignore" />
-    <issue id="GoogleAppIndexingUrlError" severity="ignore" />
-
-    <!-- Issues under out/ typically comes from libraries -->
-    <issue id="ClickableViewAccessibility" severity="error">
-        <ignore regexp=".*/out/soong/.intermediates/frameworks/base/packages/SystemUI/SystemUI-core/android_common/combined/.*" />
-    </issue>
-
-    <!-- Turn on stop ship check -->
-    <issue id="StopShip" severity="warning" />
-
-
-    <issue id="UnusedResources" severity="error">
-        <!-- Nested script references are not picked up by lint -->
-        <ignore regexp="res/xml/wizard_script.*\.xml" />
-        <!-- Ignore translation files -->
-        <ignore regexp="res/values(-[a-zA-Z0-9]+)*-(\w\w|b+[a-zA-Z0-9+]+)(-[a-zA-Z0-9]+)*/strings.xml" />
-        <!-- Ignore translations arrays that are no longer used-->
-        <ignore regexp="res/values(-[a-zA-Z0-9]+)*-(\w\w|b+[a-zA-Z0-9+]+)(-[a-zA-Z0-9]+)*/arrays.xml" />
-    </issue>
-
-    <!-- Ignore translations when linting strings -->
-    <issue id="TypographyQuotes" severity="error">
-        <ignore regexp="res/values(-[a-zA-Z0-9]+)*-(\w\w|b+[a-zA-Z0-9+]+)(-[a-zA-Z0-9]+)*/strings.xml" />
-        <ignore regexp="res/values(-[a-zA-Z0-9]+)*-(\w\w|b+[a-zA-Z0-9+]+)(-[a-zA-Z0-9]+)*/arrays.xml" />
-    </issue>
-    <issue id="TypographyEllipsis" severity="error">
-        <ignore regexp="res/values(-[a-zA-Z0-9]+)*-(\w\w|b+[a-zA-Z0-9+]+)(-[a-zA-Z0-9]+)*/strings.xml" />
-        <ignore regexp="res/values(-[a-zA-Z0-9]+)*-(\w\w|b+[a-zA-Z0-9+]+)(-[a-zA-Z0-9]+)*/arrays.xml" />
-    </issue>
-    <issue id="TypographyDashes" severity="error">
-        <ignore regexp="res/values(-[a-zA-Z0-9]+)*-(\w\w|b+[a-zA-Z0-9+]+)(-[a-zA-Z0-9]+)*/strings.xml" />
-        <ignore regexp="res/values(-[a-zA-Z0-9]+)*-(\w\w|b+[a-zA-Z0-9+]+)(-[a-zA-Z0-9]+)*/arrays.xml" />
-    </issue>
-
-    <issue id="Wakelock" severity="error">
-        <ignore regexp=".*/out/soong/.intermediates/frameworks/base/packages/SystemUI/SystemUI-core/android_common/classes/android/support" />
-    </issue>
-
-    <issue id="InconsistentArrays" severity="ignore" />
-    <issue id="StringFormatCount" severity="ignore" />
-</lint>
diff --git a/packages/SystemUI/tools/lint/run_lint.sh b/packages/SystemUI/tools/lint/run_lint.sh
deleted file mode 100755
index 10d9e83..0000000
--- a/packages/SystemUI/tools/lint/run_lint.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#! /bin/bash
-
-if [[ $# -ne 2 ]]; then
-    echo "Error: Incorrect number of arguments" >&2
-    echo "Usage: ./run_lint.sh <repo_root> <CL_SHA>" >&2
-    exit 100
-fi
-
-git show --name-only --pretty=format: $2 | grep packages/SystemUI/ > /dev/null
-exitcode=$?
-if [[ exitcode -eq 1 ]];  then
-    exit 0
-fi
-
-if [[ -z $ANDROID_BUILD_TOP ]]; then
-    echo "Error: ANDROID_BUILD_TOP must be set" >&2
-    echo "Try setting up your environment first:" >&2
-    echo "    source build/envsetup.sh && lunch <target>" >&2
-    exit 101
-fi
-
-# TODO: Run lint as part of the build so we can specify the dependency properly
-systemuijarpath="out/soong/.intermediates/frameworks/base/packages/SystemUI/SystemUI-core/android_common/combined/SystemUI-core.jar"
-if [[ ! -f $ANDROID_BUILD_TOP/$systemuijarpath ]]; then
-    echo "Error: Classes.jar file not found" >&2
-    echo "Try building that jar file manually:" >&2
-    echo "    m -j16 out/soong/.intermediates/frameworks/base/packages/SystemUI/SystemUI-core/android_common/combined/SystemUI-core.jar" >&2
-    exit 102
-fi
-
-REPO_ROOT=$1
-${REPO_ROOT}/prebuilts/devtools/tools/lint \
-       . \
-       --exitcode \
-       -Werror \
-       --config ${REPO_ROOT}/frameworks/base/packages/SystemUI/tools/lint/lint.xml \
-       --html ${REPO_ROOT}/out/lint_output.html \
-       --baseline ${REPO_ROOT}/frameworks/base/packages/SystemUI/tools/lint/baseline.xml \
-       --remove-fixed
-exitcode=$?
-if [[ exitcode -eq 1 ]];  then
-    cat >&2 <<EOF
-
-Please check the HTML results file and fix the errors.
-If the error cannot be fixed immediately, there are 3 possible resolutions:
-1. Use tools:ignore or @SuppressLint annotation. This is preferred
-   for cases where the lint violation is intended, so that reviewers
-   can review whether the suppression is appropriate.
-2. Use tools/lint.xml to ignore a lint check which we don't care
-   about for any file, or checks that are not actionable by the
-   CL author (e.g. translation issues)
-3. If there are lint errors that should be fixed, but cannot be done
-   immediately for some reason, run ./tools/lint/update_baseline.sh to
-   add them to baseline.xml.
-
-EOF
-fi
-
-exit $exitcode
diff --git a/packages/SystemUI/tools/lint/update_baseline.sh b/packages/SystemUI/tools/lint/update_baseline.sh
deleted file mode 100755
index aa0cd808..0000000
--- a/packages/SystemUI/tools/lint/update_baseline.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#! /bin/bash
-
-if [[ $PWD != *"/frameworks/base/packages/SystemUI" ]]; then
-    echo "Please run this in frameworks/base/packages/SystemUI" >&2
-    exit 1
-fi
-
-# Empty the baseline file so the baseline-generation run below do not ignore any existing errors.
-echo '' > tools/lint/baseline.xml
-
-lint . -Werror --exitcode --config tools/lint/lint.xml --html /tmp/lint_output.html \
-  --baseline tools/lint/baseline.xml --remove-fixed &
-
-# b/37579990 - The file needs to be removed *while* lint is running
-sleep 0.5
-rm tools/lint/baseline.xml
-
-wait
diff --git a/ravenwood/Android.bp b/ravenwood/Android.bp
index 65550f2..ccbc46f 100644
--- a/ravenwood/Android.bp
+++ b/ravenwood/Android.bp
@@ -121,6 +121,7 @@
     name: "ravenwood-helper-framework-runtime",
     srcs: [
         "runtime-helper-src/framework/**/*.java",
+        ":framework-graphics-srcs",
     ],
     static_libs: [
         "ravenwood-runtime-common",
@@ -278,6 +279,7 @@
 cc_library_host_shared {
     name: "libravenwood_runtime",
     defaults: ["ravenwood_jni_defaults"],
+    header_libs: ["libicuuc_headers"],
     srcs: [
         "runtime-jni/ravenwood_runtime.cpp",
         "runtime-jni/ravenwood_os_constants.cpp",
@@ -372,6 +374,13 @@
     visibility: ["//visibility:private"],
 }
 
+java_library {
+    name: "ext-ravenwood",
+    installable: false,
+    static_libs: ["ext"],
+    visibility: ["//visibility:private"],
+}
+
 filegroup {
     name: "ravenwood-data",
     device_common_srcs: [
@@ -637,6 +646,7 @@
     libs: [
         "100-framework-minus-apex.ravenwood",
         "200-kxml2-android",
+        "ext-ravenwood",
 
         "ravenwood-runtime-common-ravenwood",
 
diff --git a/ravenwood/Framework.bp b/ravenwood/Framework.bp
index 71496b0..e366771 100644
--- a/ravenwood/Framework.bp
+++ b/ravenwood/Framework.bp
@@ -419,11 +419,13 @@
         "--out-impl-jar $(location ravenwood.jar) " +
         "--in-jar $(location :framework-graphics.impl{.jar}) " +
 
-        "--policy-override-file $(location :ravenwood-common-policies) ",
+        "--policy-override-file $(location :ravenwood-common-policies) " +
+        "--policy-override-file $(location :framework-graphics-ravenwood-policies) ",
     srcs: [
         ":framework-graphics.impl{.jar}",
 
         ":ravenwood-common-policies",
+        ":framework-graphics-ravenwood-policies",
         ":ravenwood-standard-options",
     ],
     out: [
diff --git a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodAwareTestRunner.java b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodAwareTestRunner.java
index 3ebef02..b616766 100644
--- a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodAwareTestRunner.java
+++ b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodAwareTestRunner.java
@@ -23,13 +23,10 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.os.Bundle;
 import android.platform.test.annotations.RavenwoodTestRunnerInitializing;
 import android.platform.test.annotations.internal.InnerRunner;
 import android.util.Log;
 
-import androidx.test.platform.app.InstrumentationRegistry;
-
 import com.android.ravenwood.common.RavenwoodCommonUtils;
 
 import org.junit.rules.TestRule;
@@ -285,11 +282,6 @@
     private boolean onBefore(Description description, Scope scope, Order order) {
         Log.v(TAG, "onBefore: description=" + description + ", " + scope + ", " + order);
 
-        if (scope == Scope.Instance && order == Order.Outer) {
-            // Start of a test method.
-            mState.enterTestMethod(description);
-        }
-
         final var classDescription = getDescription();
 
         // Class-level annotations are checked by the runner already, so we only check
@@ -299,6 +291,12 @@
                 return false;
             }
         }
+
+        if (scope == Scope.Instance && order == Order.Outer) {
+            // Start of a test method.
+            mState.enterTestMethod(description);
+        }
+
         return true;
     }
 
@@ -314,8 +312,7 @@
 
         if (scope == Scope.Instance && order == Order.Outer) {
             // End of a test method.
-            mState.exitTestMethod();
-
+            mState.exitTestMethod(description);
         }
 
         // If RUN_DISABLED_TESTS is set, and the method did _not_ throw, make it an error.
diff --git a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodContext.java b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodContext.java
index a332633..9e6b12f 100644
--- a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodContext.java
+++ b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodContext.java
@@ -230,6 +230,16 @@
         return mAppContext;
     }
 
+    @Override
+    public boolean isRestricted() {
+        return false;
+    }
+
+    @Override
+    public boolean canLoadUnsafeResources() {
+        return true;
+    }
+
     /**
      * Wrap the given {@link Supplier} to become memoized.
      *
diff --git a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodNativeLoader.java b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodNativeLoader.java
index a208d6d..7e935d0 100644
--- a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodNativeLoader.java
+++ b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodNativeLoader.java
@@ -48,6 +48,7 @@
             android.content.res.AssetManager.class,
             android.content.res.StringBlock.class,
             android.content.res.XmlBlock.class,
+            android.text.AndroidCharacter.class,
     };
 
     /**
@@ -61,15 +62,49 @@
             android.graphics.Path.class,
             android.graphics.Color.class,
             android.graphics.ColorSpace.class,
+            android.graphics.Bitmap.class,
+            android.graphics.BitmapFactory.class,
+            android.graphics.BitmapRegionDecoder.class,
+            android.graphics.Camera.class,
+            android.graphics.Canvas.class,
+            android.graphics.CanvasProperty.class,
+            android.graphics.ColorFilter.class,
+            android.graphics.DrawFilter.class,
+            android.graphics.FontFamily.class,
+            android.graphics.Gainmap.class,
+            android.graphics.ImageDecoder.class,
+            android.graphics.MaskFilter.class,
+            android.graphics.NinePatch.class,
+            android.graphics.Paint.class,
+            android.graphics.PathEffect.class,
+            android.graphics.PathIterator.class,
+            android.graphics.PathMeasure.class,
+            android.graphics.Picture.class,
+            android.graphics.RecordingCanvas.class,
+            android.graphics.Region.class,
+            android.graphics.RenderNode.class,
+            android.graphics.Shader.class,
+            android.graphics.RenderEffect.class,
+            android.graphics.Typeface.class,
+            android.graphics.YuvImage.class,
+            android.graphics.fonts.Font.class,
+            android.graphics.fonts.FontFamily.class,
+            android.graphics.text.LineBreaker.class,
+            android.graphics.text.MeasuredText.class,
+            android.graphics.text.TextRunShaper.class,
+            android.graphics.text.GraphemeBreak.class,
+            android.util.PathParser.class,
     };
 
     /**
      * Extra strings needed to pass to register_android_graphics_classes().
      *
-     * `android.graphics.Graphics` is not actually a class, so we just hardcode it here.
+     * Several entries are not actually a class, so we just hardcode them here.
      */
     public final static String[] GRAPHICS_EXTRA_INIT_PARAMS = new String[] {
-            "android.graphics.Graphics"
+            "android.graphics.Graphics",
+            "android.graphics.ByteBufferStreamAdaptor",
+            "android.graphics.CreateJavaOutputStreamAdaptor"
     };
 
     private RavenwoodNativeLoader() {
diff --git a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRunnerState.java b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRunnerState.java
index 70bc52b..705186e 100644
--- a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRunnerState.java
+++ b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRunnerState.java
@@ -81,12 +81,15 @@
         RavenwoodRuntimeEnvironmentController.exitTestClass();
     }
 
+    /** Called when a test method is about to start */
     public void enterTestMethod(Description description) {
         mMethodDescription = description;
-        RavenwoodRuntimeEnvironmentController.initForMethod();
+        RavenwoodRuntimeEnvironmentController.enterTestMethod(description);
     }
 
-    public void exitTestMethod() {
+    /** Called when a test method finishes */
+    public void exitTestMethod(Description description) {
+        RavenwoodRuntimeEnvironmentController.exitTestMethod(description);
         mMethodDescription = null;
     }
 
diff --git a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuntimeEnvironmentController.java b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuntimeEnvironmentController.java
index ae88bb2..d935626 100644
--- a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuntimeEnvironmentController.java
+++ b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuntimeEnvironmentController.java
@@ -43,6 +43,7 @@
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.res.Resources;
+import android.graphics.Typeface;
 import android.icu.util.ULocale;
 import android.os.Binder;
 import android.os.Build;
@@ -50,6 +51,7 @@
 import android.os.Bundle;
 import android.os.HandlerThread;
 import android.os.Looper;
+import android.os.Message;
 import android.os.Process_ravenwood;
 import android.os.ServiceManager;
 import android.os.ServiceManager.ServiceNotFoundException;
@@ -73,6 +75,7 @@
 import com.android.server.LocalServices;
 import com.android.server.compat.PlatformCompat;
 
+import org.junit.AssumptionViolatedException;
 import org.junit.internal.management.ManagementFactory;
 import org.junit.runner.Description;
 
@@ -80,6 +83,7 @@
 import java.io.IOException;
 import java.io.PrintStream;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
@@ -92,6 +96,7 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Supplier;
+import java.util.stream.Collectors;
 
 /**
  * Responsible for initializing and the environment.
@@ -106,32 +111,60 @@
     @SuppressWarnings("UnusedVariable")
     private static final PrintStream sStdErr = System.err;
 
-    private static final String MAIN_THREAD_NAME = "RavenwoodMain";
+    private static final String MAIN_THREAD_NAME = "Ravenwood:Main";
+    private static final String TESTS_THREAD_NAME = "Ravenwood:Test";
+
     private static final String LIBRAVENWOOD_INITIALIZER_NAME = "ravenwood_initializer";
     private static final String RAVENWOOD_NATIVE_RUNTIME_NAME = "ravenwood_runtime";
 
     private static final String ANDROID_LOG_TAGS = "ANDROID_LOG_TAGS";
     private static final String RAVENWOOD_ANDROID_LOG_TAGS = "RAVENWOOD_" + ANDROID_LOG_TAGS;
 
+    static volatile Thread sTestThread;
+    static volatile Thread sMainThread;
+
     /**
      * When enabled, attempt to dump all thread stacks just before we hit the
      * overall Tradefed timeout, to aid in debugging deadlocks.
+     *
+     * Note, this timeout will _not_ stop the test, as there isn't really a clean way to do it.
+     * It'll merely print stacktraces.
      */
     private static final boolean ENABLE_TIMEOUT_STACKS =
-            "1".equals(System.getenv("RAVENWOOD_ENABLE_TIMEOUT_STACKS"));
+            !"0".equals(System.getenv("RAVENWOOD_ENABLE_TIMEOUT_STACKS"));
 
-    private static final int TIMEOUT_MILLIS = 9_000;
+    private static final boolean TOLERATE_LOOPER_ASSERTS =
+            !"0".equals(System.getenv("RAVENWOOD_TOLERATE_LOOPER_ASSERTS"));
+
+    static final int DEFAULT_TIMEOUT_SECONDS = 10;
+    private static final int TIMEOUT_MILLIS = getTimeoutSeconds() * 1000;
+
+    static int getTimeoutSeconds() {
+        var e = System.getenv("RAVENWOOD_TIMEOUT_SECONDS");
+        if (e == null || e.isEmpty()) {
+            return DEFAULT_TIMEOUT_SECONDS;
+        }
+        return Integer.parseInt(e);
+    }
+
 
     private static final ScheduledExecutorService sTimeoutExecutor =
-            Executors.newScheduledThreadPool(1);
+            Executors.newScheduledThreadPool(1, (Runnable r) -> {
+                Thread t = Executors.defaultThreadFactory().newThread(r);
+                t.setName("Ravenwood:TimeoutMonitor");
+                t.setDaemon(true);
+                return t;
+            });
 
-    private static ScheduledFuture<?> sPendingTimeout;
+    private static volatile ScheduledFuture<?> sPendingTimeout;
 
     /**
      * When enabled, attempt to detect uncaught exceptions from background threads.
      */
     private static final boolean ENABLE_UNCAUGHT_EXCEPTION_DETECTION =
-            "1".equals(System.getenv("RAVENWOOD_ENABLE_UNCAUGHT_EXCEPTION_DETECTION"));
+            !"0".equals(System.getenv("RAVENWOOD_ENABLE_UNCAUGHT_EXCEPTION_DETECTION"));
+
+    private static final boolean DIE_ON_UNCAUGHT_EXCEPTION = true;
 
     /**
      * When set, an unhandled exception was discovered (typically on a background thread), and we
@@ -140,12 +173,6 @@
     private static final AtomicReference<Throwable> sPendingUncaughtException =
             new AtomicReference<>();
 
-    private static final Thread.UncaughtExceptionHandler sUncaughtExceptionHandler =
-            (thread, throwable) -> {
-                // Remember the first exception we discover
-                sPendingUncaughtException.compareAndSet(null, throwable);
-            };
-
     // TODO: expose packCallingIdentity function in libbinder and use it directly
     // See: packCallingIdentity in frameworks/native/libs/binder/IPCThreadState.cpp
     private static long packBinderIdentityToken(
@@ -186,6 +213,8 @@
      * Initialize the global environment.
      */
     public static void globalInitOnce() {
+        sTestThread = Thread.currentThread();
+        Thread.currentThread().setName(TESTS_THREAD_NAME);
         synchronized (sInitializationLock) {
             if (!sInitialized) {
                 // globalInitOnce() is called from class initializer, which cause
@@ -193,6 +222,7 @@
                 sInitialized = true;
 
                 // This is the first call.
+                final long start = System.currentTimeMillis();
                 try {
                     globalInitInner();
                 } catch (Throwable th) {
@@ -201,6 +231,9 @@
                     sExceptionFromGlobalInit = th;
                     SneakyThrow.sneakyThrow(th);
                 }
+                final long end = System.currentTimeMillis();
+                // TODO Show user/system time too
+                Log.e(TAG, "globalInit() took " + (end - start) + "ms");
             } else {
                 // Subsequent calls. If the first call threw, just throw the same error, to prevent
                 // the test from running.
@@ -219,7 +252,8 @@
         RavenwoodCommonUtils.log(TAG, "globalInitInner()");
 
         if (ENABLE_UNCAUGHT_EXCEPTION_DETECTION) {
-            Thread.setDefaultUncaughtExceptionHandler(sUncaughtExceptionHandler);
+            Thread.setDefaultUncaughtExceptionHandler(
+                    RavenwoodRuntimeEnvironmentController::reportUncaughtExceptions);
         }
 
         // Some process-wide initialization:
@@ -246,6 +280,13 @@
         // Do the basic set up for the android sysprops.
         RavenwoodSystemProperties.initialize();
 
+        // Set ICU data file
+        String icuData = RavenwoodCommonUtils.getRavenwoodRuntimePath()
+                + "ravenwood-data/"
+                + RavenwoodRuntimeNative.getIcuDataName()
+                + ".dat";
+        RavenwoodRuntimeNative.setSystemProperty("ro.icu.data.path", icuData);
+
         // Enable all log levels for native logging, until we'll have a way to change the native
         // side log level at runtime.
         // Do this after loading RAVENWOOD_NATIVE_RUNTIME_NAME (which backs Os.setenv()),
@@ -268,6 +309,11 @@
         Objects.requireNonNull(Build.TYPE);
         Objects.requireNonNull(Build.VERSION.SDK);
 
+        // Fonts can only be initialized once
+        Typeface.init();
+        Typeface.loadPreinstalledSystemFontMap();
+        Typeface.loadNativeSystemFonts();
+
         System.setProperty(RAVENWOOD_VERSION_JAVA_SYSPROP, "1");
         // This will let AndroidJUnit4 use the original runner.
         System.setProperty("android.junit.runner",
@@ -291,6 +337,7 @@
         ActivityManager.init$ravenwood(SYSTEM.getIdentifier());
 
         final var main = new HandlerThread(MAIN_THREAD_NAME);
+        sMainThread = main;
         main.start();
         Looper.setMainLooperForTest(main.getLooper());
 
@@ -337,9 +384,20 @@
         var systemServerContext =
                 new RavenwoodContext(ANDROID_PACKAGE_NAME, main, systemResourcesLoader);
 
-        sInstrumentation = new Instrumentation();
-        sInstrumentation.basicInit(instContext, targetContext, null);
-        InstrumentationRegistry.registerInstance(sInstrumentation, Bundle.EMPTY);
+        var instArgs = Bundle.EMPTY;
+        RavenwoodUtils.runOnMainThreadSync(() -> {
+            try {
+                // TODO We should get the instrumentation class name from the build file or
+                // somewhere.
+                var InstClass = Class.forName("android.app.Instrumentation");
+                sInstrumentation = (Instrumentation) InstClass.getConstructor().newInstance();
+                sInstrumentation.basicInit(instContext, targetContext, null);
+                sInstrumentation.onCreate(instArgs);
+            } catch (Exception e) {
+                SneakyThrow.sneakyThrow(e);
+            }
+        });
+        InstrumentationRegistry.registerInstance(sInstrumentation, instArgs);
 
         RavenwoodSystemServer.init(systemServerContext);
 
@@ -386,22 +444,46 @@
 
         SystemProperties.clearChangeCallbacksForTest();
 
-        if (ENABLE_TIMEOUT_STACKS) {
-            sPendingTimeout = sTimeoutExecutor.schedule(
-                    RavenwoodRuntimeEnvironmentController::dumpStacks,
-                    TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
-        }
-        if (ENABLE_UNCAUGHT_EXCEPTION_DETECTION) {
-            maybeThrowPendingUncaughtException(false);
-        }
+        maybeThrowPendingUncaughtException();
     }
 
     /**
-     * Partially reset and initialize before each test method invocation
+     * Called when a test method is about to be started.
      */
-    public static void initForMethod() {
+    public static void enterTestMethod(Description description) {
         // TODO(b/375272444): this is a hacky workaround to ensure binder identity
         Binder.restoreCallingIdentity(sCallingIdentity);
+
+        scheduleTimeout();
+    }
+
+    /**
+     * Called when a test method finished.
+     */
+    public static void exitTestMethod(Description description) {
+        cancelTimeout();
+        maybeThrowPendingUncaughtException();
+    }
+
+    private static void scheduleTimeout() {
+        if (!ENABLE_TIMEOUT_STACKS) {
+            return;
+        }
+        cancelTimeout();
+
+        sPendingTimeout = sTimeoutExecutor.schedule(
+                RavenwoodRuntimeEnvironmentController::onTestTimedOut,
+                TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
+    }
+
+    private static void cancelTimeout() {
+        if (!ENABLE_TIMEOUT_STACKS) {
+            return;
+        }
+        var pt = sPendingTimeout;
+        if (pt != null) {
+            pt.cancel(false);
+        }
     }
 
     private static void initializeCompatIds() {
@@ -460,15 +542,36 @@
     }
 
     /**
+     * Return if an exception is benign and okay to continue running the main looper even
+     * if we detect it.
+     */
+    private static boolean isThrowableBenign(Throwable th) {
+        return th instanceof AssertionError || th instanceof AssumptionViolatedException;
+    }
+
+    static void dispatchMessage(Message msg) {
+        try {
+            msg.getTarget().dispatchMessage(msg);
+        } catch (Throwable th) {
+            var desc = String.format("Detected %s on looper thread %s", th.getClass().getName(),
+                    Thread.currentThread());
+            sStdErr.println(desc);
+            if (TOLERATE_LOOPER_ASSERTS && isThrowableBenign(th)) {
+                sStdErr.printf("*** Continuing the test because it's %s ***\n",
+                        th.getClass().getSimpleName());
+                var e = new Exception(desc, th);
+                sPendingUncaughtException.compareAndSet(null, e);
+                return;
+            }
+            throw th;
+        }
+    }
+
+    /**
      * A callback when a test class finishes its execution, mostly only for debugging.
      */
     public static void exitTestClass() {
-        if (ENABLE_TIMEOUT_STACKS) {
-            sPendingTimeout.cancel(false);
-        }
-        if (ENABLE_UNCAUGHT_EXCEPTION_DETECTION) {
-            maybeThrowPendingUncaughtException(true);
-        }
+        maybeThrowPendingUncaughtException();
     }
 
     public static void logTestRunner(String label, Description description) {
@@ -478,35 +581,70 @@
                 + "(" + description.getTestClass().getName() + ")");
     }
 
-    private static void dumpStacks() {
-        final PrintStream out = System.err;
-        out.println("-----BEGIN ALL THREAD STACKS-----");
-        final Map<Thread, StackTraceElement[]> stacks = Thread.getAllStackTraces();
-        for (Map.Entry<Thread, StackTraceElement[]> stack : stacks.entrySet()) {
-            out.println();
-            Thread t = stack.getKey();
-            out.println(t.toString() + " ID=" + t.getId());
-            for (StackTraceElement e : stack.getValue()) {
-                out.println("\tat " + e);
-            }
+    private static void maybeThrowPendingUncaughtException() {
+        final Throwable pending = sPendingUncaughtException.getAndSet(null);
+        if (pending != null) {
+            throw new IllegalStateException("Found an uncaught exception", pending);
         }
-        out.println("-----END ALL THREAD STACKS-----");
     }
 
     /**
-     * If there's a pending uncaught exception, consume and throw it now. Typically used to
-     * report an exception on a background thread as a failure for the currently running test.
+     * Prints the stack trace from all threads.
      */
-    private static void maybeThrowPendingUncaughtException(boolean duringReset) {
-        final Throwable pending = sPendingUncaughtException.getAndSet(null);
-        if (pending != null) {
-            if (duringReset) {
-                throw new IllegalStateException(
-                        "Found an uncaught exception during this test", pending);
-            } else {
-                throw new IllegalStateException(
-                        "Found an uncaught exception before this test started", pending);
+    private static void onTestTimedOut() {
+        sStdErr.println("********* SLOW TEST DETECTED ********");
+        dumpStacks(null, null);
+    }
+
+    private static final Object sDumpStackLock = new Object();
+
+    /**
+     * Prints the stack trace from all threads.
+     */
+    private static void dumpStacks(
+            @Nullable Thread exceptionThread, @Nullable Throwable throwable) {
+        cancelTimeout();
+        synchronized (sDumpStackLock) {
+            final PrintStream out = sStdErr;
+            out.println("-----BEGIN ALL THREAD STACKS-----");
+
+            var stacks = Thread.getAllStackTraces();
+            var threads = stacks.keySet().stream().sorted(
+                    Comparator.comparingLong(Thread::getId)).collect(Collectors.toList());
+
+            // Put the test and the main thread at the top.
+            var testThread = sTestThread;
+            var mainThread = sMainThread;
+            if (mainThread != null) {
+                threads.remove(mainThread);
+                threads.add(0, mainThread);
             }
+            if (testThread != null) {
+                threads.remove(testThread);
+                threads.add(0, testThread);
+            }
+            // Put the exception thread at the top.
+            // Also inject the stacktrace from the exception.
+            if (exceptionThread != null) {
+                threads.remove(exceptionThread);
+                threads.add(0, exceptionThread);
+                stacks.put(exceptionThread, throwable.getStackTrace());
+            }
+            for (var th : threads) {
+                out.println();
+
+                out.print("Thread");
+                if (th == exceptionThread) {
+                    out.print(" [** EXCEPTION THREAD **]");
+                }
+                out.print(": " + th.getName() + " / " + th);
+                out.println();
+
+                for (StackTraceElement e :  stacks.get(th)) {
+                    out.println("\tat " + e);
+                }
+            }
+            out.println("-----END ALL THREAD STACKS-----");
         }
     }
 
@@ -532,13 +670,17 @@
                 () -> Class.forName("org.mockito.Matchers"));
     }
 
-    // TODO: use the real UiAutomation class instead of a mock
-    private static UiAutomation createMockUiAutomation() {
-        sAdoptedPermissions = Collections.emptySet();
-        var mock = mock(UiAutomation.class, inv -> {
+    static <T> T makeDefaultThrowMock(Class<T> clazz) {
+        return mock(clazz, inv -> {
             HostTestUtils.onThrowMethodCalled();
             return null;
         });
+    }
+
+    // TODO: use the real UiAutomation class instead of a mock
+    private static UiAutomation createMockUiAutomation() {
+        sAdoptedPermissions = Collections.emptySet();
+        var mock = makeDefaultThrowMock(UiAutomation.class);
         doAnswer(inv -> {
             sAdoptedPermissions = UiAutomation.ALL_PERMISSIONS;
             return null;
@@ -573,6 +715,23 @@
         }
     }
 
+    private static void reportUncaughtExceptions(Thread th, Throwable e) {
+        sStdErr.printf("Uncaught exception detected: %s: %s\n",
+                th, RavenwoodCommonUtils.getStackTraceString(e));
+
+        doBugreport(th, e, DIE_ON_UNCAUGHT_EXCEPTION);
+    }
+
+    private static void doBugreport(
+            @Nullable Thread exceptionThread, @Nullable Throwable throwable,
+            boolean killSelf) {
+        // TODO: Print more information
+        dumpStacks(exceptionThread, throwable);
+        if (killSelf) {
+            System.exit(13);
+        }
+    }
+
     private static void dumpJavaProperties() {
         Log.v(TAG, "JVM properties:");
         dumpMap(System.getProperties());
@@ -588,7 +747,6 @@
             Log.v(TAG, "  " + key + "=" + map.get(key));
         }
     }
-
     private static void dumpOtherInfo() {
         Log.v(TAG, "Other key information:");
         var jloc = Locale.getDefault();
diff --git a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodSystemProperties.java b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodSystemProperties.java
index 70c161c1..819d93a 100644
--- a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodSystemProperties.java
+++ b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodSystemProperties.java
@@ -26,6 +26,7 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Set;
@@ -45,6 +46,9 @@
     /** The default values. */
     static final Map<String, String> sDefaultValues = new HashMap<>();
 
+    static final Set<String> sReadableKeys = new HashSet<>();
+    static final Set<String> sWritableKeys = new HashSet<>();
+
     private static final String[] PARTITIONS = {
             "bootimage",
             "odm",
@@ -88,9 +92,24 @@
         ravenwoodProps.forEach((key, origValue) -> {
             final String value;
 
-            // If a value starts with "$$$", then this is a reference to the device-side value.
             if (origValue.startsWith("$$$")) {
+                // If a value starts with "$$$", then:
+                // - If it's "$$$r", the key is allowed to read.
+                // - If it's "$$$w", the key is allowed to write.
+                // - Otherwise, it's a reference to the device-side value.
+                // In case of $$$r and $$$w, if the key ends with a '.', then it'll be treaded
+                // as a prefix match.
                 var deviceKey = origValue.substring(3);
+                if ("r".equals(deviceKey)) {
+                    sReadableKeys.add(key);
+                    Log.v(TAG, key + " (readable)");
+                    return;
+                } else if ("w".equals(deviceKey)) {
+                    sWritableKeys.add(key);
+                    Log.v(TAG, key + " (writable)");
+                    return;
+                }
+
                 var deviceValue = deviceProps.get(deviceKey);
                 if (deviceValue == null) {
                     throw new RuntimeException("Failed to initialize system properties. Key '"
@@ -131,50 +150,38 @@
         sDefaultValues.forEach(RavenwoodRuntimeNative::setSystemProperty);
     }
 
+    private static boolean checkAllowedInner(String key, Set<String> allowed) {
+        if (allowed.contains(key)) {
+            return true;
+        }
+
+        // Also search for a prefix match.
+        for (var k : allowed) {
+            if (k.endsWith(".") && key.startsWith(k)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private static boolean checkAllowed(String key, Set<String> allowed) {
+        return checkAllowedInner(key, allowed) || checkAllowedInner(getKeyRoot(key), allowed);
+    }
+
     private static boolean isKeyReadable(String key) {
-        // All writable keys are also readable
-        if (isKeyWritable(key)) return true;
-
-        final String root = getKeyRoot(key);
-
-        // This set is carefully curated to help identify situations where a test may
-        // accidentally depend on a default value of an obscure property whose owner hasn't
-        // decided how Ravenwood should behave.
-        if (root.startsWith("boot.")) return true;
-        if (root.startsWith("build.")) return true;
-        if (root.startsWith("product.")) return true;
-        if (root.startsWith("soc.")) return true;
-        if (root.startsWith("system.")) return true;
-
         // All core values should be readable
-        if (sDefaultValues.containsKey(key)) return true;
-
-        // Hardcoded allowlist
-        return switch (key) {
-            case "gsm.version.baseband",
-                 "no.such.thing",
-                 "qemu.sf.lcd_density",
-                 "ro.bootloader",
-                 "ro.hardware",
-                 "ro.hw_timeout_multiplier",
-                 "ro.odm.build.media_performance_class",
-                 "ro.sf.lcd_density",
-                 "ro.treble.enabled",
-                 "ro.vndk.version",
-                 "ro.icu.data.path" -> true;
-            default -> false;
-        };
+        if (sDefaultValues.containsKey(key)) {
+            return true;
+        }
+        if (checkAllowed(key, sReadableKeys)) {
+            return true;
+        }
+        // All writable keys are also readable
+        return isKeyWritable(key);
     }
 
     private static boolean isKeyWritable(String key) {
-        final String root = getKeyRoot(key);
-
-        if (root.startsWith("debug.")) return true;
-
-        // For PropertyInvalidatedCache
-        if (root.startsWith("cache_key.")) return true;
-
-        return false;
+        return checkAllowed(key, sWritableKeys);
     }
 
     static boolean isKeyAccessible(String key, boolean write) {
diff --git a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodUtils.java b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodUtils.java
index 19c1bff..3e2c405 100644
--- a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodUtils.java
+++ b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodUtils.java
@@ -15,7 +15,20 @@
  */
 package android.platform.test.ravenwood;
 
+import static com.android.ravenwood.common.RavenwoodCommonUtils.ReflectedMethod.reflectMethod;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.os.Handler;
+import android.os.Looper;
+
 import com.android.ravenwood.common.RavenwoodCommonUtils;
+import com.android.ravenwood.common.SneakyThrow;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Supplier;
 
 /**
  * Utilities for writing (bivalent) ravenwood tests.
@@ -47,4 +60,129 @@
     public static void loadJniLibrary(String libname) {
         RavenwoodCommonUtils.loadJniLibrary(libname);
     }
+
+    private class MainHandlerHolder {
+        static Handler sMainHandler = new Handler(Looper.getMainLooper());
+    }
+
+    /**
+     * Returns the main thread handler.
+     */
+    public static Handler getMainHandler() {
+        return MainHandlerHolder.sMainHandler;
+    }
+
+    /**
+     * Run a Callable on Handler and wait for it to complete.
+     */
+    @Nullable
+    public static <T> T runOnHandlerSync(@NonNull Handler h, @NonNull Callable<T> c) {
+        var result = new AtomicReference<T>();
+        var thrown = new AtomicReference<Throwable>();
+        var latch = new CountDownLatch(1);
+        h.post(() -> {
+            try {
+                result.set(c.call());
+            } catch (Throwable th) {
+                thrown.set(th);
+            }
+            latch.countDown();
+        });
+        try {
+            latch.await();
+        } catch (InterruptedException e) {
+            throw new RuntimeException("Interrupted while waiting on the Runnable", e);
+        }
+        var th = thrown.get();
+        if (th != null) {
+            SneakyThrow.sneakyThrow(th);
+        }
+        return result.get();
+    }
+
+
+    /**
+     * Run a Runnable on Handler and wait for it to complete.
+     */
+    @Nullable
+    public static void runOnHandlerSync(@NonNull Handler h, @NonNull Runnable r) {
+        runOnHandlerSync(h, () -> {
+            r.run();
+            return null;
+        });
+    }
+
+    /**
+     * Run a Callable on main thread and wait for it to complete.
+     */
+    @Nullable
+    public static <T> T runOnMainThreadSync(@NonNull Callable<T> c) {
+        return runOnHandlerSync(getMainHandler(), c);
+    }
+
+    /**
+     * Run a Runnable on main thread and wait for it to complete.
+     */
+    @Nullable
+    public static void runOnMainThreadSync(@NonNull Runnable r) {
+        runOnHandlerSync(getMainHandler(), r);
+    }
+
+    public static class MockitoHelper {
+        private MockitoHelper() {
+        }
+
+        /**
+         * Allow verifyZeroInteractions to work on ravenwood. It was replaced with a different
+         * method on. (Maybe we should do it in Ravenizer.)
+         */
+        public static void verifyZeroInteractions(Object... mocks) {
+            if (RavenwoodRule.isOnRavenwood()) {
+                // Mockito 4 or later
+                reflectMethod("org.mockito.Mockito", "verifyNoInteractions", Object[].class)
+                        .callStatic(new Object[]{mocks});
+            } else {
+                // Mockito 2
+                reflectMethod("org.mockito.Mockito", "verifyZeroInteractions", Object[].class)
+                        .callStatic(new Object[]{mocks});
+            }
+        }
+    }
+
+
+    /**
+     * Wrap the given {@link Supplier} to become memoized.
+     *
+     * The underlying {@link Supplier} will only be invoked once, and that result will be cached
+     * and returned for any future requests.
+     */
+    static <T> Supplier<T> memoize(ThrowingSupplier<T> supplier) {
+        return new Supplier<>() {
+            private T mInstance;
+
+            @Override
+            public T get() {
+                synchronized (this) {
+                    if (mInstance == null) {
+                        mInstance = create();
+                    }
+                    return mInstance;
+                }
+            }
+
+            private T create() {
+                try {
+                    return supplier.get();
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        };
+    }
+
+    /** Used by {@link #memoize(ThrowingSupplier)}  */
+    public interface ThrowingSupplier<T> {
+        /** */
+        T get() throws Exception;
+    }
 }
diff --git a/ravenwood/runtime-common-src/com/android/ravenwood/common/RavenwoodCommonUtils.java b/ravenwood/runtime-common-src/com/android/ravenwood/common/RavenwoodCommonUtils.java
index a967a3f..893b354 100644
--- a/ravenwood/runtime-common-src/com/android/ravenwood/common/RavenwoodCommonUtils.java
+++ b/ravenwood/runtime-common-src/com/android/ravenwood/common/RavenwoodCommonUtils.java
@@ -26,10 +26,12 @@
 import java.io.PrintStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Member;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.Arrays;
+import java.util.Objects;
 import java.util.function.Supplier;
 
 public class RavenwoodCommonUtils {
@@ -329,4 +331,70 @@
     public static <T> T withDefault(@Nullable T value, @Nullable T def) {
         return value != null ? value : def;
     }
+
+    /**
+     * Utility for calling a method with reflections. Used to call a method by name.
+     * Note, this intentionally does _not_ support non-public methods, as we generally
+     * shouldn't violate java visibility in ravenwood.
+     *
+     * @param <TTHIS> class owning the method.
+     */
+    public static class ReflectedMethod<TTHIS> {
+        private final Class<TTHIS> mThisClass;
+        private final Method mMethod;
+
+        private ReflectedMethod(Class<TTHIS> thisClass, Method method) {
+            mThisClass = thisClass;
+            mMethod = method;
+        }
+
+        /** Factory method. */
+        @SuppressWarnings("unchecked")
+        public static <TTHIS> ReflectedMethod<TTHIS> reflectMethod(
+                @NonNull Class<TTHIS> clazz, @NonNull String methodName,
+                @NonNull Class<?>... argTypes) {
+            try {
+                return new ReflectedMethod(clazz, clazz.getMethod(methodName, argTypes));
+            } catch (NoSuchMethodException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        /** Factory method. */
+        @SuppressWarnings("unchecked")
+        public static <TTHIS> ReflectedMethod<TTHIS> reflectMethod(
+                @NonNull String className, @NonNull String methodName,
+                @NonNull Class<?>... argTypes) {
+            try {
+                return reflectMethod((Class<TTHIS>) Class.forName(className), methodName, argTypes);
+            } catch (ClassNotFoundException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        /** Call the instance method */
+        @SuppressWarnings("unchecked")
+        public <RET> RET call(@NonNull TTHIS thisObject, @NonNull Object... args) {
+            try {
+                return (RET) mMethod.invoke(Objects.requireNonNull(thisObject), args);
+            } catch (InvocationTargetException | IllegalAccessException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        /** Call the static method */
+        @SuppressWarnings("unchecked")
+        public <RET> RET callStatic(@NonNull Object... args) {
+            try {
+                return (RET) mMethod.invoke(null, args);
+            } catch (InvocationTargetException | IllegalAccessException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
+    /** Handy method to create an array */
+    public static <T> T[] arr(@NonNull T... objects) {
+        return objects;
+    }
 }
diff --git a/ravenwood/runtime-helper-src/framework/android/util/Log_ravenwood.java b/ravenwood/runtime-helper-src/framework/android/util/Log_ravenwood.java
index 7ab9cda..855a4ff 100644
--- a/ravenwood/runtime-helper-src/framework/android/util/Log_ravenwood.java
+++ b/ravenwood/runtime-helper-src/framework/android/util/Log_ravenwood.java
@@ -21,7 +21,6 @@
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.os.RuntimeInit;
 import com.android.ravenwood.RavenwoodRuntimeNative;
-import com.android.ravenwood.common.RavenwoodCommonUtils;
 
 import java.io.PrintStream;
 import java.text.SimpleDateFormat;
@@ -164,7 +163,7 @@
      * Return the "real" {@code System.out} if it's been swapped by {@code RavenwoodRuleImpl}, so
      * that we don't end up in a recursive loop.
      */
-    private static PrintStream getRealOut() {
+    public static PrintStream getRealOut() {
         if (RuntimeInit.sOut$ravenwood != null) {
             return RuntimeInit.sOut$ravenwood;
         } else {
diff --git a/ravenwood/runtime-helper-src/libcore-fake/com/android/ravenwood/RavenwoodJdkPatch.java b/ravenwood/runtime-helper-src/libcore-fake/com/android/ravenwood/RavenwoodJdkPatch.java
index 96aed4b..d5a96dd 100644
--- a/ravenwood/runtime-helper-src/libcore-fake/com/android/ravenwood/RavenwoodJdkPatch.java
+++ b/ravenwood/runtime-helper-src/libcore-fake/com/android/ravenwood/RavenwoodJdkPatch.java
@@ -20,6 +20,7 @@
 import java.io.FileDescriptor;
 import java.util.LinkedHashMap;
 import java.util.Map;
+import java.util.regex.Pattern;
 
 /**
  * Class to host APIs that exist in libcore, but not in standard JRE.
@@ -46,4 +47,22 @@
         final var it = map.entrySet().iterator();
         return it.hasNext() ? it.next() : null;
     }
+
+    /**
+     * Implements Pattern.compile(String)
+     *
+     * ART always assumes UNICODE_CHARACTER_CLASS is set.
+     */
+    public static Pattern compilePattern(String regex) {
+        return Pattern.compile(regex, Pattern.UNICODE_CHARACTER_CLASS);
+    }
+
+    /**
+     * Implements Pattern.compile(String, int)
+     *
+     * ART always assumes UNICODE_CHARACTER_CLASS is set.
+     */
+    public static Pattern compilePattern(String regex, int flag) {
+        return Pattern.compile(regex, flag | Pattern.UNICODE_CHARACTER_CLASS);
+    }
 }
diff --git a/ravenwood/runtime-helper-src/libcore-fake/com/android/ravenwood/RavenwoodRuntimeNative.java b/ravenwood/runtime-helper-src/libcore-fake/com/android/ravenwood/RavenwoodRuntimeNative.java
index acbcdf1..0d82a86 100644
--- a/ravenwood/runtime-helper-src/libcore-fake/com/android/ravenwood/RavenwoodRuntimeNative.java
+++ b/ravenwood/runtime-helper-src/libcore-fake/com/android/ravenwood/RavenwoodRuntimeNative.java
@@ -66,6 +66,8 @@
 
     public static native int gettid();
 
+    public static native String getIcuDataName();
+
     public static long lseek(FileDescriptor fd, long offset, int whence) throws ErrnoException {
         return nLseek(JvmWorkaround.getInstance().getFdInt(fd), offset, whence);
     }
diff --git a/ravenwood/runtime-helper-src/libcore-fake/dalvik/system/CloseGuard.java b/ravenwood/runtime-helper-src/libcore-fake/dalvik/system/CloseGuard.java
new file mode 100644
index 0000000..82bab64
--- /dev/null
+++ b/ravenwood/runtime-helper-src/libcore-fake/dalvik/system/CloseGuard.java
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2010 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 dalvik.system;
+
+/**
+ * A no-op copy of libcore/dalvik/src/main/java/dalvik/system/CloseGuard.java
+ */
+public final class CloseGuard {
+
+    /**
+     * Returns a CloseGuard instance. {@code #open(String)} can be used to set
+     * up the instance to warn on failure to close.
+     *
+     * @return {@link CloseGuard} instance.
+     *
+     * @hide
+     */
+    public static CloseGuard get() {
+        return new CloseGuard();
+    }
+
+    /**
+     * Enables/disables stack capture and tracking. A call stack is captured
+     * during open(), and open/close events are reported to the Tracker, only
+     * if enabled is true. If a stack trace was captured, the {@link
+     * #getReporter() reporter} is informed of unclosed resources; otherwise a
+     * one-line warning is logged.
+     *
+     * @param enabled whether stack capture and tracking is enabled.
+     *
+     * @hide
+     */
+    public static void setEnabled(boolean enabled) {
+    }
+
+    /**
+     * True if CloseGuard stack capture and tracking are enabled.
+     *
+     * @hide
+     */
+    public static boolean isEnabled() {
+        return false;
+    }
+
+    /**
+     * Used to replace default Reporter used to warn of CloseGuard
+     * violations when stack tracking is enabled. Must be non-null.
+     *
+     * @param rep replacement for default Reporter.
+     *
+     * @hide
+     */
+    public static void setReporter(Reporter rep) {
+        if (rep == null) {
+            throw new NullPointerException("reporter == null");
+        }
+    }
+
+    /**
+     * Returns non-null CloseGuard.Reporter.
+     *
+     * @return CloseGuard's Reporter.
+     *
+     * @hide
+     */
+    public static Reporter getReporter() {
+        return null;
+    }
+
+    /**
+     * Sets the {@link Tracker} that is notified when resources are allocated and released.
+     * The Tracker is invoked only if CloseGuard {@link #isEnabled()} held when {@link #open()}
+     * was called. A null argument disables tracking.
+     *
+     * <p>This is only intended for use by {@code dalvik.system.CloseGuardSupport} class and so
+     * MUST NOT be used for any other purposes.
+     *
+     * @hide
+     */
+    public static void setTracker(Tracker tracker) {
+    }
+
+    /**
+     * Returns {@link #setTracker(Tracker) last Tracker that was set}, or null to indicate
+     * there is none.
+     *
+     * <p>This is only intended for use by {@code dalvik.system.CloseGuardSupport} class and so
+     * MUST NOT be used for any other purposes.
+     *
+     * @hide
+     */
+    public static Tracker getTracker() {
+        return null;
+    }
+
+    private CloseGuard() {}
+
+    /**
+     * {@code open} initializes the instance with a warning that the caller
+     * should have explicitly called the {@code closer} method instead of
+     * relying on finalization.
+     *
+     * @param closer non-null name of explicit termination method. Printed by warnIfOpen.
+     * @throws NullPointerException if closer is null.
+     *
+     * @hide
+     */
+    public void open(String closer) {
+        openWithCallSite(closer, null /* callsite */);
+    }
+
+    /**
+     * Like {@link #open(String)}, but with explicit callsite string being passed in for better
+     * performance.
+     * <p>
+     * This only has better performance than {@link #open(String)} if {@link #isEnabled()} returns {@code true}, which
+     * usually shouldn't happen on release builds.
+     *
+     * @param closer Non-null name of explicit termination method. Printed by warnIfOpen.
+     * @param callsite Non-null string uniquely identifying the callsite.
+     *
+     * @hide
+     */
+    public void openWithCallSite(String closer, String callsite) {
+    }
+
+    // We keep either an allocation stack containing the closer String or, when
+    // in disabled state, just the closer String.
+    // We keep them in a single field only to minimize overhead.
+    private Object /* String or Throwable */ closerNameOrAllocationInfo;
+
+    /**
+     * Marks this CloseGuard instance as closed to avoid warnings on
+     * finalization.
+     *
+     * @hide
+     */
+    public void close() {
+    }
+
+    /**
+     * Logs a warning if the caller did not properly cleanup by calling an
+     * explicit close method before finalization. If CloseGuard was enabled
+     * when the CloseGuard was created, passes the stacktrace associated with
+     * the allocation to the current reporter. If it was not enabled, it just
+     * directly logs a brief message.
+     *
+     * @hide
+     */
+    public void warnIfOpen() {
+    }
+
+
+    /**
+     * Interface to allow customization of tracking behaviour.
+     *
+     * <p>This is only intended for use by {@code dalvik.system.CloseGuardSupport} class and so
+     * MUST NOT be used for any other purposes.
+     *
+     * @hide
+     */
+    public interface Tracker {
+        void open(Throwable allocationSite);
+        void close(Throwable allocationSite);
+    }
+
+    /**
+     * Interface to allow customization of reporting behavior.
+     * @hide
+     */
+    public interface Reporter {
+        /**
+         *
+         * @hide
+         */
+        void report(String message, Throwable allocationSite);
+
+        /**
+         *
+         * @hide
+         */
+        default void report(String message) {}
+    }
+}
diff --git a/ravenwood/runtime-helper-src/libcore-fake/dalvik/system/VMRuntime.java b/ravenwood/runtime-helper-src/libcore-fake/dalvik/system/VMRuntime.java
index eaadac6..50cfd3b 100644
--- a/ravenwood/runtime-helper-src/libcore-fake/dalvik/system/VMRuntime.java
+++ b/ravenwood/runtime-helper-src/libcore-fake/dalvik/system/VMRuntime.java
@@ -57,4 +57,12 @@
     public int getTargetSdkVersion() {
         return RavenwoodRuntimeState.sTargetSdkLevel;
     }
+
+    /** Ignored on ravenwood. */
+    public void registerNativeAllocation(long bytes) {
+    }
+
+    /** Ignored on ravenwood. */
+    public void registerNativeFree(long bytes) {
+    }
 }
diff --git a/ravenwood/runtime-helper-src/libcore-fake/libcore/io/IoBridge.java b/ravenwood/runtime-helper-src/libcore-fake/libcore/io/IoBridge.java
new file mode 100644
index 0000000..2a1ee25
--- /dev/null
+++ b/ravenwood/runtime-helper-src/libcore-fake/libcore/io/IoBridge.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2025 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 libcore.io;
+
+import android.system.ErrnoException;
+import android.system.Os;
+import android.system.OsConstants;
+
+import java.io.FileDescriptor;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+public class IoBridge {
+
+    public static void closeAndSignalBlockedThreads(FileDescriptor fd) throws IOException {
+        if (fd == null) {
+            return;
+        }
+        try {
+            Os.close(fd);
+        } catch (ErrnoException errnoException) {
+            throw errnoException.rethrowAsIOException();
+        }
+    }
+
+    public static FileDescriptor open(String path, int flags) throws FileNotFoundException {
+        FileDescriptor fd = null;
+        try {
+            fd = Os.open(path, flags, 0666);
+            // Posix open(2) fails with EISDIR only if you ask for write permission.
+            // Java disallows reading directories too.f
+            if (OsConstants.S_ISDIR(Os.fstat(fd).st_mode)) {
+                throw new ErrnoException("open", OsConstants.EISDIR);
+            }
+            return fd;
+        } catch (ErrnoException errnoException) {
+            try {
+                if (fd != null) {
+                    closeAndSignalBlockedThreads(fd);
+                }
+            } catch (IOException ignored) {
+            }
+            FileNotFoundException ex = new FileNotFoundException(path + ": "
+                    + errnoException.getMessage());
+            ex.initCause(errnoException);
+            throw ex;
+        }
+    }
+}
diff --git a/ravenwood/runtime-helper-src/libcore-fake/libcore/util/NativeAllocationRegistry.java b/ravenwood/runtime-helper-src/libcore-fake/libcore/util/NativeAllocationRegistry.java
index ad86135..985e00e 100644
--- a/ravenwood/runtime-helper-src/libcore-fake/libcore/util/NativeAllocationRegistry.java
+++ b/ravenwood/runtime-helper-src/libcore-fake/libcore/util/NativeAllocationRegistry.java
@@ -35,6 +35,11 @@
         return new NativeAllocationRegistry(classLoader, freeFunction, size);
     }
 
+    public static NativeAllocationRegistry createNonmalloced(
+            Class clazz, long freeFunction, long size) {
+        return new NativeAllocationRegistry(clazz.getClassLoader(), freeFunction, size);
+    }
+
     public static NativeAllocationRegistry createMalloced(
             ClassLoader classLoader, long freeFunction, long size) {
         return new NativeAllocationRegistry(classLoader, freeFunction, size);
@@ -45,6 +50,11 @@
         return new NativeAllocationRegistry(classLoader, freeFunction, 0);
     }
 
+    public static NativeAllocationRegistry createMalloced(
+            Class clazz, long freeFunction, long size) {
+        return new NativeAllocationRegistry(clazz.getClassLoader(), freeFunction, size);
+    }
+
     public NativeAllocationRegistry(ClassLoader classLoader, long freeFunction, long size) {
         if (size < 0) {
             throw new IllegalArgumentException("Invalid native allocation size: " + size);
@@ -52,21 +62,67 @@
         mFreeFunction = freeFunction;
     }
 
+    private class CleanerThunk implements Runnable {
+        private long nativePtr;
+
+        public CleanerThunk() {
+            nativePtr = 0;
+        }
+
+        public void setNativePtr(long ptr) {
+            nativePtr = ptr;
+        }
+
+        @Override
+        public void run() {
+            if (nativePtr != 0) {
+                applyFreeFunction(mFreeFunction, nativePtr);
+            }
+        }
+    }
+
+    private static class CleanableRunner implements Runnable {
+        private final Cleaner.Cleanable mCleanable;
+
+        public CleanableRunner(Cleaner.Cleanable cleanable) {
+            mCleanable = cleanable;
+        }
+
+        public void run() {
+            mCleanable.clean();
+        }
+    }
+
     public Runnable registerNativeAllocation(Object referent, long nativePtr) {
         if (referent == null) {
             throw new IllegalArgumentException("referent is null");
         }
+        if (mFreeFunction == 0) {
+            return () -> {}; // do nothing
+        }
         if (nativePtr == 0) {
             throw new IllegalArgumentException("nativePtr is null");
         }
 
-        final Runnable releaser = () -> {
-            RavenwoodRuntimeNative.applyFreeFunction(mFreeFunction, nativePtr);
-        };
-        sCleaner.register(referent, releaser);
+        final CleanerThunk thunk;
+        final CleanableRunner result;
+        try {
+            thunk = new CleanerThunk();
+            final var cleanable = sCleaner.register(referent, thunk);
+            result = new CleanableRunner(cleanable);
+        } catch (VirtualMachineError vme /* probably OutOfMemoryError */) {
+            applyFreeFunction(mFreeFunction, nativePtr);
+            throw vme;
+        }
 
+        // Enable the cleaner only after we can no longer throw anything, including OOME.
+        thunk.setNativePtr(nativePtr);
         // Ensure that cleaner doesn't get invoked before we enable it.
         Reference.reachabilityFence(referent);
-        return releaser;
+        return result;
+    }
+
+    public static void applyFreeFunction(long freeFunction, long nativePtr) {
+        RavenwoodRuntimeNative.applyFreeFunction(freeFunction, nativePtr);
     }
 }
diff --git a/ravenwood/runtime-jni/ravenwood_runtime.cpp b/ravenwood/runtime-jni/ravenwood_runtime.cpp
index 8d8ed71..01ebdc9 100644
--- a/ravenwood/runtime-jni/ravenwood_runtime.cpp
+++ b/ravenwood/runtime-jni/ravenwood_runtime.cpp
@@ -20,6 +20,7 @@
 #include <sys/syscall.h>
 #include <unistd.h>
 #include <utils/misc.h>
+#include <unicode/utypes.h>
 
 #include <string>
 
@@ -183,6 +184,10 @@
     return syscall(__NR_gettid);
 }
 
+static jstring getIcuDataName(JNIEnv* env, jclass clazz) {
+    return env->NewStringUTF(U_ICUDATA_NAME);
+}
+
 // ---- Registration ----
 
 extern void register_android_system_OsConstants(JNIEnv* env);
@@ -201,6 +206,7 @@
     { "setenv", "(Ljava/lang/String;Ljava/lang/String;Z)V", (void*)Linux_setenv },
     { "getpid", "()I", (void*)Linux_getpid },
     { "gettid", "()I", (void*)Linux_gettid },
+    { "getIcuDataName", "()Ljava/lang/String;", (void*)getIcuDataName },
 };
 
 extern "C" jint JNI_OnLoad(JavaVM* vm, void* /* reserved */) {
diff --git a/ravenwood/scripts/add-annotations.sh b/ravenwood/scripts/add-annotations.sh
index 3e86037..8c394f5 100755
--- a/ravenwood/scripts/add-annotations.sh
+++ b/ravenwood/scripts/add-annotations.sh
@@ -35,7 +35,7 @@
 # We add this line to each methods found.
 # Note, if we used a single @, that'd be handled as an at file. Use
 # the double-at instead.
-annotation="@@android.platform.test.annotations.DisabledOnRavenwood"
+annotation="@@android.platform.test.annotations.DisabledOnRavenwood(reason = \"bulk-disabled by script\")"
 while getopts "t:" opt; do
 case "$opt" in
     t)
diff --git a/ravenwood/tests/coretest/Android.bp b/ravenwood/tests/coretest/Android.bp
index 9dd7cc6..182a7cf 100644
--- a/ravenwood/tests/coretest/Android.bp
+++ b/ravenwood/tests/coretest/Android.bp
@@ -33,3 +33,34 @@
     },
     auto_gen_config: true,
 }
+
+// Same as RavenwoodCoreTest, but it excludes tests using platform-parametric-runner-lib,
+// because that modules has too many dependencies and slow to build incrementally.
+android_ravenwood_test {
+    name: "RavenwoodCoreTest-light",
+
+    static_libs: [
+        "androidx.annotation_annotation",
+        "androidx.test.ext.junit",
+        "androidx.test.rules",
+
+        // This library should be removed by Ravenizer
+        "mockito-target-minus-junit4",
+    ],
+    libs: [
+        // We access internal private classes
+        "ravenwood-junit-impl",
+    ],
+    srcs: [
+        "test/**/*.java",
+        "test/**/*.kt",
+    ],
+
+    exclude_srcs: [
+        "test/com/android/ravenwoodtest/runnercallbacktests/*",
+    ],
+    ravenizer: {
+        strip_mockito: true,
+    },
+    auto_gen_config: true,
+}
diff --git a/ravenwood/tests/coretest/test/com/android/ravenwoodtest/coretest/RavenwoodMainThreadTest.java b/ravenwood/tests/coretest/test/com/android/ravenwoodtest/coretest/RavenwoodMainThreadTest.java
new file mode 100644
index 0000000..68387d7
--- /dev/null
+++ b/ravenwood/tests/coretest/test/com/android/ravenwoodtest/coretest/RavenwoodMainThreadTest.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2025 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.ravenwoodtest.coretest;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeTrue;
+
+import android.platform.test.ravenwood.RavenwoodUtils;
+
+import org.junit.Test;
+
+import java.util.concurrent.atomic.AtomicReference;
+
+public class RavenwoodMainThreadTest {
+    private static final boolean RUN_UNSAFE_TESTS =
+            "1".equals(System.getenv("RAVENWOOD_RUN_UNSAFE_TESTS"));
+
+    @Test
+    public void testRunOnMainThread() {
+        AtomicReference<Thread> thr = new AtomicReference<>();
+        RavenwoodUtils.runOnMainThreadSync(() -> {
+            thr.set(Thread.currentThread());
+        });
+        var th = thr.get();
+        assertThat(th).isNotNull();
+        assertThat(th).isNotEqualTo(Thread.currentThread());
+    }
+
+    /**
+     * Sleep a long time on the main thread. This test would then "pass", but Ravenwood
+     * should show the stack traces.
+     *
+     * This is "unsafe" because this test is slow.
+     */
+    @Test
+    public void testUnsafeMainThreadHang() {
+        assumeTrue(RUN_UNSAFE_TESTS);
+
+        // The test should time out.
+        RavenwoodUtils.runOnMainThreadSync(() -> {
+            try {
+                Thread.sleep(30_000);
+            } catch (InterruptedException e) {
+                fail("Interrupted");
+            }
+        });
+    }
+
+    /**
+     * AssertionError on the main thread would be swallowed and reported "normally".
+     * (Other kinds of exceptions would be caught by the unhandled exception handler, and kills
+     * the process)
+     *
+     * This is "unsafe" only because this feature can be disabled via the env var.
+     */
+    @Test
+    public void testUnsafeAssertFailureOnMainThread() {
+        assumeTrue(RUN_UNSAFE_TESTS);
+
+        assertThrows(AssertionError.class, () -> {
+            RavenwoodUtils.runOnMainThreadSync(() -> {
+                fail();
+            });
+        });
+    }
+}
diff --git a/ravenwood/tests/coretest/test/com/android/ravenwoodtest/coretest/RavenwoodReflectorTest.java b/ravenwood/tests/coretest/test/com/android/ravenwoodtest/coretest/RavenwoodReflectorTest.java
new file mode 100644
index 0000000..421fb50
--- /dev/null
+++ b/ravenwood/tests/coretest/test/com/android/ravenwoodtest/coretest/RavenwoodReflectorTest.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2025 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.ravenwoodtest.coretest;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.android.ravenwood.common.RavenwoodCommonUtils.ReflectedMethod;
+
+import org.junit.Test;
+
+/**
+ * Tests for {@link ReflectedMethod}.
+ */
+public class RavenwoodReflectorTest {
+    /** test target */
+    public class Target {
+        private final int mVar;
+
+        /** test target */
+        public Target(int var) {
+            mVar = var;
+        }
+
+        /** test target */
+        public int foo(int x) {
+            return x + mVar;
+        }
+
+        /** test target */
+        public static int bar(int x) {
+            return x + 1;
+        }
+    }
+
+    /** Test for a non-static method call */
+    @Test
+    public void testNonStatic() {
+        var obj = new Target(5);
+
+        var m = ReflectedMethod.reflectMethod(Target.class, "foo", int.class);
+        assertThat((int) m.call(obj, 2)).isEqualTo(7);
+    }
+
+    /** Test for a static method call */
+    @Test
+    public void testStatic() {
+        var m = ReflectedMethod.reflectMethod(Target.class, "bar", int.class);
+        assertThat((int) m.callStatic(1)).isEqualTo(2);
+    }
+}
diff --git a/ravenwood/tests/coretest/test/com/android/ravenwoodtest/coretest/RavenwoodSystemPropertiesTest.java b/ravenwood/tests/coretest/test/com/android/ravenwoodtest/coretest/RavenwoodSystemPropertiesTest.java
new file mode 100644
index 0000000..454f5a9
--- /dev/null
+++ b/ravenwood/tests/coretest/test/com/android/ravenwoodtest/coretest/RavenwoodSystemPropertiesTest.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2025 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.ravenwoodtest.coretest;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.fail;
+
+import android.os.SystemProperties;
+
+import org.junit.Test;
+
+public class RavenwoodSystemPropertiesTest {
+    @Test
+    public void testRead() {
+        assertThat(SystemProperties.get("ro.board.first_api_level")).isEqualTo("1");
+    }
+
+    @Test
+    public void testWrite() {
+        SystemProperties.set("debug.xxx", "5");
+        assertThat(SystemProperties.get("debug.xxx")).isEqualTo("5");
+    }
+
+    private static void assertException(String expectedMessage, Runnable r) {
+        try {
+            r.run();
+            fail("Excepted exception with message '" + expectedMessage + "' but wasn't thrown");
+        } catch (RuntimeException e) {
+            if (e.getMessage().contains(expectedMessage)) {
+                return;
+            }
+            fail("Excepted exception with message '" + expectedMessage + "' but was '"
+                    + e.getMessage() +  "'");
+        }
+    }
+
+
+    @Test
+    public void testReadDisallowed() {
+        assertException("Read access to system property 'nonexisitent' denied", () -> {
+            SystemProperties.get("nonexisitent");
+        });
+    }
+
+    @Test
+    public void testWriteDisallowed() {
+        assertException("failed to set system property \"ro.board.first_api_level\" ", () -> {
+            SystemProperties.set("ro.board.first_api_level", "2");
+        });
+    }
+}
diff --git a/ravenwood/tests/minimum-test/test/com/android/ravenwoodtest/RavenwoodMinimumTest.java b/ravenwood/tests/minimum-test/test/com/android/ravenwoodtest/RavenwoodMinimumTest.java
index 30abaa2..b1a40f0 100644
--- a/ravenwood/tests/minimum-test/test/com/android/ravenwoodtest/RavenwoodMinimumTest.java
+++ b/ravenwood/tests/minimum-test/test/com/android/ravenwoodtest/RavenwoodMinimumTest.java
@@ -16,28 +16,27 @@
 package com.android.ravenwoodtest;
 
 import android.platform.test.annotations.IgnoreUnderRavenwood;
-import android.platform.test.ravenwood.RavenwoodRule;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import org.junit.Assert;
-import org.junit.Rule;
+import org.junit.Assume;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 @RunWith(AndroidJUnit4.class)
 public class RavenwoodMinimumTest {
-    @Rule
-    public final RavenwoodRule mRavenwood = new RavenwoodRule.Builder()
-            .setProcessApp()
-            .build();
-
     @Test
     public void testSimple() {
         Assert.assertTrue(android.os.Process.isApplicationUid(android.os.Process.myUid()));
     }
 
     @Test
+    public void testAssumeNot() {
+        Assume.assumeFalse(android.os.Process.isApplicationUid(android.os.Process.myUid()));
+    }
+
+    @Test
     @IgnoreUnderRavenwood
     public void testIgnored() {
         throw new RuntimeException("Shouldn't be executed under ravenwood");
diff --git a/ravenwood/texts/ravenwood-annotation-allowed-classes.txt b/ravenwood/texts/ravenwood-annotation-allowed-classes.txt
index e202d0e..7462cc2 100644
--- a/ravenwood/texts/ravenwood-annotation-allowed-classes.txt
+++ b/ravenwood/texts/ravenwood-annotation-allowed-classes.txt
@@ -259,6 +259,8 @@
 android.database.sqlite.SQLiteException
 
 android.text.TextUtils
+android.text.Html
+android.text.HtmlToSpannedConverter
 
 android.accounts.Account
 
@@ -278,6 +280,10 @@
 android.graphics.Rect
 android.graphics.RectF
 
+android.graphics.fonts.SystemFonts
+
+android.graphics.text.LineBreakConfig
+
 android.content.ContentProvider
 
 android.app.ActivityManager
@@ -383,3 +389,228 @@
 com.android.server.compat.*
 com.android.internal.compat.*
 android.app.AppCompatCallbacks
+android.graphics.AvoidXfermode
+android.graphics.BLASTBufferQueue
+android.graphics.BaseCanvas
+android.graphics.BaseRecordingCanvas
+android.graphics.Bitmap
+android.graphics.BitmapFactory
+android.graphics.BitmapRegionDecoder
+android.graphics.BitmapShader
+android.graphics.BlendMode
+android.graphics.BlendModeColorFilter
+android.graphics.BlurMaskFilter
+android.graphics.Camera
+android.graphics.Canvas
+android.graphics.CanvasProperty
+android.graphics.ColorFilter
+android.graphics.ColorMatrix
+android.graphics.ColorMatrixColorFilter
+android.graphics.Compatibility
+android.graphics.ComposePathEffect
+android.graphics.ComposeShader
+android.graphics.CornerPathEffect
+android.graphics.DashPathEffect
+android.graphics.DiscretePathEffect
+android.graphics.DrawFilter
+android.graphics.EmbossMaskFilter
+android.graphics.FontFamily
+android.graphics.FontListParser
+android.graphics.ForceDarkType
+android.graphics.FrameInfo
+android.graphics.Gainmap
+android.graphics.GraphicBuffer
+android.graphics.GraphicsProtos
+android.graphics.GraphicsStatsService
+android.graphics.HardwareBufferRenderer
+android.graphics.HardwareRenderer
+android.graphics.HardwareRendererObserver
+android.graphics.ImageDecoder
+android.graphics.ImageFormat
+android.graphics.LayerRasterizer
+android.graphics.LeakyTypefaceStorage
+android.graphics.LightingColorFilter
+android.graphics.LinearGradient
+android.graphics.MaskFilter
+android.graphics.Mesh
+android.graphics.MeshSpecification
+android.graphics.Movie
+android.graphics.NinePatch
+android.graphics.Paint
+android.graphics.PaintFlagsDrawFilter
+android.graphics.PathDashPathEffect
+android.graphics.PathEffect
+android.graphics.PathIterator
+android.graphics.PathMeasure
+android.graphics.Picture
+android.graphics.PixelXorXfermode
+android.graphics.PorterDuff
+android.graphics.PorterDuffColorFilter
+android.graphics.PorterDuffXfermode
+android.graphics.PostProcessor
+android.graphics.RadialGradient
+android.graphics.Rasterizer
+android.graphics.RecordingCanvas
+android.graphics.Region
+android.graphics.RegionIterator
+android.graphics.RenderEffect
+android.graphics.RenderNode
+android.graphics.RuntimeColorFilter
+android.graphics.RuntimeShader
+android.graphics.RuntimeXfermode
+android.graphics.Shader
+android.graphics.SumPathEffect
+android.graphics.SurfaceTexture
+android.graphics.SweepGradient
+android.graphics.TableMaskFilter
+android.graphics.TemporaryBuffer
+android.graphics.TextureLayer
+android.graphics.Typeface
+android.graphics.Xfermode
+android.graphics.YuvImage
+android.graphics.fonts.Font
+android.graphics.fonts.FontCustomizationParser
+android.graphics.fonts.FontFamily
+android.graphics.fonts.FontFamilyUpdateRequest
+android.graphics.fonts.FontFileUpdateRequest
+android.graphics.fonts.FontFileUtil
+android.graphics.fonts.FontStyle
+android.graphics.fonts.FontVariationAxis
+android.graphics.text.GraphemeBreak
+android.graphics.text.LineBreaker
+android.graphics.text.MeasuredText
+android.graphics.text.PositionedGlyphs
+android.graphics.text.TextRunShaper
+android.text.AlteredCharSequence
+android.text.AndroidBidi
+android.text.AndroidCharacter
+android.text.Annotation
+android.text.AutoGrowArray
+android.text.AutoText
+android.text.BidiFormatter
+android.text.BoringLayout
+android.text.CharSequenceCharacterIterator
+android.text.ClipboardManager
+android.text.DynamicLayout
+android.text.Editable
+android.text.Emoji
+android.text.EmojiConsistency
+android.text.FontConfig
+android.text.GetChars
+android.text.GraphemeClusterSegmentFinder
+android.text.GraphicsOperations
+android.text.Highlights
+android.text.Hyphenator
+android.text.InputFilter
+android.text.InputType
+android.text.Layout
+android.text.LoginFilter
+android.text.MeasuredParagraph
+android.text.NoCopySpan
+android.text.PackedIntVector
+android.text.PackedObjectVector
+android.text.ParcelableSpan
+android.text.PrecomputedText
+android.text.SegmentFinder
+android.text.Selection
+android.text.SpanColors
+android.text.SpanSet
+android.text.SpanWatcher
+android.text.Spannable
+android.text.SpannableString
+android.text.SpannableStringBuilder
+android.text.SpannableStringInternal
+android.text.Spanned
+android.text.SpannedString
+android.text.StaticLayout
+android.text.TextDirectionHeuristic
+android.text.TextDirectionHeuristics
+android.text.TextLine
+android.text.TextPaint
+android.text.TextShaper
+android.text.TextWatcher
+android.text.WordSegmentFinder
+android.text.format.DateFormat
+android.text.format.DateIntervalFormat
+android.text.format.DateTimeFormat
+android.text.format.DateUtils
+android.text.format.DateUtilsBridge
+android.text.format.Formatter
+android.text.format.RelativeDateTimeFormatter
+android.text.format.Time
+android.text.format.TimeFormatter
+android.text.format.TimeMigrationUtils
+android.text.method.AllCapsTransformationMethod
+android.text.method.ArrowKeyMovementMethod
+android.text.method.BaseKeyListener
+android.text.method.BaseMovementMethod
+android.text.method.CharacterPickerDialog
+android.text.method.DateKeyListener
+android.text.method.DateTimeKeyListener
+android.text.method.DialerKeyListener
+android.text.method.DigitsKeyListener
+android.text.method.HideReturnsTransformationMethod
+android.text.method.InsertModeTransformationMethod
+android.text.method.KeyListener
+android.text.method.LinkMovementMethod
+android.text.method.MetaKeyKeyListener
+android.text.method.MovementMethod
+android.text.method.MultiTapKeyListener
+android.text.method.NumberKeyListener
+android.text.method.OffsetMapping
+android.text.method.PasswordTransformationMethod
+android.text.method.QwertyKeyListener
+android.text.method.ReplacementTransformationMethod
+android.text.method.ScrollingMovementMethod
+android.text.method.SingleLineTransformationMethod
+android.text.method.TextKeyListener
+android.text.method.TimeKeyListener
+android.text.method.Touch
+android.text.method.TransformationMethod
+android.text.method.TransformationMethod2
+android.text.method.TranslationTransformationMethod
+android.text.method.WordIterator
+android.text.style.AbsoluteSizeSpan
+android.text.style.AccessibilityClickableSpan
+android.text.style.AccessibilityReplacementSpan
+android.text.style.AccessibilityURLSpan
+android.text.style.AlignmentSpan
+android.text.style.BackgroundColorSpan
+android.text.style.BulletSpan
+android.text.style.CharacterStyle
+android.text.style.ClickableSpan
+android.text.style.ForegroundColorSpan
+android.text.style.IconMarginSpan
+android.text.style.LeadingMarginSpan
+android.text.style.LineBackgroundSpan
+android.text.style.LineBreakConfigSpan
+android.text.style.LineHeightSpan
+android.text.style.LocaleSpan
+android.text.style.MaskFilterSpan
+android.text.style.MetricAffectingSpan
+android.text.style.NoWritingToolsSpan
+android.text.style.ParagraphStyle
+android.text.style.QuoteSpan
+android.text.style.RasterizerSpan
+android.text.style.RelativeSizeSpan
+android.text.style.ReplacementSpan
+android.text.style.ScaleXSpan
+android.text.style.SpanUtils
+android.text.style.SpellCheckSpan
+android.text.style.StrikethroughSpan
+android.text.style.StyleSpan
+android.text.style.SubscriptSpan
+android.text.style.SuggestionRangeSpan
+android.text.style.SuggestionSpan
+android.text.style.SuperscriptSpan
+android.text.style.TabStopSpan
+android.text.style.TextAppearanceSpan
+android.text.style.TtsSpan
+android.text.style.TypefaceSpan
+android.text.style.URLSpan
+android.text.style.UnderlineSpan
+android.text.style.UpdateAppearance
+android.text.style.UpdateLayout
+android.text.style.WrapTogetherSpan
+android.text.util.Rfc822Token
+android.text.util.Rfc822Tokenizer
diff --git a/ravenwood/texts/ravenwood-build.prop b/ravenwood/texts/ravenwood-build.prop
index 7cc4454..512b459 100644
--- a/ravenwood/texts/ravenwood-build.prop
+++ b/ravenwood/texts/ravenwood-build.prop
@@ -8,7 +8,43 @@
 ro.soc.model=Ravenwood
 ro.debuggable=1
 
-# The ones starting with "ro.product" or "ro.bild" will be copied to all "partitions" too.
+persist.sys.locale=en-US
+ro.product.locale=en-US
+
+ro.hwui.max_texture_allocation_size=104857600
+
+# Allowlist control:
+# This set is carefully curated to help identify situations where a test may
+# accidentally depend on a default value of an obscure property whose owner hasn't
+# decided how Ravenwood should behave.
+
+boot.=$$$r
+build.=$$$r
+product.=$$$r
+soc.=$$$r
+system.=$$$r
+wm.debug.=$$$r
+wm.extensions.=$$$r
+
+gsm.version.baseband=$$$r
+no.such.thing=$$$r
+qemu.sf.lcd_density=$$$r
+ro.bootloader=$$$r
+ro.hardware=$$$r
+ro.hw_timeout_multiplier=$$$r
+ro.odm.build.media_performance_class=$$$r
+ro.sf.lcd_density=$$$r
+ro.treble.enabled=$$$r
+ro.vndk.version=$$$r
+ro.icu.data.path=$$$r
+
+# Writable keys
+debug.=$$$w
+
+# For PropertyInvalidatedCache
+cache_key.=$$$w
+
+# The ones starting with "ro.product" or "ro.build" will be copied to all "partitions" too.
 # See RavenwoodSystemProperties.
 ro.product.brand=Android
 ro.product.device=Ravenwood
diff --git a/ravenwood/texts/ravenwood-common-policies.txt b/ravenwood/texts/ravenwood-common-policies.txt
index fd4ea6c..f0f4b85 100644
--- a/ravenwood/texts/ravenwood-common-policies.txt
+++ b/ravenwood/texts/ravenwood-common-policies.txt
@@ -21,3 +21,7 @@
     method setInt$ @com.android.ravenwood.RavenwoodJdkPatch.setInt$
 class java.util.LinkedHashMap  # no-pta
     method eldest @com.android.ravenwood.RavenwoodJdkPatch.eldest
+
+# Always set flag UNICODE_CHARACTER_CLASS when compiling regex
+class java.util.regex.Pattern keep
+    method compile @com.android.ravenwood.RavenwoodJdkPatch.compilePattern
diff --git a/ravenwood/texts/ravenwood-framework-policies.txt b/ravenwood/texts/ravenwood-framework-policies.txt
index fff9e6a..5c17662 100644
--- a/ravenwood/texts/ravenwood-framework-policies.txt
+++ b/ravenwood/texts/ravenwood-framework-policies.txt
@@ -50,8 +50,10 @@
 class android.telephony.PinResult keepclass  # no-pta
 
 # Just enough to support mocking, no further functionality
-class android.content.BroadcastReceiver keep  # no-pta
-    method <init> ()V keep
+class android.content.BroadcastReceiver allow-annotation
+    method <init> ()V allow-annotation
+
+# TODO: Convert the following policies to "allow-annotation".
 class android.content.Context keep  # no-pta
     method <init> ()V keep
     method getSystemService (Ljava/lang/Class;)Ljava/lang/Object; keep  # no-pta
@@ -63,3 +65,22 @@
 # Just enough to allow ResourcesManager to run
 class android.hardware.display.DisplayManagerGlobal keep # no-pta
     method getInstance ()Landroid/hardware/display/DisplayManagerGlobal; ignore # no-pta
+
+# Bare minimum to support running ImageDecoderTest
+class android.graphics.drawable.Drawable$ConstantState keepclass # no-pta
+class android.graphics.drawable.BitmapDrawable$BitmapState keepclass # no-pta
+class android.graphics.drawable.BitmapDrawable keep # no-pta
+    method <init> (Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V keep
+    method init * keep
+    method updateLocalState * keep
+    method computeBitmapSize * keep
+    method getIntrinsicWidth * keep
+    method getIntrinsicHeight * keep
+    method getBitmap * keep
+class android.graphics.drawable.Drawable keep # no-pta
+    method <init> ()V keep
+    method resolveDensity * keep
+    method updateBlendModeFilter * ignore
+
+class android.os.StrictMode keep # no-pta
+    method noteSlowCall (Ljava/lang/String;)V ignore
diff --git a/ravenwood/texts/ravenwood-services-jarjar-rules.txt b/ravenwood/texts/ravenwood-services-jarjar-rules.txt
index 8fdd340..64a0e25 100644
--- a/ravenwood/texts/ravenwood-services-jarjar-rules.txt
+++ b/ravenwood/texts/ravenwood-services-jarjar-rules.txt
@@ -5,7 +5,7 @@
 
 # Rename all other service internals so that tests can continue to statically
 # link services code when owners aren't ready to support on Ravenwood
-rule com.android.server.** repackaged.@0
+rule com.android.server.** repackaged.services.@0
 
 # TODO: support AIDL generated Parcelables via hoststubgen
-rule android.hardware.power.stats.** repackaged.@0
+rule android.hardware.power.stats.** repackaged.services.@0
diff --git a/ravenwood/texts/ravenwood-standard-options.txt b/ravenwood/texts/ravenwood-standard-options.txt
index 0edc348..2336575 100644
--- a/ravenwood/texts/ravenwood-standard-options.txt
+++ b/ravenwood/texts/ravenwood-standard-options.txt
@@ -36,6 +36,9 @@
 --ignore-annotation
     android.ravenwood.annotation.RavenwoodIgnore
 
+--partially-allowed-annotation
+    android.ravenwood.annotation.RavenwoodPartiallyAllowlisted
+
 --substitute-annotation
     android.ravenwood.annotation.RavenwoodReplace
 
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/util/MediaSmartspaceLoggerKosmos.kt b/ravenwood/tools/hoststubgen/annotations-src/android/hosttest/annotation/HostSideTestPartiallyAllowlisted.java
similarity index 60%
copy from packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/util/MediaSmartspaceLoggerKosmos.kt
copy to ravenwood/tools/hoststubgen/annotations-src/android/hosttest/annotation/HostSideTestPartiallyAllowlisted.java
index c63dec5..49b5938 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/media/controls/util/MediaSmartspaceLoggerKosmos.kt
+++ b/ravenwood/tools/hoststubgen/annotations-src/android/hosttest/annotation/HostSideTestPartiallyAllowlisted.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 The Android Open Source Project
+ * Copyright (C) 2023 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.
@@ -13,11 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+package android.hosttest.annotation;
 
-package com.android.systemui.media.controls.util
+import static java.lang.annotation.ElementType.TYPE;
 
-import com.android.systemui.kosmos.Kosmos
-import org.mockito.Mockito.mock
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
 
-var Kosmos.mediaSmartspaceLogger by Kosmos.Fixture { MediaSmartspaceLogger() }
-val Kosmos.mockMediaSmartspaceLogger by Kosmos.Fixture { mock(MediaSmartspaceLogger::class.java) }
+@Target({TYPE})
+@Retention(RetentionPolicy.CLASS)
+public @interface HostSideTestPartiallyAllowlisted {
+}
diff --git a/ravenwood/tools/hoststubgen/hoststubgen-standard-options.txt b/ravenwood/tools/hoststubgen/hoststubgen-standard-options.txt
index 9c46a16..0625412 100644
--- a/ravenwood/tools/hoststubgen/hoststubgen-standard-options.txt
+++ b/ravenwood/tools/hoststubgen/hoststubgen-standard-options.txt
@@ -20,6 +20,9 @@
 --keep-class-annotation
     android.hosttest.annotation.HostSideTestWholeClassKeep
 
+--partially-allowed-annotation
+    android.hosttest.annotation.HostSideTestPartiallyAllowlisted
+
 --throw-annotation
     android.hosttest.annotation.HostSideTestThrow
 
diff --git a/ravenwood/tools/hoststubgen/hoststubgen-test-policy-override.txt b/ravenwood/tools/hoststubgen/hoststubgen-test-policy-override.txt
deleted file mode 100644
index 000771a..0000000
--- a/ravenwood/tools/hoststubgen/hoststubgen-test-policy-override.txt
+++ /dev/null
@@ -1,82 +0,0 @@
-# *************************************************************************************************
-# This file contains "policies" for HostStubGen used by its automated tests.
-# For the "real" Ravenwood policies, see the frameworks/base/ravenwood/texts/ directory.
-# *************************************************************************************************
-
-# --------------------------------------------------------------------------------------------------
-# Directions on auto-generated classes, where we can't use Java annotations (yet).
-# --------------------------------------------------------------------------------------------------
-class android.Manifest stubclass
-class android.R        stubclass
-class android.os.PersistableBundleProto	keepclass
-
-# This is in module-utils, where using a HostStubGen annotation would be complicated, so we
-# add a direction here rather than using a java annotation.
-# The build file says it's deprecated, anyway...? Figure out what to do with it.
-class com.android.internal.util.Preconditions keepclass
-
-# --------------------------------------------------------------------------------------------------
-# Actual framework classes
-# --------------------------------------------------------------------------------------------------
-
-# Put basic exception classes in the "impl" jar.
-# We don't put them in stub yet (until something actually needs them).
-class android.os.DeadObjectException          keepclass
-class android.os.DeadSystemRuntimeException   keepclass
-class android.os.NetworkOnMainThreadException keepclass
-class android.os.RemoteException              keepclass
-class android.os.ServiceSpecificException     keepclass
-class android.util.AndroidException           keepclass
-class android.util.AndroidRuntimeException    keepclass
-class android.os.DeadSystemException          keepclass
-
-
-# For now, we only want to expose ArrayMap and Log, but they and their tests depend on
-# more classes.
-
-class android.util.ArrayMap             stubclass
-
-# Used by ArrayMap. No need to put them in the stub, but we need them in impl.
-class android.util.MapCollections         keepclass
-class android.util.ContainerHelpers       keepclass
-class android.util.EmptyArray             stubclass
-class com.android.internal.util.XmlUtils  keepclass
-class com.android.internal.util.FastMath  keepclass
-class android.util.MathUtils              keepclass
-
-
-class android.util.Log          stubclass
-class android.util.Slog         stubclass
-# We don't use Log's native code, yet. Instead, the following line enables the Java substitution.
-# Comment it out to disable Java substitution of Log's native methods.
-class android.util.Log	!com.android.hoststubgen.nativesubstitution.Log_host
-
-# Used by log
-class com.android.internal.util.FastPrintWriter         keepclass
-class com.android.internal.util.LineBreakBufferedWriter keepclass
-
-class android.util.EventLog stubclass
-class android.util.EventLog !com.android.hoststubgen.nativesubstitution.EventLog_host
-class android.util.EventLog$Event stubclass
-
-# Expose Context because it's referred to by AndroidTestCase, but don't need to expose any of
-# its members.
-class android.content.Context        keep
-
-# Expose Parcel, Parcel and there relevant classes, which are used by ArrayMapTets.
-class android.os.Parcelable     StubClass
-class android.os.Parcel         StubClass
-class android.os.Parcel         !com.android.hoststubgen.nativesubstitution.Parcel_host
-
-class android.os.IBinder        stubClass
-class android.os.IInterface     stubclass
-
-class android.os.BadParcelableException     stubclass
-class android.os.BadTypeParcelableException stubclass
-
-class android.os.BaseBundle        stubclass
-class android.os.Bundle            stubclass
-class android.os.PersistableBundle stubclass
-
-class android.os.MessageQueue stubclass
-class android.os.MessageQueue !com.android.hoststubgen.nativesubstitution.MessageQueue_host
diff --git a/ravenwood/tools/hoststubgen/invoketest/hoststubgen-invoke-test.sh b/ravenwood/tools/hoststubgen/invoketest/hoststubgen-invoke-test.sh
index 084448d..da1e40a 100755
--- a/ravenwood/tools/hoststubgen/invoketest/hoststubgen-invoke-test.sh
+++ b/ravenwood/tools/hoststubgen/invoketest/hoststubgen-invoke-test.sh
@@ -47,6 +47,7 @@
 OUTJAR=$TEMP/host.jar
 
 ANNOTATION_FILTER=$TEMP/annotation-filter.txt
+POLICY_FILE=$TEMP/policy-file.txt
 
 HOSTSTUBGEN_OUT=$TEMP/output.txt
 
@@ -66,12 +67,14 @@
 run_hoststubgen() {
   local test_name="$1"
   local annotation_filter="$2"
+  local policy="$3"
 
   echo "# Test: $test_name"
 
   cleanup_temp
 
   local filter_arg=""
+  local policy_arg=""
 
   if [[ "$annotation_filter" != "" ]] ; then
     echo "$annotation_filter" > $ANNOTATION_FILTER
@@ -80,6 +83,13 @@
     cat $ANNOTATION_FILTER
   fi
 
+  if [[ "$policy" != "" ]] ; then
+    echo "$policy" > $POLICY_FILE
+    policy_arg="--policy-override-file $POLICY_FILE"
+    echo "=== policy ==="
+    cat $POLICY_FILE
+  fi
+
   local out_arg=""
 
   if [[ "$OUTJAR" != "" ]] ; then
@@ -108,7 +118,10 @@
           android.hosttest.annotation.HostSideTestClassLoadHook \
       --keep-static-initializer-annotation \
           android.hosttest.annotation.HostSideTestStaticInitializerKeep \
+      --partially-allowed-annotation \
+          android.hosttest.annotation.HostSideTestPartiallyAllowlisted \
       $filter_arg \
+      $policy_arg \
       $EXTRA_ARGS \
       |& tee $HOSTSTUBGEN_OUT
   HOSTSTUBGEN_RC=${PIPESTATUS[0]}
@@ -132,10 +145,11 @@
 }
 
 run_hoststubgen_for_success() {
+  local test_name="$1"
   run_hoststubgen "$@"
 
   if (( $HOSTSTUBGEN_RC != 0 )) ; then
-    echo "HostStubGen expected to finish successfully, but failed with $rc"
+    echo "HostStubGen expected to finish successfully, but failed with $HOSTSTUBGEN_RC: Test=$test_name"
     return 1
   fi
 
@@ -151,7 +165,7 @@
   run_hoststubgen "$test_name" "$@"
 
   if (( $HOSTSTUBGEN_RC == 0 )) ; then
-    echo "HostStubGen expected to fail, but it didn't fail"
+    echo "HostStubGen expected to fail, but it didn't fail. Test=$test_name"
     return 1
   fi
 
@@ -161,24 +175,31 @@
 
 # Start the tests...
 
+# These classes require special care, so let's delete them in most tests...
+DELETE_PARTIAL_ANNOTATION_CLASSESS='
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted remove
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad remove
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad remove
+'
+
 # Pass "" as a filter to _not_ add `--annotation-allowed-classes-file`.
-run_hoststubgen_for_success "No annotation filter" ""
+run_hoststubgen_for_success "No annotation filter" "" "$DELETE_PARTIAL_ANNOTATION_CLASSESS"
 
 # Now, we use " ", so we do add `--annotation-allowed-classes-file`.
 run_hoststubgen_for_failure "No classes are allowed to have annotations" \
     "not allowed to have Ravenwood annotations" \
-    " "
+    " " "$DELETE_PARTIAL_ANNOTATION_CLASSESS"
 
 run_hoststubgen_for_success "All classes allowed (wildcard)" \
     "
 * # Allow all classes
-"
+" "$DELETE_PARTIAL_ANNOTATION_CLASSESS"
 
 run_hoststubgen_for_failure "All classes disallowed (wildcard)" \
     "not allowed to have Ravenwood annotations" \
     "
 !* # Disallow all classes
-"
+" "$DELETE_PARTIAL_ANNOTATION_CLASSESS"
 
 run_hoststubgen_for_failure "Some classes not allowed (1)" \
     "not allowed to have Ravenwood annotations" \
@@ -186,7 +207,7 @@
 android.hosttest.*
 com.android.hoststubgen.*
 com.supported.*
-"
+" "$DELETE_PARTIAL_ANNOTATION_CLASSESS"
 
 run_hoststubgen_for_failure "Some classes not allowed (2)" \
     "not allowed to have Ravenwood annotations" \
@@ -194,7 +215,7 @@
 android.hosttest.*
 com.android.hoststubgen.*
 com.unsupported.*
-"
+" "$DELETE_PARTIAL_ANNOTATION_CLASSESS"
 
 run_hoststubgen_for_success "All classes allowed (package wildcard)" \
     "
@@ -202,27 +223,109 @@
 com.android.hoststubgen.*
 com.supported.*
 com.unsupported.*
-"
+" "$DELETE_PARTIAL_ANNOTATION_CLASSESS"
 
 run_hoststubgen_for_failure "One specific class disallowed" \
     "TinyFrameworkAnnotations is not allowed to have Ravenwood annotations" \
     "
 !com.android.hoststubgen.test.tinyframework.TinyFrameworkAnnotations
 * # All other classes allowed
-"
+" "$DELETE_PARTIAL_ANNOTATION_CLASSESS"
 
 run_hoststubgen_for_success "One specific class disallowed, but it doesn't use annotations" \
     "
 !com.android.hoststubgen.test.tinyframework.TinyFrameworkForTextPolicy
 * # All other classes allowed
-"
+" "$DELETE_PARTIAL_ANNOTATION_CLASSESS"
 
-OUTJAR="" run_hoststubgen_for_success "No output generation" ""
+OUTJAR="" run_hoststubgen_for_success "No output generation" "" "$DELETE_PARTIAL_ANNOTATION_CLASSESS"
 
 EXTRA_ARGS="--in-jar abc" run_hoststubgen_for_failure "Duplicate arg" \
     "Duplicate or conflicting argument found: --in-jar" \
     ""
 
+# ---------------------------------------------------------------------------------------------
+# Tests for "partially-allowlisted".
+# ---------------------------------------------------------------------------------------------
+
+# Allowlist used by hoststubgen-test-tiny-test.
+ALLOWLIST='
+com.android.hoststubgen.test.tinyframework.*
+com.supported.*
+com.unsupported.*
+!*
+'
+
+run_hoststubgen_for_success 'The settings used by hoststubgen-test-tiny-test' \
+    "$ALLOWLIST" \
+    '
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted allow-annotation
+    method foo2 allow-annotation
+
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad remove
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad remove
+'
+
+run_hoststubgen_for_failure 'PartiallyAllowlisted does not have allow-annotation' \
+    "PartiallyAllowlisted has annotation android.hosttest.annotation.HostSideTestPartiallyAllowlisted, but" \
+    "$ALLOWLIST" \
+    '
+#class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted allow-annotation
+#    method foo2 allow-annotation
+
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad remove
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad remove
+'
+
+
+run_hoststubgen_for_failure 'PartiallyAllowlisted.foo2 does not have allow-annotation' \
+    "foo2(I)I is not allowed to have Ravenwood annotations. (Class is partially allowlisted.)" \
+    "$ALLOWLIST" \
+    '
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted allow-annotation
+#    method foo2 allow-annotation
+
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad remove
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad remove
+'
+
+run_hoststubgen_for_failure 'Partially-allowlisted classes cannot have class-wide policies' \
+    "PartialWithWholeClass_bad has class wide annotation android.hosttest.annotation.HostSideTestWholeClassKeep" \
+    "$ALLOWLIST" \
+    '
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted allow-annotation
+    method foo2 allow-annotation
+
+# Now with allow-annotation
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad allow-annotation
+
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad remove
+'
+
+run_hoststubgen_for_failure 'Partially-allowlisted classes cannot have class-wide policies' \
+    "PartiallyAllowlistedWithoutAnnot_bad must have android.hosttest.annotation.HostSideTestPartiallyAllowlisted" \
+    "$ALLOWLIST" \
+    '
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted allow-annotation
+    method foo2 allow-annotation
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad remove
+
+# Now with allow-annotation
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad allow-annotation
+'
+
+run_hoststubgen_for_success 'The settings used by hoststubgen-test-tiny-test' \
+    "$ALLOWLIST" \
+    '
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted allow-annotation
+    method foo2 allow-annotation
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad remove
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad remove
+
+# NoAnnotations has no annotations at all. Setting "allow-annotation" to it is okay even though
+# it does not have an @HostSideTestPartiallyAllowlisted, because it does nott have any other annotations anyway.
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$NoAnnotations allow-annotation
+'
 
 echo "All tests passed"
 exit 0
diff --git a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt
index 83a7069..7e294ed 100644
--- a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt
+++ b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt
@@ -151,7 +151,7 @@
             filter
         )
 
-        val annotationAllowedClassesFilter = options.annotationAllowedClassesFile.get.let { file ->
+        val annotationAllowedPredicate = options.annotationAllowedClassesFile.get.let { file ->
             if (file == null) {
                 ClassPredicate.newConstantPredicate(true) // Allow all classes
             } else {
@@ -160,7 +160,7 @@
         }
 
         // Next, Java annotation based filter.
-        filter = AnnotationBasedFilter(
+        val annotFilter = AnnotationBasedFilter(
             errors,
             allClasses,
             options.keepAnnotations,
@@ -172,10 +172,12 @@
             options.redirectAnnotations,
             options.redirectionClassAnnotations,
             options.classLoadHookAnnotations,
+            options.partiallyAllowedAnnotations,
             options.keepStaticInitializerAnnotations,
-            annotationAllowedClassesFilter,
+            annotationAllowedPredicate,
             filter
         )
+        filter = annotFilter
 
         // Next, "text based" filter, which allows to override polices without touching
         // the target code.
@@ -183,6 +185,7 @@
             val builder = TextFileFilterPolicyBuilder(allClasses, filter)
             options.policyOverrideFiles.forEach(builder::parse)
             filter = builder.createOutputFilter()
+            annotFilter.annotationAllowedMembers = builder.annotationAllowedMembersFilter
         }
 
         // Apply the implicit filter.
diff --git a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGenOptions.kt b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGenOptions.kt
index 297420d..1ab88d2 100644
--- a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGenOptions.kt
+++ b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/HostStubGenOptions.kt
@@ -86,6 +86,7 @@
         var removeAnnotations: MutableSet<String> = mutableSetOf(),
         var ignoreAnnotations: MutableSet<String> = mutableSetOf(),
         var keepClassAnnotations: MutableSet<String> = mutableSetOf(),
+        var partiallyAllowedAnnotations: MutableSet<String> = mutableSetOf(),
         var redirectAnnotations: MutableSet<String> = mutableSetOf(),
 
         var substituteAnnotations: MutableSet<String> = mutableSetOf(),
@@ -181,6 +182,9 @@
                         "--keep-class-annotation" ->
                             ret.keepClassAnnotations.addUniqueAnnotationArg()
 
+                        "--partially-allowed-annotation" ->
+                            ret.partiallyAllowedAnnotations.addUniqueAnnotationArg()
+
                         "--throw-annotation" ->
                             ret.throwAnnotations.addUniqueAnnotationArg()
 
@@ -287,6 +291,7 @@
               removeAnnotations=$removeAnnotations,
               ignoreAnnotations=$ignoreAnnotations,
               keepClassAnnotations=$keepClassAnnotations,
+              partiallyAllowedAnnotations=$partiallyAllowedAnnotations,
               substituteAnnotations=$substituteAnnotations,
               nativeSubstituteAnnotations=$redirectionClassAnnotations,
               classLoadHookAnnotations=$classLoadHookAnnotations,
diff --git a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/asm/AsmUtils.kt b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/asm/AsmUtils.kt
index f47aaba..735635c 100644
--- a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/asm/AsmUtils.kt
+++ b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/asm/AsmUtils.kt
@@ -191,7 +191,14 @@
 }
 
 fun String.toHumanReadableClassName(): String {
-    return this.replace('/', '.')
+    var ret = this
+    if (ret.startsWith("L")) {
+        ret = ret.substring(1)
+    }
+    if (ret.endsWith(";")) {
+        ret = ret.substring(0, ret.length - 1)
+    }
+    return ret.replace('/', '.')
 }
 
 fun String.toHumanReadableMethodName(): String {
diff --git a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt
index 9b5d602..73c72a2 100644
--- a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt
+++ b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt
@@ -53,10 +53,19 @@
     redirectAnnotations_: Set<String>,
     redirectionClassAnnotations_: Set<String>,
     classLoadHookAnnotations_: Set<String>,
+    partiallyAllowlistedClassAnnotations_: Set<String>,
     keepStaticInitializerAnnotations_: Set<String>,
     private val annotationAllowedClassesFilter: ClassPredicate,
     fallback: OutputFilter,
 ) : DelegatingFilter(fallback) {
+
+    /**
+     * This is a filter chain to check if an entity (class/member) has a "allow-annotation"
+     * policy.
+     */
+    var annotationAllowedMembers: OutputFilter =
+        ConstantFilter(FilterPolicy.Remove, "default disallowed")
+
     private val keepAnnotations = convertToInternalNames(keepAnnotations_)
     private val keepClassAnnotations = convertToInternalNames(keepClassAnnotations_)
     private val throwAnnotations = convertToInternalNames(throwAnnotations_)
@@ -67,6 +76,9 @@
     private val redirectionClassAnnotations =
         convertToInternalNames(redirectionClassAnnotations_)
     private val classLoadHookAnnotations = convertToInternalNames(classLoadHookAnnotations_)
+    private val partiallyAllowlistedClassAnnotations =
+        convertToInternalNames(partiallyAllowlistedClassAnnotations_)
+
     private val keepStaticInitializerAnnotations =
         convertToInternalNames(keepStaticInitializerAnnotations_)
 
@@ -79,17 +91,22 @@
             redirectAnnotations +
             substituteAnnotations
 
-    /** All the annotations we use. */
-    private val allAnnotations = visibilityAnnotations +
+    /**
+     * Annotations that require "fully" allowlisting.
+     */
+    private val allowlistRequiringAnnotations = visibilityAnnotations +
             redirectionClassAnnotations +
             classLoadHookAnnotations +
             keepStaticInitializerAnnotations
+            // partiallyAllowlistedClassAnnotations // This is excluded.
 
     /**
-     * All the annotations we use. Note, this one is in a [convertToJvmNames] format unlike
-     * other ones, because of how it's used.
+     * We always keep these types.
+     *
+     * Note, this one is in a [convertToJvmNames] format unlike other ones, because of how it's
+     * used.
      */
-    private val allAnnotationClasses: Set<String> = convertToJvmNames(
+    private val alwaysKeepClasses: Set<String> = convertToJvmNames(
         keepAnnotations_ +
                 keepClassAnnotations_ +
                 throwAnnotations_ +
@@ -98,6 +115,7 @@
                 substituteAnnotations_ +
                 redirectionClassAnnotations_ +
                 classLoadHookAnnotations_ +
+                partiallyAllowlistedClassAnnotations_ +
                 keepStaticInitializerAnnotations_
     )
 
@@ -122,7 +140,7 @@
 
     override fun getPolicyForClass(className: String): FilterPolicyWithReason {
         // If it's any of the annotations, then always keep it.
-        if (allAnnotationClasses.contains(className)) {
+        if (alwaysKeepClasses.contains(className)) {
             return FilterPolicy.KeepClass.withReason("HostStubGen Annotation")
         }
 
@@ -197,13 +215,34 @@
         val classLoadHooks: List<String>
 
         init {
-            val allowAnnotation = annotationAllowedClassesFilter.matches(cn.name)
-            detectInvalidAnnotations(
-                cn.name, allowAnnotation,
+            // First, check if the class has "partially-allowed" policy.
+            // This filter chain contains
+            val annotationPartiallyAllowedClass =
+                annotationAllowedMembers.getPolicyForClass(cn.name).policy ==
+                        FilterPolicy.AnnotationAllowed
+
+            // If a class is partially-allowlisted, then it's not fully-allowlisted.
+            // Otherwise, just use annotationAllowedClassesFilter.
+            val fullyAllowAnnotation = !annotationPartiallyAllowedClass &&
+                annotationAllowedClassesFilter.matches(cn.name)
+            detectInvalidAnnotations(isClass = true,
+                cn.name, fullyAllowAnnotation, annotationPartiallyAllowedClass,
+                annotationPartiallyAllowedClass,
                 cn.visibleAnnotations, cn.invisibleAnnotations,
                 "class", cn.name
             )
-            classPolicy = cn.findAnyAnnotation(visibilityAnnotations)?.policy
+
+            val classAnnot = cn.findAnyAnnotation(visibilityAnnotations)
+            classPolicy = classAnnot?.policy
+
+            classPolicy?.let { policy ->
+                if (policy.policy.isClassWide && annotationPartiallyAllowedClass) {
+                    errors.onErrorFound("Class ${cn.name.toHumanReadableClassName()}" +
+                            " has class wide annotation" +
+                            " ${classAnnot?.desc?.toHumanReadableClassName()}" +
+                            ", which can't be used in a partially-allowlisted class")
+                }
+            }
             redirectionClass = cn.findAnyAnnotation(redirectionClassAnnotations)?.let { an ->
                 getAnnotationField(an, "value")?.let { resolveRelativeClass(cn, it) }
             }
@@ -216,8 +255,10 @@
             }
 
             for (fn in cn.fields ?: emptyList()) {
-                detectInvalidAnnotations(
-                    cn.name, allowAnnotation,
+                val partiallyAllowAnnotation = false // No partial allowlisting on fields (yet)
+                detectInvalidAnnotations(isClass = false,
+                    cn.name, fullyAllowAnnotation, partiallyAllowAnnotation,
+                    annotationPartiallyAllowedClass,
                     fn.visibleAnnotations, fn.invisibleAnnotations,
                     "field", cn.name, fn.name
                 )
@@ -227,8 +268,12 @@
             }
 
             for (mn in cn.methods ?: emptyList()) {
-                detectInvalidAnnotations(
-                    cn.name, allowAnnotation,
+                val partiallyAllowAnnotation =
+                    annotationAllowedMembers.getPolicyForMethod(cn.name, mn.name, mn.desc).policy ==
+                            FilterPolicy.AnnotationAllowed
+                detectInvalidAnnotations(isClass = false,
+                    cn.name, fullyAllowAnnotation, partiallyAllowAnnotation,
+                    annotationPartiallyAllowedClass,
                     mn.visibleAnnotations, mn.invisibleAnnotations,
                     "method", cn.name, mn.name, mn.desc
                 )
@@ -263,8 +308,11 @@
          * to avoid unnecessary string concatenations.
          */
         private fun detectInvalidAnnotations(
+            isClass: Boolean,
             className: String,
-            allowAnnotation: Boolean,
+            fullyAllowAnnotation: Boolean,
+            partiallyAllowAnnotation: Boolean,
+            classPartiallyAllowAnnotation: Boolean,
             visibles: List<AnnotationNode>?,
             invisibles: List<AnnotationNode>?,
             type: String,
@@ -272,13 +320,26 @@
             name2: String = "",
             name3: String = "",
         ) {
+            // Lazily create the description.
+            val desc = { getItemDescription(type, name1, name2, name3) }
+
+            val partiallyAllowlistAnnotation =
+                findAnyAnnotation(partiallyAllowlistedClassAnnotations, visibles, invisibles)
+            partiallyAllowlistAnnotation?.let { anot ->
+                if (!partiallyAllowAnnotation) {
+                    errors.onErrorFound(desc() +
+                            " has annotation ${anot.desc?.toHumanReadableClassName()}, but" +
+                            " doesn't have" +
+                            " '${FilterPolicy.AnnotationAllowed.policyStringOrPrefix}' policy.'")
+                }
+            }
             var count = 0
             var visibleCount = 0
             for (an in visibles ?: emptyList()) {
                 if (visibilityAnnotations.contains(an.desc)) {
                     visibleCount++
                 }
-                if (allAnnotations.contains(an.desc)) {
+                if (allowlistRequiringAnnotations.contains(an.desc)) {
                     count++
                 }
             }
@@ -286,28 +347,54 @@
                 if (visibilityAnnotations.contains(an.desc)) {
                     visibleCount++
                 }
-                if (allAnnotations.contains(an.desc)) {
+                if (allowlistRequiringAnnotations.contains(an.desc)) {
                     count++
                 }
             }
-            if (count > 0 && !allowAnnotation) {
+            // Special case -- if it's a class, and has an "allow-annotation" policy
+            // *and* if it actually has an annotation, then it must have the
+            // "PartiallyAllowlisted" annotation.
+            // Conversely, even if it has an "allow-annotation" policy, it's okay
+            // if it doesn't have the annotation, as long as it doesn't have any
+            // annotations.
+            if (isClass && count > 0 && partiallyAllowAnnotation) {
+                if (partiallyAllowlistAnnotation == null) {
+                    val requiredAnnot = partiallyAllowlistedClassAnnotations.firstOrNull()
+                    throw InvalidAnnotationException(
+                        "${desc()} must have ${requiredAnnot?.toHumanReadableClassName()} to use" +
+                                " annotations")
+                }
+            }
+
+            if (count > 0 && !(fullyAllowAnnotation || partiallyAllowAnnotation)) {
+                val extInfo = if (classPartiallyAllowAnnotation) {
+                    " (Class is partially allowlisted.)"
+                } else {""}
                 throw InvalidAnnotationException(
-                    "Class ${className.toHumanReadableClassName()} is not allowed to have " +
-                            "Ravenwood annotations. Contact g/ravenwood for more details."
+                    "${desc()} is not allowed to have " +
+                            "Ravenwood annotations.$extInfo Contact g/ravenwood for more details."
                 )
             }
             if (visibleCount > 1) {
-                val description = if (name2 == "" && name3 == "") {
-                    "$type $name1"
-                } else {
-                    "$type $name1.$name2$name3"
-                }
                 throw InvalidAnnotationException(
-                    "Found more than one visibility annotations on $description"
+                    "Found more than one visibility annotations on ${desc()}"
                 )
             }
         }
 
+        private fun getItemDescription(
+            type: String,
+            name1: String,
+            name2: String,
+            name3: String,
+        ): String {
+            return if (name2 == "" && name3 == "") {
+                "$type $name1"
+            } else {
+                "$type $name1.$name2$name3"
+            }
+        }
+
         /**
          * Return the (String) value of 'value' parameter from an annotation.
          */
diff --git a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/FilterPolicy.kt b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/FilterPolicy.kt
index 2f2f81b..81c26ff 100644
--- a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/FilterPolicy.kt
+++ b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/FilterPolicy.kt
@@ -15,44 +15,51 @@
  */
 package com.android.hoststubgen.filters
 
-enum class FilterPolicy {
+enum class FilterPolicy(val policyStringOrPrefix: String) {
     /**
      * Keep the item in the jar file.
      */
-    Keep,
+    Keep("keep"),
 
     /**
      * Only usable with classes. Keep the class in the jar, and also all its members.
      * Each member can have another policy to override it.
      */
-    KeepClass,
+    KeepClass("keepclass"),
 
     /**
      * Only usable with methods. Replace a method with a "substitution" method.
      */
-    Substitute,
+    Substitute("@"), // @ is a prefix
 
     /**
      * Only usable with methods. Redirect a method to a method in the substitution class.
      */
-    Redirect,
+    Redirect("redirect"),
 
     /**
      * Only usable with methods. The item will be kept in the impl jar file, but when called,
      * it'll throw.
      */
-    Throw,
+    Throw("throw"),
 
     /**
      * Only usable with methods. The item will be kept in the impl jar file, but when called,
      * it'll no-op.
      */
-    Ignore,
+    Ignore("ignore"),
 
     /**
      * Remove the item completely.
      */
-    Remove;
+    Remove("remove"),
+
+    /**
+     * Special policy used for "partial annotation allowlisting". This policy must not be
+     * used in the "main" filter chain. (which would be detected by [SanitizationFilter].)
+     * It's used in a separate filter chain used by [AnnotationBasedFilter].
+     */
+    AnnotationAllowed("allow-annotation");
 
     val needsInOutput: Boolean
         get() {
@@ -66,7 +73,7 @@
     val isUsableWithClasses: Boolean
         get() {
             return when (this) {
-                Keep, KeepClass, Remove -> true
+                Keep, KeepClass, Remove, AnnotationAllowed -> true
                 else -> false
             }
         }
@@ -75,6 +82,7 @@
     val isUsableWithFields: Boolean
         get() {
             return when (this) {
+                // AnnotationAllowed isn't supported on fields (yet). We could support it if needed.
                 Keep, Remove -> true
                 else -> false
             }
@@ -102,7 +110,7 @@
     val isSupported: Boolean
         get() {
             return when (this) {
-                Keep, KeepClass, Substitute, Redirect -> true
+                Keep, KeepClass, Substitute, Redirect, AnnotationAllowed -> true
                 else -> false
             }
         }
@@ -115,6 +123,25 @@
             }
         }
 
+    val isClassWide: Boolean
+        get() {
+            return when (this) {
+                Remove, KeepClass -> true
+                else -> false
+            }
+        }
+
+    /**
+     * Internal policies must not be used in the main filter chain.
+     */
+    val isInternalPolicy: Boolean
+        get() {
+            return when (this) {
+                AnnotationAllowed -> true
+                else -> false
+            }
+        }
+
     /**
      * Convert KeepClass to Keep, or return itself.
      */
diff --git a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/SanitizationFilter.kt b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/SanitizationFilter.kt
index 18a1e16..4375c65 100644
--- a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/SanitizationFilter.kt
+++ b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/SanitizationFilter.kt
@@ -16,6 +16,7 @@
 package com.android.hoststubgen.filters
 
 import com.android.hoststubgen.HostStubGenErrors
+import com.android.hoststubgen.HostStubGenInternalException
 import com.android.hoststubgen.asm.ClassNodes
 import com.android.hoststubgen.asm.toHumanReadableClassName
 import com.android.hoststubgen.log
@@ -28,12 +29,30 @@
     private val classes: ClassNodes,
     fallback: OutputFilter
 ) : DelegatingFilter(fallback) {
+    private fun validate(policy: FilterPolicyWithReason): FilterPolicyWithReason {
+        // "Internal" policies shouldn't be used in the "main" filter chain.
+        // They're for filter chains for other purposes.
+        if (policy.policy.isInternalPolicy) {
+            throw HostStubGenInternalException(
+                "Policy $policy must not be used in the \"real\" filter chain.")
+        }
+        return policy
+    }
+
+    override fun getPolicyForClass(className: String): FilterPolicyWithReason {
+        return validate(super.getPolicyForClass(className))
+    }
+
+    override fun getPolicyForField(className: String, fieldName: String): FilterPolicyWithReason {
+        return validate(super.getPolicyForField(className, fieldName))
+    }
+
     override fun getPolicyForMethod(
         className: String,
         methodName: String,
         descriptor: String
     ): FilterPolicyWithReason {
-        val policy = super.getPolicyForMethod(className, methodName, descriptor)
+        val policy = validate(super.getPolicyForMethod(className, methodName, descriptor))
         if (policy.policy == FilterPolicy.Redirect) {
             // Check whether the hosting class has a redirection class
             if (getRedirectionClass(className) == null) {
diff --git a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/TextFileFilterPolicyParser.kt b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/TextFileFilterPolicyParser.kt
index 9782f3d..d0c97c0 100644
--- a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/TextFileFilterPolicyParser.kt
+++ b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/filters/TextFileFilterPolicyParser.kt
@@ -122,6 +122,25 @@
         mutableListOf<TextFilePolicyMethodReplaceFilter.MethodCallReplaceSpec>()
 
     /**
+     * Fields for a filter chain used for "partial allowlisting", which are used by
+     * [AnnotationBasedFilter].
+     */
+    private val annotationAllowedInMemoryFilter: InMemoryOutputFilter
+    val annotationAllowedMembersFilter: OutputFilter
+
+    private val annotationAllowedPolicy = FilterPolicy.AnnotationAllowed.withReason(FILTER_REASON)
+
+    init {
+        // Create a filter that checks "partial allowlisting".
+        var aaf: OutputFilter = ConstantFilter(FilterPolicy.Remove, "default disallowed")
+
+        aaf = InMemoryOutputFilter(classes, aaf)
+        annotationAllowedInMemoryFilter = aaf
+
+        annotationAllowedMembersFilter = annotationAllowedInMemoryFilter
+    }
+
+    /**
      * Parse a given policy file. This method can be called multiple times to read from
      * multiple files. To get the resulting filter, use [createOutputFilter]
      */
@@ -153,6 +172,11 @@
 
     private inner class Processor : PolicyFileProcessor {
         override fun onPackage(name: String, policy: FilterPolicyWithReason) {
+            if (policy.policy == FilterPolicy.AnnotationAllowed) {
+                throw ParseException("${FilterPolicy.AnnotationAllowed.policyStringOrPrefix}" +
+                        " on `package` isn't supported yet.")
+                return
+            }
             packageFilter.addPolicy(name, policy)
         }
 
@@ -169,6 +193,11 @@
         }
 
         override fun onSimpleClassPolicy(className: String, policy: FilterPolicyWithReason) {
+            if (policy.policy == FilterPolicy.AnnotationAllowed) {
+                annotationAllowedInMemoryFilter.setPolicyForClass(
+                    className, annotationAllowedPolicy)
+                return
+            }
             imf.setPolicyForClass(className, policy)
         }
 
@@ -224,6 +253,11 @@
             methodDesc: String,
             policy: FilterPolicyWithReason,
         ) {
+            if (policy.policy == FilterPolicy.AnnotationAllowed) {
+                annotationAllowedInMemoryFilter.setPolicyForMethod(
+                    className, methodName, methodDesc, annotationAllowedPolicy)
+                return
+            }
             imf.setPolicyForMethod(className, methodName, methodDesc, policy)
         }
 
@@ -375,14 +409,15 @@
 
     private fun parsePolicy(s: String): FilterPolicy {
         return when (s.lowercase()) {
-            "k", "keep" -> FilterPolicy.Keep
-            "t", "throw" -> FilterPolicy.Throw
-            "r", "remove" -> FilterPolicy.Remove
-            "kc", "keepclass" -> FilterPolicy.KeepClass
-            "i", "ignore" -> FilterPolicy.Ignore
-            "rdr", "redirect" -> FilterPolicy.Redirect
+            "k", FilterPolicy.Keep.policyStringOrPrefix -> FilterPolicy.Keep
+            "t", FilterPolicy.Throw.policyStringOrPrefix -> FilterPolicy.Throw
+            "r", FilterPolicy.Remove.policyStringOrPrefix -> FilterPolicy.Remove
+            "kc", FilterPolicy.KeepClass.policyStringOrPrefix -> FilterPolicy.KeepClass
+            "i", FilterPolicy.Ignore.policyStringOrPrefix -> FilterPolicy.Ignore
+            "rdr", FilterPolicy.Redirect.policyStringOrPrefix -> FilterPolicy.Redirect
+            FilterPolicy.AnnotationAllowed.policyStringOrPrefix -> FilterPolicy.AnnotationAllowed
             else -> {
-                if (s.startsWith("@")) {
+                if (s.startsWith(FilterPolicy.Substitute.policyStringOrPrefix)) {
                     FilterPolicy.Substitute
                 } else {
                     throw ParseException("Invalid policy \"$s\"")
diff --git a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/utils/ClassPredicate.kt b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/utils/ClassPredicate.kt
index 810dd71..4c53bc8 100644
--- a/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/utils/ClassPredicate.kt
+++ b/ravenwood/tools/hoststubgen/src/com/android/hoststubgen/utils/ClassPredicate.kt
@@ -22,7 +22,9 @@
 import java.io.File
 
 /**
- * General purpose filter for class names.
+ * General purpose class "selector", which returns a boolean for a given class name.
+ *
+ * (It's used to check if a class is in the "annotations allowed classes" allowlist.)
  */
 class ClassPredicate private constructor(
     private val defaultResult: Boolean,
diff --git a/ravenwood/tools/hoststubgen/test-tiny-framework/annotation-allowed-classes-tiny-framework.txt b/ravenwood/tools/hoststubgen/test-tiny-framework/annotation-allowed-classes-tiny-framework.txt
index de4cb0c..8e41a87 100644
--- a/ravenwood/tools/hoststubgen/test-tiny-framework/annotation-allowed-classes-tiny-framework.txt
+++ b/ravenwood/tools/hoststubgen/test-tiny-framework/annotation-allowed-classes-tiny-framework.txt
@@ -1,29 +1,8 @@
-# Only classes listed here can use the hoststubgen annotations.
-
-# For each class, we check each item in this file, and when a match is found, we
-# either allow it if the line doesn't have a !, or disallow if the line has a !.
-# All the lines after the matching line will be ignored.
-
-
-# To allow a specific class to use annotations:
-# com.android.hoststubgen.test.tinyframework.TinyFrameworkAnnotations
-
-# To disallow a specific class to use annotations:
-# !com.android.hoststubgen.test.tinyframework.TinyFrameworkAnnotations
-
-# To allow a specific package to use annotations:
-# com.android.hoststubgen.test.*
-
-# To disallow a specific package to use annotations:
-# !com.android.hoststubgen.test.*
-
+# Policy file for "tiny-framework" used by hoststubgen's own tests.
 
 com.android.hoststubgen.test.tinyframework.*
 com.supported.*
 com.unsupported.*
 
-# Use this to allow all packages
-# *
-
-# Use this to allow all packages
-# !*
\ No newline at end of file
+# Disallow all other classes
+!*
\ No newline at end of file
diff --git a/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output.RELEASE_TARGET_JAVA_21/01-hoststubgen-test-tiny-framework-orig-dump.txt b/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output.RELEASE_TARGET_JAVA_21/01-hoststubgen-test-tiny-framework-orig-dump.txt
index b009b09..635f66d 100644
--- a/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output.RELEASE_TARGET_JAVA_21/01-hoststubgen-test-tiny-framework-orig-dump.txt
+++ b/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output.RELEASE_TARGET_JAVA_21/01-hoststubgen-test-tiny-framework-orig-dump.txt
@@ -67,6 +67,28 @@
     java.lang.annotation.Retention(
       value=Ljava/lang/annotation/RetentionPolicy;.CLASS
     )
+## Class: android/hosttest/annotation/HostSideTestPartiallyAllowlisted.class
+  Compiled from "HostSideTestPartiallyAllowlisted.java"
+public interface android.hosttest.annotation.HostSideTestPartiallyAllowlisted extends java.lang.annotation.Annotation
+  minor version: 0
+  major version: 65
+  flags: (0x2601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT, ACC_ANNOTATION
+  this_class: #x                          // android/hosttest/annotation/HostSideTestPartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
+}
+SourceFile: "HostSideTestPartiallyAllowlisted.java"
+RuntimeVisibleAnnotations:
+  x: #x(#x=[e#x.#x])
+    java.lang.annotation.Target(
+      value=[Ljava/lang/annotation/ElementType;.TYPE]
+    )
+  x: #x(#x=e#x.#x)
+    java.lang.annotation.Retention(
+      value=Ljava/lang/annotation/RetentionPolicy;.CLASS
+    )
 ## Class: android/hosttest/annotation/HostSideTestRedirect.class
   Compiled from "HostSideTestRedirect.java"
 public interface android.hosttest.annotation.HostSideTestRedirect extends java.lang.annotation.Annotation
@@ -2946,6 +2968,228 @@
 RuntimeInvisibleAnnotations:
   x: #x()
     android.hosttest.annotation.HostSideTestWholeClassKeep
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$NoAnnotations.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$NoAnnotations
+  minor version: 0
+  major version: 65
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$NoAnnotations
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 1, attributes: 3
+Constant pool:
+{
+  public com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$NoAnnotations();
+    descriptor: ()V
+    flags: (0x0001) ACC_PUBLIC
+    Code:
+      stack=1, locals=1, args_size=1
+         x: aload_0
+         x: invokespecial #x                  // Method java/lang/Object."<init>":()V
+         x: return
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       5     0  this   Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$NoAnnotations;
+}
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+NestHost: class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+InnerClasses:
+  public static #x= #x of #x;           // NoAnnotations=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$NoAnnotations of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad
+  minor version: 0
+  major version: 65
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 1, attributes: 4
+Constant pool:
+{
+  public com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad();
+    descriptor: ()V
+    flags: (0x0001) ACC_PUBLIC
+    Code:
+      stack=1, locals=1, args_size=1
+         x: aload_0
+         x: invokespecial #x                  // Method java/lang/Object."<init>":()V
+         x: return
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       5     0  this   Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad;
+}
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+RuntimeInvisibleAnnotations:
+  x: #x()
+    android.hosttest.annotation.HostSideTestPartiallyAllowlisted
+  x: #x()
+    android.hosttest.annotation.HostSideTestWholeClassKeep
+NestHost: class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+InnerClasses:
+  public static #x= #x of #x;           // PartialWithWholeClass_bad=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+  minor version: 0
+  major version: 65
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 3, attributes: 4
+Constant pool:
+{
+  public com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted();
+    descriptor: ()V
+    flags: (0x0001) ACC_PUBLIC
+    Code:
+      stack=1, locals=1, args_size=1
+         x: aload_0
+         x: invokespecial #x                  // Method java/lang/Object."<init>":()V
+         x: return
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       5     0  this   Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted;
+
+  public static int foo1(int);
+    descriptor: (I)I
+    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
+    Code:
+      stack=2, locals=1, args_size=1
+         x: iload_0
+         x: iconst_1
+         x: iadd
+         x: ireturn
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       4     0 value   I
+
+  public static int foo2(int);
+    descriptor: (I)I
+    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
+    Code:
+      stack=2, locals=1, args_size=1
+         x: iload_0
+         x: iconst_2
+         x: iadd
+         x: ireturn
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       4     0 value   I
+    RuntimeInvisibleAnnotations:
+      x: #x()
+        android.hosttest.annotation.HostSideTestKeep
+}
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+RuntimeInvisibleAnnotations:
+  x: #x()
+    android.hosttest.annotation.HostSideTestPartiallyAllowlisted
+  x: #x()
+    android.hosttest.annotation.HostSideTestKeep
+NestHost: class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+InnerClasses:
+  public static #x= #x of #x;           // PartiallyAllowlisted=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad
+  minor version: 0
+  major version: 65
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 3, attributes: 4
+Constant pool:
+{
+  public com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad();
+    descriptor: ()V
+    flags: (0x0001) ACC_PUBLIC
+    Code:
+      stack=1, locals=1, args_size=1
+         x: aload_0
+         x: invokespecial #x                  // Method java/lang/Object."<init>":()V
+         x: return
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       5     0  this   Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad;
+
+  public static int foo1(int);
+    descriptor: (I)I
+    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
+    Code:
+      stack=2, locals=1, args_size=1
+         x: iload_0
+         x: iconst_1
+         x: iadd
+         x: ireturn
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       4     0 value   I
+
+  public static int foo2(int);
+    descriptor: (I)I
+    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
+    Code:
+      stack=2, locals=1, args_size=1
+         x: iload_0
+         x: iconst_2
+         x: iadd
+         x: ireturn
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       4     0 value   I
+    RuntimeInvisibleAnnotations:
+      x: #x()
+        android.hosttest.annotation.HostSideTestKeep
+}
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+RuntimeInvisibleAnnotations:
+  x: #x()
+    android.hosttest.annotation.HostSideTestKeep
+NestHost: class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+InnerClasses:
+  public static #x= #x of #x;           // PartiallyAllowlistedWithoutAnnot_bad=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted
+  minor version: 0
+  major version: 65
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 1, attributes: 3
+Constant pool:
+{
+  public com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted();
+    descriptor: ()V
+    flags: (0x0001) ACC_PUBLIC
+    Code:
+      stack=1, locals=1, args_size=1
+         x: aload_0
+         x: invokespecial #x                  // Method java/lang/Object."<init>":()V
+         x: return
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       5     0  this   Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted;
+}
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+NestMembers:
+  com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$NoAnnotations
+  com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad
+  com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad
+  com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+InnerClasses:
+  public static #x= #x of #x;           // NoAnnotations=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$NoAnnotations of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+  public static #x= #x of #x;           // PartiallyAllowlistedWithoutAnnot_bad=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+  public static #x= #x of #x;           // PartialWithWholeClass_bad=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+  public static #x= #x of #x;           // PartiallyAllowlisted=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
 ## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkRenamedClassCaller.class
   Compiled from "TinyFrameworkRenamedClassCaller.java"
 public class com.android.hoststubgen.test.tinyframework.TinyFrameworkRenamedClassCaller
diff --git a/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output.RELEASE_TARGET_JAVA_21/03-hoststubgen-test-tiny-framework-host-dump.txt b/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output.RELEASE_TARGET_JAVA_21/03-hoststubgen-test-tiny-framework-host-dump.txt
index 84a8373..51a3355 100644
--- a/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output.RELEASE_TARGET_JAVA_21/03-hoststubgen-test-tiny-framework-host-dump.txt
+++ b/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output.RELEASE_TARGET_JAVA_21/03-hoststubgen-test-tiny-framework-host-dump.txt
@@ -7,6 +7,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestClassLoadHook
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   public abstract java.lang.String value();
     descriptor: ()Ljava/lang/String;
     flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
@@ -35,6 +37,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestKeep
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "HostSideTestKeep.java"
 RuntimeVisibleAnnotations:
@@ -48,6 +52,30 @@
     java.lang.annotation.Retention(
       value=Ljava/lang/annotation/RetentionPolicy;.CLASS
     )
+## Class: android/hosttest/annotation/HostSideTestPartiallyAllowlisted.class
+  Compiled from "HostSideTestPartiallyAllowlisted.java"
+public interface android.hosttest.annotation.HostSideTestPartiallyAllowlisted extends java.lang.annotation.Annotation
+  minor version: 0
+  major version: 65
+  flags: (0x2601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT, ACC_ANNOTATION
+  this_class: #x                          // android/hosttest/annotation/HostSideTestPartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
+}
+SourceFile: "HostSideTestPartiallyAllowlisted.java"
+RuntimeVisibleAnnotations:
+  x: #x()
+    com.android.hoststubgen.hosthelper.HostStubGenProcessedAsKeep
+  x: #x(#x=[e#x.#x])
+    java.lang.annotation.Target(
+      value=[Ljava/lang/annotation/ElementType;.TYPE]
+    )
+  x: #x(#x=e#x.#x)
+    java.lang.annotation.Retention(
+      value=Ljava/lang/annotation/RetentionPolicy;.CLASS
+    )
 ## Class: android/hosttest/annotation/HostSideTestRedirect.class
   Compiled from "HostSideTestRedirect.java"
 public interface android.hosttest.annotation.HostSideTestRedirect extends java.lang.annotation.Annotation
@@ -57,6 +85,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestRedirect
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "HostSideTestRedirect.java"
 RuntimeVisibleAnnotations:
@@ -79,6 +109,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestRedirectionClass
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   public abstract java.lang.String value();
     descriptor: ()Ljava/lang/String;
     flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
@@ -107,6 +139,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestRemove
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "HostSideTestRemove.java"
 RuntimeVisibleAnnotations:
@@ -129,6 +163,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestStaticInitializerKeep
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "HostSideTestStaticInitializerKeep.java"
 RuntimeVisibleAnnotations:
@@ -151,6 +187,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestSubstitute
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   public abstract java.lang.String suffix();
     descriptor: ()Ljava/lang/String;
     flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
@@ -179,6 +217,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestThrow
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "HostSideTestThrow.java"
 RuntimeVisibleAnnotations:
@@ -201,6 +241,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestWholeClassKeep
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "HostSideTestWholeClassKeep.java"
 RuntimeVisibleAnnotations:
@@ -223,6 +265,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/IPretendingAidl$Stub$Proxy
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 4
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.IPretendingAidl$Stub$Proxy();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -273,6 +317,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/IPretendingAidl$Stub
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 4
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.IPretendingAidl$Stub();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -323,6 +369,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/IPretendingAidl
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 4
+Constant pool:
+{
 }
 InnerClasses:
   public static #x= #x of #x;            // Stub=class com/android/hoststubgen/test/tinyframework/IPretendingAidl$Stub of class com/android/hoststubgen/test/tinyframework/IPretendingAidl
@@ -343,6 +391,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/R$Nested
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 2, attributes: 4
+Constant pool:
+{
   public static int[] ARRAY;
     descriptor: [I
     flags: (0x0009) ACC_PUBLIC, ACC_STATIC
@@ -400,6 +450,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/R
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 1, attributes: 4
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.R();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -433,6 +485,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkAnnotations
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 7, attributes: 3
+Constant pool:
+{
   public int keep;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -591,6 +645,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkClassLoadHook
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 3, attributes: 3
+Constant pool:
+{
   public static final java.util.Set<java.lang.Class<?>> sLoadedClasses;
     descriptor: Ljava/util/Set;
     flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
@@ -668,6 +724,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWideAnnotations
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 4, attributes: 3
+Constant pool:
+{
   public int keep;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -768,6 +826,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWithInitializerDefault
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 0, attributes: 3
+Constant pool:
+{
   public static boolean sInitialized;
     descriptor: Z
     flags: (0x0009) ACC_PUBLIC, ACC_STATIC
@@ -805,6 +865,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWithInitializerStub
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 1, attributes: 3
+Constant pool:
+{
   public static boolean sInitialized;
     descriptor: Z
     flags: (0x0009) ACC_PUBLIC, ACC_STATIC
@@ -867,6 +929,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex
   super_class: #x                         // java/lang/Enum
   interfaces: 0, fields: 6, methods: 7, attributes: 4
+Constant pool:
+{
   public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex RED;
     descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;
     flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM
@@ -1112,6 +1176,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple
   super_class: #x                         // java/lang/Enum
   interfaces: 0, fields: 3, methods: 5, attributes: 4
+Constant pool:
+{
   public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple CAT;
     descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;
     flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM
@@ -1260,6 +1326,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkExceptionTester
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 3
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkExceptionTester();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -1323,6 +1391,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkForTextPolicy
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 15, attributes: 2
+Constant pool:
+{
   public int stub;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -1562,6 +1632,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkLambdas$Nested
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 8, attributes: 6
+Constant pool:
+{
   public final java.util.function.Supplier<java.lang.Integer> mSupplier;
     descriptor: Ljava/util/function/Supplier;
     flags: (0x0011) ACC_PUBLIC, ACC_FINAL
@@ -1749,6 +1821,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkLambdas
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 8, attributes: 6
+Constant pool:
+{
   public final java.util.function.Supplier<java.lang.Integer> mSupplier;
     descriptor: Ljava/util/function/Supplier;
     flags: (0x0011) ACC_PUBLIC, ACC_FINAL
@@ -1937,6 +2011,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkMethodCallReplace$ReplaceTo
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 3, attributes: 4
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkMethodCallReplace$ReplaceTo();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -2006,6 +2082,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkMethodCallReplace
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 4, attributes: 6
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkMethodCallReplace();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -2115,6 +2193,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNative
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 14, attributes: 3
+Constant pool:
+{
   int value;
     descriptor: I
     flags: (0x0000)
@@ -2373,6 +2453,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNative_host
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 7, attributes: 3
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkNative_host();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -2503,6 +2585,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$1
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 3, attributes: 6
+Constant pool:
+{
   com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses$1(com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses);
     descriptor: (Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses;)V
     flags: (0x0000)
@@ -2573,6 +2657,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$2
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 3, attributes: 6
+Constant pool:
+{
   com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses$2();
     descriptor: ()V
     flags: (0x0000)
@@ -2639,6 +2725,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$3
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 3, attributes: 6
+Constant pool:
+{
   com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses$3(com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses);
     descriptor: (Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses;)V
     flags: (0x0000)
@@ -2709,6 +2797,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$4
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 3, attributes: 6
+Constant pool:
+{
   com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses$4();
     descriptor: ()V
     flags: (0x0000)
@@ -2775,6 +2865,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$BaseClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 1, attributes: 4
+Constant pool:
+{
   public int value;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -2818,6 +2910,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$InnerClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 1, attributes: 4
+Constant pool:
+{
   public int value;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -2864,6 +2958,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$StaticNestedClass$1
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 3, attributes: 6
+Constant pool:
+{
   com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses$StaticNestedClass$1();
     descriptor: ()V
     flags: (0x0000)
@@ -2931,6 +3027,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$StaticNestedClass$Double$NestedClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 1, attributes: 4
+Constant pool:
+{
   public int value;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -2974,6 +3072,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$StaticNestedClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 2, attributes: 4
+Constant pool:
+{
   public int value;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -3033,6 +3133,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$SubClass
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$BaseClass
   interfaces: 0, fields: 0, methods: 1, attributes: 4
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses$SubClass(int);
     descriptor: (I)V
     flags: (0x0001) ACC_PUBLIC
@@ -3068,6 +3170,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 4, attributes: 5
+Constant pool:
+{
   public final java.util.function.Supplier<java.lang.Integer> mSupplier;
     descriptor: Ljava/util/function/Supplier;
     flags: (0x0011) ACC_PUBLIC, ACC_FINAL
@@ -3193,6 +3297,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPackageRedirect
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 3
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkPackageRedirect();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -3235,6 +3341,49 @@
 RuntimeInvisibleAnnotations:
   x: #x()
     android.hosttest.annotation.HostSideTestWholeClassKeep
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+  minor version: 0
+  major version: 65
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 1, attributes: 5
+Constant pool:
+{
+  public static int foo2(int);
+    descriptor: (I)I
+    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
+    Code:
+      stack=2, locals=1, args_size=1
+         x: iload_0
+         x: iconst_2
+         x: iadd
+         x: ireturn
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       4     0 value   I
+    RuntimeVisibleAnnotations:
+      x: #x()
+        com.android.hoststubgen.hosthelper.HostStubGenProcessedAsKeep
+    RuntimeInvisibleAnnotations:
+      x: #x()
+        android.hosttest.annotation.HostSideTestKeep
+}
+InnerClasses:
+  public static #x= #x of #x;            // PartiallyAllowlisted=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+RuntimeVisibleAnnotations:
+  x: #x()
+    com.android.hoststubgen.hosthelper.HostStubGenProcessedAsKeep
+RuntimeInvisibleAnnotations:
+  x: #x()
+    android.hosttest.annotation.HostSideTestPartiallyAllowlisted
+  x: #x()
+    android.hosttest.annotation.HostSideTestKeep
+NestHost: class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
 ## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkRenamedClassCaller.class
   Compiled from "TinyFrameworkRenamedClassCaller.java"
 public class com.android.hoststubgen.test.tinyframework.TinyFrameworkRenamedClassCaller
@@ -3244,6 +3393,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkRenamedClassCaller
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 3
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkRenamedClassCaller();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -3295,6 +3446,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/packagetest/A
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "A.java"
 RuntimeVisibleAnnotations:
@@ -3309,6 +3462,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/packagetest/sub/A
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "A.java"
 RuntimeVisibleAnnotations:
@@ -3323,6 +3478,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/C1
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "C1.java"
 RuntimeVisibleAnnotations:
@@ -3337,6 +3494,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/C2
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C1
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "C2.java"
 RuntimeVisibleAnnotations:
@@ -3351,6 +3510,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/C3
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C2
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "C3.java"
 RuntimeVisibleAnnotations:
@@ -3365,6 +3526,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/CA
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "CA.java"
 RuntimeVisibleAnnotations:
@@ -3379,6 +3542,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/CB
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "CB.java"
 RuntimeVisibleAnnotations:
@@ -3393,6 +3558,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_C1
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C1
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_C1.java"
 RuntimeVisibleAnnotations:
@@ -3407,6 +3574,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_C2
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C2
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_C2.java"
 RuntimeVisibleAnnotations:
@@ -3421,6 +3590,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_C3
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C3
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_C3.java"
 RuntimeVisibleAnnotations:
@@ -3435,6 +3606,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_I1
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_I1.java"
 RuntimeVisibleAnnotations:
@@ -3449,6 +3622,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_I1_IA
   super_class: #x                         // java/lang/Object
   interfaces: 2, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_I1_IA.java"
 RuntimeVisibleAnnotations:
@@ -3463,6 +3638,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_I2
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_I2.java"
 RuntimeVisibleAnnotations:
@@ -3477,6 +3654,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_I3
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_I3.java"
 RuntimeVisibleAnnotations:
@@ -3491,6 +3670,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/I1
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "I1.java"
 RuntimeVisibleAnnotations:
@@ -3505,6 +3686,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/I2
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "I2.java"
 RuntimeVisibleAnnotations:
@@ -3519,6 +3702,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/I3
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "I3.java"
 RuntimeVisibleAnnotations:
@@ -3533,6 +3718,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/IA
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "IA.java"
 RuntimeVisibleAnnotations:
@@ -3547,6 +3734,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/IB
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "IB.java"
 RuntimeVisibleAnnotations:
@@ -3561,6 +3750,8 @@
   this_class: #x                          // com/supported/UnsupportedClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 2, attributes: 3
+Constant pool:
+{
   private final int mValue;
     descriptor: I
     flags: (0x0012) ACC_PRIVATE, ACC_FINAL
@@ -3620,6 +3811,8 @@
   this_class: #x                          // com/unsupported/UnsupportedClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 3
+Constant pool:
+{
   public com.unsupported.UnsupportedClass(int);
     descriptor: (I)V
     flags: (0x0001) ACC_PUBLIC
@@ -3675,6 +3868,8 @@
   this_class: #x                          // rename_prefix/com/android/hoststubgen/test/tinyframework/TinyFrameworkToBeRenamed
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 2, attributes: 3
+Constant pool:
+{
   private final int mValue;
     descriptor: I
     flags: (0x0012) ACC_PRIVATE, ACC_FINAL
diff --git a/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output.RELEASE_TARGET_JAVA_21/13-hoststubgen-test-tiny-framework-host-ext-dump.txt b/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output.RELEASE_TARGET_JAVA_21/13-hoststubgen-test-tiny-framework-host-ext-dump.txt
index fb225ff..a466a2e 100644
--- a/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output.RELEASE_TARGET_JAVA_21/13-hoststubgen-test-tiny-framework-host-ext-dump.txt
+++ b/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output.RELEASE_TARGET_JAVA_21/13-hoststubgen-test-tiny-framework-host-ext-dump.txt
@@ -52,6 +52,30 @@
     java.lang.annotation.Retention(
       value=Ljava/lang/annotation/RetentionPolicy;.CLASS
     )
+## Class: android/hosttest/annotation/HostSideTestPartiallyAllowlisted.class
+  Compiled from "HostSideTestPartiallyAllowlisted.java"
+public interface android.hosttest.annotation.HostSideTestPartiallyAllowlisted extends java.lang.annotation.Annotation
+  minor version: 0
+  major version: 65
+  flags: (0x2601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT, ACC_ANNOTATION
+  this_class: #x                          // android/hosttest/annotation/HostSideTestPartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
+}
+SourceFile: "HostSideTestPartiallyAllowlisted.java"
+RuntimeVisibleAnnotations:
+  x: #x()
+    com.android.hoststubgen.hosthelper.HostStubGenProcessedAsKeep
+  x: #x(#x=[e#x.#x])
+    java.lang.annotation.Target(
+      value=[Ljava/lang/annotation/ElementType;.TYPE]
+    )
+  x: #x(#x=e#x.#x)
+    java.lang.annotation.Retention(
+      value=Ljava/lang/annotation/RetentionPolicy;.CLASS
+    )
 ## Class: android/hosttest/annotation/HostSideTestRedirect.class
   Compiled from "HostSideTestRedirect.java"
 public interface android.hosttest.annotation.HostSideTestRedirect extends java.lang.annotation.Annotation
@@ -241,6 +265,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/IPretendingAidl$Stub$Proxy
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 3, attributes: 4
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -311,6 +337,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/IPretendingAidl$Stub
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 3, attributes: 4
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -381,6 +409,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/IPretendingAidl
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 1, attributes: 4
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -410,6 +440,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/R$Nested
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 2, attributes: 4
+Constant pool:
+{
   public static int[] ARRAY;
     descriptor: [I
     flags: (0x0009) ACC_PUBLIC, ACC_STATIC
@@ -480,6 +512,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/R
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 4
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -528,6 +562,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkAnnotations
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 7, attributes: 3
+Constant pool:
+{
   public int keep;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -719,6 +755,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkClassLoadHook
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 3, attributes: 3
+Constant pool:
+{
   public static final java.util.Set<java.lang.Class<?>> sLoadedClasses;
     descriptor: Ljava/util/Set;
     flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
@@ -814,6 +852,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWideAnnotations
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 5, attributes: 3
+Constant pool:
+{
   public int keep;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -944,6 +984,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWithInitializerDefault
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 0, attributes: 3
+Constant pool:
+{
   public static boolean sInitialized;
     descriptor: Z
     flags: (0x0009) ACC_PUBLIC, ACC_STATIC
@@ -981,6 +1023,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWithInitializerStub
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 1, attributes: 3
+Constant pool:
+{
   public static boolean sInitialized;
     descriptor: Z
     flags: (0x0009) ACC_PUBLIC, ACC_STATIC
@@ -1051,6 +1095,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex
   super_class: #x                         // java/lang/Enum
   interfaces: 0, fields: 6, methods: 7, attributes: 4
+Constant pool:
+{
   public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex RED;
     descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;
     flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM
@@ -1334,6 +1380,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple
   super_class: #x                         // java/lang/Enum
   interfaces: 0, fields: 3, methods: 5, attributes: 4
+Constant pool:
+{
   public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple CAT;
     descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;
     flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM
@@ -1510,6 +1558,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkExceptionTester
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 3, attributes: 3
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -1593,6 +1643,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkForTextPolicy
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 15, attributes: 2
+Constant pool:
+{
   public int stub;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -1905,6 +1957,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkLambdas$Nested
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 8, attributes: 6
+Constant pool:
+{
   public final java.util.function.Supplier<java.lang.Integer> mSupplier;
     descriptor: Ljava/util/function/Supplier;
     flags: (0x0011) ACC_PUBLIC, ACC_FINAL
@@ -2135,6 +2189,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkLambdas
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 8, attributes: 6
+Constant pool:
+{
   public final java.util.function.Supplier<java.lang.Integer> mSupplier;
     descriptor: Ljava/util/function/Supplier;
     flags: (0x0011) ACC_PUBLIC, ACC_FINAL
@@ -2366,6 +2422,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkMethodCallReplace$ReplaceTo
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 4, attributes: 4
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -2460,6 +2518,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkMethodCallReplace
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 5, attributes: 6
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -2599,6 +2659,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNative
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 15, attributes: 3
+Constant pool:
+{
   int value;
     descriptor: I
     flags: (0x0000)
@@ -2932,6 +2994,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNative_host
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 8, attributes: 3
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -3107,6 +3171,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$1
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 4, attributes: 6
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -3202,6 +3268,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$2
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 4, attributes: 6
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -3293,6 +3361,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$3
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 4, attributes: 6
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -3388,6 +3458,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$4
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 4, attributes: 6
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -3479,6 +3551,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$BaseClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 2, attributes: 4
+Constant pool:
+{
   public int value;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -3537,6 +3611,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$InnerClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 2, attributes: 4
+Constant pool:
+{
   public int value;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -3598,6 +3674,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$StaticNestedClass$1
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 4, attributes: 6
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -3690,6 +3768,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$StaticNestedClass$Double$NestedClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 2, attributes: 4
+Constant pool:
+{
   public int value;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -3748,6 +3828,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$StaticNestedClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 3, attributes: 4
+Constant pool:
+{
   public int value;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -3827,6 +3909,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$SubClass
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$BaseClass
   interfaces: 0, fields: 0, methods: 2, attributes: 4
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -3877,6 +3961,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 4, attributes: 5
+Constant pool:
+{
   public final java.util.function.Supplier<java.lang.Integer> mSupplier;
     descriptor: Ljava/util/function/Supplier;
     flags: (0x0011) ACC_PUBLIC, ACC_FINAL
@@ -4025,6 +4111,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPackageRedirect
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 3, attributes: 3
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4087,6 +4175,64 @@
 RuntimeInvisibleAnnotations:
   x: #x()
     android.hosttest.annotation.HostSideTestWholeClassKeep
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+  minor version: 0
+  major version: 65
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 2, attributes: 5
+Constant pool:
+{
+  private static {};
+    descriptor: ()V
+    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
+    Code:
+      stack=2, locals=0, args_size=0
+         x: ldc           #x                  // class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+         x: ldc           #x                  // String com.android.hoststubgen.hosthelper.HostTestUtils.logClassLoaded
+         x: invokestatic  #x                 // Method com/android/hoststubgen/hosthelper/HostTestUtils.onClassLoaded:(Ljava/lang/Class;Ljava/lang/String;)V
+         x: return
+
+  public static int foo2(int);
+    descriptor: (I)I
+    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
+    Code:
+      stack=4, locals=1, args_size=1
+         x: ldc           #x                  // class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+         x: ldc           #x                 // String foo2
+         x: ldc           #x                 // String (I)I
+         x: ldc           #x                 // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall
+         x: invokestatic  #x                 // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+        x: iload_0
+        x: iconst_2
+        x: iadd
+        x: ireturn
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+           11       4     0 value   I
+    RuntimeVisibleAnnotations:
+      x: #x()
+        com.android.hoststubgen.hosthelper.HostStubGenProcessedAsKeep
+    RuntimeInvisibleAnnotations:
+      x: #x()
+        android.hosttest.annotation.HostSideTestKeep
+}
+InnerClasses:
+  public static #x= #x of #x;           // PartiallyAllowlisted=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+RuntimeVisibleAnnotations:
+  x: #x()
+    com.android.hoststubgen.hosthelper.HostStubGenProcessedAsKeep
+RuntimeInvisibleAnnotations:
+  x: #x()
+    android.hosttest.annotation.HostSideTestPartiallyAllowlisted
+  x: #x()
+    android.hosttest.annotation.HostSideTestKeep
+NestHost: class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
 ## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkRenamedClassCaller.class
   Compiled from "TinyFrameworkRenamedClassCaller.java"
 public class com.android.hoststubgen.test.tinyframework.TinyFrameworkRenamedClassCaller
@@ -4096,6 +4242,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkRenamedClassCaller
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 3, attributes: 3
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4167,6 +4315,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/packagetest/A
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4190,6 +4340,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/packagetest/sub/A
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4213,6 +4365,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/C1
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4236,6 +4390,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/C2
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C1
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4259,6 +4415,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/C3
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C2
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4282,6 +4440,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/CA
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4305,6 +4465,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/CB
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4328,6 +4490,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_C1
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C1
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4351,6 +4515,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_C2
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C2
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4374,6 +4540,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_C3
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C3
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4397,6 +4565,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_I1
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4420,6 +4590,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_I1_IA
   super_class: #x                         // java/lang/Object
   interfaces: 2, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4443,6 +4615,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_I2
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4466,6 +4640,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_I3
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4489,6 +4665,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/I1
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4512,6 +4690,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/I2
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4535,6 +4715,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/I3
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4558,6 +4740,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/IA
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4581,6 +4765,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/IB
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4604,6 +4790,8 @@
   this_class: #x                          // com/supported/UnsupportedClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 3, attributes: 3
+Constant pool:
+{
   private final int mValue;
     descriptor: I
     flags: (0x0012) ACC_PRIVATE, ACC_FINAL
@@ -4683,6 +4871,8 @@
   this_class: #x                          // com/unsupported/UnsupportedClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 3, attributes: 3
+Constant pool:
+{
   private static {};
     descriptor: ()V
     flags: (0x000a) ACC_PRIVATE, ACC_STATIC
@@ -4758,6 +4948,8 @@
   this_class: #x                          // rename_prefix/com/android/hoststubgen/test/tinyframework/TinyFrameworkToBeRenamed
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 3, attributes: 3
+Constant pool:
+{
   private final int mValue;
     descriptor: I
     flags: (0x0012) ACC_PRIVATE, ACC_FINAL
diff --git a/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output/01-hoststubgen-test-tiny-framework-orig-dump.txt b/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output/01-hoststubgen-test-tiny-framework-orig-dump.txt
index ad41342..78341d7 100644
--- a/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output/01-hoststubgen-test-tiny-framework-orig-dump.txt
+++ b/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output/01-hoststubgen-test-tiny-framework-orig-dump.txt
@@ -67,6 +67,28 @@
     java.lang.annotation.Retention(
       value=Ljava/lang/annotation/RetentionPolicy;.CLASS
     )
+## Class: android/hosttest/annotation/HostSideTestPartiallyAllowlisted.class
+  Compiled from "HostSideTestPartiallyAllowlisted.java"
+public interface android.hosttest.annotation.HostSideTestPartiallyAllowlisted extends java.lang.annotation.Annotation
+  minor version: 0
+  major version: 61
+  flags: (0x2601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT, ACC_ANNOTATION
+  this_class: #x                          // android/hosttest/annotation/HostSideTestPartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
+}
+SourceFile: "HostSideTestPartiallyAllowlisted.java"
+RuntimeVisibleAnnotations:
+  x: #x(#x=[e#x.#x])
+    java.lang.annotation.Target(
+      value=[Ljava/lang/annotation/ElementType;.TYPE]
+    )
+  x: #x(#x=e#x.#x)
+    java.lang.annotation.Retention(
+      value=Ljava/lang/annotation/RetentionPolicy;.CLASS
+    )
 ## Class: android/hosttest/annotation/HostSideTestRedirect.class
   Compiled from "HostSideTestRedirect.java"
 public interface android.hosttest.annotation.HostSideTestRedirect extends java.lang.annotation.Annotation
@@ -2967,6 +2989,228 @@
 RuntimeInvisibleAnnotations:
   x: #x()
     android.hosttest.annotation.HostSideTestWholeClassKeep
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$NoAnnotations.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$NoAnnotations
+  minor version: 0
+  major version: 61
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$NoAnnotations
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 1, attributes: 3
+Constant pool:
+{
+  public com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$NoAnnotations();
+    descriptor: ()V
+    flags: (0x0001) ACC_PUBLIC
+    Code:
+      stack=1, locals=1, args_size=1
+         x: aload_0
+         x: invokespecial #x                  // Method java/lang/Object."<init>":()V
+         x: return
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       5     0  this   Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$NoAnnotations;
+}
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+NestHost: class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+InnerClasses:
+  public static #x= #x of #x;           // NoAnnotations=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$NoAnnotations of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad
+  minor version: 0
+  major version: 61
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 1, attributes: 4
+Constant pool:
+{
+  public com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad();
+    descriptor: ()V
+    flags: (0x0001) ACC_PUBLIC
+    Code:
+      stack=1, locals=1, args_size=1
+         x: aload_0
+         x: invokespecial #x                  // Method java/lang/Object."<init>":()V
+         x: return
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       5     0  this   Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad;
+}
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+RuntimeInvisibleAnnotations:
+  x: #x()
+    android.hosttest.annotation.HostSideTestPartiallyAllowlisted
+  x: #x()
+    android.hosttest.annotation.HostSideTestWholeClassKeep
+NestHost: class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+InnerClasses:
+  public static #x= #x of #x;           // PartialWithWholeClass_bad=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+  minor version: 0
+  major version: 61
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 3, attributes: 4
+Constant pool:
+{
+  public com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted();
+    descriptor: ()V
+    flags: (0x0001) ACC_PUBLIC
+    Code:
+      stack=1, locals=1, args_size=1
+         x: aload_0
+         x: invokespecial #x                  // Method java/lang/Object."<init>":()V
+         x: return
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       5     0  this   Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted;
+
+  public static int foo1(int);
+    descriptor: (I)I
+    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
+    Code:
+      stack=2, locals=1, args_size=1
+         x: iload_0
+         x: iconst_1
+         x: iadd
+         x: ireturn
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       4     0 value   I
+
+  public static int foo2(int);
+    descriptor: (I)I
+    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
+    Code:
+      stack=2, locals=1, args_size=1
+         x: iload_0
+         x: iconst_2
+         x: iadd
+         x: ireturn
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       4     0 value   I
+    RuntimeInvisibleAnnotations:
+      x: #x()
+        android.hosttest.annotation.HostSideTestKeep
+}
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+RuntimeInvisibleAnnotations:
+  x: #x()
+    android.hosttest.annotation.HostSideTestPartiallyAllowlisted
+  x: #x()
+    android.hosttest.annotation.HostSideTestKeep
+NestHost: class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+InnerClasses:
+  public static #x= #x of #x;           // PartiallyAllowlisted=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad
+  minor version: 0
+  major version: 61
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 3, attributes: 4
+Constant pool:
+{
+  public com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad();
+    descriptor: ()V
+    flags: (0x0001) ACC_PUBLIC
+    Code:
+      stack=1, locals=1, args_size=1
+         x: aload_0
+         x: invokespecial #x                  // Method java/lang/Object."<init>":()V
+         x: return
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       5     0  this   Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad;
+
+  public static int foo1(int);
+    descriptor: (I)I
+    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
+    Code:
+      stack=2, locals=1, args_size=1
+         x: iload_0
+         x: iconst_1
+         x: iadd
+         x: ireturn
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       4     0 value   I
+
+  public static int foo2(int);
+    descriptor: (I)I
+    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
+    Code:
+      stack=2, locals=1, args_size=1
+         x: iload_0
+         x: iconst_2
+         x: iadd
+         x: ireturn
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       4     0 value   I
+    RuntimeInvisibleAnnotations:
+      x: #x()
+        android.hosttest.annotation.HostSideTestKeep
+}
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+RuntimeInvisibleAnnotations:
+  x: #x()
+    android.hosttest.annotation.HostSideTestKeep
+NestHost: class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+InnerClasses:
+  public static #x= #x of #x;           // PartiallyAllowlistedWithoutAnnot_bad=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted
+  minor version: 0
+  major version: 61
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 1, attributes: 3
+Constant pool:
+{
+  public com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted();
+    descriptor: ()V
+    flags: (0x0001) ACC_PUBLIC
+    Code:
+      stack=1, locals=1, args_size=1
+         x: aload_0
+         x: invokespecial #x                  // Method java/lang/Object."<init>":()V
+         x: return
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       5     0  this   Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted;
+}
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+NestMembers:
+  com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$NoAnnotations
+  com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad
+  com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad
+  com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+InnerClasses:
+  public static #x= #x of #x;           // NoAnnotations=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$NoAnnotations of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+  public static #x= #x of #x;           // PartiallyAllowlistedWithoutAnnot_bad=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+  public static #x= #x of #x;           // PartialWithWholeClass_bad=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+  public static #x= #x of #x;           // PartiallyAllowlisted=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
 ## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkRenamedClassCaller.class
   Compiled from "TinyFrameworkRenamedClassCaller.java"
 public class com.android.hoststubgen.test.tinyframework.TinyFrameworkRenamedClassCaller
diff --git a/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output/03-hoststubgen-test-tiny-framework-host-dump.txt b/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output/03-hoststubgen-test-tiny-framework-host-dump.txt
index eeec554..2e0b182 100644
--- a/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output/03-hoststubgen-test-tiny-framework-host-dump.txt
+++ b/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output/03-hoststubgen-test-tiny-framework-host-dump.txt
@@ -7,6 +7,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestClassLoadHook
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   public abstract java.lang.String value();
     descriptor: ()Ljava/lang/String;
     flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
@@ -35,6 +37,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestKeep
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "HostSideTestKeep.java"
 RuntimeVisibleAnnotations:
@@ -48,6 +52,30 @@
     java.lang.annotation.Retention(
       value=Ljava/lang/annotation/RetentionPolicy;.CLASS
     )
+## Class: android/hosttest/annotation/HostSideTestPartiallyAllowlisted.class
+  Compiled from "HostSideTestPartiallyAllowlisted.java"
+public interface android.hosttest.annotation.HostSideTestPartiallyAllowlisted extends java.lang.annotation.Annotation
+  minor version: 0
+  major version: 61
+  flags: (0x2601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT, ACC_ANNOTATION
+  this_class: #x                          // android/hosttest/annotation/HostSideTestPartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
+}
+SourceFile: "HostSideTestPartiallyAllowlisted.java"
+RuntimeVisibleAnnotations:
+  x: #x()
+    com.android.hoststubgen.hosthelper.HostStubGenProcessedAsKeep
+  x: #x(#x=[e#x.#x])
+    java.lang.annotation.Target(
+      value=[Ljava/lang/annotation/ElementType;.TYPE]
+    )
+  x: #x(#x=e#x.#x)
+    java.lang.annotation.Retention(
+      value=Ljava/lang/annotation/RetentionPolicy;.CLASS
+    )
 ## Class: android/hosttest/annotation/HostSideTestRedirect.class
   Compiled from "HostSideTestRedirect.java"
 public interface android.hosttest.annotation.HostSideTestRedirect extends java.lang.annotation.Annotation
@@ -57,6 +85,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestRedirect
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "HostSideTestRedirect.java"
 RuntimeVisibleAnnotations:
@@ -79,6 +109,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestRedirectionClass
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   public abstract java.lang.String value();
     descriptor: ()Ljava/lang/String;
     flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
@@ -107,6 +139,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestRemove
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "HostSideTestRemove.java"
 RuntimeVisibleAnnotations:
@@ -129,6 +163,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestStaticInitializerKeep
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "HostSideTestStaticInitializerKeep.java"
 RuntimeVisibleAnnotations:
@@ -151,6 +187,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestSubstitute
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 1, attributes: 2
+Constant pool:
+{
   public abstract java.lang.String suffix();
     descriptor: ()Ljava/lang/String;
     flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
@@ -179,6 +217,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestThrow
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "HostSideTestThrow.java"
 RuntimeVisibleAnnotations:
@@ -201,6 +241,8 @@
   this_class: #x                          // android/hosttest/annotation/HostSideTestWholeClassKeep
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "HostSideTestWholeClassKeep.java"
 RuntimeVisibleAnnotations:
@@ -223,6 +265,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/IPretendingAidl$Stub$Proxy
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 4
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.IPretendingAidl$Stub$Proxy();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -273,6 +317,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/IPretendingAidl$Stub
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 4
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.IPretendingAidl$Stub();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -323,6 +369,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/IPretendingAidl
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 4
+Constant pool:
+{
 }
 InnerClasses:
   public static #x= #x of #x;            // Stub=class com/android/hoststubgen/test/tinyframework/IPretendingAidl$Stub of class com/android/hoststubgen/test/tinyframework/IPretendingAidl
@@ -343,6 +391,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/R$Nested
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 2, attributes: 4
+Constant pool:
+{
   public static int[] ARRAY;
     descriptor: [I
     flags: (0x0009) ACC_PUBLIC, ACC_STATIC
@@ -400,6 +450,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/R
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 1, attributes: 4
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.R();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -433,6 +485,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkAnnotations
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 7, attributes: 3
+Constant pool:
+{
   public int keep;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -591,6 +645,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkClassLoadHook
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 3, attributes: 3
+Constant pool:
+{
   public static final java.util.Set<java.lang.Class<?>> sLoadedClasses;
     descriptor: Ljava/util/Set;
     flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
@@ -668,6 +724,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWideAnnotations
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 4, attributes: 3
+Constant pool:
+{
   public int keep;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -768,6 +826,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWithInitializerDefault
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 0, attributes: 3
+Constant pool:
+{
   public static boolean sInitialized;
     descriptor: Z
     flags: (0x0009) ACC_PUBLIC, ACC_STATIC
@@ -805,6 +865,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWithInitializerStub
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 1, attributes: 3
+Constant pool:
+{
   public static boolean sInitialized;
     descriptor: Z
     flags: (0x0009) ACC_PUBLIC, ACC_STATIC
@@ -867,6 +929,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex
   super_class: #x                         // java/lang/Enum
   interfaces: 0, fields: 6, methods: 7, attributes: 4
+Constant pool:
+{
   public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex RED;
     descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;
     flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM
@@ -1112,6 +1176,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple
   super_class: #x                         // java/lang/Enum
   interfaces: 0, fields: 3, methods: 5, attributes: 4
+Constant pool:
+{
   public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple CAT;
     descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;
     flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM
@@ -1260,6 +1326,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkExceptionTester
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 3
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkExceptionTester();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -1323,6 +1391,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkForTextPolicy
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 15, attributes: 2
+Constant pool:
+{
   public int stub;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -1562,6 +1632,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkLambdas$Nested
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 8, attributes: 6
+Constant pool:
+{
   public final java.util.function.Supplier<java.lang.Integer> mSupplier;
     descriptor: Ljava/util/function/Supplier;
     flags: (0x0011) ACC_PUBLIC, ACC_FINAL
@@ -1749,6 +1821,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkLambdas
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 8, attributes: 6
+Constant pool:
+{
   public final java.util.function.Supplier<java.lang.Integer> mSupplier;
     descriptor: Ljava/util/function/Supplier;
     flags: (0x0011) ACC_PUBLIC, ACC_FINAL
@@ -1937,6 +2011,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkMethodCallReplace$ReplaceTo
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 3, attributes: 4
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkMethodCallReplace$ReplaceTo();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -2006,6 +2082,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkMethodCallReplace
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 4, attributes: 6
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkMethodCallReplace();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -2115,6 +2193,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNative
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 14, attributes: 3
+Constant pool:
+{
   int value;
     descriptor: I
     flags: (0x0000)
@@ -2373,6 +2453,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNative_host
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 7, attributes: 3
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkNative_host();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -2503,6 +2585,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$1
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 1, methods: 3, attributes: 6
+Constant pool:
+{
   final com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses this$0;
     descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses;
     flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
@@ -2583,6 +2667,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$2
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 3, attributes: 6
+Constant pool:
+{
   com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses$2();
     descriptor: ()V
     flags: (0x0000)
@@ -2649,6 +2735,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$3
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 1, methods: 3, attributes: 6
+Constant pool:
+{
   final com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses this$0;
     descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses;
     flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
@@ -2729,6 +2817,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$4
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 3, attributes: 6
+Constant pool:
+{
   com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses$4();
     descriptor: ()V
     flags: (0x0000)
@@ -2795,6 +2885,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$BaseClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 1, attributes: 4
+Constant pool:
+{
   public int value;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -2838,6 +2930,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$InnerClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 1, attributes: 4
+Constant pool:
+{
   public int value;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -2894,6 +2988,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$StaticNestedClass$1
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 3, attributes: 6
+Constant pool:
+{
   com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses$StaticNestedClass$1();
     descriptor: ()V
     flags: (0x0000)
@@ -2961,6 +3057,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$StaticNestedClass$Double$NestedClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 1, attributes: 4
+Constant pool:
+{
   public int value;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -3004,6 +3102,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$StaticNestedClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 2, attributes: 4
+Constant pool:
+{
   public int value;
     descriptor: I
     flags: (0x0001) ACC_PUBLIC
@@ -3063,6 +3163,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$SubClass
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses$BaseClass
   interfaces: 0, fields: 0, methods: 1, attributes: 4
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkNestedClasses$SubClass(int);
     descriptor: (I)V
     flags: (0x0001) ACC_PUBLIC
@@ -3098,6 +3200,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkNestedClasses
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 2, methods: 4, attributes: 5
+Constant pool:
+{
   public final java.util.function.Supplier<java.lang.Integer> mSupplier;
     descriptor: Ljava/util/function/Supplier;
     flags: (0x0011) ACC_PUBLIC, ACC_FINAL
@@ -3223,6 +3327,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPackageRedirect
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 3
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkPackageRedirect();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -3265,6 +3371,49 @@
 RuntimeInvisibleAnnotations:
   x: #x()
     android.hosttest.annotation.HostSideTestWholeClassKeep
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+  minor version: 0
+  major version: 61
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 1, attributes: 5
+Constant pool:
+{
+  public static int foo2(int);
+    descriptor: (I)I
+    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
+    Code:
+      stack=2, locals=1, args_size=1
+         x: iload_0
+         x: iconst_2
+         x: iadd
+         x: ireturn
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+            0       4     0 value   I
+    RuntimeVisibleAnnotations:
+      x: #x()
+        com.android.hoststubgen.hosthelper.HostStubGenProcessedAsKeep
+    RuntimeInvisibleAnnotations:
+      x: #x()
+        android.hosttest.annotation.HostSideTestKeep
+}
+InnerClasses:
+  public static #x= #x of #x;            // PartiallyAllowlisted=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+RuntimeVisibleAnnotations:
+  x: #x()
+    com.android.hoststubgen.hosthelper.HostStubGenProcessedAsKeep
+RuntimeInvisibleAnnotations:
+  x: #x()
+    android.hosttest.annotation.HostSideTestPartiallyAllowlisted
+  x: #x()
+    android.hosttest.annotation.HostSideTestKeep
+NestHost: class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
 ## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkRenamedClassCaller.class
   Compiled from "TinyFrameworkRenamedClassCaller.java"
 public class com.android.hoststubgen.test.tinyframework.TinyFrameworkRenamedClassCaller
@@ -3274,6 +3423,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkRenamedClassCaller
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 3
+Constant pool:
+{
   public com.android.hoststubgen.test.tinyframework.TinyFrameworkRenamedClassCaller();
     descriptor: ()V
     flags: (0x0001) ACC_PUBLIC
@@ -3325,6 +3476,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/packagetest/A
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "A.java"
 RuntimeVisibleAnnotations:
@@ -3339,6 +3492,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/packagetest/sub/A
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "A.java"
 RuntimeVisibleAnnotations:
@@ -3353,6 +3508,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/C1
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "C1.java"
 RuntimeVisibleAnnotations:
@@ -3367,6 +3524,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/C2
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C1
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "C2.java"
 RuntimeVisibleAnnotations:
@@ -3381,6 +3540,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/C3
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C2
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "C3.java"
 RuntimeVisibleAnnotations:
@@ -3395,6 +3556,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/CA
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "CA.java"
 RuntimeVisibleAnnotations:
@@ -3409,6 +3572,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/CB
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "CB.java"
 RuntimeVisibleAnnotations:
@@ -3423,6 +3588,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_C1
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C1
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_C1.java"
 RuntimeVisibleAnnotations:
@@ -3437,6 +3604,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_C2
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C2
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_C2.java"
 RuntimeVisibleAnnotations:
@@ -3451,6 +3620,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_C3
   super_class: #x                         // com/android/hoststubgen/test/tinyframework/subclasstest/C3
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_C3.java"
 RuntimeVisibleAnnotations:
@@ -3465,6 +3636,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_I1
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_I1.java"
 RuntimeVisibleAnnotations:
@@ -3479,6 +3652,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_I1_IA
   super_class: #x                         // java/lang/Object
   interfaces: 2, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_I1_IA.java"
 RuntimeVisibleAnnotations:
@@ -3493,6 +3668,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_I2
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_I2.java"
 RuntimeVisibleAnnotations:
@@ -3507,6 +3684,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/Class_I3
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "Class_I3.java"
 RuntimeVisibleAnnotations:
@@ -3521,6 +3700,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/I1
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "I1.java"
 RuntimeVisibleAnnotations:
@@ -3535,6 +3716,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/I2
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "I2.java"
 RuntimeVisibleAnnotations:
@@ -3549,6 +3732,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/I3
   super_class: #x                         // java/lang/Object
   interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "I3.java"
 RuntimeVisibleAnnotations:
@@ -3563,6 +3748,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/IA
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "IA.java"
 RuntimeVisibleAnnotations:
@@ -3577,6 +3764,8 @@
   this_class: #x                          // com/android/hoststubgen/test/tinyframework/subclasstest/IB
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
 }
 SourceFile: "IB.java"
 RuntimeVisibleAnnotations:
@@ -3591,6 +3780,8 @@
   this_class: #x                          // com/supported/UnsupportedClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 2, attributes: 3
+Constant pool:
+{
   private final int mValue;
     descriptor: I
     flags: (0x0012) ACC_PRIVATE, ACC_FINAL
@@ -3650,6 +3841,8 @@
   this_class: #x                          // com/unsupported/UnsupportedClass
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 0, methods: 2, attributes: 3
+Constant pool:
+{
   public com.unsupported.UnsupportedClass(int);
     descriptor: (I)V
     flags: (0x0001) ACC_PUBLIC
@@ -3705,6 +3898,8 @@
   this_class: #x                          // rename_prefix/com/android/hoststubgen/test/tinyframework/TinyFrameworkToBeRenamed
   super_class: #x                         // java/lang/Object
   interfaces: 0, fields: 1, methods: 2, attributes: 3
+Constant pool:
+{
   private final int mValue;
     descriptor: I
     flags: (0x0012) ACC_PRIVATE, ACC_FINAL
diff --git a/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output/13-hoststubgen-test-tiny-framework-host-ext-dump.txt b/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output/13-hoststubgen-test-tiny-framework-host-ext-dump.txt
index e4b9db2..51f7925 100644
--- a/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output/13-hoststubgen-test-tiny-framework-host-ext-dump.txt
+++ b/ravenwood/tools/hoststubgen/test-tiny-framework/golden-output/13-hoststubgen-test-tiny-framework-host-ext-dump.txt
@@ -52,6 +52,30 @@
     java.lang.annotation.Retention(
       value=Ljava/lang/annotation/RetentionPolicy;.CLASS
     )
+## Class: android/hosttest/annotation/HostSideTestPartiallyAllowlisted.class
+  Compiled from "HostSideTestPartiallyAllowlisted.java"
+public interface android.hosttest.annotation.HostSideTestPartiallyAllowlisted extends java.lang.annotation.Annotation
+  minor version: 0
+  major version: 61
+  flags: (0x2601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT, ACC_ANNOTATION
+  this_class: #x                          // android/hosttest/annotation/HostSideTestPartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 1, fields: 0, methods: 0, attributes: 2
+Constant pool:
+{
+}
+SourceFile: "HostSideTestPartiallyAllowlisted.java"
+RuntimeVisibleAnnotations:
+  x: #x()
+    com.android.hoststubgen.hosthelper.HostStubGenProcessedAsKeep
+  x: #x(#x=[e#x.#x])
+    java.lang.annotation.Target(
+      value=[Ljava/lang/annotation/ElementType;.TYPE]
+    )
+  x: #x(#x=e#x.#x)
+    java.lang.annotation.Retention(
+      value=Ljava/lang/annotation/RetentionPolicy;.CLASS
+    )
 ## Class: android/hosttest/annotation/HostSideTestRedirect.class
   Compiled from "HostSideTestRedirect.java"
 public interface android.hosttest.annotation.HostSideTestRedirect extends java.lang.annotation.Annotation
@@ -4181,6 +4205,64 @@
 RuntimeInvisibleAnnotations:
   x: #x()
     android.hosttest.annotation.HostSideTestWholeClassKeep
+## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted.class
+  Compiled from "TinyFrameworkPartiallyAllowlisted.java"
+public class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+  minor version: 0
+  major version: 61
+  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
+  this_class: #x                          // com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+  super_class: #x                         // java/lang/Object
+  interfaces: 0, fields: 0, methods: 2, attributes: 5
+Constant pool:
+{
+  private static {};
+    descriptor: ()V
+    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
+    Code:
+      stack=2, locals=0, args_size=0
+         x: ldc           #x                  // class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+         x: ldc           #x                  // String com.android.hoststubgen.hosthelper.HostTestUtils.logClassLoaded
+         x: invokestatic  #x                 // Method com/android/hoststubgen/hosthelper/HostTestUtils.onClassLoaded:(Ljava/lang/Class;Ljava/lang/String;)V
+         x: return
+
+  public static int foo2(int);
+    descriptor: (I)I
+    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
+    Code:
+      stack=4, locals=1, args_size=1
+         x: ldc           #x                  // class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted
+         x: ldc           #x                 // String foo2
+         x: ldc           #x                 // String (I)I
+         x: ldc           #x                 // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall
+         x: invokestatic  #x                 // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+        x: iload_0
+        x: iconst_2
+        x: iadd
+        x: ireturn
+      LineNumberTable:
+      LocalVariableTable:
+        Start  Length  Slot  Name   Signature
+           11       4     0 value   I
+    RuntimeVisibleAnnotations:
+      x: #x()
+        com.android.hoststubgen.hosthelper.HostStubGenProcessedAsKeep
+    RuntimeInvisibleAnnotations:
+      x: #x()
+        android.hosttest.annotation.HostSideTestKeep
+}
+InnerClasses:
+  public static #x= #x of #x;           // PartiallyAllowlisted=class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted of class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
+SourceFile: "TinyFrameworkPartiallyAllowlisted.java"
+RuntimeVisibleAnnotations:
+  x: #x()
+    com.android.hoststubgen.hosthelper.HostStubGenProcessedAsKeep
+RuntimeInvisibleAnnotations:
+  x: #x()
+    android.hosttest.annotation.HostSideTestPartiallyAllowlisted
+  x: #x()
+    android.hosttest.annotation.HostSideTestKeep
+NestHost: class com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted
 ## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkRenamedClassCaller.class
   Compiled from "TinyFrameworkRenamedClassCaller.java"
 public class com.android.hoststubgen.test.tinyframework.TinyFrameworkRenamedClassCaller
diff --git a/ravenwood/tools/hoststubgen/test-tiny-framework/policy-override-tiny-framework.txt b/ravenwood/tools/hoststubgen/test-tiny-framework/policy-override-tiny-framework.txt
index 2f35d35..1f64a3c 100644
--- a/ravenwood/tools/hoststubgen/test-tiny-framework/policy-override-tiny-framework.txt
+++ b/ravenwood/tools/hoststubgen/test-tiny-framework/policy-override-tiny-framework.txt
@@ -73,3 +73,9 @@
 # The leading / in the prefix is not needed (it'll be stripped), but it's added to make
 # sure the stripping works.
 rename ^.*/TinyFrameworkToBeRenamed$ /rename_prefix/
+
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlisted allow-annotation
+    method foo2 allow-annotation
+
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartialWithWholeClass_bad remove
+class com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted$PartiallyAllowlistedWithoutAnnot_bad remove
\ No newline at end of file
diff --git a/ravenwood/tools/hoststubgen/test-tiny-framework/run-test-manually.sh b/ravenwood/tools/hoststubgen/test-tiny-framework/run-test-manually.sh
index 80ebf3a..450da23 100755
--- a/ravenwood/tools/hoststubgen/test-tiny-framework/run-test-manually.sh
+++ b/ravenwood/tools/hoststubgen/test-tiny-framework/run-test-manually.sh
@@ -13,8 +13,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
-source "${0%/*}"/../../common.sh
+set -e
+source "${0%/*}"/../common.sh
 
 # This scripts run the "tiny-framework" test, but does most stuff from the command line, using
 # the native java and javac commands.
@@ -49,7 +49,7 @@
 tiny_test_jar=$out/tiny-test.jar
 
 framework_compile_classpaths=(
-  $SOONG_INT/frameworks/base/tools/hoststubgen/hoststubgen/hoststubgen-annotations/android_common/javac/hoststubgen-annotations.jar
+  $SOONG_INT/frameworks/base/ravenwood/tools/hoststubgen/hoststubgen-annotations/android_common/javac/hoststubgen-annotations.jar
 )
 
 test_compile_classpaths=(
@@ -58,7 +58,7 @@
 )
 
 test_runtime_classpaths=(
-  $SOONG_INT/frameworks/base/tools/hoststubgen/hoststubgen/hoststubgen-helper-runtime/linux_glibc_common/javac/hoststubgen-helper-runtime.jar
+  $SOONG_INT/frameworks/base/ravenwood/tools/hoststubgen/hoststubgen-helper-runtime/linux_glibc_common/javac/hoststubgen-helper-runtime.jar
 )
 
 # This suite runs all tests in the JAR.
@@ -73,7 +73,7 @@
 run $JAVAC \
     -cp $( \
         join : \
-        ${framework_compile_classpaths[@]} \
+        "${framework_compile_classpaths[@]}" \
         ) \
     -d $tiny_framework_classes \
     tiny-framework/src/**/*.java
@@ -83,7 +83,9 @@
 
 # Build stub/impl jars
 echo "# Generating the stub and impl jars..."
+# Run with HOSTSTUBGEN_OPTS="-Jagentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8700" to enable the debugger
 run $HOSTSTUBGEN \
+    $HOSTSTUBGEN_OPTS \
     @../hoststubgen-standard-options.txt \
     --in-jar $tiny_framework_jar \
     --out-jar $tiny_framework_host_jar \
@@ -91,8 +93,7 @@
     --gen-keep-all-file out/tiny-framework_keep_all.txt \
     --gen-input-dump-file out/tiny-framework_dump.txt \
     --package-redirect com.unsupported:com.supported \
-    --annotation-allowed-classes-file annotation-allowed-classes-tiny-framework.txt \
-    $HOSTSTUBGEN_OPTS
+    --annotation-allowed-classes-file annotation-allowed-classes-tiny-framework.txt
 
 # Extract the jar files, so we can look into them.
 extract $tiny_framework_host_jar
@@ -127,4 +128,4 @@
         "${test_runtime_classpaths[@]}" \
         ) \
     org.junit.runner.JUnitCore \
-    ${test_classes[@]}
+    "${test_classes[@]}"
diff --git a/ravenwood/tools/hoststubgen/test-tiny-framework/tiny-framework/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted.java b/ravenwood/tools/hoststubgen/test-tiny-framework/tiny-framework/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted.java
new file mode 100644
index 0000000..dfc9de4
--- /dev/null
+++ b/ravenwood/tools/hoststubgen/test-tiny-framework/tiny-framework/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkPartiallyAllowlisted.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2025 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.hoststubgen.test.tinyframework;
+
+import android.hosttest.annotation.HostSideTestKeep;
+import android.hosttest.annotation.HostSideTestPartiallyAllowlisted;
+import android.hosttest.annotation.HostSideTestWholeClassKeep;
+
+/**
+ * Contains subclasses for tests for "partially-allowlisted".
+ */
+public class TinyFrameworkPartiallyAllowlisted {
+    /** */
+    @HostSideTestPartiallyAllowlisted
+    @HostSideTestKeep
+    public static class PartiallyAllowlisted {
+        /** */
+        public static int foo1(int value) {
+            return value + 1;
+        }
+
+        /** */
+        @HostSideTestKeep
+        public static int foo2(int value) {
+            return value + 2;
+        }
+    }
+
+    /** */
+    @HostSideTestPartiallyAllowlisted
+    @HostSideTestWholeClassKeep // This should be disallowed.
+    public static class PartialWithWholeClass_bad {
+    }
+
+    /** */
+    // Missing @HostSideTestPartiallyAllowlisted
+    @HostSideTestKeep
+    public static class PartiallyAllowlistedWithoutAnnot_bad {
+        /** */
+        public static int foo1(int value) {
+            return value + 1;
+        }
+
+        /** */
+        @HostSideTestKeep
+        public static int foo2(int value) {
+            return value + 2;
+        }
+    }
+
+    /** */
+    public static class NoAnnotations {
+    }
+}
diff --git a/ravenwood/tools/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkAnnotationsTest.java b/ravenwood/tools/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkAnnotationsTest.java
index 1ae0493..93387f5 100644
--- a/ravenwood/tools/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkAnnotationsTest.java
+++ b/ravenwood/tools/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkAnnotationsTest.java
@@ -19,6 +19,8 @@
 
 import static org.junit.Assert.assertThrows;
 
+import com.android.hoststubgen.test.tinyframework.TinyFrameworkPartiallyAllowlisted.PartiallyAllowlisted;
+
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -61,4 +63,19 @@
         thrown.expectMessage("not yet supported");
         tfc.unsupportedMethod();
     }
+
+    @Test
+    public void testPartiallyAllowed() {
+        assertThat(PartiallyAllowlisted.foo2(1)).isEqualTo(3);
+        assertThrows(NoSuchMethodError.class, () -> PartiallyAllowlisted.foo1(1));
+
+        // Just make sure the following classes don't exist.
+        assertThrows(ClassNotFoundException.class,
+                () -> Class.forName("com.android.hoststubgen.test.tinyframework"
+                        + ".TinyFrameworkPartiallyAllowlisted.PartialWithWholeClass_bad"));
+        assertThrows(ClassNotFoundException.class,
+                () -> Class.forName("com.android.hoststubgen.test.tinyframework"
+                        + ".TinyFrameworkPartiallyAllowlisted.PartiallyAllowlistedWithoutAnnot_bad"
+                ));
+    }
 }
diff --git a/ravenwood/tools/hoststubgen/test/com/android/hoststubgen/utils/ClassPredicateTest.kt b/ravenwood/tools/hoststubgen/test/com/android/hoststubgen/utils/ClassPredicateTest.kt
index 5a877e6..3e6615e 100644
--- a/ravenwood/tools/hoststubgen/test/com/android/hoststubgen/utils/ClassPredicateTest.kt
+++ b/ravenwood/tools/hoststubgen/test/com/android/hoststubgen/utils/ClassPredicateTest.kt
@@ -112,4 +112,4 @@
 
         assertThat(f.matches("a/XyzAbc")).isEqualTo(false)
     }
-}
\ No newline at end of file
+}
diff --git a/ravenwood/tools/ravenhelper/src/com/android/platform/test/ravenwood/ravenhelper/policytoannot/Annotations.kt b/ravenwood/tools/ravenhelper/src/com/android/platform/test/ravenwood/ravenhelper/policytoannot/Annotations.kt
index ef1cb5d..33fb015 100644
--- a/ravenwood/tools/ravenhelper/src/com/android/platform/test/ravenwood/ravenhelper/policytoannot/Annotations.kt
+++ b/ravenwood/tools/ravenhelper/src/com/android/platform/test/ravenwood/ravenhelper/policytoannot/Annotations.kt
@@ -49,6 +49,7 @@
                 "@android.ravenwood.annotation.RavenwoodIgnore"
             FilterPolicy.Remove ->
                 "@android.ravenwood.annotation.RavenwoodRemove"
+            FilterPolicy.AnnotationAllowed -> null // Can't convert to an annotation.
         }
     }
 
diff --git a/services/accessibility/accessibility.aconfig b/services/accessibility/accessibility.aconfig
index 5e1fe8a6..b52b3dab 100644
--- a/services/accessibility/accessibility.aconfig
+++ b/services/accessibility/accessibility.aconfig
@@ -145,16 +145,6 @@
 }
 
 flag {
-    name: "enable_magnification_follows_mouse_bugfix"
-    namespace: "accessibility"
-    description: "Whether to enable mouse following for fullscreen magnification"
-    bug: "354696546"
-    metadata {
-      purpose: PURPOSE_BUGFIX
-    }
-}
-
-flag {
     name: "enable_magnification_follows_mouse_with_pointer_motion_filter"
     namespace: "accessibility"
     description: "Whether to enable mouse following using pointer motion filter"
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
index 9b5f22a..4e41808 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
@@ -53,7 +53,6 @@
 import com.android.server.accessibility.magnification.FullScreenMagnificationVibrationHelper;
 import com.android.server.accessibility.magnification.MagnificationGestureHandler;
 import com.android.server.accessibility.magnification.MagnificationKeyHandler;
-import com.android.server.accessibility.magnification.MouseEventHandler;
 import com.android.server.accessibility.magnification.WindowMagnificationGestureHandler;
 import com.android.server.accessibility.magnification.WindowMagnificationPromptController;
 import com.android.server.policy.WindowManagerPolicy;
@@ -899,8 +898,7 @@
                             triggerable,
                             new WindowMagnificationPromptController(displayContext, mUserId),
                             displayId,
-                            fullScreenMagnificationVibrationHelper,
-                            new MouseEventHandler(controller));
+                            fullScreenMagnificationVibrationHelper);
         }
         return magnificationGestureHandler;
     }
diff --git a/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickController.java b/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickController.java
index aa82df4..bb3c710 100644
--- a/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickController.java
+++ b/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickController.java
@@ -156,7 +156,7 @@
 
         mWindowManager = mContext.getSystemService(WindowManager.class);
         mAutoclickTypePanel =
-                new AutoclickTypePanel(mContext, mWindowManager, clickPanelController);
+                new AutoclickTypePanel(mContext, mWindowManager, mUserId, clickPanelController);
 
         mAutoclickTypePanel.show();
         mWindowManager.addView(mAutoclickIndicatorView, mAutoclickIndicatorView.getLayoutParams());
@@ -230,6 +230,11 @@
         return Flags.enableAutoclickIndicator() && mAutoclickTypePanel.isPaused();
     }
 
+    @VisibleForTesting
+    void onChangeForTesting(boolean selfChange, Uri uri) {
+        mAutoclickSettingsObserver.onChange(selfChange, uri);
+    }
+
     /**
      * Observes autoclick setting values, and updates ClickScheduler delay and indicator size
      * whenever the setting value changes.
diff --git a/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickIndicatorView.java b/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickIndicatorView.java
index 01f359f..6beb47a 100644
--- a/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickIndicatorView.java
+++ b/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickIndicatorView.java
@@ -123,6 +123,7 @@
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         // Get the screen dimensions.
+        // TODO(b/397944891): Handle device rotation case.
         DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
         int screenWidth = displayMetrics.widthPixels;
         int screenHeight = displayMetrics.heightPixels;
diff --git a/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickTypePanel.java b/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickTypePanel.java
index ba3e3d1..ab4b3b1 100644
--- a/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickTypePanel.java
+++ b/services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickTypePanel.java
@@ -16,6 +16,7 @@
 
 package com.android.server.accessibility.autoclick;
 
+import static android.provider.Settings.Secure.ACCESSIBILITY_AUTOCLICK_PANEL_POSITION;
 import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
 
 import android.annotation.IntDef;
@@ -23,8 +24,11 @@
 import android.graphics.PixelFormat;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.GradientDrawable;
+import android.provider.Settings;
+import android.text.TextUtils;
 import android.view.Gravity;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.WindowInsets;
 import android.view.WindowManager;
@@ -51,6 +55,19 @@
     public static final int CORNER_TOP_LEFT = 2;
     public static final int CORNER_TOP_RIGHT = 3;
 
+    // Used to remember and restore panel's position.
+    protected static final String POSITION_DELIMITER = ",";
+
+    // Distance between panel and screen edge.
+    // TODO(b/396402941): Finalize edge margin.
+    private static final int PANEL_EDGE_MARGIN = 15;
+
+    // Touch point when drag starts, it can be anywhere inside the panel.
+    private float mTouchStartX, mTouchStartY;
+    // Initial panel position in screen coordinates.
+    private int mPanelStartX, mPanelStartY;
+    private boolean mIsDragging = false;
+
     // Types of click the AutoclickTypePanel supports.
     @IntDef({
         AUTOCLICK_TYPE_LEFT_CLICK,
@@ -101,6 +118,10 @@
 
     private final WindowManager mWindowManager;
 
+    private final int mUserId;
+
+    private WindowManager.LayoutParams mParams;
+
     private final ClickPanelControllerInterface mClickPanelController;
 
     // Whether the panel is expanded or not.
@@ -129,10 +150,13 @@
     public AutoclickTypePanel(
             Context context,
             WindowManager windowManager,
+            int userId,
             ClickPanelControllerInterface clickPanelController) {
         mContext = context;
         mWindowManager = windowManager;
+        mUserId = userId;
         mClickPanelController = clickPanelController;
+        mParams = getDefaultLayoutParams();
 
         mPauseButtonDrawable = mContext.getDrawable(
                 R.drawable.accessibility_autoclick_pause);
@@ -154,6 +178,91 @@
         mPositionButton = mContentView.findViewById(R.id.accessibility_autoclick_position_layout);
 
         initializeButtonState();
+
+        // Set up touch event handling for the panel to allow the user to drag and reposition the
+        // panel by touching and moving it.
+        mContentView.setOnTouchListener(this::onPanelTouch);
+    }
+
+    /**
+     * Handles touch events on the panel, enabling the user to drag and reposition it.
+     * This function supports the draggable panel feature, allowing users to move the panel
+     * to different screen locations for better usability and customization.
+     */
+    private boolean onPanelTouch(View v, MotionEvent event) {
+        // TODO(b/397681794): Make sure this works on multiple screens.
+        switch (event.getAction()) {
+            case MotionEvent.ACTION_DOWN:
+                // Store initial touch positions.
+                mTouchStartX = event.getRawX();
+                mTouchStartY = event.getRawY();
+
+                // Store initial panel position relative to screen's top-left corner.
+                // getLocationOnScreen provides coordinates relative to the top-left corner of the
+                // screen's display. We are using this coordinate system to consistently track the
+                // panel's position during drag operations.
+                int[] location = new int[2];
+                v.getLocationOnScreen(location);
+                mPanelStartX = location[0];
+                mPanelStartY = location[1];
+                return true;
+            case MotionEvent.ACTION_MOVE:
+                mIsDragging = true;
+
+                // Set panel gravity to TOP|LEFT to match getLocationOnScreen's coordinate system
+                mParams.gravity = Gravity.LEFT | Gravity.TOP;
+
+                if (mIsDragging) {
+                    // Calculate touch distance moved from start position.
+                    float deltaX = event.getRawX() - mTouchStartX;
+                    float deltaY = event.getRawY() - mTouchStartY;
+
+                    // Update panel position, based on Top-Left absolute positioning.
+                    mParams.x = mPanelStartX + (int) deltaX;
+                    mParams.y = mPanelStartY + (int) deltaY;
+                    mWindowManager.updateViewLayout(mContentView, mParams);
+                }
+                return true;
+            case MotionEvent.ACTION_UP:
+            case MotionEvent.ACTION_CANCEL:
+                if (mIsDragging) {
+                    // When drag ends, snap panel to nearest edge.
+                    snapToNearestEdge(mParams);
+                }
+                mIsDragging = false;
+                return true;
+        }
+        return false;
+    }
+
+    private void snapToNearestEdge(WindowManager.LayoutParams params) {
+        // Get screen width to determine which side to snap to.
+        // TODO(b/397944891): Handle device rotation case.
+        int screenWidth = mContext.getResources().getDisplayMetrics().widthPixels;
+        int yPosition = params.y;
+
+        // Determine which half of the screen the panel is on.
+        boolean isOnLeftHalf = params.x < screenWidth / 2;
+
+        if (isOnLeftHalf) {
+            // Snap to left edge. Set params.gravity to make sure x, y offsets from correct anchor.
+            params.gravity = Gravity.START | Gravity.TOP;
+            // Set the current corner to be bottom-left to ensure that the subsequent reposition
+            // action rotates the panel clockwise from bottom-left towards top-left.
+            mCurrentCornerIndex = 1;
+        } else {
+            // Snap to right edge. Set params.gravity to make sure x, y offsets from correct anchor.
+            params.gravity = Gravity.END | Gravity.TOP;
+            // Set the current corner to be top-right to ensure that the subsequent reposition
+            // action rotates the panel clockwise from top-right towards bottom-right.
+            mCurrentCornerIndex = 3;
+        }
+
+        // Apply final position: set params.x to be edge margin, params.y to maintain vertical
+        // position.
+        params.x = PANEL_EDGE_MARGIN;
+        params.y = yPosition;
+        mWindowManager.updateViewLayout(mContentView, params);
     }
 
     private void initializeButtonState() {
@@ -209,7 +318,10 @@
     }
 
     public void show() {
-        mWindowManager.addView(mContentView, getLayoutParams());
+        // Restores the panel position from saved settings. If no valid position is saved,
+        // defaults to bottom-right corner.
+        restorePanelPosition();
+        mWindowManager.addView(mContentView, mParams);
     }
 
     public void hide() {
@@ -217,6 +329,9 @@
         // button background styling is correct when the panel shows up next time.
         toggleSelectedButtonStyle(mSelectedButton, /* isSelected= */ false);
 
+        // Save the panel's position when user turns off the autoclick.
+        savePanelPosition();
+
         mWindowManager.removeView(mContentView);
     }
 
@@ -291,9 +406,8 @@
         @Corner int nextCornerIndex = (mCurrentCornerIndex + 1) % CORNER_ROTATION_ORDER.length;
         mCurrentCornerIndex = nextCornerIndex;
 
-        // getLayoutParams() will update the panel position based on current corner.
-        WindowManager.LayoutParams params = getLayoutParams();
-        mWindowManager.updateViewLayout(mContentView, params);
+        setPanelPositionForCorner(mParams, mCurrentCornerIndex);
+        mWindowManager.updateViewLayout(mContentView, mParams);
     }
 
     private void setPanelPositionForCorner(WindowManager.LayoutParams params, @Corner int corner) {
@@ -303,22 +417,22 @@
         switch (corner) {
             case CORNER_BOTTOM_RIGHT:
                 params.gravity = Gravity.END | Gravity.BOTTOM;
-                params.x = 15;
+                params.x = PANEL_EDGE_MARGIN;
                 params.y = 90;
                 break;
             case CORNER_BOTTOM_LEFT:
                 params.gravity = Gravity.START | Gravity.BOTTOM;
-                params.x = 15;
+                params.x = PANEL_EDGE_MARGIN;
                 params.y = 90;
                 break;
             case CORNER_TOP_LEFT:
                 params.gravity = Gravity.START | Gravity.TOP;
-                params.x = 15;
+                params.x = PANEL_EDGE_MARGIN;
                 params.y = 30;
                 break;
             case CORNER_TOP_RIGHT:
                 params.gravity = Gravity.END | Gravity.TOP;
-                params.x = 15;
+                params.x = PANEL_EDGE_MARGIN;
                 params.y = 30;
                 break;
             default:
@@ -326,6 +440,79 @@
         }
     }
 
+    private void savePanelPosition() {
+        String positionString = TextUtils.join(POSITION_DELIMITER, new String[]{
+                String.valueOf(mParams.gravity),
+                String.valueOf(mParams.x),
+                String.valueOf(mParams.y),
+                String.valueOf(mCurrentCornerIndex)
+        });
+        Settings.Secure.putStringForUser(mContext.getContentResolver(),
+                ACCESSIBILITY_AUTOCLICK_PANEL_POSITION, positionString, mUserId);
+    }
+
+    /**
+     * Restores the panel position from saved settings. If no valid position is saved,
+     * defaults to bottom-right corner.
+     */
+    private void restorePanelPosition() {
+        // Try to get saved position from settings.
+        String savedPosition = Settings.Secure.getStringForUser(mContext.getContentResolver(),
+                ACCESSIBILITY_AUTOCLICK_PANEL_POSITION, mUserId);
+        if (savedPosition == null) {
+            setPanelPositionForCorner(mParams, CORNER_BOTTOM_RIGHT);
+            mCurrentCornerIndex = 0;
+            return;
+        }
+
+        // Parse saved position string in "gravity,x,y,corner" format.
+        String[] parts = TextUtils.split(savedPosition, POSITION_DELIMITER);
+        if (!isValidPositionParts(parts)) {
+            setPanelPositionForCorner(mParams, CORNER_BOTTOM_RIGHT);
+            mCurrentCornerIndex = 0;
+            return;
+        }
+
+        // Restore the saved position values.
+        mParams.gravity = Integer.parseInt(parts[0]);
+        mParams.x = Integer.parseInt(parts[1]);
+        mParams.y = Integer.parseInt(parts[2]);
+        mCurrentCornerIndex = Integer.parseInt(parts[3]);
+    }
+
+    private boolean isValidPositionParts(String[] parts) {
+        // Check basic array validity.
+        if (parts == null || parts.length != 4) {
+            return false;
+        }
+
+        // Parse values after validating they are numbers.
+        int gravity = Integer.parseInt(parts[0]);
+        int x = Integer.parseInt(parts[1]);
+        int y = Integer.parseInt(parts[2]);
+        int cornerIndex = Integer.parseInt(parts[3]);
+
+        // Check gravity is valid (START/END | TOP/BOTTOM).
+        if (gravity != (Gravity.START | Gravity.TOP) && gravity != (Gravity.END | Gravity.TOP)
+                && gravity != (Gravity.START | Gravity.BOTTOM) && gravity != (Gravity.END
+                | Gravity.BOTTOM)) {
+            return false;
+        }
+
+        // Check coordinates are positive and within screen bounds.
+        int screenWidth = mContext.getResources().getDisplayMetrics().widthPixels;
+        int screenHeight = mContext.getResources().getDisplayMetrics().heightPixels;
+        if (x < 0 || x > screenWidth || y < 0 || y > screenHeight) {
+            return false;
+        }
+
+        // Check corner index is valid.
+        if (cornerIndex < 0 || cornerIndex >= 4) {
+            return false;
+        }
+        return true;
+    }
+
     @VisibleForTesting
     boolean getExpansionStateForTesting() {
         return mExpanded;
@@ -343,13 +530,22 @@
         return mCurrentCornerIndex;
     }
 
+    @VisibleForTesting
+    WindowManager.LayoutParams getLayoutParamsForTesting() {
+        return mParams;
+    }
+
+    @VisibleForTesting
+    boolean getIsDraggingForTesting() {
+        return mIsDragging;
+    }
+
     /**
      * Retrieves the layout params for AutoclickIndicatorView, used when it's added to the Window
      * Manager.
      */
-    @VisibleForTesting
     @NonNull
-    WindowManager.LayoutParams getLayoutParams() {
+    private WindowManager.LayoutParams getDefaultLayoutParams() {
         final WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
         layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
         layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
@@ -362,7 +558,7 @@
                 mContext.getString(R.string.accessibility_autoclick_type_settings_panel_title);
         layoutParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
         layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
-        setPanelPositionForCorner(layoutParams, mCurrentCornerIndex);
+        setPanelPositionForCorner(layoutParams, CORNER_BOTTOM_RIGHT);
         return layoutParams;
     }
 }
diff --git a/services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler.java b/services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler.java
index d11ae0a..e0dd8b6 100644
--- a/services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler.java
+++ b/services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler.java
@@ -182,7 +182,7 @@
     private final int mMinimumVelocity;
     private final int mMaximumVelocity;
 
-    private MouseEventHandler mMouseEventHandler;
+    private final MouseEventHandler mMouseEventHandler;
 
     public FullScreenMagnificationGestureHandler(
             @UiContext Context context,
@@ -194,8 +194,7 @@
             boolean detectShortcutTrigger,
             @NonNull WindowMagnificationPromptController promptController,
             int displayId,
-            FullScreenMagnificationVibrationHelper fullScreenMagnificationVibrationHelper,
-            MouseEventHandler mouseEventHandler) {
+            FullScreenMagnificationVibrationHelper fullScreenMagnificationVibrationHelper) {
         this(
                 context,
                 fullScreenMagnificationController,
@@ -210,8 +209,7 @@
                 /* magnificationLogger= */ null,
                 ViewConfiguration.get(context),
                 new OneFingerPanningSettingsProvider(
-                        context, Flags.enableMagnificationOneFingerPanningGesture()),
-                mouseEventHandler);
+                        context, Flags.enableMagnificationOneFingerPanningGesture()));
     }
 
     /** Constructor for tests. */
@@ -229,8 +227,7 @@
             FullScreenMagnificationVibrationHelper fullScreenMagnificationVibrationHelper,
             MagnificationLogger magnificationLogger,
             ViewConfiguration viewConfiguration,
-            OneFingerPanningSettingsProvider oneFingerPanningSettingsProvider,
-            MouseEventHandler mouseEventHandler) {
+            OneFingerPanningSettingsProvider oneFingerPanningSettingsProvider) {
         super(displayId, detectSingleFingerTripleTap, detectTwoFingerTripleTap,
                 detectShortcutTrigger, trace, callback);
         if (DEBUG_ALL) {
@@ -316,7 +313,7 @@
         mOverscrollEdgeSlop = context.getResources().getDimensionPixelSize(
                 R.dimen.accessibility_fullscreen_magnification_gesture_edge_slop);
         mIsWatch = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH);
-        mMouseEventHandler = mouseEventHandler;
+        mMouseEventHandler = new MouseEventHandler(mFullScreenMagnificationController);
 
         if (mDetectShortcutTrigger) {
             mScreenStateReceiver = new ScreenStateReceiver(context, this);
@@ -340,15 +337,14 @@
 
     @Override
     void handleMouseOrStylusEvent(MotionEvent event, MotionEvent rawEvent, int policyFlags) {
-        if (Flags.enableMagnificationFollowsMouseBugfix()) {
-            if (mFullScreenMagnificationController.isActivated(mDisplayId)) {
-                // TODO(b/354696546): Allow mouse/stylus to activate whichever display they are
-                // over, rather than only interacting with the current display.
-
-                // Send through the mouse/stylus event handler.
-                mMouseEventHandler.onEvent(event, mDisplayId);
-            }
+        if (!mFullScreenMagnificationController.isActivated(mDisplayId)) {
+            return;
         }
+        // TODO(b/354696546): Allow mouse/stylus to activate whichever display they are
+        // over, rather than only interacting with the current display.
+
+        // Send through the mouse/stylus event handler.
+        mMouseEventHandler.onEvent(event, mDisplayId);
     }
 
     private void handleTouchEventWith(
@@ -1170,8 +1166,7 @@
 
         protected void cacheDelayedMotionEvent(MotionEvent event, MotionEvent rawEvent,
                 int policyFlags) {
-            if (Flags.enableMagnificationFollowsMouseBugfix()
-                    && !event.isFromSource(SOURCE_TOUCHSCREEN)) {
+            if (!event.isFromSource(SOURCE_TOUCHSCREEN)) {
                 // Only touch events need to be cached and sent later.
                 return;
             }
diff --git a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationGestureHandler.java b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationGestureHandler.java
index fa86ba3..6b39c98 100644
--- a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationGestureHandler.java
+++ b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationGestureHandler.java
@@ -146,8 +146,7 @@
             } break;
             case SOURCE_MOUSE:
             case SOURCE_STYLUS: {
-                if (magnificationShortcutExists()
-                        && Flags.enableMagnificationFollowsMouseBugfix()) {
+                if (magnificationShortcutExists()) {
                     handleMouseOrStylusEvent(event, rawEvent, policyFlags);
                 }
             }
diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
index 74a87ed..4441db7 100644
--- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
+++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
@@ -5232,7 +5232,7 @@
                 }
             }
             return singleCategoryKeyedEntries;
-        } catch (IOException e) {
+        } catch (Exception e) {
             Slog.e(TAG, "Failed to load generated previews for " + provider, e);
             return new SparseArray<>();
         }
@@ -5261,7 +5261,7 @@
             try {
                 provider.info.generatedPreviewCategories = readGeneratedPreviewCategoriesFromProto(
                         input);
-            } catch (IOException e) {
+            } catch (Exception e) {
                 Slog.e(TAG, "Failed to read generated previews from file for " + provider, e);
                 previewsFile.delete();
                 provider.info.generatedPreviewCategories = 0;
@@ -5314,7 +5314,7 @@
                     scheduleNotifyGroupHostsForProvidersChangedLocked(provider.getUserId());
                 }
             }
-        } catch (IOException e) {
+        } catch (Exception e) {
             if (file != null && stream != null) {
                 file.failWrite(stream);
             }
diff --git a/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java b/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java
index bd34f33..c182c26 100644
--- a/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java
+++ b/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java
@@ -149,7 +149,6 @@
 
     OperationStorage mOperationStorage;
     List<PackageInfo> mPackages;
-    PackageInfo mCurrentPackage;
     boolean mUpdateSchedule;
     CountDownLatch mLatch;
     FullBackupJob mJob;             // if a scheduled job needs to be finished afterwards
@@ -207,10 +206,9 @@
         for (String pkg : whichPackages) {
             try {
                 PackageManager pm = backupManagerService.getPackageManager();
-                PackageInfo info = pm.getPackageInfoAsUser(pkg,
+                PackageInfo packageInfo = pm.getPackageInfoAsUser(pkg,
                         PackageManager.GET_SIGNING_CERTIFICATES, mUserId);
-                mCurrentPackage = info;
-                if (!mBackupEligibilityRules.appIsEligibleForBackup(info.applicationInfo)) {
+                if (!mBackupEligibilityRules.appIsEligibleForBackup(packageInfo.applicationInfo)) {
                     // Cull any packages that have indicated that backups are not permitted,
                     // that run as system-domain uids but do not define their own backup agents,
                     // as well as any explicit mention of the 'special' shared-storage agent
@@ -220,13 +218,13 @@
                     }
                     mBackupManagerMonitorEventSender.monitorEvent(
                             BackupManagerMonitor.LOG_EVENT_ID_PACKAGE_INELIGIBLE,
-                            mCurrentPackage,
+                            packageInfo,
                             BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
-                            null);
+                            /* extras= */ null);
                     BackupObserverUtils.sendBackupOnPackageResult(mBackupObserver, pkg,
                             BackupManager.ERROR_BACKUP_NOT_ALLOWED);
                     continue;
-                } else if (!mBackupEligibilityRules.appGetsFullBackup(info)) {
+                } else if (!mBackupEligibilityRules.appGetsFullBackup(packageInfo)) {
                     // Cull any packages that are found in the queue but now aren't supposed
                     // to get full-data backup operations.
                     if (DEBUG) {
@@ -235,13 +233,13 @@
                     }
                     mBackupManagerMonitorEventSender.monitorEvent(
                             BackupManagerMonitor.LOG_EVENT_ID_PACKAGE_KEY_VALUE_PARTICIPANT,
-                            mCurrentPackage,
+                            packageInfo,
                             BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
-                            null);
+                            /* extras= */ null);
                     BackupObserverUtils.sendBackupOnPackageResult(mBackupObserver, pkg,
                             BackupManager.ERROR_BACKUP_NOT_ALLOWED);
                     continue;
-                } else if (mBackupEligibilityRules.appIsStopped(info.applicationInfo)) {
+                } else if (mBackupEligibilityRules.appIsStopped(packageInfo.applicationInfo)) {
                     // Cull any packages in the 'stopped' state: they've either just been
                     // installed or have explicitly been force-stopped by the user.  In both
                     // cases we do not want to launch them for backup.
@@ -250,21 +248,21 @@
                     }
                     mBackupManagerMonitorEventSender.monitorEvent(
                             BackupManagerMonitor.LOG_EVENT_ID_PACKAGE_STOPPED,
-                            mCurrentPackage,
+                            packageInfo,
                             BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
-                            null);
+                            /* extras= */ null);
                     BackupObserverUtils.sendBackupOnPackageResult(mBackupObserver, pkg,
                             BackupManager.ERROR_BACKUP_NOT_ALLOWED);
                     continue;
                 }
-                mPackages.add(info);
+                mPackages.add(packageInfo);
             } catch (NameNotFoundException e) {
                 Slog.i(TAG, "Requested package " + pkg + " not found; ignoring");
                 mBackupManagerMonitorEventSender.monitorEvent(
                         BackupManagerMonitor.LOG_EVENT_ID_PACKAGE_NOT_FOUND,
-                        mCurrentPackage,
+                        /* pkg= */ null,
                         BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
-                        null);
+                        /* extras= */ null);
             }
         }
 
@@ -352,10 +350,11 @@
                 } else {
                     monitoringEvent = BackupManagerMonitor.LOG_EVENT_ID_DEVICE_NOT_PROVISIONED;
                 }
-                mBackupManagerMonitorEventSender
-                        .monitorEvent(monitoringEvent, null,
-                                BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
-                                null);
+                mBackupManagerMonitorEventSender.monitorEvent(
+                        monitoringEvent,
+                        /* pkg= */ null,
+                        BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
+                        /* extras= */ null);
                 mUpdateSchedule = false;
                 backupRunStatus = BackupManager.ERROR_BACKUP_NOT_ALLOWED;
                 return;
@@ -367,8 +366,9 @@
                 backupRunStatus = BackupManager.ERROR_TRANSPORT_ABORTED;
                 mBackupManagerMonitorEventSender.monitorEvent(
                         BackupManagerMonitor.LOG_EVENT_ID_PACKAGE_TRANSPORT_NOT_PRESENT,
-                        mCurrentPackage, BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT,
-                        null);
+                        /* pkg= */ null,
+                        BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT,
+                        /* extras= */ null);
                 return;
             }
 
@@ -461,9 +461,10 @@
                         }
                         mBackupManagerMonitorEventSender.monitorEvent(
                                 BackupManagerMonitor.LOG_EVENT_ID_ERROR_PREFLIGHT,
-                                mCurrentPackage,
+                                currentPackage,
                                 BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
-                                mBackupManagerMonitorEventSender.putMonitoringExtra(null,
+                                BackupManagerMonitorEventSender.putMonitoringExtra(
+                                        /* extras= */ null,
                                         BackupManagerMonitor.EXTRA_LOG_PREFLIGHT_ERROR,
                                         preflightResult));
                         backupPackageStatus = (int) preflightResult;
@@ -496,9 +497,9 @@
                                     + ": " + totalRead + " of " + quota);
                             mBackupManagerMonitorEventSender.monitorEvent(
                                     BackupManagerMonitor.LOG_EVENT_ID_QUOTA_HIT_PREFLIGHT,
-                                    mCurrentPackage,
+                                    currentPackage,
                                     BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT,
-                                    null);
+                                    /* extras= */ null);
                             mBackupRunner.sendQuotaExceeded(totalRead, quota);
                         }
                     }
@@ -645,9 +646,9 @@
             Slog.w(TAG, "Exception trying full transport backup", e);
             mBackupManagerMonitorEventSender.monitorEvent(
                     BackupManagerMonitor.LOG_EVENT_ID_EXCEPTION_FULL_BACKUP,
-                    mCurrentPackage,
+                    /* pkg= */ null,
                     BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
-                    mBackupManagerMonitorEventSender.putMonitoringExtra(null,
+                    BackupManagerMonitorEventSender.putMonitoringExtra(/* extras= */ null,
                             BackupManagerMonitor.EXTRA_LOG_EXCEPTION_FULL_BACKUP,
                             Log.getStackTraceString(e)));
 
@@ -966,9 +967,6 @@
             }
         }
 
-
-        // BackupRestoreTask interface: specifically, timeout detection
-
         @Override
         public void execute() { /* intentionally empty */ }
 
@@ -981,7 +979,9 @@
 
             mBackupManagerMonitorEventSender.monitorEvent(
                     BackupManagerMonitor.LOG_EVENT_ID_FULL_BACKUP_CANCEL,
-                    mCurrentPackage, BackupManagerMonitor.LOG_EVENT_CATEGORY_AGENT, null);
+                    mTarget,
+                    BackupManagerMonitor.LOG_EVENT_CATEGORY_AGENT,
+                    /* extras= */ null);
             mIsCancelled = true;
             // Cancel tasks spun off by this task.
             mUserBackupManagerService.handleCancel(mEphemeralToken, cancelAll);
diff --git a/services/backup/java/com/android/server/backup/utils/BackupManagerMonitorEventSender.java b/services/backup/java/com/android/server/backup/utils/BackupManagerMonitorEventSender.java
index c4519b1..33668a6 100644
--- a/services/backup/java/com/android/server/backup/utils/BackupManagerMonitorEventSender.java
+++ b/services/backup/java/com/android/server/backup/utils/BackupManagerMonitorEventSender.java
@@ -71,6 +71,7 @@
         mMonitor = monitor;
     }
 
+    @Nullable
     public IBackupManagerMonitor getMonitor() {
         return mMonitor;
     }
@@ -87,9 +88,9 @@
      */
     public void monitorEvent(
             int id,
-            PackageInfo pkg,
+            @Nullable PackageInfo pkg,
             int category,
-            Bundle extras) {
+            @Nullable Bundle extras) {
         try {
             Bundle bundle = new Bundle();
             bundle.putInt(BackupManagerMonitor.EXTRA_LOG_EVENT_ID, id);
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index d2a5734..e46bbe2 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -49,7 +49,6 @@
 import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
 import static org.xmlpull.v1.XmlPullParser.START_TAG;
 
-import android.annotation.EnforcePermission;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
@@ -161,6 +160,7 @@
 import com.android.server.pm.Installer;
 import com.android.server.pm.UserManagerInternal;
 import com.android.server.storage.AppFuseBridge;
+import com.android.server.storage.ImmutableVolumeInfo;
 import com.android.server.storage.StorageSessionController;
 import com.android.server.storage.StorageSessionController.ExternalStorageServiceException;
 import com.android.server.storage.WatchedVolumeInfo;
@@ -778,7 +778,7 @@
                     break;
                 }
                 case H_VOLUME_UNMOUNT: {
-                    final WatchedVolumeInfo vol = (WatchedVolumeInfo) msg.obj;
+                    final ImmutableVolumeInfo vol = (ImmutableVolumeInfo) msg.obj;
                     unmount(vol);
                     break;
                 }
@@ -899,8 +899,14 @@
                         for (int i = 0; i < size; i++) {
                             final WatchedVolumeInfo vol = mVolumes.valueAt(i);
                             if (vol.getMountUserId() == userId) {
+                                // Capture the volume before we set mount user id to null,
+                                // so that StorageSessionController remove the session from
+                                // the correct user (old mount user id)
+                                final ImmutableVolumeInfo volToUnmount
+                                        = vol.getClonedImmutableVolumeInfo();
                                 vol.setMountUserId(UserHandle.USER_NULL);
-                                mHandler.obtainMessage(H_VOLUME_UNMOUNT, vol).sendToTarget();
+                                mHandler.obtainMessage(H_VOLUME_UNMOUNT, volToUnmount)
+                                        .sendToTarget();
                             }
                         }
                     }
@@ -1296,7 +1302,12 @@
     }
 
     private void maybeRemountVolumes(int userId) {
-        List<WatchedVolumeInfo> volumesToRemount = new ArrayList<>();
+        // We need to keep 2 lists
+        // 1. List of volumes before we set the mount user Id so that
+        // StorageSessionController is able to remove the session from the correct user (old one)
+        // 2. List of volumes to mount which should have the up to date info
+        List<ImmutableVolumeInfo> volumesToUnmount = new ArrayList<>();
+        List<WatchedVolumeInfo> volumesToMount = new ArrayList<>();
         synchronized (mLock) {
             for (int i = 0; i < mVolumes.size(); i++) {
                 final WatchedVolumeInfo vol = mVolumes.valueAt(i);
@@ -1304,16 +1315,19 @@
                         && vol.getMountUserId() != mCurrentUserId) {
                     // If there's a visible secondary volume mounted,
                     // we need to update the currentUserId and remount
+                    // But capture the volume with the old user id first to use it in unmounting
+                    volumesToUnmount.add(vol.getClonedImmutableVolumeInfo());
                     vol.setMountUserId(mCurrentUserId);
-                    volumesToRemount.add(vol);
+                    volumesToMount.add(vol);
                 }
             }
         }
 
-        for (WatchedVolumeInfo vol : volumesToRemount) {
-            Slog.i(TAG, "Remounting volume for user: " + userId + ". Volume: " + vol);
-            mHandler.obtainMessage(H_VOLUME_UNMOUNT, vol).sendToTarget();
-            mHandler.obtainMessage(H_VOLUME_MOUNT, vol).sendToTarget();
+        for (int i = 0; i < volumesToMount.size(); i++) {
+            Slog.i(TAG, "Remounting volume for user: " + userId + ". Volume: "
+                    + volumesToUnmount.get(i));
+            mHandler.obtainMessage(H_VOLUME_UNMOUNT, volumesToUnmount.get(i)).sendToTarget();
+            mHandler.obtainMessage(H_VOLUME_MOUNT, volumesToMount.get(i)).sendToTarget();
         }
     }
 
@@ -2431,10 +2445,10 @@
         super.unmount_enforcePermission();
 
         final WatchedVolumeInfo vol = findVolumeByIdOrThrow(volId);
-        unmount(vol);
+        unmount(vol.getClonedImmutableVolumeInfo());
     }
 
-    private void unmount(WatchedVolumeInfo vol) {
+    private void unmount(ImmutableVolumeInfo vol) {
         try {
             try {
                 if (vol.getType() == VolumeInfo.TYPE_PRIVATE) {
@@ -2443,8 +2457,9 @@
             } catch (Installer.InstallerException e) {
                 Slog.e(TAG, "Failed unmount mirror data", e);
             }
+            extendWatchdogTimeout("#unmount might be slow");
             mVold.unmount(vol.getId());
-            mStorageSessionController.onVolumeUnmount(vol.getImmutableVolumeInfo());
+            mStorageSessionController.onVolumeUnmount(vol);
         } catch (Exception e) {
             Slog.wtf(TAG, e);
         }
diff --git a/services/core/java/com/android/server/SystemTimeZone.java b/services/core/java/com/android/server/SystemTimeZone.java
index dd07081..c8810f6 100644
--- a/services/core/java/com/android/server/SystemTimeZone.java
+++ b/services/core/java/com/android/server/SystemTimeZone.java
@@ -133,6 +133,7 @@
         boolean timeZoneChanged = false;
         synchronized (SystemTimeZone.class) {
             String currentTimeZoneId = getTimeZoneId();
+            @TimeZoneConfidence int currentConfidence = getTimeZoneConfidence();
             if (currentTimeZoneId == null || !currentTimeZoneId.equals(timeZoneId)) {
                 SystemProperties.set(TIME_ZONE_SYSTEM_PROPERTY, timeZoneId);
                 if (DEBUG) {
@@ -145,6 +146,8 @@
                 String logMsg = "Time zone or confidence set: "
                         + " (new) timeZoneId=" + timeZoneId
                         + ", (new) confidence=" + confidence
+                        + ", (old) timeZoneId=" + currentTimeZoneId
+                        + ", (old) confidence=" + currentConfidence
                         + ", logInfo=" + logInfo;
                 addDebugLogEntry(logMsg);
             }
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index bd7a0ac..b75b7ddf 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -2816,13 +2816,11 @@
         if (!checkNotifyPermission("notifyEmergencyNumberList()")) {
             return;
         }
-        if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
-            if (!mContext.getPackageManager().hasSystemFeature(
-                    PackageManager.FEATURE_TELEPHONY_CALLING)) {
-                // TelephonyManager.getEmergencyNumberList() throws an exception if
-                // FEATURE_TELEPHONY_CALLING is not defined.
-                return;
-            }
+        if (!mContext.getPackageManager().hasSystemFeature(
+                PackageManager.FEATURE_TELEPHONY_CALLING)) {
+            // TelephonyManager.getEmergencyNumberList() throws an exception if
+            // FEATURE_TELEPHONY_CALLING is not defined.
+            return;
         }
 
         synchronized (mRecords) {
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 07a4d52..b0b34d0 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -198,6 +198,7 @@
 import android.annotation.PermissionMethod;
 import android.annotation.PermissionName;
 import android.annotation.RequiresPermission;
+import android.annotation.SpecialUsers.CanBeALL;
 import android.annotation.UserIdInt;
 import android.app.Activity;
 import android.app.ActivityClient;
@@ -3921,8 +3922,8 @@
      * The pkg name and app id have to be specified.
      */
     @Override
-    public void killApplication(String pkg, int appId, int userId, String reason,
-            int exitInfoReason) {
+    public void killApplication(String pkg, int appId, @CanBeALL @UserIdInt int userId,
+            String reason, int exitInfoReason) {
         if (pkg == null) {
             return;
         }
@@ -4307,7 +4308,7 @@
     final boolean forceStopPackageLocked(String packageName, int appId,
             boolean callerWillRestart, boolean purgeCache, boolean doit,
             boolean evenPersistent, boolean uninstalling, boolean packageStateStopped,
-            int userId, String reasonString, int reason) {
+            @CanBeALL @UserIdInt int userId, String reasonString, int reason) {
         return forceStopPackageInternalLocked(packageName, appId, callerWillRestart, purgeCache,
                 doit, evenPersistent, uninstalling, packageStateStopped, userId, reasonString,
                 reason, ProcessList.INVALID_ADJ);
@@ -4317,7 +4318,7 @@
     private boolean forceStopPackageInternalLocked(String packageName, int appId,
             boolean callerWillRestart, boolean purgeCache, boolean doit,
             boolean evenPersistent, boolean uninstalling, boolean packageStateStopped,
-            int userId, String reasonString, int reason, int minOomAdj) {
+            @CanBeALL @UserIdInt int userId, String reasonString, int reason, int minOomAdj) {
         int i;
 
         if (userId == UserHandle.USER_ALL && packageName == null) {
@@ -18093,7 +18094,7 @@
         }
 
         @Override
-        public void killApplicationSync(String pkgName, int appId, int userId,
+        public void killApplicationSync(String pkgName, int appId, @CanBeALL @UserIdInt int userId,
                 String reason, int exitInfoReason) {
             if (pkgName == null) {
                 return;
@@ -19470,7 +19471,7 @@
     /**
      * @hide
      */
-    @EnforcePermission("android.permission.INTERACT_ACROSS_USERS_FULL")
+    @EnforcePermission(INTERACT_ACROSS_USERS_FULL)
     public IBinder refreshIntentCreatorToken(Intent intent) {
         refreshIntentCreatorToken_enforcePermission();
         IBinder binder = intent.getCreatorToken();
diff --git a/services/core/java/com/android/server/am/BroadcastQueueImpl.java b/services/core/java/com/android/server/am/BroadcastQueueImpl.java
index 36035bd..78beb18 100644
--- a/services/core/java/com/android/server/am/BroadcastQueueImpl.java
+++ b/services/core/java/com/android/server/am/BroadcastQueueImpl.java
@@ -832,7 +832,9 @@
 
             // If this receiver is going to be skipped, skip it now itself and don't even enqueue
             // it.
-            final String skipReason = mSkipPolicy.shouldSkipMessage(r, receiver);
+            final String skipReason = Flags.avoidNoteOpAtEnqueue()
+                    ? mSkipPolicy.shouldSkipAtEnqueueMessage(r, receiver)
+                    : mSkipPolicy.shouldSkipMessage(r, receiver);
             if (skipReason != null) {
                 setDeliveryState(null, null, r, i, receiver, BroadcastRecord.DELIVERY_SKIPPED,
                         "skipped by policy at enqueue: " + skipReason);
diff --git a/services/core/java/com/android/server/am/BroadcastSkipPolicy.java b/services/core/java/com/android/server/am/BroadcastSkipPolicy.java
index d2af84c..b0d5994 100644
--- a/services/core/java/com/android/server/am/BroadcastSkipPolicy.java
+++ b/services/core/java/com/android/server/am/BroadcastSkipPolicy.java
@@ -71,10 +71,20 @@
      *         {@code null} if it can proceed.
      */
     public @Nullable String shouldSkipMessage(@NonNull BroadcastRecord r, @NonNull Object target) {
+        return shouldSkipMessage(r, target, false /* preflight */);
+    }
+
+    public @Nullable String shouldSkipAtEnqueueMessage(@NonNull BroadcastRecord r,
+            @NonNull Object target) {
+        return shouldSkipMessage(r, target, true /* preflight */);
+    }
+
+    private @Nullable String shouldSkipMessage(@NonNull BroadcastRecord r, @NonNull Object target,
+            boolean preflight) {
         if (target instanceof BroadcastFilter) {
-            return shouldSkipMessage(r, (BroadcastFilter) target);
+            return shouldSkipMessage(r, (BroadcastFilter) target, preflight);
         } else {
-            return shouldSkipMessage(r, (ResolveInfo) target);
+            return shouldSkipMessage(r, (ResolveInfo) target, preflight);
         }
     }
 
@@ -86,7 +96,7 @@
      *         {@code null} if it can proceed.
      */
     private @Nullable String shouldSkipMessage(@NonNull BroadcastRecord r,
-            @NonNull ResolveInfo info) {
+            @NonNull ResolveInfo info, boolean preflight) {
         final BroadcastOptions brOptions = r.options;
         final ComponentName component = new ComponentName(
                 info.activityInfo.applicationInfo.packageName,
@@ -134,15 +144,23 @@
                         + " requires " + info.activityInfo.permission;
             }
         } else if (info.activityInfo.permission != null) {
-            final int opCode = AppOpsManager.permissionToOpCode(info.activityInfo.permission);
-            if (opCode != AppOpsManager.OP_NONE && mService.getAppOpsManager().noteOpNoThrow(opCode,
-                    r.callingUid, r.callerPackage, r.callerFeatureId,
-                    "Broadcast delivered to " + info.activityInfo.name)
-                    != AppOpsManager.MODE_ALLOWED) {
-                return "Appop Denial: broadcasting "
-                        + broadcastDescription(r, component)
-                        + " requires appop " + AppOpsManager.permissionToOp(
-                                info.activityInfo.permission);
+            final String op = AppOpsManager.permissionToOp(info.activityInfo.permission);
+            if (op != null) {
+                final int mode;
+                if (preflight) {
+                    mode = mService.getAppOpsManager().checkOpNoThrow(op,
+                            r.callingUid, r.callerPackage, r.callerFeatureId);
+                } else {
+                    mode = mService.getAppOpsManager().noteOpNoThrow(op,
+                            r.callingUid, r.callerPackage, r.callerFeatureId,
+                            "Broadcast delivered to " + info.activityInfo.name);
+                }
+                if (mode != AppOpsManager.MODE_ALLOWED) {
+                    return "Appop Denial: broadcasting "
+                            + broadcastDescription(r, component)
+                            + " requires appop " + AppOpsManager.permissionToOp(
+                                    info.activityInfo.permission);
+                }
             }
         }
 
@@ -250,8 +268,8 @@
                     perm = PackageManager.PERMISSION_DENIED;
                 }
 
-                int appOp = AppOpsManager.permissionToOpCode(excludedPermission);
-                if (appOp != AppOpsManager.OP_NONE) {
+                final String appOp = AppOpsManager.permissionToOp(excludedPermission);
+                if (appOp != null) {
                     // When there is an app op associated with the permission,
                     // skip when both the permission and the app op are
                     // granted.
@@ -259,7 +277,7 @@
                                 mService.getAppOpsManager().checkOpNoThrow(appOp,
                                 info.activityInfo.applicationInfo.uid,
                                 info.activityInfo.packageName)
-                            == AppOpsManager.MODE_ALLOWED)) {
+                                        == AppOpsManager.MODE_ALLOWED)) {
                         return "Skipping delivery to " + info.activityInfo.packageName
                                 + " due to excluded permission " + excludedPermission;
                     }
@@ -292,9 +310,10 @@
                     createAttributionSourcesForResolveInfo(info);
             for (int i = 0; i < r.requiredPermissions.length; i++) {
                 String requiredPermission = r.requiredPermissions[i];
-                perm = hasPermissionForDataDelivery(
+                perm = hasPermission(
                         requiredPermission,
                         "Broadcast delivered to " + info.activityInfo.name,
+                        preflight,
                         attributionSources)
                                 ? PackageManager.PERMISSION_GRANTED
                                 : PackageManager.PERMISSION_DENIED;
@@ -308,10 +327,14 @@
                 }
             }
         }
-        if (r.appOp != AppOpsManager.OP_NONE) {
-            if (!noteOpForManifestReceiver(r.appOp, r, info, component)) {
+        if (r.appOp != AppOpsManager.OP_NONE && AppOpsManager.isValidOp(r.appOp)) {
+            final String op = AppOpsManager.opToPublicName(r.appOp);
+            final boolean appOpAllowed = preflight
+                    ? checkOpForManifestReceiver(r.appOp, op, r, info, component)
+                    : noteOpForManifestReceiver(r.appOp, op, r, info, component);
+            if (!appOpAllowed) {
                 return "Skipping delivery to " + info.activityInfo.packageName
-                        + " due to required appop " + r.appOp;
+                        + " due to required appop " + AppOpsManager.opToName(r.appOp);
             }
         }
 
@@ -338,7 +361,7 @@
      *         {@code null} if it can proceed.
      */
     private @Nullable String shouldSkipMessage(@NonNull BroadcastRecord r,
-            @NonNull BroadcastFilter filter) {
+            @NonNull BroadcastFilter filter, boolean preflight) {
         if (r.options != null && !r.options.testRequireCompatChange(filter.owningUid)) {
             return "Compat change filtered: broadcasting " + r.intent.toString()
                     + " to uid " + filter.owningUid + " due to compat change "
@@ -372,18 +395,25 @@
                         + " requires " + filter.requiredPermission
                         + " due to registered receiver " + filter;
             } else {
-                final int opCode = AppOpsManager.permissionToOpCode(filter.requiredPermission);
-                if (opCode != AppOpsManager.OP_NONE
-                        && mService.getAppOpsManager().noteOpNoThrow(opCode, r.callingUid,
-                        r.callerPackage, r.callerFeatureId, "Broadcast sent to protected receiver")
-                        != AppOpsManager.MODE_ALLOWED) {
-                    return "Appop Denial: broadcasting "
-                            + r.intent.toString()
-                            + " from " + r.callerPackage + " (pid="
-                            + r.callingPid + ", uid=" + r.callingUid + ")"
-                            + " requires appop " + AppOpsManager.permissionToOp(
-                                    filter.requiredPermission)
-                            + " due to registered receiver " + filter;
+                final String op = AppOpsManager.permissionToOp(filter.requiredPermission);
+                if (op != null) {
+                    final int mode;
+                    if (preflight) {
+                        mode = mService.getAppOpsManager().checkOpNoThrow(op,
+                                r.callingUid, r.callerPackage, r.callerFeatureId);
+                    } else {
+                        mode = mService.getAppOpsManager().noteOpNoThrow(op, r.callingUid,
+                                r.callerPackage, r.callerFeatureId,
+                                "Broadcast sent to protected receiver");
+                    }
+                    if (mode != AppOpsManager.MODE_ALLOWED) {
+                        return "Appop Denial: broadcasting "
+                                + r.intent
+                                + " from " + r.callerPackage + " (pid="
+                                + r.callingPid + ", uid=" + r.callingUid + ")"
+                                + " requires appop " + op
+                                + " due to registered receiver " + filter;
+                    }
                 }
             }
         }
@@ -433,9 +463,10 @@
                             .build();
             for (int i = 0; i < r.requiredPermissions.length; i++) {
                 String requiredPermission = r.requiredPermissions[i];
-                final int perm = hasPermissionForDataDelivery(
+                final int perm = hasPermission(
                         requiredPermission,
                         "Broadcast delivered to registered receiver " + filter.receiverId,
+                        preflight,
                         attributionSource)
                                 ? PackageManager.PERMISSION_GRANTED
                                 : PackageManager.PERMISSION_DENIED;
@@ -471,8 +502,8 @@
                 final int perm = checkComponentPermission(excludedPermission,
                         filter.receiverList.pid, filter.receiverList.uid, -1, true);
 
-                int appOp = AppOpsManager.permissionToOpCode(excludedPermission);
-                if (appOp != AppOpsManager.OP_NONE) {
+                final String appOp = AppOpsManager.permissionToOp(excludedPermission);
+                if (appOp != null) {
                     // When there is an app op associated with the permission,
                     // skip when both the permission and the app op are
                     // granted.
@@ -480,14 +511,13 @@
                             mService.getAppOpsManager().checkOpNoThrow(appOp,
                                     filter.receiverList.uid,
                                     filter.packageName)
-                                    == AppOpsManager.MODE_ALLOWED)) {
+                                        == AppOpsManager.MODE_ALLOWED)) {
                         return "Appop Denial: receiving "
-                                + r.intent.toString()
+                                + r.intent
                                 + " to " + filter.receiverList.app
                                 + " (pid=" + filter.receiverList.pid
                                 + ", uid=" + filter.receiverList.uid + ")"
-                                + " excludes appop " + AppOpsManager.permissionToOp(
-                                excludedPermission)
+                                + " excludes appop " + appOp
                                 + " due to sender " + r.callerPackage
                                 + " (uid " + r.callingUid + ")";
                     }
@@ -496,7 +526,7 @@
                     // skip when permission is granted.
                     if (perm == PackageManager.PERMISSION_GRANTED) {
                         return "Permission Denial: receiving "
-                                + r.intent.toString()
+                                + r.intent
                                 + " to " + filter.receiverList.app
                                 + " (pid=" + filter.receiverList.pid
                                 + ", uid=" + filter.receiverList.uid + ")"
@@ -523,19 +553,27 @@
         }
 
         // If the broadcast also requires an app op check that as well.
-        if (r.appOp != AppOpsManager.OP_NONE
-                && mService.getAppOpsManager().noteOpNoThrow(r.appOp,
-                filter.receiverList.uid, filter.packageName, filter.featureId,
-                "Broadcast delivered to registered receiver " + filter.receiverId)
-                != AppOpsManager.MODE_ALLOWED) {
-            return "Appop Denial: receiving "
-                    + r.intent.toString()
-                    + " to " + filter.receiverList.app
-                    + " (pid=" + filter.receiverList.pid
-                    + ", uid=" + filter.receiverList.uid + ")"
-                    + " requires appop " + AppOpsManager.opToName(r.appOp)
-                    + " due to sender " + r.callerPackage
-                    + " (uid " + r.callingUid + ")";
+        if (r.appOp != AppOpsManager.OP_NONE && AppOpsManager.isValidOp(r.appOp)) {
+            final String op = AppOpsManager.opToPublicName(r.appOp);
+            final int mode;
+            if (preflight) {
+                mode = mService.getAppOpsManager().checkOpNoThrow(op,
+                        filter.receiverList.uid, filter.packageName, filter.featureId);
+            } else {
+                mode = mService.getAppOpsManager().noteOpNoThrow(op,
+                        filter.receiverList.uid, filter.packageName, filter.featureId,
+                        "Broadcast delivered to registered receiver " + filter.receiverId);
+            }
+            if (mode != AppOpsManager.MODE_ALLOWED) {
+                return "Appop Denial: receiving "
+                        + r.intent
+                        + " to " + filter.receiverList.app
+                        + " (pid=" + filter.receiverList.pid
+                        + ", uid=" + filter.receiverList.uid + ")"
+                        + " requires appop " + AppOpsManager.opToName(r.appOp)
+                        + " due to sender " + r.callerPackage
+                        + " (uid " + r.callingUid + ")";
+            }
         }
 
         // Ensure that broadcasts are only sent to other apps if they are explicitly marked as
@@ -572,14 +610,14 @@
                 + ", uid=" + r.callingUid + ") to " + component.flattenToShortString();
     }
 
-    private boolean noteOpForManifestReceiver(int appOp, BroadcastRecord r, ResolveInfo info,
-            ComponentName component) {
+    private boolean noteOpForManifestReceiver(int opCode, String appOp, BroadcastRecord r,
+            ResolveInfo info, ComponentName component) {
         if (ArrayUtils.isEmpty(info.activityInfo.attributionTags)) {
-            return noteOpForManifestReceiverInner(appOp, r, info, component, null);
+            return noteOpForManifestReceiverInner(opCode, appOp, r, info, component, null);
         } else {
             // Attribution tags provided, noteOp each tag
             for (String tag : info.activityInfo.attributionTags) {
-                if (!noteOpForManifestReceiverInner(appOp, r, info, component, tag)) {
+                if (!noteOpForManifestReceiverInner(opCode, appOp, r, info, component, tag)) {
                     return false;
                 }
             }
@@ -587,8 +625,8 @@
         }
     }
 
-    private boolean noteOpForManifestReceiverInner(int appOp, BroadcastRecord r, ResolveInfo info,
-            ComponentName component, String tag) {
+    private boolean noteOpForManifestReceiverInner(int opCode, String appOp, BroadcastRecord r,
+            ResolveInfo info, ComponentName component, String tag) {
         if (mService.getAppOpsManager().noteOpNoThrow(appOp,
                     info.activityInfo.applicationInfo.uid,
                     info.activityInfo.packageName,
@@ -598,7 +636,37 @@
             Slog.w(TAG, "Appop Denial: receiving "
                     + r.intent + " to "
                     + component.flattenToShortString()
-                    + " requires appop " + AppOpsManager.opToName(appOp)
+                    + " requires appop " + AppOpsManager.opToName(opCode)
+                    + " due to sender " + r.callerPackage
+                    + " (uid " + r.callingUid + ")");
+            return false;
+        }
+        return true;
+    }
+
+    private boolean checkOpForManifestReceiver(int opCode, String appOp, BroadcastRecord r,
+            ResolveInfo info, ComponentName component) {
+        if (ArrayUtils.isEmpty(info.activityInfo.attributionTags)) {
+            return checkOpForManifestReceiverInner(opCode, appOp, r, info, component, null);
+        } else {
+            // Attribution tags provided, noteOp each tag
+            for (String tag : info.activityInfo.attributionTags) {
+                if (!checkOpForManifestReceiverInner(opCode, appOp, r, info, component, tag)) {
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
+
+    private boolean checkOpForManifestReceiverInner(int opCode, String appOp, BroadcastRecord r,
+            ResolveInfo info, ComponentName component, String tag) {
+        if (mService.getAppOpsManager().checkOpNoThrow(appOp, info.activityInfo.applicationInfo.uid,
+                info.activityInfo.packageName, tag) != AppOpsManager.MODE_ALLOWED) {
+            Slog.w(TAG, "Appop Denial: receiving "
+                    + r.intent + " to "
+                    + component.flattenToShortString()
+                    + " requires appop " + AppOpsManager.opToName(opCode)
                     + " due to sender " + r.callerPackage
                     + " (uid " + r.callingUid + ")");
             return false;
@@ -694,9 +762,10 @@
         return mPermissionManager;
     }
 
-    private boolean hasPermissionForDataDelivery(
+    private boolean hasPermission(
             @NonNull String permission,
             @NonNull String message,
+            boolean preflight,
             @NonNull AttributionSource... attributionSources) {
         final PermissionManager permissionManager = getPermissionManager();
         if (permissionManager == null) {
@@ -704,9 +773,14 @@
         }
 
         for (AttributionSource attributionSource : attributionSources) {
-            final int permissionCheckResult =
-                    permissionManager.checkPermissionForDataDelivery(
-                            permission, attributionSource, message);
+            final int permissionCheckResult;
+            if (preflight) {
+                permissionCheckResult = permissionManager.checkPermissionForPreflight(
+                        permission, attributionSource);
+            } else {
+                permissionCheckResult = permissionManager.checkPermissionForDataDelivery(
+                        permission, attributionSource, message);
+            }
             if (permissionCheckResult != PackageManager.PERMISSION_GRANTED) {
                 return false;
             }
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index b8babe6..a61368c 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -67,6 +67,8 @@
 import android.Manifest;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SpecialUsers.CanBeALL;
+import android.annotation.UserIdInt;
 import android.app.ActivityManager;
 import android.app.ActivityManager.ProcessCapability;
 import android.app.ActivityThread;
@@ -2961,8 +2963,8 @@
     }
 
     @GuardedBy({"mService", "mProcLock"})
-    boolean killPackageProcessesLSP(String packageName, int appId, int userId, int minOomAdj,
-            int reasonCode, int subReason, String reason) {
+    boolean killPackageProcessesLSP(String packageName, int appId, @CanBeALL @UserIdInt int userId,
+            int minOomAdj, int reasonCode, int subReason, String reason) {
         return killPackageProcessesLSP(packageName, appId, userId, minOomAdj,
                 false /* callerWillRestart */, true /* allowRestart */, true /* doit */,
                 false /* evenPersistent */, false /* setRemoved */, false /* uninstalling */,
@@ -2970,7 +2972,8 @@
     }
 
     @GuardedBy("mService")
-    void killAppZygotesLocked(String packageName, int appId, int userId, boolean force) {
+    void killAppZygotesLocked(String packageName, int appId, @CanBeALL @UserIdInt int userId,
+            boolean force) {
         // See if there are any app zygotes running for this packageName / UID combination,
         // and kill it if so.
         final ArrayList<AppZygote> zygotesToKill = new ArrayList<>();
@@ -3050,9 +3053,9 @@
 
     @GuardedBy({"mService", "mProcLock"})
     boolean killPackageProcessesLSP(String packageName, int appId,
-            int userId, int minOomAdj, boolean callerWillRestart, boolean allowRestart,
-            boolean doit, boolean evenPersistent, boolean setRemoved, boolean uninstalling,
-            int reasonCode, int subReason, String reason) {
+            @CanBeALL @UserIdInt int userId, int minOomAdj, boolean callerWillRestart,
+            boolean allowRestart, boolean doit, boolean evenPersistent, boolean setRemoved,
+            boolean uninstalling, int reasonCode, int subReason, String reason) {
         final PackageManagerInternal pm = mService.getPackageManagerInternal();
         final ArrayList<Pair<ProcessRecord, Boolean>> procs = new ArrayList<>();
 
@@ -5220,7 +5223,7 @@
     }
 
     @GuardedBy("mService")
-    void sendPackageBroadcastLocked(int cmd, String[] packages, int userId) {
+    void sendPackageBroadcastLocked(int cmd, String[] packages, @CanBeALL @UserIdInt int userId) {
         boolean foundProcess = false;
         for (int i = mLruProcesses.size() - 1; i >= 0; i--) {
             ProcessRecord r = mLruProcesses.get(i);
diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java
index e0fbaf4..18f3500 100644
--- a/services/core/java/com/android/server/am/UserController.java
+++ b/services/core/java/com/android/server/am/UserController.java
@@ -4059,7 +4059,7 @@
             synchronized (mUserSwitchingDialogLock) {
                 dismissUserSwitchingDialog(null);
                 mUserSwitchingDialog = new UserSwitchingDialog(mService.mContext, fromUser, toUser,
-                        switchingFromSystemUserMessage, switchingToSystemUserMessage);
+                        mHandler, switchingFromSystemUserMessage, switchingToSystemUserMessage);
                 mUserSwitchingDialog.show(onShown);
             }
         }
diff --git a/services/core/java/com/android/server/am/UserSwitchingDialog.java b/services/core/java/com/android/server/am/UserSwitchingDialog.java
index d1fcb9d..223e0b7 100644
--- a/services/core/java/com/android/server/am/UserSwitchingDialog.java
+++ b/services/core/java/com/android/server/am/UserSwitchingDialog.java
@@ -34,7 +34,6 @@
 import android.graphics.drawable.AnimatedVectorDrawable;
 import android.graphics.drawable.Drawable;
 import android.os.Handler;
-import android.os.Looper;
 import android.os.SystemProperties;
 import android.os.Trace;
 import android.os.UserHandle;
@@ -72,7 +71,7 @@
 
     // Time to wait for the onAnimationEnd() callbacks before moving on
     private static final int ANIMATION_TIMEOUT_MS = 1000;
-    private final Handler mHandler = new Handler(Looper.myLooper());
+    private final Handler mHandler;
 
     protected final UserInfo mOldUser;
     protected final UserInfo mNewUser;
@@ -81,13 +80,14 @@
     protected final Context mContext;
     private final int mTraceCookie;
 
-    UserSwitchingDialog(Context context, UserInfo oldUser, UserInfo newUser,
+    UserSwitchingDialog(Context context, UserInfo oldUser, UserInfo newUser, Handler handler,
             String switchingFromSystemUserMessage, String switchingToSystemUserMessage) {
         super(context, R.style.Theme_Material_NoActionBar_Fullscreen);
 
         mContext = context;
         mOldUser = oldUser;
         mNewUser = newUser;
+        mHandler = handler;
         mSwitchingFromSystemUserMessage = switchingFromSystemUserMessage;
         mSwitchingToSystemUserMessage = switchingToSystemUserMessage;
         mDisableAnimations = SystemProperties.getBoolean(
diff --git a/services/core/java/com/android/server/am/broadcasts_flags.aconfig b/services/core/java/com/android/server/am/broadcasts_flags.aconfig
index 7f169db..68e21a3 100644
--- a/services/core/java/com/android/server/am/broadcasts_flags.aconfig
+++ b/services/core/java/com/android/server/am/broadcasts_flags.aconfig
@@ -15,4 +15,15 @@
     description: "Limit the scope of receiver priorities to within a process"
     is_fixed_read_only: true
     bug: "369487976"
+}
+
+flag {
+    name: "avoid_note_op_at_enqueue"
+    namespace: "backstage_power"
+    description: "Avoid triggering noteOp while enqueueing a broadcast"
+    is_fixed_read_only: true
+    bug: "268016162"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
 }
\ No newline at end of file
diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java
index 2a9762c..c8b8909 100644
--- a/services/core/java/com/android/server/appop/AppOpsService.java
+++ b/services/core/java/com/android/server/appop/AppOpsService.java
@@ -66,7 +66,6 @@
 import static android.app.AppOpsManager.opToName;
 import static android.app.AppOpsManager.opToPublicName;
 import static android.companion.virtual.VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT;
-import static android.content.Intent.ACTION_PACKAGE_ADDED;
 import static android.content.Intent.ACTION_PACKAGE_REMOVED;
 import static android.content.Intent.EXTRA_REPLACING;
 import static android.content.pm.PermissionInfo.PROTECTION_DANGEROUS;
@@ -363,8 +362,6 @@
     @GuardedBy("this")
     @VisibleForTesting
     final SparseArray<UidState> mUidStates = new SparseArray<>();
-    @GuardedBy("this")
-    private boolean mUidStatesInitialized;
 
     // A rate limiter to prevent excessive Atom pushing. Used by noteOperation.
     private static final Duration RATE_LIMITER_WINDOW = Duration.ofMillis(10);
@@ -415,6 +412,9 @@
     @GuardedBy("this")
     private ArraySet<String> mRarelyUsedPackages = new ArraySet<>();
 
+    @GuardedBy("this")
+    private boolean mRarelyUsedPackagesInitialized;
+
     /** Sampling strategy used for current session */
     @GuardedBy("this")
     @AppOpsManager.SamplingStrategy
@@ -1076,41 +1076,53 @@
             String pkgName = intent.getData().getEncodedSchemeSpecificPart().intern();
             int uid = intent.getIntExtra(Intent.EXTRA_UID, Process.INVALID_UID);
 
-            if (action.equals(ACTION_PACKAGE_ADDED)
-                    && !intent.getBooleanExtra(EXTRA_REPLACING, false)) {
-                PackageInfo pi = getPackageManagerInternal().getPackageInfo(pkgName,
-                        PackageManager.GET_PERMISSIONS, Process.myUid(),
-                        UserHandle.getUserId(uid));
-                boolean isSamplingTarget = isSamplingTarget(pi);
-                synchronized (AppOpsService.this) {
-                    if (isSamplingTarget) {
-                        mRarelyUsedPackages.add(pkgName);
-                    }
-                    UidState uidState = getUidStateLocked(uid, true);
-                    if (!uidState.pkgOps.containsKey(pkgName)) {
-                        uidState.pkgOps.put(pkgName,
-                                new Ops(pkgName, uidState));
-                    }
-
-                    createSandboxUidStateIfNotExistsForAppLocked(uid, null);
-                }
-            } else if (action.equals(ACTION_PACKAGE_REMOVED) && !intent.hasExtra(EXTRA_REPLACING)) {
-                synchronized (AppOpsService.this) {
-                    packageRemovedLocked(uid, pkgName);
-                }
+            if (action.equals(ACTION_PACKAGE_REMOVED) && !intent.hasExtra(EXTRA_REPLACING)) {
+                onPackageRemoved(pkgName, uid);
             } else if (action.equals(Intent.ACTION_PACKAGE_REPLACED)) {
-                AndroidPackage pkg = getPackageManagerInternal().getPackage(pkgName);
-                if (pkg == null) {
-                    return;
-                }
-
-                synchronized (AppOpsService.this) {
-                    refreshAttributionsLocked(pkg, uid);
-                }
+                onPackageReplaced(pkgName, uid);
             }
         }
     };
 
+    private void onPackageAdded(String pkgName, int uid) {
+        PackageInfo pi = getPackageManagerInternal().getPackageInfo(pkgName,
+                PackageManager.GET_PERMISSIONS, Process.myUid(),
+                UserHandle.getUserId(uid));
+        synchronized (AppOpsService.this) {
+            boolean isSamplingTarget = false;
+            if (mRarelyUsedPackagesInitialized) {
+                isSamplingTarget = isSamplingTarget(pi);
+            }
+            if (isSamplingTarget) {
+                mRarelyUsedPackages.add(pkgName);
+            }
+            UidState uidState = getUidStateLocked(uid, true);
+            if (!uidState.pkgOps.containsKey(pkgName)) {
+                uidState.pkgOps.put(pkgName,
+                        new Ops(pkgName, uidState));
+            }
+
+            createSandboxUidStateIfNotExistsForAppLocked(uid, null);
+        }
+    }
+
+    private void onPackageRemoved(String pkgName, int uid) {
+        synchronized (AppOpsService.this) {
+            packageRemovedLocked(uid, pkgName);
+        }
+    }
+
+    private void onPackageReplaced(String pkgName, int uid) {
+        AndroidPackage pkg = getPackageManagerInternal().getPackage(pkgName);
+        if (pkg == null) {
+            return;
+        }
+
+        synchronized (AppOpsService.this) {
+            refreshAttributionsLocked(pkg, uid);
+        }
+    }
+
     public void systemReady() {
         mVirtualDeviceManagerInternal = LocalServices.getService(
                 VirtualDeviceManagerInternal.class);
@@ -1121,7 +1133,6 @@
         mHistoricalRegistry.systemReady(mContext.getContentResolver());
 
         IntentFilter packageUpdateFilter = new IntentFilter();
-        packageUpdateFilter.addAction(ACTION_PACKAGE_ADDED);
         packageUpdateFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
         packageUpdateFilter.addAction(ACTION_PACKAGE_REMOVED);
         packageUpdateFilter.addDataScheme("package");
@@ -1236,7 +1247,6 @@
                 }
 
                 trimUidStatesLocked(knownUids, packageStates);
-                mUidStatesInitialized = true;
             }
         }
     }
@@ -7182,12 +7192,13 @@
                                 }
                             }
                         }
-                        synchronized (this) {
+                        synchronized (AppOpsService.this) {
                             int numPkgs = mRarelyUsedPackages.size();
                             for (int i = 0; i < numPkgs; i++) {
                                 candidates.add(mRarelyUsedPackages.valueAt(i));
                             }
                             mRarelyUsedPackages = candidates;
+                            mRarelyUsedPackagesInitialized = true;
                         }
                     }
                 });
@@ -7495,6 +7506,15 @@
 
             return number;
         }
+
+        @Override
+        public void onPackageAdded(String pkgName, int appId) {
+            int[] userIds = AppOpsService.this.getUserManagerInternal().getUserIds();
+            for (int i = 0; i < userIds.length; i++) {
+                int userId = userIds[i];
+                AppOpsService.this.onPackageAdded(pkgName, UserHandle.getUid(userId, appId));
+            }
+        }
     }
 
     /**
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index d800503..0f1228f 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -848,23 +848,6 @@
                 "media_audio.value_audio_playback_hardening_partial_restriction";
         static final String METRIC_COUNTERS_PLAYBACK_STRICT =
                 "media_audio.value_audio_playback_hardening_strict_would_restrict";
-
-        String getPackNameForUid(int uid) {
-            final long token = Binder.clearCallingIdentity();
-            try {
-                final String[] names = AudioService.this.mContext.
-                                            getPackageManager().getPackagesForUid(uid);
-                if (names == null
-                        || names.length == 0
-                        || TextUtils.isEmpty(names[0])) {
-                    return "[" + uid + "]";
-                }
-                return names[0];
-            } finally {
-                Binder.restoreCallingIdentity(token);
-            }
-        }
-
         // oneway
         @Override
         public void playbackHardeningEvent(int uid, byte type, boolean bypassed) {
@@ -882,7 +865,7 @@
             String msg = "AudioHardening background playback "
                     + (bypassed ? "would be " : "")
                     + "muted for "
-                    + getPackNameForUid(uid) + " (" + uid + "), "
+                    + getPackageNameForUid(uid) + " (" + uid + "), "
                     + "level: " + (type == HardeningType.PARTIAL ? "partial" : "full");
 
             AudioService.this.mHardeningLogger.enqueueAndSlog(msg,
@@ -954,7 +937,8 @@
     /**
      * Stores information about a device using absolute volume behavior.
      */
-    private static final class AbsoluteVolumeDeviceInfo {
+    private static final class AbsoluteVolumeDeviceInfo implements IBinder.DeathRecipient {
+        private final AudioService mParent;
         private final AudioDeviceAttributes mDevice;
         private final List<VolumeInfo> mVolumeInfos;
         private final IAudioDeviceVolumeDispatcher mCallback;
@@ -962,16 +946,26 @@
         private @AudioManager.AbsoluteDeviceVolumeBehavior int mDeviceVolumeBehavior;
 
         private AbsoluteVolumeDeviceInfo(
+                AudioService parent,
                 AudioDeviceAttributes device,
                 List<VolumeInfo> volumeInfos,
                 IAudioDeviceVolumeDispatcher callback,
                 boolean handlesVolumeAdjustment,
                 @AudioManager.AbsoluteDeviceVolumeBehavior int behavior) {
+            this.mParent = parent;
             this.mDevice = device;
             this.mVolumeInfos = volumeInfos;
             this.mCallback = callback;
             this.mHandlesVolumeAdjustment = handlesVolumeAdjustment;
             this.mDeviceVolumeBehavior = behavior;
+
+            try {
+                this.mCallback.asBinder().linkToDeath(this, 0);
+            } catch (RemoteException | NullPointerException e) {
+                // NPE can be raised when mocking the callback object
+                Slog.w(TAG, "Exception: " + e
+                        + "\nCannot listen to callback binder death for device " + mDevice);
+            }
         }
 
         /**
@@ -991,6 +985,25 @@
             }
             return null;
         }
+
+        @Override
+        public void binderDied() {
+            if (mParent.removeAudioSystemDeviceOutFromAbsVolumeDevices(mDevice.getInternalType())
+                    != null) {
+                mParent.dispatchDeviceVolumeBehavior(mDevice,
+                        AudioManager.DEVICE_VOLUME_BEHAVIOR_VARIABLE);
+            }
+        }
+
+        public void unlinkToDeath() {
+            try {
+                mCallback.asBinder().unlinkToDeath(this, 0);
+            } catch (NullPointerException e) {
+                // NPE can be raised when mocking the callback object
+                Slog.w(TAG, "Exception: " + e
+                        + "\nCannot unlink to death, null binder object for device " + mDevice);
+            }
+        }
     }
 
     // Devices for the which use the "absolute volume" concept (framework sends audio signal
@@ -1151,9 +1164,11 @@
     @GuardedBy("mAccessibilityServiceUidsLock")
     private int[] mAccessibilityServiceUids;
 
-    // Uid of the active input method service to check if caller is the one or not.
-    private int mInputMethodServiceUid = android.os.Process.INVALID_UID;
+    // Input Method
     private final Object mInputMethodServiceUidLock = new Object();
+    // Uid of the active input method service to check if caller is the one or not.
+    @GuardedBy("mInputMethodServiceUidLock")
+    private int mInputMethodServiceUid = android.os.Process.INVALID_UID;
 
     private int mEncodedSurroundMode;
     private String mEnabledSurroundFormats;
@@ -1256,8 +1271,7 @@
         }
     };
 
-    @GuardedBy("mSettingsLock")
-    private boolean mRttEnabled = false;
+    private AtomicBoolean mRttEnabled = new AtomicBoolean(false);
 
     private AtomicBoolean mMasterMute = new AtomicBoolean(false);
 
@@ -1608,7 +1622,9 @@
 
         mMusicFxHelper = new MusicFxHelper(mContext, mAudioHandler);
 
-        mHardeningEnforcer = new HardeningEnforcer(mContext, isPlatformAutomotive(), mAppOps,
+        mHardeningEnforcer = new HardeningEnforcer(mContext, isPlatformAutomotive(),
+                mShouldEnableAllHardening,
+                mAppOps,
                 context.getPackageManager(),
                 mHardeningLogger);
     }
@@ -1634,13 +1650,13 @@
      * Called by handling of MSG_INIT_STREAMS_VOLUMES
      */
     private void onInitStreamsAndVolumes() {
-        synchronized (mSettingsLock) {
-            mCameraSoundForced = readCameraSoundForced();
+        synchronized (this) {
+            mCameraSoundForced.set(readCameraSoundForced());
             sendMsg(mAudioHandler,
                     MSG_SET_FORCE_USE,
                     SENDMSG_QUEUE,
                     AudioSystem.FOR_SYSTEM,
-                    mCameraSoundForced
+                    mCameraSoundForced.get()
                             ? AudioSystem.FORCE_SYSTEM_ENFORCED : AudioSystem.FORCE_NONE,
                     new String("AudioService ctor"),
                     0);
@@ -2047,11 +2063,9 @@
             onUpdateAudioMode(AudioSystem.MODE_CURRENT, android.os.Process.myPid(),
                     mContext.getPackageName(), true /*force*/, false /*signal*/);
         }
-        final int forSys;
-        synchronized (mSettingsLock) {
-            forSys = mCameraSoundForced ?
-                    AudioSystem.FORCE_SYSTEM_ENFORCED : AudioSystem.FORCE_NONE;
-        }
+
+        final int forSys = mCameraSoundForced.get()
+                ? AudioSystem.FORCE_SYSTEM_ENFORCED : AudioSystem.FORCE_NONE;
 
         mDeviceBroker.setForceUse_Async(AudioSystem.FOR_SYSTEM, forSys, "onAudioServerDied");
 
@@ -2078,13 +2092,13 @@
         // Restore setParameters and other queued setters.
         mRestorableParameters.restoreAll();
 
+        final int forDock = mDockAudioMediaEnabled ?
+                AudioSystem.FORCE_DIGITAL_DOCK : AudioSystem.FORCE_NONE;
+        mDeviceBroker.setForceUse_Async(AudioSystem.FOR_DOCK, forDock, "onAudioServerDied");
+        sendEncodedSurroundMode(mContentResolver, "onAudioServerDied");
+        sendEnabledSurroundFormats(mContentResolver, true);
+        AudioSystem.setRttEnabled(mRttEnabled.get());
         synchronized (mSettingsLock) {
-            final int forDock = mDockAudioMediaEnabled ?
-                    AudioSystem.FORCE_DIGITAL_DOCK : AudioSystem.FORCE_NONE;
-            mDeviceBroker.setForceUse_Async(AudioSystem.FOR_DOCK, forDock, "onAudioServerDied");
-            sendEncodedSurroundMode(mContentResolver, "onAudioServerDied");
-            sendEnabledSurroundFormats(mContentResolver, true);
-            AudioSystem.setRttEnabled(mRttEnabled);
             resetAssistantServicesUidsLocked();
         }
 
@@ -3221,9 +3235,10 @@
             sendEnabledSurroundFormats(cr, true);
             updateAssistantUIdLocked(/* forceUpdate= */ true);
             resetActiveAssistantUidsLocked();
-            AudioSystem.setRttEnabled(mRttEnabled);
         }
 
+        AudioSystem.setRttEnabled(mRttEnabled.get());
+
         mMuteAffectedStreams = mSettings.getSystemIntForUser(cr,
                 System.MUTE_STREAMS_AFFECTED, AudioSystem.DEFAULT_MUTE_STREAMS_AFFECTED,
                 UserHandle.USER_CURRENT);
@@ -3904,7 +3919,9 @@
     public void adjustStreamVolumeWithAttribution(int streamType, int direction, int flags,
             String callingPackage, String attributionTag) {
         if (mHardeningEnforcer.blockVolumeMethod(
-                HardeningEnforcer.METHOD_AUDIO_MANAGER_ADJUST_STREAM_VOLUME)) {
+                HardeningEnforcer.METHOD_AUDIO_MANAGER_ADJUST_STREAM_VOLUME,
+                callingPackage,
+                Binder.getCallingUid())) {
             return;
         }
         if ((streamType == AudioManager.STREAM_ACCESSIBILITY) && !canChangeAccessibilityVolume()) {
@@ -4247,7 +4264,7 @@
                     final VolumeStreamState vss = mStreamStates.valueAt(streamIdx);
                     if (vss != null && streamAlias == sStreamVolumeAlias.get(vss.getStreamType())
                             && vss.isMutable()) {
-                        if (!(mCameraSoundForced && (vss.getStreamType()
+                        if (!(mCameraSoundForced.get() && (vss.getStreamType()
                                 == AudioSystem.STREAM_SYSTEM_ENFORCED))) {
                             boolean changed = vss.mute(state, /* apply= */ false,
                                     "muteAliasStreams");
@@ -4665,7 +4682,9 @@
     public void setStreamVolumeWithAttribution(int streamType, int index, int flags,
             String callingPackage, String attributionTag) {
         if (mHardeningEnforcer.blockVolumeMethod(
-                HardeningEnforcer.METHOD_AUDIO_MANAGER_SET_STREAM_VOLUME)) {
+                HardeningEnforcer.METHOD_AUDIO_MANAGER_SET_STREAM_VOLUME,
+                callingPackage,
+                Binder.getCallingUid())) {
             return;
         }
         setStreamVolumeWithAttributionInt(streamType, index, flags, /*device*/ null,
@@ -6114,7 +6133,9 @@
 
     public void setRingerModeExternal(int ringerMode, String caller) {
         if (mHardeningEnforcer.blockVolumeMethod(
-                HardeningEnforcer.METHOD_AUDIO_MANAGER_SET_RINGER_MODE)) {
+                HardeningEnforcer.METHOD_AUDIO_MANAGER_SET_RINGER_MODE,
+                getPackageNameForUid(Binder.getCallingUid()),
+                Binder.getCallingUid())) {
             return;
         }
         if (isAndroidNPlus(caller) && wouldToggleZenMode(ringerMode)
@@ -6817,7 +6838,7 @@
         return false;
     }
 
-    /** @see AudioManager#setRttEnabled() */
+    /** @see AudioManager#setRttEnabled(boolean)  */
     @Override
     public void setRttEnabled(boolean rttEnabled) {
         if (mContext.checkCallingOrSelfPermission(
@@ -6827,8 +6848,8 @@
                     + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
             return;
         }
-        synchronized (mSettingsLock) {
-            mRttEnabled = rttEnabled;
+        synchronized (this) {
+            mRttEnabled.set(rttEnabled);
             final long identity = Binder.clearCallingIdentity();
             try {
                 AudioSystem.setRttEnabled(rttEnabled);
@@ -6838,6 +6859,11 @@
         }
     }
 
+    @VisibleForTesting(visibility = PACKAGE)
+    protected boolean isRttEnabled() {
+        return mRttEnabled.get();
+    }
+
     /** @see AudioManager#adjustSuggestedStreamVolumeForUid(int, int, int, String, int, int, int) */
     @Override
     public void adjustSuggestedStreamVolumeForUid(int streamType, int direction, int flags,
@@ -6883,7 +6909,9 @@
     @Override
     public void adjustVolume(int direction, int flags) {
         if (mHardeningEnforcer.blockVolumeMethod(
-                HardeningEnforcer.METHOD_AUDIO_MANAGER_ADJUST_VOLUME)) {
+                HardeningEnforcer.METHOD_AUDIO_MANAGER_ADJUST_VOLUME,
+                getPackageNameForUid(Binder.getCallingUid()),
+                Binder.getCallingUid())) {
             return;
         }
         getMediaSessionManager().dispatchAdjustVolume(AudioManager.USE_DEFAULT_STREAM_TYPE,
@@ -6898,7 +6926,9 @@
     @Override
     public void adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags) {
         if (mHardeningEnforcer.blockVolumeMethod(
-                HardeningEnforcer.METHOD_AUDIO_MANAGER_ADJUST_SUGGESTED_STREAM_VOLUME)) {
+                HardeningEnforcer.METHOD_AUDIO_MANAGER_ADJUST_SUGGESTED_STREAM_VOLUME,
+                getPackageNameForUid(Binder.getCallingUid()),
+                Binder.getCallingUid())) {
             return;
         }
         getMediaSessionManager().dispatchAdjustVolume(suggestedStreamType, direction, flags);
@@ -7619,7 +7649,7 @@
             ringerModeAffectedStreams = mRingerModeDelegate
                     .getRingerModeAffectedStreams(ringerModeAffectedStreams);
         }
-        if (mCameraSoundForced) {
+        if (mCameraSoundForced.get()) {
             ringerModeAffectedStreams &= ~(1 << AudioSystem.STREAM_SYSTEM_ENFORCED);
         } else {
             ringerModeAffectedStreams |= (1 << AudioSystem.STREAM_SYSTEM_ENFORCED);
@@ -8002,11 +8032,11 @@
             } else if (deviceSet.contains(AudioSystem.DEVICE_OUT_SPDIF)) {
                 return AudioSystem.DEVICE_OUT_SPDIF;
             } else {
-                // At this point, deviceSet should contain exactly one A2DP device;
-                // regardless, return the first A2DP device in numeric order.
-                // If there is no A2DP device, this falls through to log an error.
+                // At this point, deviceSet should contain exactly one removable device;
+                // regardless, return the first removable device in numeric order.
+                // If there is no removable device, this falls through to log an error.
                 for (int deviceType : deviceSet) {
-                    if (AudioSystem.DEVICE_OUT_ALL_A2DP_SET.contains(deviceType)) {
+                    if (AudioSystem.DEVICE_OUT_PICK_FOR_VOLUME_SET.contains(deviceType)) {
                         return deviceType;
                     }
                 }
@@ -8142,16 +8172,16 @@
 
         int deviceOut = device.getInternalType();
         if (register) {
-            AbsoluteVolumeDeviceInfo info = new AbsoluteVolumeDeviceInfo(
+            AbsoluteVolumeDeviceInfo info = new AbsoluteVolumeDeviceInfo(this,
                     device, volumes, cb, handlesVolumeAdjustment, deviceVolumeBehavior);
             final AbsoluteVolumeDeviceInfo oldInfo = getAbsoluteVolumeDeviceInfo(deviceOut);
+            addAudioSystemDeviceOutToAbsVolumeDevices(deviceOut, info);
 
             boolean volumeBehaviorChanged = (oldInfo == null)
                     || (oldInfo.mDeviceVolumeBehavior != deviceVolumeBehavior);
             if (volumeBehaviorChanged) {
                 removeAudioSystemDeviceOutFromFullVolumeDevices(deviceOut);
                 removeAudioSystemDeviceOutFromFixedVolumeDevices(deviceOut);
-                addAudioSystemDeviceOutToAbsVolumeDevices(deviceOut, info);
 
                 dispatchDeviceVolumeBehavior(device, deviceVolumeBehavior);
             }
@@ -8177,8 +8207,10 @@
                 }
             }
         } else {
-            boolean wasAbsVol = removeAudioSystemDeviceOutFromAbsVolumeDevices(deviceOut) != null;
-            if (wasAbsVol) {
+            AbsoluteVolumeDeviceInfo deviceInfo = removeAudioSystemDeviceOutFromAbsVolumeDevices(
+                    deviceOut);
+            if (deviceInfo != null) {
+                deviceInfo.unlinkToDeath();
                 dispatchDeviceVolumeBehavior(device, AudioManager.DEVICE_VOLUME_BEHAVIOR_VARIABLE);
             }
         }
@@ -9141,7 +9173,7 @@
                         continue;
                     }
                     if (mPublicStreamType == AudioSystem.STREAM_SYSTEM_ENFORCED
-                            && mCameraSoundForced) {
+                            && mCameraSoundForced.get()) {
                         index = mIndexMax;
                     }
                     if (DEBUG_VOL) {
@@ -9504,28 +9536,25 @@
         }
 
         public void readSettings() {
-            synchronized (mSettingsLock) {
-                synchronized (mVolumeStateLock) {
-                    // force maximum volume on all streams if fixed volume property is set
-                    if (mUseFixedVolume) {
-                        mIndexMap.put(AudioSystem.DEVICE_OUT_DEFAULT, mIndexMax);
-                        return;
-                    }
-                    // do not read system stream volume from settings: this stream is always aliased
-                    // to another stream type and its volume is never persisted. Values in settings can
-                    // only be stale values
-                    if ((mStreamType == AudioSystem.STREAM_SYSTEM) ||
-                            (mStreamType == AudioSystem.STREAM_SYSTEM_ENFORCED)) {
-                        int index = 10 * AudioSystem.DEFAULT_STREAM_VOLUME[mStreamType];
-                        if (mCameraSoundForced) {
-                            index = mIndexMax;
-                        }
-                        mIndexMap.put(AudioSystem.DEVICE_OUT_DEFAULT, index);
-                        return;
-                    }
-                }
-            }
             synchronized (mVolumeStateLock) {
+                // force maximum volume on all streams if fixed volume property is set
+                if (mUseFixedVolume) {
+                    mIndexMap.put(AudioSystem.DEVICE_OUT_DEFAULT, mIndexMax);
+                    return;
+                }
+                // do not read system stream volume from settings: this stream is always aliased
+                // to another stream type and its volume is never persisted. Values in settings can
+                // only be stale values
+                if ((mStreamType == AudioSystem.STREAM_SYSTEM)
+                        || (mStreamType == AudioSystem.STREAM_SYSTEM_ENFORCED)) {
+                    int index = 10 * AudioSystem.DEFAULT_STREAM_VOLUME[mStreamType];
+                    if (mCameraSoundForced.get()) {
+                        index = mIndexMax;
+                    }
+                    mIndexMap.put(AudioSystem.DEVICE_OUT_DEFAULT, index);
+                    return;
+                }
+
                 for (int device : AudioSystem.DEVICE_OUT_ALL_SET) {
 
                     // retrieve current volume for device
@@ -9674,7 +9703,8 @@
                     index = getValidIndex(index, hasModifyAudioSettings);
                     // for STREAM_SYSTEM_ENFORCED, do not sync aliased streams on the enforced index
                     int aliasIndex = index;
-                    if ((mStreamType == AudioSystem.STREAM_SYSTEM_ENFORCED) && mCameraSoundForced) {
+                    if ((mStreamType == AudioSystem.STREAM_SYSTEM_ENFORCED)
+                            && mCameraSoundForced.get()) {
                         index = mIndexMax;
                     }
                     mIndexMap.put(device, index);
@@ -11377,7 +11407,7 @@
 
     /** see {@link AudioManager#getFocusDuckedUidsForTest()} */
     @Override
-    @EnforcePermission("android.permission.QUERY_AUDIO_STATE")
+    @EnforcePermission(QUERY_AUDIO_STATE)
     public @NonNull List<Integer> getFocusDuckedUidsForTest() {
         super.getFocusDuckedUidsForTest_enforcePermission();
         return mPlaybackMonitor.getFocusDuckedUids();
@@ -11404,7 +11434,7 @@
      * @see AudioManager#getFocusFadeOutDurationForTest()
      * @return the fade out duration, in ms
      */
-    @EnforcePermission("android.permission.QUERY_AUDIO_STATE")
+    @EnforcePermission(QUERY_AUDIO_STATE)
     public long getFocusFadeOutDurationForTest() {
         super.getFocusFadeOutDurationForTest_enforcePermission();
         return mMediaFocusControl.getFocusFadeOutDurationForTest();
@@ -11417,7 +11447,7 @@
      * @return the time gap after a fade out completion on focus loss, and fade in start, in ms
      */
     @Override
-    @EnforcePermission("android.permission.QUERY_AUDIO_STATE")
+    @EnforcePermission(QUERY_AUDIO_STATE)
     public long getFocusUnmuteDelayAfterFadeOutForTest() {
         super.getFocusUnmuteDelayAfterFadeOutForTest_enforcePermission();
         return mMediaFocusControl.getFocusUnmuteDelayAfterFadeOutForTest();
@@ -12200,10 +12230,10 @@
             Configuration config = mContext.getResources().getConfiguration();
             mSoundDoseHelper.configureSafeMedia(/*forced*/false, TAG);
 
-            boolean cameraSoundForced = readCameraSoundForced();
+            final boolean cameraSoundForced = readCameraSoundForced();
+            final boolean cameraSoundForcedChanged =
+                    (mCameraSoundForced.getAndSet(cameraSoundForced) != cameraSoundForced);
             synchronized (mSettingsLock) {
-                final boolean cameraSoundForcedChanged = (cameraSoundForced != mCameraSoundForced);
-                mCameraSoundForced = cameraSoundForced;
                 if (cameraSoundForcedChanged) {
                     if (!mIsSingleVolume) {
                         synchronized (mVolumeStateLock) {
@@ -12233,7 +12263,6 @@
                             0,
                             0,
                             getVssForStreamOrDefault(AudioSystem.STREAM_SYSTEM_ENFORCED), 0);
-
                 }
             }
             mVolumeController.setLayoutDirection(config.getLayoutDirection());
@@ -12598,14 +12627,11 @@
     //==========================================================================================
 
     // cached value of com.android.internal.R.bool.config_camera_sound_forced
-    @GuardedBy("mSettingsLock")
-    private boolean mCameraSoundForced;
+    private AtomicBoolean mCameraSoundForced = new AtomicBoolean(false);
 
     // called by android.hardware.Camera to populate CameraInfo.canDisableShutterSound
     public boolean isCameraSoundForced() {
-        synchronized (mSettingsLock) {
-            return mCameraSoundForced;
-        }
+        return mCameraSoundForced.get();
     }
 
     //==========================================================================================
@@ -15457,4 +15483,22 @@
         }
         return true;
     }
+
+    private String getPackageNameForUid(int uid) {
+        final long token = Binder.clearCallingIdentity();
+        try {
+            final String[] names = AudioService.this.mContext.
+                                        getPackageManager().getPackagesForUid(uid);
+            if (names == null
+                    || names.length == 0
+                    || TextUtils.isEmpty(names[0])) {
+                return "[" + uid + "]";
+            }
+            return names[0];
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+
 }
diff --git a/services/core/java/com/android/server/audio/HardeningEnforcer.java b/services/core/java/com/android/server/audio/HardeningEnforcer.java
index f69a810..9bb5160 100644
--- a/services/core/java/com/android/server/audio/HardeningEnforcer.java
+++ b/services/core/java/com/android/server/audio/HardeningEnforcer.java
@@ -37,6 +37,7 @@
 import com.android.server.utils.EventLogger;
 
 import java.io.PrintWriter;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * Class to encapsulate all audio API hardening operations
@@ -49,6 +50,7 @@
 
     final Context mContext;
     final AppOpsManager mAppOps;
+    final AtomicBoolean mShouldEnableAllHardening;
     final boolean mIsAutomotive;
 
     final ActivityManager mActivityManager;
@@ -106,10 +108,16 @@
      */
     public static final int METHOD_AUDIO_MANAGER_REQUEST_AUDIO_FOCUS = 300;
 
-    public HardeningEnforcer(Context ctxt, boolean isAutomotive, AppOpsManager appOps,
-            PackageManager pm, EventLogger logger) {
+    private static final int ALLOWED = 0;
+    private static final int DENIED_IF_PARTIAL = 1;
+    private static final int DENIED_IF_FULL = 2;
+
+    public HardeningEnforcer(Context ctxt, boolean isAutomotive,
+            AtomicBoolean shouldEnableHardening, AppOpsManager appOps, PackageManager pm,
+            EventLogger logger) {
         mContext = ctxt;
         mIsAutomotive = isAutomotive;
+        mShouldEnableAllHardening = shouldEnableHardening;
         mAppOps = appOps;
         mActivityManager = ctxt.getSystemService(ActivityManager.class);
         mPackageManager = pm;
@@ -121,29 +129,59 @@
      * @param volumeMethod name of the method to check, for logging purposes
      * @return false if the method call is allowed, true if it should be a no-op
      */
-    protected boolean blockVolumeMethod(int volumeMethod) {
+    protected boolean blockVolumeMethod(int volumeMethod, String packageName, int uid) {
+        // Regardless of flag state, always permit callers with MODIFY_AUDIO_SETTINGS_PRIVILEGED
+        // Prevent them from showing up in metrics as well
+        if (mContext.checkCallingOrSelfPermission(
+                Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)
+                == PackageManager.PERMISSION_GRANTED) {
+            return false;
+        }
         // for Auto, volume methods require MODIFY_AUDIO_SETTINGS_PRIVILEGED
         if (mIsAutomotive) {
             if (!autoPublicVolumeApiHardening()) {
                 // automotive hardening flag disabled, no blocking on auto
                 return false;
             }
-            if (mContext.checkCallingOrSelfPermission(
-                    Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)
-                    == PackageManager.PERMISSION_GRANTED) {
-                return false;
-            }
-            if (Binder.getCallingUid() < UserHandle.AID_APP_START) {
+            if (uid < UserHandle.AID_APP_START) {
                 return false;
             }
             // TODO metrics?
             // TODO log for audio dumpsys?
             Slog.e(TAG, "Preventing volume method " + volumeMethod + " for "
-                    + getPackNameForUid(Binder.getCallingUid()));
+                    + packageName);
             return true;
+        } else {
+            int allowed;
+            // No flags controlling restriction yet
+            boolean enforced = mShouldEnableAllHardening.get();
+            if (!noteOp(AppOpsManager.OP_CONTROL_AUDIO_PARTIAL, uid, packageName, null)) {
+                // blocked by partial
+                Counter.logIncrementWithUid(
+                        "media_audio.value_audio_volume_hardening_partial_restriction", uid);
+                allowed = DENIED_IF_PARTIAL;
+            } else if (!noteOp(AppOpsManager.OP_CONTROL_AUDIO, uid, packageName, null)) {
+                // blocked by full, permitted by partial
+                Counter.logIncrementWithUid(
+                        "media_audio.value_audio_volume_hardening_strict_restriction", uid);
+                allowed = DENIED_IF_FULL;
+            } else {
+                // permitted with strict hardening, log anyway for API metrics
+                Counter.logIncrementWithUid(
+                        "media_audio.value_audio_volume_hardening_allowed", uid);
+                allowed = ALLOWED;
+            }
+            if (allowed != ALLOWED) {
+                String msg = "AudioHardening volume control for api "
+                        + volumeMethod
+                        + (!enforced ? " would be " : " ")
+                        + "ignored for "
+                        + getPackNameForUid(uid) + " (" + uid + "), "
+                        + "level: " + (allowed == DENIED_IF_PARTIAL ? "partial" : "full");
+                mEventLogger.enqueueAndSlog(msg, EventLogger.Event.ALOGW, TAG);
+            }
+            return enforced && allowed != ALLOWED;
         }
-        // not blocking
-        return false;
     }
 
     /**
diff --git a/services/core/java/com/android/server/biometrics/BiometricService.java b/services/core/java/com/android/server/biometrics/BiometricService.java
index a5058dd..cf5fa96 100644
--- a/services/core/java/com/android/server/biometrics/BiometricService.java
+++ b/services/core/java/com/android/server/biometrics/BiometricService.java
@@ -540,9 +540,23 @@
                     DEFAULT_MANDATORY_BIOMETRICS_STATUS)
                     && mMandatoryBiometricsRequirementsSatisfied.getOrDefault(userId,
                     DEFAULT_MANDATORY_BIOMETRICS_REQUIREMENTS_SATISFIED_STATUS)
-                    && getEnabledForApps(userId, TYPE_ANY_BIOMETRIC)
-                    && (mFingerprintEnrolledForUser.getOrDefault(userId, false /* default */)
-                    || mFaceEnrolledForUser.getOrDefault(userId, false /* default */));
+                    && getBiometricStatusForIdentityCheck(userId);
+        }
+
+        private boolean getBiometricStatusForIdentityCheck(int userId) {
+            if (com.android.settings.flags.Flags.biometricsOnboardingEducation()) {
+                if (mFingerprintEnrolledForUser.getOrDefault(userId, false /* default */)
+                        && getEnabledForApps(userId, TYPE_FINGERPRINT)) {
+                    return true;
+                } else {
+                    return mFaceEnrolledForUser.getOrDefault(userId, false /* default */)
+                            && getEnabledForApps(userId, TYPE_FACE);
+                }
+            } else {
+                return (mFingerprintEnrolledForUser.getOrDefault(userId, false /* default */)
+                        || mFaceEnrolledForUser.getOrDefault(userId, false /* default */))
+                        && getEnabledForApps(userId, TYPE_ANY_BIOMETRIC);
+            }
         }
 
         void notifyEnabledOnKeyguardCallbacks(int userId, int modality) {
diff --git a/services/core/java/com/android/server/content/ContentService.java b/services/core/java/com/android/server/content/ContentService.java
index c393e92..79af6ed 100644
--- a/services/core/java/com/android/server/content/ContentService.java
+++ b/services/core/java/com/android/server/content/ContentService.java
@@ -24,6 +24,8 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
+import android.annotation.SpecialUsers.CanBeALL;
+import android.annotation.SpecialUsers.CanBeCURRENT;
 import android.annotation.UserIdInt;
 import android.app.ActivityManager;
 import android.app.ActivityManager.RestrictionLevel;
@@ -361,7 +363,8 @@
      */
     @Override
     public void registerContentObserver(Uri uri, boolean notifyForDescendants,
-            IContentObserver observer, int userHandle, int targetSdkVersion) {
+            IContentObserver observer, @CanBeALL @CanBeCURRENT @UserIdInt int userHandle,
+            int targetSdkVersion) {
         if (observer == null || uri == null) {
             throw new IllegalArgumentException("You must pass a valid uri and observer");
         }
@@ -1398,8 +1401,8 @@
         }
     }
 
-    private int handleIncomingUser(Uri uri, int pid, int uid, int modeFlags, boolean allowNonFull,
-            int userId) {
+    private @CanBeALL @UserIdInt int handleIncomingUser(Uri uri, int pid, int uid, int modeFlags,
+            boolean allowNonFull, @CanBeALL @CanBeCURRENT @UserIdInt int userId) {
         if (userId == UserHandle.USER_CURRENT) {
             userId = ActivityManager.getCurrentUser();
         }
diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
index 324f95a..964b97c 100644
--- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
@@ -51,7 +51,6 @@
 import android.view.SurfaceControl;
 
 import com.android.internal.R;
-import com.android.internal.annotations.KeepForWeakReference;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.display.BrightnessSynchronizer;
 import com.android.internal.util.function.pooled.PooledLambda;
@@ -1548,9 +1547,7 @@
     }
 
     public static class Injector {
-        // Ensure the callback is kept to preserve native weak reference lifecycle semantics.
         @SuppressWarnings("unused")
-        @KeepForWeakReference
         private ProxyDisplayEventReceiver mReceiver;
         public void setDisplayEventListenerLocked(Looper looper, DisplayEventListener listener) {
             mReceiver = new ProxyDisplayEventReceiver(looper, listener);
diff --git a/services/core/java/com/android/server/display/LogicalDisplayMapper.java b/services/core/java/com/android/server/display/LogicalDisplayMapper.java
index 872f334..f4daf87 100644
--- a/services/core/java/com/android/server/display/LogicalDisplayMapper.java
+++ b/services/core/java/com/android/server/display/LogicalDisplayMapper.java
@@ -890,10 +890,12 @@
                 // still need to let WindowManager know so it can update its own internal state for
                 // things like display cutouts.
                 display.getNonOverrideDisplayInfoLocked(mTempDisplayInfo);
-                if (!mTempNonOverrideDisplayInfo.equals(mTempDisplayInfo)) {
-                    logicalDisplayEventMask |= LOGICAL_DISPLAY_EVENT_BASIC_CHANGED
-                            | LOGICAL_DISPLAY_EVENT_REFRESH_RATE_CHANGED;
+                if (!mTempNonOverrideDisplayInfo.equals(mTempDisplayInfo,
+                        /* compareOnlyBasicChanges */ true)) {
+                    logicalDisplayEventMask |= LOGICAL_DISPLAY_EVENT_BASIC_CHANGED;
                 }
+                logicalDisplayEventMask
+                        |= updateAndGetMaskForDisplayPropertyChanges(mTempNonOverrideDisplayInfo);
             }
             mLogicalDisplaysToUpdate.put(displayId, logicalDisplayEventMask);
             mUpdatedLogicalDisplays.put(displayId, UPDATE_STATE_UPDATED);
diff --git a/services/core/java/com/android/server/display/feature/DisplayManagerFlags.java b/services/core/java/com/android/server/display/feature/DisplayManagerFlags.java
index c3057de..7cc178d 100644
--- a/services/core/java/com/android/server/display/feature/DisplayManagerFlags.java
+++ b/services/core/java/com/android/server/display/feature/DisplayManagerFlags.java
@@ -280,6 +280,11 @@
             Flags::committedStateSeparateEvent
     );
 
+    private final FlagState mDelayImplicitRrRegistrationUntilRrAccessed = new FlagState(
+            Flags.FLAG_DELAY_IMPLICIT_RR_REGISTRATION_UNTIL_RR_ACCESSED,
+            Flags::delayImplicitRrRegistrationUntilRrAccessed
+    );
+
     /**
      * @return {@code true} if 'port' is allowed in display layout configuration file.
      */
@@ -586,7 +591,6 @@
         return mFramerateOverrideTriggersRrCallbacks.isEnabled();
     }
 
-
     /**
      * @return {@code true} if the flag for sending refresh rate events only for the apps in
      * foreground is enabled
@@ -604,6 +608,13 @@
     }
 
     /**
+     * @return {@code true} if the flag for only explicit subscription for RR changes is enabled
+     */
+    public boolean isDelayImplicitRrRegistrationUntilRrAccessedEnabled() {
+        return mDelayImplicitRrRegistrationUntilRrAccessed.isEnabled();
+    }
+
+    /**
      * dumps all flagstates
      * @param pw printWriter
      */
@@ -660,6 +671,7 @@
         pw.println(" " + mFramerateOverrideTriggersRrCallbacks);
         pw.println(" " + mRefreshRateEventForForegroundApps);
         pw.println(" " + mCommittedStateSeparateEvent);
+        pw.println(" " + mDelayImplicitRrRegistrationUntilRrAccessed);
     }
 
     private static class FlagState {
diff --git a/services/core/java/com/android/server/display/feature/display_flags.aconfig b/services/core/java/com/android/server/display/feature/display_flags.aconfig
index f545130..a0064a9 100644
--- a/services/core/java/com/android/server/display/feature/display_flags.aconfig
+++ b/services/core/java/com/android/server/display/feature/display_flags.aconfig
@@ -474,9 +474,9 @@
     description: "Feature flag to trigger the RR callbacks when framerate overridding happens."
     bug: "390113266"
     is_fixed_read_only: true
-        metadata {
-          purpose: PURPOSE_BUGFIX
-        }
+    metadata {
+      purpose: PURPOSE_BUGFIX
+    }
 }
 
 flag {
@@ -508,3 +508,14 @@
       purpose: PURPOSE_BUGFIX
     }
 }
+
+flag {
+    name: "delay_implicit_rr_registration_until_rr_accessed"
+    namespace: "display_manager"
+    description: "Feature flag for clients to subscribe to RR changes by either explicitly subscribing for refresh rate changes or request for refresh rate data"
+    bug: "391828526"
+    is_fixed_read_only: true
+    metadata {
+      purpose: PURPOSE_BUGFIX
+    }
+}
diff --git a/services/core/java/com/android/server/dreams/DreamManagerService.java b/services/core/java/com/android/server/dreams/DreamManagerService.java
index 2af74f6..7e8bb28 100644
--- a/services/core/java/com/android/server/dreams/DreamManagerService.java
+++ b/services/core/java/com/android/server/dreams/DreamManagerService.java
@@ -569,8 +569,7 @@
     }
 
     private void requestDreamInternal() {
-        if (isDreamingInternal() && !dreamIsFrontmost() && mController.bringDreamToFront()
-                && !isDozingInternal()) {
+        if (isDreamingInternal() && !dreamIsFrontmost() && mController.bringDreamToFront()) {
             return;
         }
 
diff --git a/services/core/java/com/android/server/hdmi/SystemAudioAction.java b/services/core/java/com/android/server/hdmi/SystemAudioAction.java
index f14cda1..11b2805 100644
--- a/services/core/java/com/android/server/hdmi/SystemAudioAction.java
+++ b/services/core/java/com/android/server/hdmi/SystemAudioAction.java
@@ -96,8 +96,10 @@
             public void onSendCompleted(int error) {
                 if (error != SendMessageResult.SUCCESS) {
                     HdmiLogger.debug("Failed to send <System Audio Mode Request>:" + error);
-                    setSystemAudioMode(false);
-                    finishWithCallback(HdmiControlManager.RESULT_COMMUNICATION_FAILED);
+                    if (error == SendMessageResult.FAIL) {
+                        setSystemAudioMode(false);
+                        finishWithCallback(HdmiControlManager.RESULT_COMMUNICATION_FAILED);
+                    }
                 }
             }
         });
diff --git a/services/core/java/com/android/server/input/InputGestureManager.java b/services/core/java/com/android/server/input/InputGestureManager.java
index d71c8a1..7f85384 100644
--- a/services/core/java/com/android/server/input/InputGestureManager.java
+++ b/services/core/java/com/android/server/input/InputGestureManager.java
@@ -87,20 +87,7 @@
             createKeyTrigger(KeyEvent.KEYCODE_V, KeyEvent.META_CTRL_ON),
             createKeyTrigger(KeyEvent.KEYCODE_X, KeyEvent.META_CTRL_ON),
             createKeyTrigger(KeyEvent.KEYCODE_Z, KeyEvent.META_CTRL_ON),
-            createKeyTrigger(KeyEvent.KEYCODE_Y, KeyEvent.META_CTRL_ON),
-            // Used for magnification viewport control.
-            createKeyTrigger(KeyEvent.KEYCODE_MINUS,
-                    KeyEvent.META_META_ON | KeyEvent.META_ALT_ON),
-            createKeyTrigger(KeyEvent.KEYCODE_EQUALS,
-                    KeyEvent.META_META_ON | KeyEvent.META_ALT_ON),
-            createKeyTrigger(KeyEvent.KEYCODE_DPAD_LEFT,
-                    KeyEvent.META_META_ON | KeyEvent.META_ALT_ON),
-            createKeyTrigger(KeyEvent.KEYCODE_DPAD_RIGHT,
-                    KeyEvent.META_META_ON | KeyEvent.META_ALT_ON),
-            createKeyTrigger(KeyEvent.KEYCODE_DPAD_UP,
-                    KeyEvent.META_META_ON | KeyEvent.META_ALT_ON),
-            createKeyTrigger(KeyEvent.KEYCODE_DPAD_DOWN,
-                    KeyEvent.META_META_ON | KeyEvent.META_ALT_ON)
+            createKeyTrigger(KeyEvent.KEYCODE_Y, KeyEvent.META_CTRL_ON)
     ));
 
     public InputGestureManager(Context context) {
diff --git a/services/core/java/com/android/server/input/KeyGestureController.java b/services/core/java/com/android/server/input/KeyGestureController.java
index fba0b04..ef5babf 100644
--- a/services/core/java/com/android/server/input/KeyGestureController.java
+++ b/services/core/java/com/android/server/input/KeyGestureController.java
@@ -35,6 +35,7 @@
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.database.ContentObserver;
+import android.hardware.display.DisplayManager;
 import android.hardware.input.AidlInputGestureData;
 import android.hardware.input.AidlKeyGestureEvent;
 import android.hardware.input.AppLaunchData;
@@ -57,6 +58,7 @@
 import android.util.Log;
 import android.util.Slog;
 import android.util.SparseArray;
+import android.view.Display;
 import android.view.InputDevice;
 import android.view.KeyCharacterMap;
 import android.view.KeyEvent;
@@ -127,6 +129,7 @@
     private final SettingsObserver mSettingsObserver;
     private final AppLaunchShortcutManager mAppLaunchShortcutManager;
     private final InputGestureManager mInputGestureManager;
+    private final DisplayManager mDisplayManager;
     @GuardedBy("mInputDataStore")
     private final InputDataStore mInputDataStore;
     private static final Object mUserLock = new Object();
@@ -194,6 +197,7 @@
         mSettingsObserver = new SettingsObserver(mHandler);
         mAppLaunchShortcutManager = new AppLaunchShortcutManager(mContext);
         mInputGestureManager = new InputGestureManager(mContext);
+        mDisplayManager = Objects.requireNonNull(mContext.getSystemService(DisplayManager.class));
         mInputDataStore = inputDataStore;
         mUserManagerInternal = LocalServices.getService(UserManagerInternal.class);
         initBehaviors();
@@ -246,12 +250,6 @@
                     new KeyCombinationManager.TwoKeysCombinationRule(KeyEvent.KEYCODE_VOLUME_DOWN,
                             KeyEvent.KEYCODE_POWER) {
                         @Override
-                        public boolean preCondition() {
-                            return isKeyGestureSupported(
-                                    KeyGestureEvent.KEY_GESTURE_TYPE_SCREENSHOT_CHORD);
-                        }
-
-                        @Override
                         public void execute() {
                             handleMultiKeyGesture(
                                     new int[]{KeyEvent.KEYCODE_VOLUME_DOWN, KeyEvent.KEYCODE_POWER},
@@ -274,12 +272,6 @@
                         new KeyCombinationManager.TwoKeysCombinationRule(KeyEvent.KEYCODE_POWER,
                                 KeyEvent.KEYCODE_STEM_PRIMARY) {
                             @Override
-                            public boolean preCondition() {
-                                return isKeyGestureSupported(
-                                        KeyGestureEvent.KEY_GESTURE_TYPE_SCREENSHOT_CHORD);
-                            }
-
-                            @Override
                             public void execute() {
                                 handleMultiKeyGesture(new int[]{KeyEvent.KEYCODE_POWER,
                                                 KeyEvent.KEYCODE_STEM_PRIMARY},
@@ -333,9 +325,6 @@
                         KeyEvent.KEYCODE_POWER) {
                     @Override
                     public boolean preCondition() {
-                        if (!isKeyGestureSupported(getGestureType())) {
-                            return false;
-                        }
                         switch (mPowerVolUpBehavior) {
                             case POWER_VOLUME_UP_BEHAVIOR_MUTE:
                                 return mRingerToggleChord != Settings.Secure.VOLUME_HUSH_OFF;
@@ -423,12 +412,6 @@
                     new KeyCombinationManager.TwoKeysCombinationRule(KeyEvent.KEYCODE_BACK,
                             KeyEvent.KEYCODE_DPAD_CENTER) {
                         @Override
-                        public boolean preCondition() {
-                            return isKeyGestureSupported(
-                                    KeyGestureEvent.KEY_GESTURE_TYPE_TV_TRIGGER_BUG_REPORT);
-                        }
-
-                        @Override
                         public void execute() {
                             handleMultiKeyGesture(
                                     new int[]{KeyEvent.KEYCODE_BACK, KeyEvent.KEYCODE_DPAD_CENTER},
@@ -468,10 +451,11 @@
         if (mVisibleBackgroundUsersEnabled && shouldIgnoreKeyEventForVisibleBackgroundUser(event)) {
             return false;
         }
-        final boolean interactive = (policyFlags & FLAG_INTERACTIVE) != 0;
         if (InputSettings.doesKeyGestureEventHandlerSupportMultiKeyGestures()
                 && (event.getFlags() & KeyEvent.FLAG_FALLBACK) == 0) {
-            return mKeyCombinationManager.interceptKey(event, interactive);
+            final boolean interactive = (policyFlags & FLAG_INTERACTIVE) != 0;
+            final boolean isDefaultDisplayOn = isDefaultDisplayOn();
+            return mKeyCombinationManager.interceptKey(event, interactive && isDefaultDisplayOn);
         }
         return false;
     }
@@ -1038,6 +1022,14 @@
         mIoHandler.obtainMessage(MSG_LOAD_CUSTOM_GESTURES, userId).sendToTarget();
     }
 
+    private boolean isDefaultDisplayOn() {
+        Display defaultDisplay = mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY);
+        if (defaultDisplay == null) {
+            return false;
+        }
+        return Display.isOnState(defaultDisplay.getState());
+    }
+
     @MainThread
     private void notifyKeyGestureEvent(AidlKeyGestureEvent event) {
         InputDevice device = getInputDevice(event.deviceId);
diff --git a/services/core/java/com/android/server/inputmethod/ClientController.java b/services/core/java/com/android/server/inputmethod/ClientController.java
index 0381a31..d03c086 100644
--- a/services/core/java/com/android/server/inputmethod/ClientController.java
+++ b/services/core/java/com/android/server/inputmethod/ClientController.java
@@ -43,21 +43,23 @@
     @GuardedBy("ImfLock.class")
     private final List<ClientControllerCallback> mCallbacks = new ArrayList<>();
 
+    @NonNull
     private final PackageManagerInternal mPackageManagerInternal;
 
     interface ClientControllerCallback {
 
-        void onClientRemoved(ClientState client);
+        void onClientRemoved(@NonNull ClientState client);
     }
 
-    ClientController(PackageManagerInternal packageManagerInternal) {
+    ClientController(@NonNull PackageManagerInternal packageManagerInternal) {
         mPackageManagerInternal = packageManagerInternal;
     }
 
     @GuardedBy("ImfLock.class")
-    ClientState addClient(IInputMethodClientInvoker clientInvoker,
-            IRemoteInputConnection inputConnection, int selfReportedDisplayId, int callerUid,
-            int callerPid) {
+    @NonNull
+    ClientState addClient(@NonNull IInputMethodClientInvoker clientInvoker,
+            @NonNull IRemoteInputConnection fallbackInputConnection, int selfReportedDisplayId,
+            int callerUid, int callerPid) {
         final IBinder.DeathRecipient deathRecipient = () -> {
             // Exceptionally holding ImfLock here since this is a internal lambda expression.
             synchronized (ImfLock.class) {
@@ -90,15 +92,15 @@
         // have the client crash.  Thus we do not verify the display ID at all here.  Instead we
         // later check the display ID every time the client needs to interact with the specified
         // display.
-        final ClientState cs = new ClientState(clientInvoker, inputConnection,
-                callerUid, callerPid, selfReportedDisplayId, deathRecipient);
+        final var cs = new ClientState(clientInvoker, fallbackInputConnection, callerUid, callerPid,
+                selfReportedDisplayId, deathRecipient);
         mClients.put(clientInvoker.asBinder(), cs);
         return cs;
     }
 
     @VisibleForTesting
     @GuardedBy("ImfLock.class")
-    boolean removeClient(IInputMethodClient client) {
+    boolean removeClient(@NonNull IInputMethodClient client) {
         return removeClientAsBinder(client.asBinder());
     }
 
@@ -116,7 +118,7 @@
     }
 
     @GuardedBy("ImfLock.class")
-    void addClientControllerCallback(ClientControllerCallback callback) {
+    void addClientControllerCallback(@NonNull ClientControllerCallback callback) {
         mCallbacks.add(callback);
     }
 
@@ -127,15 +129,15 @@
     }
 
     @GuardedBy("ImfLock.class")
-    void forAllClients(Consumer<ClientState> consumer) {
+    void forAllClients(@NonNull Consumer<ClientState> consumer) {
         for (int i = 0; i < mClients.size(); i++) {
             consumer.accept(mClients.valueAt(i));
         }
     }
 
     @GuardedBy("ImfLock.class")
-    boolean verifyClientAndPackageMatch(
-            @NonNull IInputMethodClient client, @NonNull String packageName) {
+    boolean verifyClientAndPackageMatch(@NonNull IInputMethodClient client,
+            @NonNull String packageName) {
         final ClientState cs = mClients.get(client.asBinder());
         if (cs == null) {
             throw new IllegalArgumentException("unknown client " + client.asBinder());
diff --git a/services/core/java/com/android/server/inputmethod/ClientState.java b/services/core/java/com/android/server/inputmethod/ClientState.java
index e98a5a7..ea80995 100644
--- a/services/core/java/com/android/server/inputmethod/ClientState.java
+++ b/services/core/java/com/android/server/inputmethod/ClientState.java
@@ -16,6 +16,8 @@
 
 package com.android.server.inputmethod;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.os.IBinder;
 import android.util.SparseArray;
 import android.view.inputmethod.InputBinding;
@@ -24,12 +26,17 @@
 import com.android.internal.inputmethod.IRemoteInputConnection;
 
 final class ClientState {
+
+    @NonNull
     final IInputMethodClientInvoker mClient;
+    @NonNull
     final IRemoteInputConnection mFallbackInputConnection;
     final int mUid;
     final int mPid;
     final int mSelfReportedDisplayId;
+    @NonNull
     final InputBinding mBinding;
+    @NonNull
     final IBinder.DeathRecipient mClientDeathRecipient;
 
     @GuardedBy("ImfLock.class")
@@ -39,30 +46,31 @@
     boolean mSessionRequestedForAccessibility;
 
     @GuardedBy("ImfLock.class")
+    @Nullable
     InputMethodManagerService.SessionState mCurSession;
 
     @GuardedBy("ImfLock.class")
-    SparseArray<InputMethodManagerService.AccessibilitySessionState> mAccessibilitySessions =
+    @NonNull
+    final SparseArray<InputMethodManagerService.AccessibilitySessionState> mAccessibilitySessions =
             new SparseArray<>();
 
-    @Override
-    public String toString() {
-        return "ClientState{" + Integer.toHexString(
-                System.identityHashCode(this)) + " mUid=" + mUid
-                + " mPid=" + mPid + " mSelfReportedDisplayId=" + mSelfReportedDisplayId + "}";
-    }
-
-    ClientState(IInputMethodClientInvoker client,
-            IRemoteInputConnection fallbackInputConnection,
-            int uid, int pid, int selfReportedDisplayId,
-            IBinder.DeathRecipient clientDeathRecipient) {
+    ClientState(@NonNull IInputMethodClientInvoker client,
+            @NonNull IRemoteInputConnection fallbackInputConnection, int uid, int pid,
+            int selfReportedDisplayId, @NonNull IBinder.DeathRecipient clientDeathRecipient) {
         mClient = client;
         mFallbackInputConnection = fallbackInputConnection;
         mUid = uid;
         mPid = pid;
         mSelfReportedDisplayId = selfReportedDisplayId;
-        mBinding = new InputBinding(null /*conn*/, mFallbackInputConnection.asBinder(), mUid,
+        mBinding = new InputBinding(null /* conn */, fallbackInputConnection.asBinder(), mUid,
                 mPid);
         mClientDeathRecipient = clientDeathRecipient;
     }
+
+    @Override
+    public String toString() {
+        return "ClientState{" + Integer.toHexString(System.identityHashCode(this))
+                + " mUid=" + mUid + " mPid=" + mPid
+                + " mSelfReportedDisplayId=" + mSelfReportedDisplayId + "}";
+    }
 }
diff --git a/services/core/java/com/android/server/inputmethod/IInputMethodClientInvoker.java b/services/core/java/com/android/server/inputmethod/IInputMethodClientInvoker.java
index 650ea60..9d88983 100644
--- a/services/core/java/com/android/server/inputmethod/IInputMethodClientInvoker.java
+++ b/services/core/java/com/android/server/inputmethod/IInputMethodClientInvoker.java
@@ -58,23 +58,17 @@
     private final Handler mHandler;
 
     @AnyThread
-    @Nullable
-    static IInputMethodClientInvoker create(@Nullable IInputMethodClient inputMethodClient,
+    @NonNull
+    static IInputMethodClientInvoker create(@NonNull IInputMethodClient inputMethodClient,
             @NonNull Handler handler) {
-        if (inputMethodClient == null) {
-            return null;
-        }
         final boolean isProxy = Binder.isProxy(inputMethodClient);
         return new IInputMethodClientInvoker(inputMethodClient, isProxy, isProxy ? null : handler);
     }
 
     @AnyThread
-    @Nullable
-    static IInputMethodClientInvoker create$ravenwood(
-            @Nullable IInputMethodClient inputMethodClient, @NonNull Handler handler) {
-        if (inputMethodClient == null) {
-            return null;
-        }
+    @NonNull
+    static IInputMethodClientInvoker create$ravenwood(@NonNull IInputMethodClient inputMethodClient,
+            @NonNull Handler handler) {
         return new IInputMethodClientInvoker(inputMethodClient, true, null);
     }
 
diff --git a/services/core/java/com/android/server/inputmethod/IInputMethodManagerImpl.java b/services/core/java/com/android/server/inputmethod/IInputMethodManagerImpl.java
index a8b61af..02987a9 100644
--- a/services/core/java/com/android/server/inputmethod/IInputMethodManagerImpl.java
+++ b/services/core/java/com/android/server/inputmethod/IInputMethodManagerImpl.java
@@ -89,8 +89,8 @@
 
     @BinderThread
     interface Callback {
-        void addClient(IInputMethodClient client, IRemoteInputConnection inputConnection,
-                int selfReportedDisplayId);
+        void addClient(@NonNull IInputMethodClient client,
+                @NonNull IRemoteInputConnection inputConnection, int selfReportedDisplayId);
 
         InputMethodInfo getCurrentInputMethodInfoAsUser(@UserIdInt int userId);
 
@@ -242,9 +242,9 @@
     }
 
     @Override
-    public void addClient(IInputMethodClient client, IRemoteInputConnection inputmethod,
-            int untrustedDisplayId) {
-        mCallback.addClient(client, inputmethod, untrustedDisplayId);
+    public void addClient(@NonNull IInputMethodClient client,
+            @NonNull IRemoteInputConnection fallbackInputConnection, int untrustedDisplayId) {
+        mCallback.addClient(client, fallbackInputConnection, untrustedDisplayId);
     }
 
     @Override
@@ -414,7 +414,7 @@
     }
 
     @Override
-    public void reportPerceptibleAsync(IBinder windowToken, boolean perceptible) {
+    public void reportPerceptibleAsync(@NonNull IBinder windowToken, boolean perceptible) {
         mCallback.reportPerceptibleAsync(windowToken, perceptible);
     }
 
diff --git a/services/core/java/com/android/server/inputmethod/ImeBindingState.java b/services/core/java/com/android/server/inputmethod/ImeBindingState.java
index 5deed39..adfd991 100644
--- a/services/core/java/com/android/server/inputmethod/ImeBindingState.java
+++ b/services/core/java/com/android/server/inputmethod/ImeBindingState.java
@@ -43,9 +43,9 @@
     final int mUserId;
 
     /**
-     * The last window token that we confirmed to be focused.  This is always updated upon
-     * reports from the input method client. If the window state is already changed before the
-     * report is handled, this field just keeps the last value.
+     * The last window token that we confirmed to be focused. This is always updated upon reports
+     * from the input method client. If the window state is already changed before the report is
+     * handled, this field just keeps the last value.
      */
     @Nullable
     final IBinder mFocusedWindow;
@@ -59,11 +59,9 @@
     final int mFocusedWindowSoftInputMode;
 
     /**
-     * The client by which {@link #mFocusedWindow} was reported. This gets updated whenever
-     * an
-     * IME-focusable window gained focus (without necessarily starting an input connection),
-     * while {@link InputMethodManagerService#mClient} only gets updated when we actually start an
-     * input connection.
+     * The client by which {@link #mFocusedWindow} was reported. This gets updated whenever an
+     * IME-focusable window gained focus (without necessarily starting an input connection), while
+     * {@link UserData#mCurClient} only gets updated when we actually start an input connection.
      *
      * @see #mFocusedWindow
      */
@@ -72,15 +70,16 @@
 
     /**
      * The editor info by which {@link #mFocusedWindow} was reported. This differs from
-     * {@link InputMethodManagerService#mCurEditorInfo} the same way {@link #mFocusedWindowClient}
-     * differs from {@link InputMethodManagerService#mCurClient}.
+     * {@link UserData#mCurEditorInfo} the same way {@link #mFocusedWindowClient} differs from
+     * {@link UserData#mCurClient}.
      *
      * @see #mFocusedWindow
      */
     @Nullable
     final EditorInfo mFocusedWindowEditorInfo;
 
-    void dumpDebug(ProtoOutputStream proto, WindowManagerInternal windowManagerInternal) {
+    void dumpDebug(@NonNull ProtoOutputStream proto,
+            @NonNull WindowManagerInternal windowManagerInternal) {
         proto.write(CUR_FOCUSED_WINDOW_NAME,
                 windowManagerInternal.getWindowName(mFocusedWindow));
         proto.write(CUR_FOCUSED_WINDOW_SOFT_INPUT_MODE,
@@ -94,18 +93,14 @@
         p.println(prefix + "mFocusedWindowClient=" + mFocusedWindowClient);
     }
 
+    @NonNull
     static ImeBindingState newEmptyState() {
-        return new ImeBindingState(
-                /*userId=*/ UserHandle.USER_NULL,
-                /*focusedWindow=*/ null,
-                /*focusedWindowSoftInputMode=*/ SOFT_INPUT_STATE_UNSPECIFIED,
-                /*focusedWindowClient=*/ null,
-                /*focusedWindowEditorInfo=*/ null
-        );
+        return new ImeBindingState(UserHandle.USER_NULL /* userId */, null /* focusedWindow */,
+                SOFT_INPUT_STATE_UNSPECIFIED /* focusedWindowSoftInputMode */,
+                null /* focusedWindowClient */, null /* focusedWindowEditorInfo */);
     }
 
-    ImeBindingState(@UserIdInt int userId,
-            @Nullable IBinder focusedWindow,
+    ImeBindingState(@UserIdInt int userId, @Nullable IBinder focusedWindow,
             @SoftInputModeFlags int focusedWindowSoftInputMode,
             @Nullable ClientState focusedWindowClient,
             @Nullable EditorInfo focusedWindowEditorInfo) {
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index dfdd9e5..af726bd 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -482,10 +482,15 @@
     };
 
     static class SessionState {
+
+        @NonNull
         final ClientState mClient;
+        @NonNull
         final IInputMethodInvoker mMethod;
 
+        @Nullable
         IInputMethodSession mSession;
+        @Nullable
         InputChannel mChannel;
 
         @UserIdInt
@@ -496,14 +501,13 @@
             return "SessionState{uid=" + mClient.mUid + " pid=" + mClient.mPid
                     + " method=" + Integer.toHexString(
                     IInputMethodInvoker.getBinderIdentityHashCode(mMethod))
-                    + " session=" + Integer.toHexString(
-                    System.identityHashCode(mSession))
+                    + " session=" + Integer.toHexString(System.identityHashCode(mSession))
                     + " channel=" + mChannel
                     + " userId=" + mUserId
                     + "}";
         }
 
-        SessionState(ClientState client, IInputMethodInvoker method,
+        SessionState(@NonNull ClientState client, @NonNull IInputMethodInvoker method,
                 IInputMethodSession session, InputChannel channel, @UserIdInt int userId) {
             mClient = client;
             mMethod = method;
@@ -517,22 +521,24 @@
      * Record session state for an accessibility service.
      */
     static class AccessibilitySessionState {
+
+        @NonNull
         final ClientState mClient;
         // Id of the accessibility service.
         final int mId;
 
-        public IAccessibilityInputMethodSession mSession;
+        @Nullable
+        IAccessibilityInputMethodSession mSession;
 
         @Override
         public String toString() {
             return "AccessibilitySessionState{uid=" + mClient.mUid + " pid=" + mClient.mPid
                     + " id=" + Integer.toHexString(mId)
-                    + " session=" + Integer.toHexString(
-                    System.identityHashCode(mSession))
+                    + " session=" + Integer.toHexString(System.identityHashCode(mSession))
                     + "}";
         }
 
-        AccessibilitySessionState(ClientState client, int id,
+        AccessibilitySessionState(@NonNull ClientState client, int id,
                 IAccessibilityInputMethodSession session) {
             mClient = client;
             mId = id;
@@ -544,6 +550,7 @@
      * Manages the IME clients.
      */
     @SharedByAllUsersField
+    @NonNull
     private final ClientController mClientController;
 
     /**
@@ -1770,19 +1777,21 @@
      * <p>As a general principle, IPCs from the application process that take
      * {@link IInputMethodClient} will be rejected without this step.</p>
      *
-     * @param client                {@link android.os.Binder} proxy that is associated with the
-     *                              singleton instance of
-     *                              {@link android.view.inputmethod.InputMethodManager} that runs
-     *                              on the client process
-     * @param inputConnection       communication channel for the fallback {@link InputConnection}
-     * @param selfReportedDisplayId self-reported display ID to which the client is associated.
-     *                              Whether the client is still allowed to access to this display
-     *                              or not needs to be evaluated every time the client interacts
-     *                              with the display
+     * @param client                  {@link android.os.Binder} proxy that is associated with the
+     *                                singleton instance of
+     *                                {@link android.view.inputmethod.InputMethodManager} that runs
+     *                                on the client process
+     * @param fallbackInputConnection communication channel for the fallback {@link InputConnection}
+     * @param selfReportedDisplayId   self-reported display ID to which the client is associated.
+     *                                Whether the client is still allowed to access to this display
+     *                                or not needs to be evaluated every time the client interacts
+     *                                with the display
      */
     @Override
-    public void addClient(IInputMethodClient client, IRemoteInputConnection inputConnection,
-            int selfReportedDisplayId) {
+    public void addClient(@NonNull IInputMethodClient client,
+            @NonNull IRemoteInputConnection fallbackInputConnection, int selfReportedDisplayId) {
+        Objects.requireNonNull(client, "client must not be null");
+        Objects.requireNonNull(fallbackInputConnection, "fallbackInputConnection must not be null");
         // Here there are two scenarios where this method is called:
         // A. IMM is being instantiated in a different process and this is an IPC from that process
         // B. IMM is being instantiated in the same process but Binder.clearCallingIdentity() is
@@ -1791,16 +1800,15 @@
         // actually running.
         final int callerUid = Binder.getCallingUid();
         final int callerPid = Binder.getCallingPid();
-        final IInputMethodClientInvoker clientInvoker =
-                IInputMethodClientInvoker.create(client, mHandler);
+        final var clientInvoker = IInputMethodClientInvoker.create(client, mHandler);
         synchronized (ImfLock.class) {
-            mClientController.addClient(clientInvoker, inputConnection, selfReportedDisplayId,
-                    callerUid, callerPid);
+            mClientController.addClient(clientInvoker, fallbackInputConnection,
+                    selfReportedDisplayId, callerUid, callerPid);
         }
     }
 
     @GuardedBy("ImfLock.class")
-    private void onClientRemoved(ClientState client) {
+    private void onClientRemoved(@NonNull ClientState client) {
         clearClientSessionLocked(client);
         clearClientSessionForAccessibilityLocked(client);
         // TODO(b/324907325): Remove the suppress warnings once b/324907325 is fixed.
@@ -1814,7 +1822,8 @@
      */
     // TODO(b/325515685): Move this method to InputMethodBindingController
     @GuardedBy("ImfLock.class")
-    private void onClientRemovedInternalLocked(ClientState client, @NonNull UserData userData) {
+    private void onClientRemovedInternalLocked(@NonNull ClientState client,
+            @NonNull UserData userData) {
         final int userId = userData.mUserId;
         if (userData.mCurClient == client) {
             hideCurrentInputLocked(userData.mImeBindingState.mFocusedWindow, 0 /* flags */,
@@ -1962,7 +1971,7 @@
         session.mMethod.startInput(startInputToken, userData.mCurInputConnection,
                 userData.mCurEditorInfo, restarting, navButtonFlags, userData.mCurImeDispatcher);
         if (Flags.refactorInsetsController()) {
-            if (isShowRequestedForCurrentWindow(userId) && userData.mImeBindingState != null
+            if (isShowRequestedForCurrentWindow(userId)
                     && userData.mImeBindingState.mFocusedWindow != null) {
                 // Re-use current statsToken, if it exists.
                 final var statsToken = userData.mCurStatsToken != null ? userData.mCurStatsToken
@@ -2028,15 +2037,14 @@
         }
     }
 
+    @NonNull
     private SparseArray<IAccessibilityInputMethodSession> createAccessibilityInputMethodSessions(
-            SparseArray<AccessibilitySessionState> accessibilitySessions) {
-        final SparseArray<IAccessibilityInputMethodSession> accessibilityInputMethodSessions =
-                new SparseArray<>();
-        if (accessibilitySessions != null) {
-            for (int i = 0; i < accessibilitySessions.size(); i++) {
-                accessibilityInputMethodSessions.append(accessibilitySessions.keyAt(i),
-                        accessibilitySessions.valueAt(i).mSession);
-            }
+            @NonNull SparseArray<AccessibilitySessionState> accessibilitySessions) {
+        final var accessibilityInputMethodSessions =
+                new SparseArray<IAccessibilityInputMethodSession>();
+        for (int i = 0; i < accessibilitySessions.size(); i++) {
+            accessibilityInputMethodSessions.append(accessibilitySessions.keyAt(i),
+                    accessibilitySessions.valueAt(i).mSession);
         }
         return accessibilityInputMethodSessions;
     }
@@ -2547,14 +2555,14 @@
     }
 
     @GuardedBy("ImfLock.class")
-    void clearClientSessionLocked(ClientState cs) {
+    void clearClientSessionLocked(@NonNull ClientState cs) {
         finishSessionLocked(cs.mCurSession);
         cs.mCurSession = null;
         cs.mSessionRequested = false;
     }
 
     @GuardedBy("ImfLock.class")
-    void clearClientSessionForAccessibilityLocked(ClientState cs) {
+    void clearClientSessionForAccessibilityLocked(@NonNull ClientState cs) {
         for (int i = 0; i < cs.mAccessibilitySessions.size(); i++) {
             finishSessionForAccessibilityLocked(cs.mAccessibilitySessions.valueAt(i));
         }
@@ -2563,7 +2571,7 @@
     }
 
     @GuardedBy("ImfLock.class")
-    void clearClientSessionForAccessibilityLocked(ClientState cs, int id) {
+    void clearClientSessionForAccessibilityLocked(@NonNull ClientState cs, int id) {
         AccessibilitySessionState session = cs.mAccessibilitySessions.get(id);
         if (session != null) {
             finishSessionForAccessibilityLocked(session);
@@ -2572,7 +2580,7 @@
     }
 
     @GuardedBy("ImfLock.class")
-    private void finishSessionLocked(SessionState sessionState) {
+    private void finishSessionLocked(@Nullable SessionState sessionState) {
         if (sessionState != null) {
             if (sessionState.mSession != null) {
                 try {
@@ -2885,8 +2893,7 @@
         ProtoLog.v(IMMS_DEBUG, "IME window vis: %s active: %s visible: %s displayId: %s", vis,
                 (vis & InputMethodService.IME_ACTIVE), (vis & InputMethodService.IME_VISIBLE),
                 curTokenDisplayId);
-        final IBinder focusedWindowToken = userData.mImeBindingState != null
-                ? userData.mImeBindingState.mFocusedWindow : null;
+        final IBinder focusedWindowToken = userData.mImeBindingState.mFocusedWindow;
         final Boolean windowPerceptible = focusedWindowToken != null
                 ? mFocusedWindowPerceptible.get(focusedWindowToken) : null;
 
@@ -3474,7 +3481,7 @@
 
     @BinderThread
     @Override
-    public void reportPerceptibleAsync(IBinder windowToken, boolean perceptible) {
+    public void reportPerceptibleAsync(@NonNull IBinder windowToken, boolean perceptible) {
         Binder.withCleanCallingIdentity(() -> {
             Objects.requireNonNull(windowToken, "windowToken must not be null");
             synchronized (ImfLock.class) {
@@ -4868,7 +4875,7 @@
 
     @GuardedBy("ImfLock.class")
     void setEnabledSessionForAccessibilityLocked(
-            SparseArray<AccessibilitySessionState> accessibilitySessions,
+            @NonNull SparseArray<AccessibilitySessionState> accessibilitySessions,
             @NonNull UserData userData) {
         // mEnabledAccessibilitySessions could the same object as accessibilitySessions.
         SparseArray<IAccessibilityInputMethodSession> disabledSessions = new SparseArray<>();
@@ -4964,8 +4971,8 @@
                 }
             }
 
-            mMenuControllerNew.show(imList, lastInputMethodId, selectedSubtypeIndex, displayId,
-                    userId);
+            mMenuControllerNew.show(imList, lastInputMethodId, selectedSubtypeIndex, isScreenLocked,
+                    displayId, userId);
         } else {
             mMenuController.showInputMethodMenuLocked(showAuxSubtypes, displayId,
                     lastInputMethodId, lastInputMethodSubtypeIndex, imList, userId);
@@ -5156,7 +5163,7 @@
                     interactive ? bindingController.getImeWindowVis() : 0,
                     bindingController.getBackDisposition(), userId);
             // Inform the current client of the change in active status
-            if (userData.mCurClient == null || userData.mCurClient.mClient == null) {
+            if (userData.mCurClient == null) {
                 return;
             }
             if (mImePlatformCompatUtils.shouldUseSetInteractiveProtocol(
@@ -5920,9 +5927,8 @@
                 // from all clients.
                 if (bindingController.getCurMethod() != null) {
                     // TODO(b/324907325): Remove the suppress warnings once b/324907325 is fixed.
-                    @SuppressWarnings("GuardedBy") Consumer<ClientState> clearClientSession =
-                            c -> clearClientSessionForAccessibilityLocked(c,
-                                    accessibilityConnectionId);
+                    @SuppressWarnings("GuardedBy") Consumer<ClientState> clearClientSession = c ->
+                            clearClientSessionForAccessibilityLocked(c, accessibilityConnectionId);
                     mClientController.forAllClients(clearClientSession);
 
                     AccessibilitySessionState session = userData.mEnabledAccessibilitySessions.get(
@@ -5998,7 +6004,7 @@
     @BinderThread
     @GuardedBy("ImfLock.class")
     private void reportFullscreenModeLocked(boolean fullscreen, @NonNull UserData userData) {
-        if (userData.mCurClient != null && userData.mCurClient.mClient != null) {
+        if (userData.mCurClient != null) {
             userData.mInFullscreenMode = fullscreen;
             userData.mCurClient.mClient.reportFullscreenMode(fullscreen);
         }
@@ -6732,9 +6738,7 @@
     boolean setImeVisibilityOnFocusedWindowClient(boolean visible, UserData userData,
             @NonNull ImeTracker.Token statsToken) {
         if (Flags.refactorInsetsController()) {
-            if (userData.mImeBindingState != null
-                    && userData.mImeBindingState.mFocusedWindowClient != null
-                    && userData.mImeBindingState.mFocusedWindowClient.mClient != null) {
+            if (userData.mImeBindingState.mFocusedWindowClient != null) {
                 userData.mImeBindingState.mFocusedWindowClient.mClient.setImeVisibility(visible,
                         statsToken);
                 return true;
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodMenuControllerNew.java b/services/core/java/com/android/server/inputmethod/InputMethodMenuControllerNew.java
index 9f94905..ea8aabc 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodMenuControllerNew.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodMenuControllerNew.java
@@ -87,12 +87,14 @@
      * @param selectedSubtypeIndex the index of the selected subtype in the input method's array of
      *                             subtypes, or {@link InputMethodUtils#NOT_A_SUBTYPE_INDEX} if no
      *                             subtype is selected.
+     * @param isScreenLocked       whether the screen is current locked.
      * @param displayId            the ID of the display where the menu was requested.
      * @param userId               the ID of the user that requested the menu.
      */
     @RequiresPermission(allOf = {INTERACT_ACROSS_USERS, HIDE_OVERLAY_WINDOWS})
     void show(@NonNull List<ImeSubtypeListItem> items, @Nullable String selectedImeId,
-            int selectedSubtypeIndex, int displayId, @UserIdInt int userId) {
+            int selectedSubtypeIndex, boolean isScreenLocked, int displayId,
+            @UserIdInt int userId) {
         // Hide the menu in case it was already showing.
         hide(displayId, userId);
 
@@ -133,7 +135,7 @@
         recyclerView.requestFocus();
 
         final var selectedItem = selectedIndex > -1 ? menuItems.get(selectedIndex) : null;
-        updateLanguageSettingsButton(selectedItem, contentView, displayId, userId);
+        updateLanguageSettingsButton(selectedItem, contentView, isScreenLocked, displayId, userId);
 
         builder.setOnCancelListener(dialog -> hide(displayId, userId));
         mMenuItems = menuItems;
@@ -280,23 +282,24 @@
 
     /**
      * Updates the visibility of the Language Settings button to visible if the currently selected
-     * item specifies a (language) settings activity and the device is provisioned. Otherwise,
-     * the button won't be shown.
+     * item specifies a (language) settings activity, the screen is not locked and the device is
+     * provisioned. Otherwise, the button won't be shown.
      *
-     * @param selectedItem the currently selected item, or {@code null} if no item is selected.
-     * @param view         the menu dialog view.
-     * @param displayId    the ID of the display where the menu was requested.
-     * @param userId       the ID of the user that requested the menu.
+     * @param selectedItem   the currently selected item, or {@code null} if no item is selected.
+     * @param view           the menu dialog view.
+     * @param isScreenLocked whether the screen is currently locked.
+     * @param displayId      the ID of the display where the menu was requested.
+     * @param userId         the ID of the user that requested the menu.
      */
     @RequiresPermission(allOf = {INTERACT_ACROSS_USERS})
     private void updateLanguageSettingsButton(@Nullable MenuItem selectedItem, @NonNull View view,
-            int displayId, @UserIdInt int userId) {
+            boolean isScreenLocked, int displayId, @UserIdInt int userId) {
         final var settingsIntent = (selectedItem instanceof SubtypeItem selectedSubtypeItem)
                 ? selectedSubtypeItem.mImi.createImeLanguageSettingsActivityIntent() : null;
         final boolean isDeviceProvisioned = Settings.Global.getInt(
                 view.getContext().getContentResolver(), Settings.Global.DEVICE_PROVISIONED,
                 0) != 0;
-        final boolean hasButton = settingsIntent != null && isDeviceProvisioned;
+        final boolean hasButton = settingsIntent != null && !isScreenLocked && isDeviceProvisioned;
         final View buttonBar = view.requireViewById(com.android.internal.R.id.button_bar);
         final Button button = view.requireViewById(com.android.internal.R.id.button1);
         final RecyclerView recyclerView = view.requireViewById(com.android.internal.R.id.list);
diff --git a/services/core/java/com/android/server/inputmethod/UserData.java b/services/core/java/com/android/server/inputmethod/UserData.java
index 96da17e..7377908a 100644
--- a/services/core/java/com/android/server/inputmethod/UserData.java
+++ b/services/core/java/com/android/server/inputmethod/UserData.java
@@ -140,9 +140,9 @@
     InputMethodManagerService.SessionState mEnabledSession;
 
     @GuardedBy("ImfLock.class")
-    @Nullable
-    SparseArray<InputMethodManagerService.AccessibilitySessionState>
-            mEnabledAccessibilitySessions = new SparseArray<>();
+    @NonNull
+    SparseArray<InputMethodManagerService.AccessibilitySessionState> mEnabledAccessibilitySessions =
+            new SparseArray<>();
 
     /**
      * A per-user cache of {@link InputMethodSettings#getEnabledInputMethodsStr()}.
diff --git a/services/core/java/com/android/server/inputmethod/ZeroJankProxy.java b/services/core/java/com/android/server/inputmethod/ZeroJankProxy.java
index b863c96..7252925 100644
--- a/services/core/java/com/android/server/inputmethod/ZeroJankProxy.java
+++ b/services/core/java/com/android/server/inputmethod/ZeroJankProxy.java
@@ -128,9 +128,9 @@
     }
 
     @Override
-    public void addClient(IInputMethodClient client, IRemoteInputConnection inputConnection,
-            int selfReportedDisplayId) {
-        offload(() -> mInner.addClient(client, inputConnection, selfReportedDisplayId));
+    public void addClient(@NonNull IInputMethodClient client,
+            @NonNull IRemoteInputConnection fallbackInputConnection, int selfReportedDisplayId) {
+        offload(() -> mInner.addClient(client, fallbackInputConnection, selfReportedDisplayId));
     }
 
     @Override
@@ -331,7 +331,7 @@
     }
 
     @Override
-    public void reportPerceptibleAsync(IBinder windowToken, boolean perceptible) {
+    public void reportPerceptibleAsync(@NonNull IBinder windowToken, boolean perceptible) {
         // Already async TODO(b/293640003): ordering issues?
         mInner.reportPerceptibleAsync(windowToken, perceptible);
     }
@@ -468,7 +468,7 @@
             IInputMethodClient client, InputBindResult res, int startInputSeq) {
         synchronized (ImfLock.class) {
             final ClientState cs = mInner.getClientStateLocked(client);
-            if (cs != null && cs.mClient != null) {
+            if (cs != null) {
                 cs.mClient.onStartInputResult(res, startInputSeq);
             } else {
                 // client is unbound.
diff --git a/services/core/java/com/android/server/integrity/OWNERS b/services/core/java/com/android/server/integrity/OWNERS
index 33561fd..352724a 100644
--- a/services/core/java/com/android/server/integrity/OWNERS
+++ b/services/core/java/com/android/server/integrity/OWNERS
@@ -1,5 +1,4 @@
 omernebil@google.com
 khelmy@google.com
 mdchurchill@google.com
-sturla@google.com
 
diff --git a/services/core/java/com/android/server/locales/LocaleManagerService.java b/services/core/java/com/android/server/locales/LocaleManagerService.java
index 7e80cbc..0944a54 100644
--- a/services/core/java/com/android/server/locales/LocaleManagerService.java
+++ b/services/core/java/com/android/server/locales/LocaleManagerService.java
@@ -48,7 +48,6 @@
 import android.util.Slog;
 import android.util.Xml;
 
-import com.android.internal.annotations.KeepForWeakReference;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.content.PackageMonitor;
 import com.android.internal.util.FrameworkStatsLog;
@@ -101,7 +100,6 @@
 
     private LocaleManagerBackupHelper mBackupHelper;
 
-    @KeepForWeakReference
     private final PackageMonitor mPackageMonitor;
 
     private final Object mWriteLock = new Object();
diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubEndpointBroker.java b/services/core/java/com/android/server/location/contexthub/ContextHubEndpointBroker.java
index 1a29150..f40d0dd 100644
--- a/services/core/java/com/android/server/location/contexthub/ContextHubEndpointBroker.java
+++ b/services/core/java/com/android/server/location/contexthub/ContextHubEndpointBroker.java
@@ -16,6 +16,7 @@
 
 package com.android.server.location.contexthub;
 
+import android.annotation.NonNull;
 import android.app.AppOpsManager;
 import android.content.Context;
 import android.hardware.contexthub.EndpointInfo;
@@ -42,7 +43,10 @@
 import com.android.internal.annotations.GuardedBy;
 
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.Optional;
+import java.util.Set;
+import java.util.function.Consumer;
 
 /**
  * A class that represents a broker for the endpoint registered by the client app. This class
@@ -64,7 +68,7 @@
      * Internal interface used to invoke client callbacks.
      */
     interface CallbackConsumer {
-        void accept(IContextHubEndpointCallback callback) throws RemoteException;
+        void accept(@NonNull IContextHubEndpointCallback callback) throws RemoteException;
     }
 
     /** The context of the service. */
@@ -86,7 +90,7 @@
     private final EndpointInfo mHalEndpointInfo;
 
     /** The remote callback interface for this endpoint. */
-    private final IContextHubEndpointCallback mContextHubEndpointCallback;
+    @NonNull private final IContextHubEndpointCallback mContextHubEndpointCallback;
 
     /** True if this endpoint is registered with the service/HAL. */
     @GuardedBy("mRegistrationLock")
@@ -110,6 +114,11 @@
 
         private final boolean mRemoteInitiated;
 
+        /**
+         * The set of seq # for pending reliable messages started by this endpoint for this session.
+         */
+        private final Set<Integer> mPendingSequenceNumbers = new HashSet<>();
+
         SessionInfo(HubEndpointInfo remoteEndpointInfo, boolean remoteInitiated) {
             mRemoteEndpointInfo = remoteEndpointInfo;
             mRemoteInitiated = remoteInitiated;
@@ -130,6 +139,24 @@
         public boolean isActive() {
             return mSessionState == SessionState.ACTIVE;
         }
+
+        public boolean isReliableMessagePending(int sequenceNumber) {
+            return mPendingSequenceNumbers.contains(sequenceNumber);
+        }
+
+        public void setReliableMessagePending(int sequenceNumber) {
+            mPendingSequenceNumbers.add(sequenceNumber);
+        }
+
+        public void setReliableMessageCompleted(int sequenceNumber) {
+            mPendingSequenceNumbers.remove(sequenceNumber);
+        }
+
+        public void forEachPendingReliableMessage(Consumer<Integer> consumer) {
+            for (int sequenceNumber : mPendingSequenceNumbers) {
+                consumer.accept(sequenceNumber);
+            }
+        }
     }
 
     /** A map between a session ID which maps to its current state. */
@@ -158,7 +185,7 @@
             IEndpointCommunication hubInterface,
             ContextHubEndpointManager endpointManager,
             EndpointInfo halEndpointInfo,
-            IContextHubEndpointCallback callback,
+            @NonNull IContextHubEndpointCallback callback,
             String packageName,
             String attributionTag,
             ContextHubTransactionManager transactionManager) {
@@ -207,10 +234,7 @@
             try {
                 mSessionInfoMap.put(sessionId, new SessionInfo(destination, false));
                 mHubInterface.openEndpointSession(
-                        sessionId,
-                        halEndpointInfo.id,
-                        mHalEndpointInfo.id,
-                        serviceDescriptor);
+                        sessionId, halEndpointInfo.id, mHalEndpointInfo.id, serviceDescriptor);
             } catch (RemoteException | IllegalArgumentException | UnsupportedOperationException e) {
                 Log.e(TAG, "Exception while calling HAL openEndpointSession", e);
                 cleanupSessionResources(sessionId);
@@ -285,34 +309,42 @@
     public void sendMessage(
             int sessionId, HubMessage message, IContextHubTransactionCallback callback) {
         super.sendMessage_enforcePermission();
-        Message halMessage = ContextHubServiceUtil.createHalMessage(message);
-        if (!isSessionActive(sessionId)) {
-            throw new SecurityException(
-                    "sendMessage called on inactive session (id= " + sessionId + ")");
-        }
-
-        if (callback == null) {
-            try {
-                mHubInterface.sendMessageToEndpoint(sessionId, halMessage);
-            } catch (RemoteException e) {
-                Log.w(TAG, "Exception while sending message on session " + sessionId, e);
+        synchronized (mOpenSessionLock) {
+            SessionInfo info = mSessionInfoMap.get(sessionId);
+            if (info == null) {
+                throw new IllegalArgumentException(
+                        "sendMessage for invalid session id=" + sessionId);
             }
-        } else {
-            ContextHubServiceTransaction transaction =
-                    mTransactionManager.createSessionMessageTransaction(
-                            mHubInterface, sessionId, halMessage, mPackageName, callback);
-            try {
-                mTransactionManager.addTransaction(transaction);
-            } catch (IllegalStateException e) {
-                Log.e(
-                        TAG,
-                        "Unable to add a transaction in sendMessageToEndpoint "
-                                + "(session ID = "
-                                + sessionId
-                                + ")",
-                        e);
-                transaction.onTransactionComplete(
-                        ContextHubTransaction.RESULT_FAILED_SERVICE_INTERNAL_FAILURE);
+            if (!info.isActive()) {
+                throw new SecurityException(
+                        "sendMessage called on inactive session (id= " + sessionId + ")");
+            }
+
+            Message halMessage = ContextHubServiceUtil.createHalMessage(message);
+            if (callback == null) {
+                try {
+                    mHubInterface.sendMessageToEndpoint(sessionId, halMessage);
+                } catch (RemoteException e) {
+                    Log.w(TAG, "Exception while sending message on session " + sessionId, e);
+                }
+            } else {
+                ContextHubServiceTransaction transaction =
+                        mTransactionManager.createSessionMessageTransaction(
+                                mHubInterface, sessionId, halMessage, mPackageName, callback);
+                try {
+                    mTransactionManager.addTransaction(transaction);
+                    info.setReliableMessagePending(transaction.getMessageSequenceNumber());
+                } catch (IllegalStateException e) {
+                    Log.e(
+                            TAG,
+                            "Unable to add a transaction in sendMessageToEndpoint "
+                                    + "(session ID = "
+                                    + sessionId
+                                    + ")",
+                            e);
+                    transaction.onTransactionComplete(
+                            ContextHubTransaction.RESULT_FAILED_SERVICE_INTERNAL_FAILURE);
+                }
             }
         }
     }
@@ -392,7 +424,9 @@
                 int id = mSessionInfoMap.keyAt(i);
                 int count = i + 1;
                 sb.append(
-                        "  " + count + ". id="
+                        "  "
+                                + count
+                                + ". id="
                                 + id
                                 + ", remote:"
                                 + mSessionInfoMap.get(id).getRemoteEndpointInfo());
@@ -419,9 +453,7 @@
     }
 
     /* package */ void attachDeathRecipient() throws RemoteException {
-        if (mContextHubEndpointCallback != null) {
-            mContextHubEndpointCallback.asBinder().linkToDeath(this, 0 /* flags */);
-        }
+        mContextHubEndpointCallback.asBinder().linkToDeath(this, 0 /* flags */);
     }
 
     /* package */ void onEndpointSessionOpenRequest(
@@ -462,13 +494,24 @@
     /* package */ void onMessageReceived(int sessionId, HubMessage message) {
         byte code = onMessageReceivedInternal(sessionId, message);
         if (code != ErrorCode.OK && message.isResponseRequired()) {
-            sendMessageDeliveryStatus(
-                    sessionId, message.getMessageSequenceNumber(), code);
+            sendMessageDeliveryStatus(sessionId, message.getMessageSequenceNumber(), code);
         }
     }
 
     /* package */ void onMessageDeliveryStatusReceived(
             int sessionId, int sequenceNumber, byte errorCode) {
+        synchronized (mOpenSessionLock) {
+            SessionInfo info = mSessionInfoMap.get(sessionId);
+            if (info == null || !info.isActive()) {
+                Log.w(TAG, "Received delivery status for invalid session: id=" + sessionId);
+                return;
+            }
+            if (!info.isReliableMessagePending(sequenceNumber)) {
+                Log.w(TAG, "Received delivery status for unknown seq: " + sequenceNumber);
+                return;
+            }
+            info.setReliableMessageCompleted(sequenceNumber);
+        }
         mTransactionManager.onMessageDeliveryResponse(sequenceNumber, errorCode == ErrorCode.OK);
     }
 
@@ -493,7 +536,6 @@
                 onCloseEndpointSession(id, Reason.HUB_RESET);
             }
         }
-        // TODO(b/390029594): Cancel any ongoing reliable communication transactions
     }
 
     private Optional<Byte> onEndpointSessionOpenRequestInternal(
@@ -516,9 +558,11 @@
             mSessionInfoMap.put(sessionId, new SessionInfo(initiator, true));
         }
 
-        boolean success = invokeCallback(
-                (consumer) ->
-                        consumer.onSessionOpenRequest(sessionId, initiator, serviceDescriptor));
+        boolean success =
+                invokeCallback(
+                        (consumer) ->
+                                consumer.onSessionOpenRequest(
+                                        sessionId, initiator, serviceDescriptor));
         return success ? Optional.empty() : Optional.of(Reason.UNSPECIFIED);
     }
 
@@ -591,8 +635,15 @@
     private boolean cleanupSessionResources(int sessionId) {
         synchronized (mOpenSessionLock) {
             SessionInfo info = mSessionInfoMap.get(sessionId);
-            if (info != null && !info.isRemoteInitiated()) {
-                mEndpointManager.returnSessionId(sessionId);
+            if (info != null) {
+                if (!info.isRemoteInitiated()) {
+                    mEndpointManager.returnSessionId(sessionId);
+                }
+                info.forEachPendingReliableMessage(
+                        (sequenceNumber) -> {
+                            mTransactionManager.onMessageDeliveryResponse(
+                                    sequenceNumber, /* success= */ false);
+                        });
                 mSessionInfoMap.remove(sessionId);
             }
             return info != null;
@@ -647,10 +698,7 @@
                         try {
                             mWakeLock.release();
                         } catch (RuntimeException e) {
-                            Log.e(
-                                    TAG,
-                                    "Releasing the wakelock for all acquisitions fails - ",
-                                    e);
+                            Log.e(TAG, "Releasing the wakelock for all acquisitions fails - ", e);
                             break;
                         }
                     }
@@ -664,15 +712,13 @@
      * @return false if the callback threw a RemoteException
      */
     private boolean invokeCallback(CallbackConsumer consumer) {
-        if (mContextHubEndpointCallback != null) {
-            acquireWakeLock();
-            try {
-                consumer.accept(mContextHubEndpointCallback);
-            } catch (RemoteException e) {
-                Log.e(TAG, "RemoteException while calling endpoint callback", e);
-                releaseWakeLock();
-                return false;
-            }
+        acquireWakeLock();
+        try {
+            consumer.accept(mContextHubEndpointCallback);
+        } catch (RemoteException e) {
+            Log.e(TAG, "RemoteException while calling endpoint callback", e);
+            releaseWakeLock();
+            return false;
         }
         return true;
     }
diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubEndpointManager.java b/services/core/java/com/android/server/location/contexthub/ContextHubEndpointManager.java
index 30bb8f3..8ab581e 100644
--- a/services/core/java/com/android/server/location/contexthub/ContextHubEndpointManager.java
+++ b/services/core/java/com/android/server/location/contexthub/ContextHubEndpointManager.java
@@ -17,6 +17,7 @@
 package com.android.server.location.contexthub;
 
 import android.annotation.IntDef;
+import android.annotation.NonNull;
 import android.content.Context;
 import android.hardware.contexthub.ContextHubInfo;
 import android.hardware.contexthub.EndpointInfo;
@@ -240,7 +241,7 @@
      */
     /* package */ IContextHubEndpoint registerEndpoint(
             HubEndpointInfo pendingEndpointInfo,
-            IContextHubEndpointCallback callback,
+            @NonNull IContextHubEndpointCallback callback,
             String packageName,
             String attributionTag)
             throws RemoteException {
diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubService.java b/services/core/java/com/android/server/location/contexthub/ContextHubService.java
index bf7351c..2c0c55b 100644
--- a/services/core/java/com/android/server/location/contexthub/ContextHubService.java
+++ b/services/core/java/com/android/server/location/contexthub/ContextHubService.java
@@ -792,6 +792,10 @@
             Log.e(TAG, "Endpoint manager failed to initialize");
             throw new UnsupportedOperationException("Endpoint registration is not supported");
         }
+        if (callback == null) {
+            Log.e(TAG, "Endpoint callback is invalid");
+            throw new IllegalArgumentException("registerEndpoint must have a non-null callback");
+        }
         return mEndpointManager.registerEndpoint(
                 pendingHubEndpointInfo, callback, packageName, attributionTag);
     }
diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubTransactionManager.java b/services/core/java/com/android/server/location/contexthub/ContextHubTransactionManager.java
index a430a82..6a1db02 100644
--- a/services/core/java/com/android/server/location/contexthub/ContextHubTransactionManager.java
+++ b/services/core/java/com/android/server/location/contexthub/ContextHubTransactionManager.java
@@ -29,6 +29,7 @@
 import android.util.Log;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 
 import java.time.Duration;
 import java.util.ArrayDeque;
@@ -165,52 +166,61 @@
     /**
      * Creates a transaction for loading a nanoapp.
      *
-     * @param contextHubId       the ID of the hub to load the nanoapp to
-     * @param nanoAppBinary      the binary of the nanoapp to load
+     * @param contextHubId the ID of the hub to load the nanoapp to
+     * @param nanoAppBinary the binary of the nanoapp to load
      * @param onCompleteCallback the client on complete callback
      * @return the generated transaction
      */
     /* package */ ContextHubServiceTransaction createLoadTransaction(
-            int contextHubId, NanoAppBinary nanoAppBinary,
-            IContextHubTransactionCallback onCompleteCallback, String packageName) {
+            int contextHubId,
+            NanoAppBinary nanoAppBinary,
+            IContextHubTransactionCallback onCompleteCallback,
+            String packageName) {
         return new ContextHubServiceTransaction(
-                mNextAvailableId.getAndIncrement(), ContextHubTransaction.TYPE_LOAD_NANOAPP,
-                nanoAppBinary.getNanoAppId(), packageName) {
+                mNextAvailableId.getAndIncrement(),
+                ContextHubTransaction.TYPE_LOAD_NANOAPP,
+                nanoAppBinary.getNanoAppId(),
+                packageName) {
             @Override
-                /* package */ int onTransact() {
+            /* package */ int onTransact() {
                 try {
                     return mContextHubProxy.loadNanoapp(
                             contextHubId, nanoAppBinary, this.getTransactionId());
                 } catch (RemoteException e) {
-                    Log.e(TAG, "RemoteException while trying to load nanoapp with ID 0x" +
-                            Long.toHexString(nanoAppBinary.getNanoAppId()), e);
+                    Log.e(
+                            TAG,
+                            "RemoteException while trying to load nanoapp with ID 0x"
+                                    + Long.toHexString(nanoAppBinary.getNanoAppId()),
+                            e);
                     return ContextHubTransaction.RESULT_FAILED_UNKNOWN;
                 }
             }
 
             @Override
-                /* package */ void onTransactionComplete(@ContextHubTransaction.Result int result) {
+            /* package */ void onTransactionComplete(@ContextHubTransaction.Result int result) {
                 ContextHubStatsLog.write(
                         ContextHubStatsLog.CHRE_CODE_DOWNLOAD_TRANSACTED,
                         nanoAppBinary.getNanoAppId(),
                         nanoAppBinary.getNanoAppVersion(),
                         ContextHubStatsLog
-                            .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_TYPE__TYPE_LOAD,
+                                .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_TYPE__TYPE_LOAD,
                         toStatsTransactionResult(result));
 
-                ContextHubEventLogger.getInstance().logNanoappLoad(
-                        contextHubId,
-                        nanoAppBinary.getNanoAppId(),
-                        nanoAppBinary.getNanoAppVersion(),
-                        nanoAppBinary.getBinary().length,
-                        result == ContextHubTransaction.RESULT_SUCCESS);
+                ContextHubEventLogger.getInstance()
+                        .logNanoappLoad(
+                                contextHubId,
+                                nanoAppBinary.getNanoAppId(),
+                                nanoAppBinary.getNanoAppVersion(),
+                                nanoAppBinary.getBinary().length,
+                                result == ContextHubTransaction.RESULT_SUCCESS);
 
                 if (result == ContextHubTransaction.RESULT_SUCCESS) {
                     // NOTE: The legacy JNI code used to do a query right after a load success
                     // to synchronize the service cache. Instead store the binary that was
                     // requested to load to update the cache later without doing a query.
                     mNanoAppStateManager.addNanoAppInstance(
-                            contextHubId, nanoAppBinary.getNanoAppId(),
+                            contextHubId,
+                            nanoAppBinary.getNanoAppId(),
                             nanoAppBinary.getNanoAppVersion());
                 }
                 try {
@@ -228,42 +238,51 @@
     /**
      * Creates a transaction for unloading a nanoapp.
      *
-     * @param contextHubId       the ID of the hub to unload the nanoapp from
-     * @param nanoAppId          the ID of the nanoapp to unload
+     * @param contextHubId the ID of the hub to unload the nanoapp from
+     * @param nanoAppId the ID of the nanoapp to unload
      * @param onCompleteCallback the client on complete callback
      * @return the generated transaction
      */
     /* package */ ContextHubServiceTransaction createUnloadTransaction(
-            int contextHubId, long nanoAppId, IContextHubTransactionCallback onCompleteCallback,
+            int contextHubId,
+            long nanoAppId,
+            IContextHubTransactionCallback onCompleteCallback,
             String packageName) {
         return new ContextHubServiceTransaction(
-                mNextAvailableId.getAndIncrement(), ContextHubTransaction.TYPE_UNLOAD_NANOAPP,
-                nanoAppId, packageName) {
+                mNextAvailableId.getAndIncrement(),
+                ContextHubTransaction.TYPE_UNLOAD_NANOAPP,
+                nanoAppId,
+                packageName) {
             @Override
-                /* package */ int onTransact() {
+            /* package */ int onTransact() {
                 try {
                     return mContextHubProxy.unloadNanoapp(
                             contextHubId, nanoAppId, this.getTransactionId());
                 } catch (RemoteException e) {
-                    Log.e(TAG, "RemoteException while trying to unload nanoapp with ID 0x" +
-                            Long.toHexString(nanoAppId), e);
+                    Log.e(
+                            TAG,
+                            "RemoteException while trying to unload nanoapp with ID 0x"
+                                    + Long.toHexString(nanoAppId),
+                            e);
                     return ContextHubTransaction.RESULT_FAILED_UNKNOWN;
                 }
             }
 
             @Override
-                /* package */ void onTransactionComplete(@ContextHubTransaction.Result int result) {
+            /* package */ void onTransactionComplete(@ContextHubTransaction.Result int result) {
                 ContextHubStatsLog.write(
-                        ContextHubStatsLog.CHRE_CODE_DOWNLOAD_TRANSACTED, nanoAppId,
+                        ContextHubStatsLog.CHRE_CODE_DOWNLOAD_TRANSACTED,
+                        nanoAppId,
                         0 /* nanoappVersion */,
                         ContextHubStatsLog
-                            .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_TYPE__TYPE_UNLOAD,
+                                .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_TYPE__TYPE_UNLOAD,
                         toStatsTransactionResult(result));
 
-                ContextHubEventLogger.getInstance().logNanoappUnload(
-                        contextHubId,
-                        nanoAppId,
-                        result == ContextHubTransaction.RESULT_SUCCESS);
+                ContextHubEventLogger.getInstance()
+                        .logNanoappUnload(
+                                contextHubId,
+                                nanoAppId,
+                                result == ContextHubTransaction.RESULT_SUCCESS);
 
                 if (result == ContextHubTransaction.RESULT_SUCCESS) {
                     mNanoAppStateManager.removeNanoAppInstance(contextHubId, nanoAppId);
@@ -283,31 +302,37 @@
     /**
      * Creates a transaction for enabling a nanoapp.
      *
-     * @param contextHubId       the ID of the hub to enable the nanoapp on
-     * @param nanoAppId          the ID of the nanoapp to enable
+     * @param contextHubId the ID of the hub to enable the nanoapp on
+     * @param nanoAppId the ID of the nanoapp to enable
      * @param onCompleteCallback the client on complete callback
      * @return the generated transaction
      */
     /* package */ ContextHubServiceTransaction createEnableTransaction(
-            int contextHubId, long nanoAppId, IContextHubTransactionCallback onCompleteCallback,
+            int contextHubId,
+            long nanoAppId,
+            IContextHubTransactionCallback onCompleteCallback,
             String packageName) {
         return new ContextHubServiceTransaction(
-                mNextAvailableId.getAndIncrement(), ContextHubTransaction.TYPE_ENABLE_NANOAPP,
+                mNextAvailableId.getAndIncrement(),
+                ContextHubTransaction.TYPE_ENABLE_NANOAPP,
                 packageName) {
             @Override
-                /* package */ int onTransact() {
+            /* package */ int onTransact() {
                 try {
                     return mContextHubProxy.enableNanoapp(
                             contextHubId, nanoAppId, this.getTransactionId());
                 } catch (RemoteException e) {
-                    Log.e(TAG, "RemoteException while trying to enable nanoapp with ID 0x" +
-                            Long.toHexString(nanoAppId), e);
+                    Log.e(
+                            TAG,
+                            "RemoteException while trying to enable nanoapp with ID 0x"
+                                    + Long.toHexString(nanoAppId),
+                            e);
                     return ContextHubTransaction.RESULT_FAILED_UNKNOWN;
                 }
             }
 
             @Override
-                /* package */ void onTransactionComplete(@ContextHubTransaction.Result int result) {
+            /* package */ void onTransactionComplete(@ContextHubTransaction.Result int result) {
                 try {
                     onCompleteCallback.onTransactionComplete(result);
                 } catch (RemoteException e) {
@@ -320,31 +345,37 @@
     /**
      * Creates a transaction for disabling a nanoapp.
      *
-     * @param contextHubId       the ID of the hub to disable the nanoapp on
-     * @param nanoAppId          the ID of the nanoapp to disable
+     * @param contextHubId the ID of the hub to disable the nanoapp on
+     * @param nanoAppId the ID of the nanoapp to disable
      * @param onCompleteCallback the client on complete callback
      * @return the generated transaction
      */
     /* package */ ContextHubServiceTransaction createDisableTransaction(
-            int contextHubId, long nanoAppId, IContextHubTransactionCallback onCompleteCallback,
+            int contextHubId,
+            long nanoAppId,
+            IContextHubTransactionCallback onCompleteCallback,
             String packageName) {
         return new ContextHubServiceTransaction(
-                mNextAvailableId.getAndIncrement(), ContextHubTransaction.TYPE_DISABLE_NANOAPP,
+                mNextAvailableId.getAndIncrement(),
+                ContextHubTransaction.TYPE_DISABLE_NANOAPP,
                 packageName) {
             @Override
-                /* package */ int onTransact() {
+            /* package */ int onTransact() {
                 try {
                     return mContextHubProxy.disableNanoapp(
                             contextHubId, nanoAppId, this.getTransactionId());
                 } catch (RemoteException e) {
-                    Log.e(TAG, "RemoteException while trying to disable nanoapp with ID 0x" +
-                            Long.toHexString(nanoAppId), e);
+                    Log.e(
+                            TAG,
+                            "RemoteException while trying to disable nanoapp with ID 0x"
+                                    + Long.toHexString(nanoAppId),
+                            e);
                     return ContextHubTransaction.RESULT_FAILED_UNKNOWN;
                 }
             }
 
             @Override
-                /* package */ void onTransactionComplete(@ContextHubTransaction.Result int result) {
+            /* package */ void onTransactionComplete(@ContextHubTransaction.Result int result) {
                 try {
                     onCompleteCallback.onTransactionComplete(result);
                 } catch (RemoteException e) {
@@ -447,18 +478,20 @@
     /**
      * Creates a transaction for querying for a list of nanoapps.
      *
-     * @param contextHubId       the ID of the hub to query
+     * @param contextHubId the ID of the hub to query
      * @param onCompleteCallback the client on complete callback
      * @return the generated transaction
      */
     /* package */ ContextHubServiceTransaction createQueryTransaction(
-            int contextHubId, IContextHubTransactionCallback onCompleteCallback,
+            int contextHubId,
+            IContextHubTransactionCallback onCompleteCallback,
             String packageName) {
         return new ContextHubServiceTransaction(
-                mNextAvailableId.getAndIncrement(), ContextHubTransaction.TYPE_QUERY_NANOAPPS,
+                mNextAvailableId.getAndIncrement(),
+                ContextHubTransaction.TYPE_QUERY_NANOAPPS,
                 packageName) {
             @Override
-                /* package */ int onTransact() {
+            /* package */ int onTransact() {
                 try {
                     return mContextHubProxy.queryNanoapps(contextHubId);
                 } catch (RemoteException e) {
@@ -468,12 +501,12 @@
             }
 
             @Override
-                /* package */ void onTransactionComplete(@ContextHubTransaction.Result int result) {
+            /* package */ void onTransactionComplete(@ContextHubTransaction.Result int result) {
                 onQueryResponse(result, Collections.emptyList());
             }
 
             @Override
-                /* package */ void onQueryResponse(
+            /* package */ void onQueryResponse(
                     @ContextHubTransaction.Result int result, List<NanoAppState> nanoAppStateList) {
                 try {
                     onCompleteCallback.onQueryResponse(result, nanoAppStateList);
@@ -539,6 +572,14 @@
         }
     }
 
+    @VisibleForTesting
+    /* package */
+    int numReliableMessageTransactionPending() {
+        synchronized (mReliableMessageLock) {
+            return mReliableMessageTransactionMap.size();
+        }
+    }
+
     /**
      * Handles a transaction response from a Context Hub.
      *
@@ -585,18 +626,21 @@
     void onMessageDeliveryResponse(int messageSequenceNumber, boolean success) {
         if (!Flags.reliableMessageRetrySupportService()) {
             TransactionAcceptConditions conditions =
-                    transaction -> transaction.getTransactionType()
-                            == ContextHubTransaction.TYPE_RELIABLE_MESSAGE
-                    && transaction.getMessageSequenceNumber()
-                            == messageSequenceNumber;
+                    transaction ->
+                            transaction.getTransactionType()
+                                            == ContextHubTransaction.TYPE_RELIABLE_MESSAGE
+                                    && transaction.getMessageSequenceNumber()
+                                            == messageSequenceNumber;
             ContextHubServiceTransaction transaction = getTransactionAndHandleNext(conditions);
             if (transaction == null) {
-                Log.w(TAG, "Received unexpected message delivery response (expected"
-                        + " message sequence number = "
-                        + messageSequenceNumber
-                        + ", received messageSequenceNumber = "
-                        + messageSequenceNumber
-                        + ")");
+                Log.w(
+                        TAG,
+                        "Received unexpected message delivery response (expected"
+                                + " message sequence number = "
+                                + messageSequenceNumber
+                                + ", received messageSequenceNumber = "
+                                + messageSequenceNumber
+                                + ")");
                 return;
             }
 
@@ -640,8 +684,10 @@
      */
     /* package */
     void onQueryResponse(List<NanoAppState> nanoAppStateList) {
-        TransactionAcceptConditions conditions = transaction ->
-                transaction.getTransactionType() == ContextHubTransaction.TYPE_QUERY_NANOAPPS;
+        TransactionAcceptConditions conditions =
+                transaction ->
+                        transaction.getTransactionType()
+                                == ContextHubTransaction.TYPE_QUERY_NANOAPPS;
         ContextHubServiceTransaction transaction = getTransactionAndHandleNext(conditions);
         if (transaction == null) {
             Log.w(TAG, "Received unexpected query response");
@@ -968,24 +1014,33 @@
     private int toStatsTransactionResult(@ContextHubTransaction.Result int result) {
         switch (result) {
             case ContextHubTransaction.RESULT_SUCCESS:
-                return ContextHubStatsLog.CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_SUCCESS;
+                return ContextHubStatsLog
+                        .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_SUCCESS;
             case ContextHubTransaction.RESULT_FAILED_BAD_PARAMS:
-                return ContextHubStatsLog.CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_BAD_PARAMS;
+                return ContextHubStatsLog
+                        .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_BAD_PARAMS;
             case ContextHubTransaction.RESULT_FAILED_UNINITIALIZED:
-                return ContextHubStatsLog.CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_UNINITIALIZED;
+                return ContextHubStatsLog
+                        .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_UNINITIALIZED;
             case ContextHubTransaction.RESULT_FAILED_BUSY:
-                return ContextHubStatsLog.CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_BUSY;
+                return ContextHubStatsLog
+                        .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_BUSY;
             case ContextHubTransaction.RESULT_FAILED_AT_HUB:
-                return ContextHubStatsLog.CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_AT_HUB;
+                return ContextHubStatsLog
+                        .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_AT_HUB;
             case ContextHubTransaction.RESULT_FAILED_TIMEOUT:
-                return ContextHubStatsLog.CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_TIMEOUT;
+                return ContextHubStatsLog
+                        .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_TIMEOUT;
             case ContextHubTransaction.RESULT_FAILED_SERVICE_INTERNAL_FAILURE:
-                return ContextHubStatsLog.CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_SERVICE_INTERNAL_FAILURE;
+                return ContextHubStatsLog
+                        .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_SERVICE_INTERNAL_FAILURE;
             case ContextHubTransaction.RESULT_FAILED_HAL_UNAVAILABLE:
-                return ContextHubStatsLog.CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_HAL_UNAVAILABLE;
+                return ContextHubStatsLog
+                        .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_HAL_UNAVAILABLE;
             case ContextHubTransaction.RESULT_FAILED_UNKNOWN:
             default: /* fall through */
-                return ContextHubStatsLog.CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_UNKNOWN;
+                return ContextHubStatsLog
+                        .CHRE_CODE_DOWNLOAD_TRANSACTED__TRANSACTION_RESULT__TRANSACTION_RESULT_FAILED_UNKNOWN;
         }
     }
 
diff --git a/services/core/java/com/android/server/location/injector/SystemEmergencyHelper.java b/services/core/java/com/android/server/location/injector/SystemEmergencyHelper.java
index 177eefb..3f75b11 100644
--- a/services/core/java/com/android/server/location/injector/SystemEmergencyHelper.java
+++ b/services/core/java/com/android/server/location/injector/SystemEmergencyHelper.java
@@ -29,7 +29,6 @@
 import android.util.Log;
 
 import com.android.internal.telephony.TelephonyIntents;
-import com.android.internal.telephony.flags.Flags;
 import com.android.server.FgThread;
 
 import java.util.Objects;
@@ -107,26 +106,19 @@
         boolean isInExtensionTime = mEmergencyCallEndRealtimeMs != Long.MIN_VALUE
                 && (SystemClock.elapsedRealtime() - mEmergencyCallEndRealtimeMs) < extensionTimeMs;
 
-        if (!Flags.enforceTelephonyFeatureMapping()) {
-            return mIsInEmergencyCall
-                    || isInExtensionTime
-                    || mTelephonyManager.getEmergencyCallbackMode()
-                    || mTelephonyManager.isInEmergencySmsMode();
-        } else {
-            boolean emergencyCallbackMode = false;
-            boolean emergencySmsMode = false;
-            PackageManager pm = mContext.getPackageManager();
-            if (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_CALLING)) {
-                emergencyCallbackMode = mTelephonyManager.getEmergencyCallbackMode();
-            }
-            if (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_MESSAGING)) {
-                emergencySmsMode = mTelephonyManager.isInEmergencySmsMode();
-            }
-            return mIsInEmergencyCall
-                    || isInExtensionTime
-                    || emergencyCallbackMode
-                    || emergencySmsMode;
+        boolean emergencyCallbackMode = false;
+        boolean emergencySmsMode = false;
+        PackageManager pm = mContext.getPackageManager();
+        if (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_CALLING)) {
+            emergencyCallbackMode = mTelephonyManager.getEmergencyCallbackMode();
         }
+        if (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_MESSAGING)) {
+            emergencySmsMode = mTelephonyManager.isInEmergencySmsMode();
+        }
+        return mIsInEmergencyCall
+                || isInExtensionTime
+                || emergencyCallbackMode
+                || emergencySmsMode;
     }
 
     private class EmergencyCallTelephonyCallback extends TelephonyCallback implements
diff --git a/services/core/java/com/android/server/net/watchlist/WatchlistReportDbHelper.java b/services/core/java/com/android/server/net/watchlist/WatchlistReportDbHelper.java
index 7a96195..9937049 100644
--- a/services/core/java/com/android/server/net/watchlist/WatchlistReportDbHelper.java
+++ b/services/core/java/com/android/server/net/watchlist/WatchlistReportDbHelper.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteDatabaseCorruptException;
 import android.database.sqlite.SQLiteException;
 import android.database.sqlite.SQLiteOpenHelper;
 import android.os.Environment;
@@ -204,6 +205,11 @@
             return false;
         }
         final String clause = WhiteListReportContract.TIMESTAMP + "< " + untilTimestamp;
-        return db.delete(WhiteListReportContract.TABLE, clause, null) != 0;
+        try {
+            return db.delete(WhiteListReportContract.TABLE, clause, null) != 0;
+        } catch (SQLiteDatabaseCorruptException e) {
+            Slog.e(TAG, "Error deleting records", e);
+            return false;
+        }
     }
 }
diff --git a/services/core/java/com/android/server/notification/ConditionProviders.java b/services/core/java/com/android/server/notification/ConditionProviders.java
index 3f2c222..dd52cce 100644
--- a/services/core/java/com/android/server/notification/ConditionProviders.java
+++ b/services/core/java/com/android/server/notification/ConditionProviders.java
@@ -46,6 +46,7 @@
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 
 public class ConditionProviders extends ManagedServices {
 
@@ -202,7 +203,14 @@
 
     @Override
     protected void loadDefaultsFromConfig() {
-        String defaultDndAccess = mContext.getResources().getString(
+        for (String dndPackage : getDefaultDndAccessPackages(mContext)) {
+            addDefaultComponentOrPackage(dndPackage);
+        }
+    }
+
+    static List<String> getDefaultDndAccessPackages(Context context) {
+        ArrayList<String> packages = new ArrayList<>();
+        String defaultDndAccess = context.getResources().getString(
                 R.string.config_defaultDndAccessPackages);
         if (defaultDndAccess != null) {
             String[] dnds = defaultDndAccess.split(ManagedServices.ENABLED_SERVICES_SEPARATOR);
@@ -210,9 +218,10 @@
                 if (TextUtils.isEmpty(dnds[i])) {
                     continue;
                 }
-                addDefaultComponentOrPackage(dnds[i]);
+                packages.add(dnds[i]);
             }
         }
+        return packages;
     }
 
     @Override
diff --git a/services/core/java/com/android/server/notification/PreferencesHelper.java b/services/core/java/com/android/server/notification/PreferencesHelper.java
index fff812c..0fc182f 100644
--- a/services/core/java/com/android/server/notification/PreferencesHelper.java
+++ b/services/core/java/com/android/server/notification/PreferencesHelper.java
@@ -42,7 +42,6 @@
 import static com.android.internal.util.FrameworkStatsLog.PACKAGE_NOTIFICATION_PREFERENCES__FSI_STATE__DENIED;
 import static com.android.internal.util.FrameworkStatsLog.PACKAGE_NOTIFICATION_PREFERENCES__FSI_STATE__GRANTED;
 import static com.android.internal.util.FrameworkStatsLog.PACKAGE_NOTIFICATION_PREFERENCES__FSI_STATE__NOT_REQUESTED;
-import static com.android.server.notification.PreferencesHelper.LockableAppFields.USER_LOCKED_BUBBLE;
 import static com.android.server.notification.PreferencesHelper.LockableAppFields.USER_LOCKED_PROMOTABLE;
 
 import android.annotation.FlaggedApi;
@@ -287,7 +286,7 @@
         if (!TAG_RANKING.equals(tag)) return;
 
         final int xmlVersion = parser.getAttributeInt(null, ATT_VERSION, -1);
-        boolean upgradeForBubbles = xmlVersion >= XML_VERSION_BUBBLES_UPGRADE;
+        boolean upgradeForBubbles = xmlVersion == XML_VERSION_BUBBLES_UPGRADE;
         boolean migrateToPermission = (xmlVersion < XML_VERSION_NOTIF_PERMISSION);
         if (mShowReviewPermissionsNotification
                 && (xmlVersion < XML_VERSION_REVIEW_PERMISSIONS_NOTIFICATION)) {
@@ -338,19 +337,15 @@
             }
             boolean skipWarningLogged = false;
             boolean skipGroupWarningLogged = false;
-            int bubblePref = parser.getAttributeInt(null, ATT_ALLOW_BUBBLE,
-                    DEFAULT_BUBBLE_PREFERENCE);
-            boolean bubbleLocked = (parser.getAttributeInt(null,
-                    ATT_APP_USER_LOCKED_FIELDS, DEFAULT_LOCKED_APP_FIELDS) & USER_LOCKED_BUBBLE)
-                    != 0;
-            if (!bubbleLocked
-                    && upgradeForBubbles
-                    && uid != UNKNOWN_UID
-                    && mAppOps.noteOpNoThrow(OP_SYSTEM_ALERT_WINDOW, uid, name, null,
-                    "check-notif-bubble") == AppOpsManager.MODE_ALLOWED) {
-                // User hasn't changed bubble pref & the app has SAW, so allow all bubbles.
-                bubblePref = BUBBLE_PREFERENCE_ALL;
+            boolean hasSAWPermission = false;
+            if (upgradeForBubbles && uid != UNKNOWN_UID) {
+                hasSAWPermission = mAppOps.noteOpNoThrow(
+                        OP_SYSTEM_ALERT_WINDOW, uid, name, null,
+                        "check-notif-bubble") == AppOpsManager.MODE_ALLOWED;
             }
+            int bubblePref = hasSAWPermission
+                    ? BUBBLE_PREFERENCE_ALL
+                    : parser.getAttributeInt(null, ATT_ALLOW_BUBBLE, DEFAULT_BUBBLE_PREFERENCE);
             int appImportance = parser.getAttributeInt(null, ATT_IMPORTANCE, DEFAULT_IMPORTANCE);
 
             // when data is loaded from disk it's loaded as USER_ALL, but restored data that
diff --git a/services/core/java/com/android/server/notification/ZenConfigTrimmer.java b/services/core/java/com/android/server/notification/ZenConfigTrimmer.java
new file mode 100644
index 0000000..d65954d
--- /dev/null
+++ b/services/core/java/com/android/server/notification/ZenConfigTrimmer.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2025 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.notification;
+
+import android.content.Context;
+import android.os.Parcel;
+import android.service.notification.SystemZenRules;
+import android.service.notification.ZenModeConfig;
+import android.util.Slog;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+
+class ZenConfigTrimmer {
+
+    private static final String TAG = "ZenConfigTrimmer";
+    private static final int MAXIMUM_PARCELED_SIZE = 150_000; // bytes
+
+    private final HashSet<String> mTrustedPackages;
+
+    ZenConfigTrimmer(Context context) {
+        mTrustedPackages = new HashSet<>();
+        mTrustedPackages.add(SystemZenRules.PACKAGE_ANDROID);
+        mTrustedPackages.addAll(ConditionProviders.getDefaultDndAccessPackages(context));
+    }
+
+    void trimToMaximumSize(ZenModeConfig config) {
+        Map<String, PackageRules> rulesPerPackage = new HashMap<>();
+        for (ZenModeConfig.ZenRule rule : config.automaticRules.values()) {
+            PackageRules pkgRules = rulesPerPackage.computeIfAbsent(rule.pkg, PackageRules::new);
+            pkgRules.mRules.add(rule);
+        }
+
+        int totalSize = 0;
+        for (PackageRules pkgRules : rulesPerPackage.values()) {
+            totalSize += pkgRules.dataSize();
+        }
+
+        if (totalSize > MAXIMUM_PARCELED_SIZE) {
+            List<PackageRules> deletionCandidates = new ArrayList<>();
+            for (PackageRules pkgRules : rulesPerPackage.values()) {
+                if (!mTrustedPackages.contains(pkgRules.mPkg)) {
+                    deletionCandidates.add(pkgRules);
+                }
+            }
+            deletionCandidates.sort(Comparator.comparingInt(PackageRules::dataSize).reversed());
+
+            evictPackagesFromConfig(config, deletionCandidates, totalSize);
+        }
+    }
+
+    private static void evictPackagesFromConfig(ZenModeConfig config,
+            List<PackageRules> deletionCandidates, int currentSize) {
+        while (currentSize > MAXIMUM_PARCELED_SIZE && !deletionCandidates.isEmpty()) {
+            PackageRules rulesToDelete = deletionCandidates.removeFirst();
+            Slog.w(TAG, String.format("Evicting %s zen rules from package '%s' (%s bytes)",
+                    rulesToDelete.mRules.size(), rulesToDelete.mPkg, rulesToDelete.dataSize()));
+
+            for (ZenModeConfig.ZenRule rule : rulesToDelete.mRules) {
+                config.automaticRules.remove(rule.id);
+            }
+
+            currentSize -= rulesToDelete.dataSize();
+        }
+    }
+
+    private static class PackageRules {
+        private final String mPkg;
+        private final List<ZenModeConfig.ZenRule> mRules;
+        private int mParceledSize = -1;
+
+        PackageRules(String pkg) {
+            mPkg = pkg;
+            mRules = new ArrayList<>();
+        }
+
+        private int dataSize() {
+            if (mParceledSize >= 0) {
+                return mParceledSize;
+            }
+            Parcel parcel = Parcel.obtain();
+            try {
+                parcel.writeParcelableList(mRules, 0);
+                mParceledSize = parcel.dataSize();
+                return mParceledSize;
+            } finally {
+                parcel.recycle();
+            }
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index 889df51..8b09c2a 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -48,6 +48,7 @@
 import static com.android.internal.util.FrameworkStatsLog.DND_MODE_RULE;
 import static com.android.internal.util.Preconditions.checkArgument;
 import static com.android.server.notification.Flags.preventZenDeviceEffectsWhileDriving;
+import static com.android.server.notification.Flags.limitZenConfigSize;
 
 import static java.util.Objects.requireNonNull;
 
@@ -192,6 +193,7 @@
     private final ConditionProviders.Config mServiceConfig;
     private final SystemUiSystemPropertiesFlags.FlagResolver mFlagResolver;
     private final ZenModeEventLogger mZenModeEventLogger;
+    private final ZenConfigTrimmer mConfigTrimmer;
 
     @VisibleForTesting protected int mZenMode;
     @VisibleForTesting protected NotificationManager.Policy mConsolidatedPolicy;
@@ -226,6 +228,7 @@
         mClock = clock;
         addCallback(mMetrics);
         mAppOps = context.getSystemService(AppOpsManager.class);
+        mConfigTrimmer = new ZenConfigTrimmer(mContext);
 
         mDefaultConfig = Flags.modesUi()
                 ? ZenModeConfig.getDefaultConfig()
@@ -2061,20 +2064,20 @@
                 Log.w(TAG, "Invalid config in setConfigLocked; " + config);
                 return false;
             }
+            if (limitZenConfigSize() && (origin == ORIGIN_APP || origin == ORIGIN_USER_IN_APP)) {
+                mConfigTrimmer.trimToMaximumSize(config);
+            }
+
             if (config.user != mUser) {
                 // simply store away for background users
-                synchronized (mConfigLock) {
-                    mConfigs.put(config.user, config);
-                }
+                mConfigs.put(config.user, config);
                 if (DEBUG) Log.d(TAG, "setConfigLocked: store config for user " + config.user);
                 return true;
             }
             // handle CPS backed conditions - danger! may modify config
             mConditions.evaluateConfig(config, null, false /*processSubscriptions*/);
 
-            synchronized (mConfigLock) {
-                mConfigs.put(config.user, config);
-            }
+            mConfigs.put(config.user, config);
             if (DEBUG) Log.d(TAG, "setConfigLocked reason=" + reason, new Throwable());
             ZenLog.traceConfig(origin, reason, triggeringComponent, mConfig, config, callingUid);
 
diff --git a/services/core/java/com/android/server/notification/flags.aconfig b/services/core/java/com/android/server/notification/flags.aconfig
index 76cd5c8..346d65a 100644
--- a/services/core/java/com/android/server/notification/flags.aconfig
+++ b/services/core/java/com/android/server/notification/flags.aconfig
@@ -212,6 +212,16 @@
 }
 
 flag {
+  name: "limit_zen_config_size"
+  namespace: "systemui"
+  description: "Enforce a maximum (serialized) size for the Zen configuration"
+  bug: "387498139"
+  metadata {
+    purpose: PURPOSE_BUGFIX
+  }
+}
+
+flag {
   name: "managed_services_concurrent_multiuser"
   namespace: "systemui"
   description: "Enables ManagedServices to support Concurrent multi user environment"
diff --git a/services/core/java/com/android/server/om/OverlayManagerService.java b/services/core/java/com/android/server/om/OverlayManagerService.java
index e613700..8d787fe 100644
--- a/services/core/java/com/android/server/om/OverlayManagerService.java
+++ b/services/core/java/com/android/server/om/OverlayManagerService.java
@@ -82,7 +82,6 @@
 import android.util.SparseArray;
 
 import com.android.internal.annotations.GuardedBy;
-import com.android.internal.annotations.KeepForWeakReference;
 import com.android.internal.content.PackageMonitor;
 import com.android.internal.content.om.OverlayConfig;
 import com.android.internal.util.ArrayUtils;
@@ -267,7 +266,6 @@
 
     private final OverlayActorEnforcer mActorEnforcer;
 
-    @KeepForWeakReference
     private final PackageMonitor mPackageMonitor = new OverlayManagerPackageMonitor();
 
     private int mPrevStartedUserId = -1;
diff --git a/services/core/java/com/android/server/om/OverlayManagerSettings.java b/services/core/java/com/android/server/om/OverlayManagerSettings.java
index cb01727..1ac9711 100644
--- a/services/core/java/com/android/server/om/OverlayManagerSettings.java
+++ b/services/core/java/com/android/server/om/OverlayManagerSettings.java
@@ -544,6 +544,7 @@
                     // and overwritten.
                     throw new XmlPullParserException("old version " + oldVersion + "; ignoring");
                 case 3:
+                case 4:
                     // Upgrading from version 3 to 5 is not a breaking change so do not ignore the
                     // overlay file.
                     return;
diff --git a/services/core/java/com/android/server/pm/AppDataHelper.java b/services/core/java/com/android/server/pm/AppDataHelper.java
index 29f8243..ae41519 100644
--- a/services/core/java/com/android/server/pm/AppDataHelper.java
+++ b/services/core/java/com/android/server/pm/AppDataHelper.java
@@ -24,6 +24,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SpecialUsers.CanBeALL;
 import android.annotation.UserIdInt;
 import android.content.pm.PackageManager;
 import android.os.CreateAppDataArgs;
@@ -548,7 +549,7 @@
         return prepareAppDataFuture;
     }
 
-    void clearAppDataLIF(AndroidPackage pkg, int userId, int flags) {
+    void clearAppDataLIF(AndroidPackage pkg, @CanBeALL @UserIdInt int userId, int flags) {
         if (pkg == null) {
             return;
         }
@@ -559,7 +560,8 @@
         }
     }
 
-    void clearAppDataLeafLIF(String packageName, String volumeUuid, int userId, int flags) {
+    void clearAppDataLeafLIF(String packageName, String volumeUuid, @CanBeALL @UserIdInt int userId,
+            int flags) {
         final Computer snapshot = mPm.snapshotComputer();
         final PackageStateInternal packageStateInternal =
                 snapshot.getPackageStateInternal(packageName);
diff --git a/services/core/java/com/android/server/pm/BackgroundInstallControlService.java b/services/core/java/com/android/server/pm/BackgroundInstallControlService.java
index c3af578..463989a 100644
--- a/services/core/java/com/android/server/pm/BackgroundInstallControlService.java
+++ b/services/core/java/com/android/server/pm/BackgroundInstallControlService.java
@@ -332,7 +332,8 @@
                 userId)
                 != PERMISSION_GRANTED) {
             if(Build.IS_DEBUGGABLE) {
-                Slog.d(TAG, "handlePackageAdd " + packageName + ": installer doesn't "
+                Slog.d(TAG, "handlePackageAdd " + packageName + ": installer ("
+                    + installerPackageName + ") doesn't "
                     + "have INSTALL_PACKAGES permission, skipping");
             }
             return;
diff --git a/services/core/java/com/android/server/pm/DeletePackageHelper.java b/services/core/java/com/android/server/pm/DeletePackageHelper.java
index 90adb66..38aa57f 100644
--- a/services/core/java/com/android/server/pm/DeletePackageHelper.java
+++ b/services/core/java/com/android/server/pm/DeletePackageHelper.java
@@ -24,6 +24,7 @@
 import static android.content.pm.PackageManager.DELETE_SUCCEEDED;
 import static android.content.pm.PackageManager.MATCH_KNOWN_PACKAGES;
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+import static android.os.UserHandle.USER_ALL;
 
 import static com.android.server.pm.InstructionSets.getAppDexInstructionSets;
 import static com.android.server.pm.PackageManagerService.DEBUG_COMPRESSION;
@@ -35,6 +36,8 @@
 import android.Manifest;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SpecialUsers.CanBeALL;
+import android.annotation.UserIdInt;
 import android.app.ApplicationExitInfo;
 import android.app.ApplicationPackageManager;
 import android.content.Intent;
@@ -120,7 +123,7 @@
         final boolean res;
 
         final int removeUser = (deleteFlags & PackageManager.DELETE_ALL_USERS) != 0
-                ? UserHandle.USER_ALL : userId;
+                ? USER_ALL : userId;
 
         final PackageSetting uninstalledPs;
         final PackageSetting disabledSystemPs;
@@ -181,7 +184,7 @@
                 if (libraryInfo != null) {
                     boolean flagSdkLibIndependence = Flags.sdkLibIndependence();
                     for (int currUserId : allUsers) {
-                        if (removeUser != UserHandle.USER_ALL && removeUser != currUserId) {
+                        if (removeUser != USER_ALL && removeUser != currUserId) {
                             continue;
                         }
                         var libClientPackagesPair = computer.getPackagesUsingSharedLibrary(
@@ -225,7 +228,7 @@
                     && ((deleteFlags & PackageManager.DELETE_SYSTEM_APP) == 0)) {
                 // We're downgrading a system app, which will apply to all users, so
                 // freeze them all during the downgrade
-                freezeUser = UserHandle.USER_ALL;
+                freezeUser = USER_ALL;
                 priorUserStates = new SparseArray<>();
                 for (int i = 0; i < allUsers.length; i++) {
                     PackageUserState userState = uninstalledPs.readUserState(allUsers[i]);
@@ -419,7 +422,7 @@
         if (PackageManagerServiceUtils.isSystemApp(ps)) {
             final boolean deleteSystem = (flags & PackageManager.DELETE_SYSTEM_APP) != 0;
             final boolean deleteAllUsers =
-                    user == null || user.getIdentifier() == UserHandle.USER_ALL;
+                    user == null || user.getIdentifier() == USER_ALL;
             if ((!deleteSystem || deleteAllUsers) && disabledPs == null) {
                 Slog.w(TAG, "Attempt to delete unknown system package "
                         + ps.getPkg().getPackageName());
@@ -462,9 +465,9 @@
                     Manifest.permission.SUSPEND_APPS, packageName, userId) == PERMISSION_GRANTED);
         }
 
-        final int userId = user == null ? UserHandle.USER_ALL : user.getIdentifier();
+        final int userId = user == null ? USER_ALL : user.getIdentifier();
         // Remember which users are affected, before the installed states are modified
-        outInfo.mRemovedUsers = userId == UserHandle.USER_ALL
+        outInfo.mRemovedUsers = userId == USER_ALL
                 ? ps.queryUsersInstalledOrHasData(allUserHandles)
                 : new int[]{userId};
         outInfo.populateBroadcastUsers(ps);
@@ -477,7 +480,7 @@
         outInfo.mRemovedPackageVersionCode = ps.getVersionCode();
 
         if ((!systemApp || (flags & PackageManager.DELETE_SYSTEM_APP) != 0)
-                && userId != UserHandle.USER_ALL) {
+                && userId != USER_ALL) {
             // The caller is asking that the package only be deleted for a single
             // user.  To do this, we just mark its uninstalled state and delete
             // its data. If this is a system app, we only allow this to happen if
@@ -550,7 +553,7 @@
         for (final int affectedUserId : outInfo.mRemovedUsers) {
             if (hadSuspendAppsPermission.get(affectedUserId)) {
                 mPm.unsuspendForSuspendingPackage(snapshot, packageName,
-                        affectedUserId /*suspendingUserId*/, true /*inAllUsers*/);
+                        affectedUserId /*suspendingUserId*/, USER_ALL);
                 mPm.removeAllDistractingPackageRestrictions(snapshot, affectedUserId);
             }
         }
@@ -562,7 +565,7 @@
     }
 
     @GuardedBy("mPm.mInstallLock")
-    private void deleteInstalledPackageLIF(PackageSetting ps, int userId,
+    private void deleteInstalledPackageLIF(PackageSetting ps, @CanBeALL @UserIdInt int userId,
             boolean deleteCodeAndResources, int flags, @NonNull int[] allUserHandles,
             @NonNull PackageRemovedInfo outInfo, boolean writeSettings) {
         synchronized (mPm.mLock) {
@@ -588,7 +591,7 @@
 
     @GuardedBy("mPm.mLock")
     private void markPackageUninstalledForUserLPw(PackageSetting ps, UserHandle user, int flags) {
-        final int[] userIds = (user == null || user.getIdentifier() == UserHandle.USER_ALL)
+        final int[] userIds = (user == null || user.getIdentifier() == USER_ALL)
                 ? mUserManagerInternal.getUserIds()
                 : new int[] {user.getIdentifier()};
         for (int nextUserId : userIds) {
@@ -685,7 +688,7 @@
             flags |= PackageManager.DELETE_KEEP_DATA;
         }
         try (PackageManagerTracedLock installLock = mPm.mInstallLock.acquireLock()) {
-            deleteInstalledPackageLIF(deletedPs, UserHandle.USER_ALL, true, flags, allUserHandles,
+            deleteInstalledPackageLIF(deletedPs, USER_ALL, true, flags, allUserHandles,
                     outInfo, writeSettings);
         }
     }
diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java
index 2811747..f96846c 100644
--- a/services/core/java/com/android/server/pm/InstallPackageHelper.java
+++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java
@@ -1398,6 +1398,8 @@
             Map<String, Boolean> createdAppId, boolean success) {
         if (success) {
             for (InstallRequest request : requests) {
+                mInjector.getAppOpsManagerInternal().onPackageAdded(
+                        request.getName(), request.getAppId());
                 if (request.getDataLoaderType() != DataLoaderType.INCREMENTAL) {
                     continue;
                 }
diff --git a/services/core/java/com/android/server/pm/PackageFreezer.java b/services/core/java/com/android/server/pm/PackageFreezer.java
index 11f2059..d66eb81 100644
--- a/services/core/java/com/android/server/pm/PackageFreezer.java
+++ b/services/core/java/com/android/server/pm/PackageFreezer.java
@@ -18,6 +18,8 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SpecialUsers.CanBeALL;
+import android.annotation.UserIdInt;
 import android.content.pm.Flags;
 import android.content.pm.PackageManager;
 
@@ -60,12 +62,12 @@
         }
     }
 
-    PackageFreezer(String packageName, int userId, String killReason,
+    PackageFreezer(String packageName, @CanBeALL @UserIdInt int userId, String killReason,
             PackageManagerService pm, int exitInfoReason, @Nullable InstallRequest request) {
         this(packageName, userId, killReason, pm, exitInfoReason, request, false);
     }
 
-    PackageFreezer(String packageName, int userId, String killReason,
+    PackageFreezer(String packageName, @CanBeALL @UserIdInt int userId, String killReason,
             PackageManagerService pm, int exitInfoReason, @Nullable InstallRequest request,
             boolean waitAppKilled) {
         mPm = pm;
diff --git a/services/core/java/com/android/server/pm/PackageManagerInternalBase.java b/services/core/java/com/android/server/pm/PackageManagerInternalBase.java
index ed568b8..f5230c5 100644
--- a/services/core/java/com/android/server/pm/PackageManagerInternalBase.java
+++ b/services/core/java/com/android/server/pm/PackageManagerInternalBase.java
@@ -689,7 +689,7 @@
         final int suspendingUserId =
                 crossUserSuspensionEnabledRo() ? UserHandle.USER_SYSTEM : affectedUser;
         mService.unsuspendForSuspendingPackage(
-                snapshot(), PLATFORM_PACKAGE_NAME, suspendingUserId, /* inAllUsers= */ false);
+                snapshot(), PLATFORM_PACKAGE_NAME, suspendingUserId, affectedUser);
     }
 
     @Override
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 2464a29..b60812c 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -34,6 +34,7 @@
 import static android.crashrecovery.flags.Flags.refactorCrashrecovery;
 import static android.os.Process.INVALID_UID;
 import static android.os.Trace.TRACE_TAG_PACKAGE_MANAGER;
+import static android.os.UserHandle.USER_ALL;
 import static android.os.storage.StorageManager.FLAG_STORAGE_CE;
 import static android.os.storage.StorageManager.FLAG_STORAGE_DE;
 import static android.os.storage.StorageManager.FLAG_STORAGE_EXTERNAL;
@@ -50,12 +51,14 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SpecialUsers.CanBeALL;
 import android.annotation.StringRes;
 import android.annotation.UserIdInt;
 import android.annotation.WorkerThread;
 import android.app.ActivityManager;
 import android.app.ActivityManagerInternal;
 import android.app.AppOpsManager;
+import android.app.AppOpsManagerInternal;
 import android.app.ApplicationExitInfo;
 import android.app.ApplicationPackageManager;
 import android.app.BroadcastOptions;
@@ -1586,13 +1589,13 @@
     }
 
     void scheduleWritePackageRestrictions(UserHandle user) {
-        final int userId = user == null ? UserHandle.USER_ALL : user.getIdentifier();
+        final int userId = user == null ? USER_ALL : user.getIdentifier();
         scheduleWritePackageRestrictions(userId);
     }
 
-    void scheduleWritePackageRestrictions(int userId) {
+    void scheduleWritePackageRestrictions(@CanBeALL @UserIdInt int userId) {
         invalidatePackageInfoCache();
-        if (userId == UserHandle.USER_ALL) {
+        if (userId == USER_ALL) {
             synchronized (mDirtyUsers) {
                 for (int aUserId : mUserManager.getUserIds()) {
                     mDirtyUsers.add(aUserId);
@@ -1690,6 +1693,7 @@
                 (i, pm) -> new ComponentResolver(i.getUserManagerService(), pm.mUserNeedsBadging),
                 (i, pm) -> PermissionManagerService.create(context,
                         i.getSystemConfig().getAvailableFeatures()),
+                (i, pm) -> LocalServices.getService(AppOpsManagerInternal.class),
                 (i, pm) -> new UserManagerService(context, pm,
                         new UserDataPreparer(installer, installLock, context), lock),
                 (i, pm) -> new Settings(Environment.getDataDirectory(),
@@ -1805,7 +1809,7 @@
     private void installAllowlistedSystemPackages() {
         if (mUserManager.installWhitelistedSystemPackages(isFirstBoot(), isDeviceUpgrading(),
                 mExistingPackages)) {
-            scheduleWritePackageRestrictions(UserHandle.USER_ALL);
+            scheduleWritePackageRestrictions(USER_ALL);
             scheduleWriteSettings();
         }
     }
@@ -2392,7 +2396,7 @@
                     final PackageSetting ps = packageSettings.valueAt(i);
                     if (Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, ps.getVolumeUuid())) {
                         // No apps are running this early, so no need to freeze
-                        mAppDataHelper.clearAppDataLIF(ps.getPkg(), UserHandle.USER_ALL,
+                        mAppDataHelper.clearAppDataLIF(ps.getPkg(), USER_ALL,
                                 FLAG_STORAGE_DE | FLAG_STORAGE_CE | FLAG_STORAGE_EXTERNAL
                                         | Installer.FLAG_CLEAR_CODE_CACHE_ONLY
                                         | Installer.FLAG_CLEAR_APP_DATA_KEEP_ART_PROFILES);
@@ -3074,8 +3078,8 @@
     }
 
     @NonNull
-    int[] resolveUserIds(int userId) {
-        return (userId == UserHandle.USER_ALL) ? mUserManager.getUserIds() : new int[] { userId };
+    int[] resolveUserIds(@CanBeALL @UserIdInt int userId) {
+        return (userId == USER_ALL) ? mUserManager.getUserIds() : new int[]{userId};
     }
 
     private void setUpInstantAppInstallerActivityLP(ActivityInfo installerActivity) {
@@ -3108,11 +3112,11 @@
     }
 
     void killApplication(String pkgName, @AppIdInt int appId, String reason, int exitInfoReason) {
-        killApplication(pkgName, appId, UserHandle.USER_ALL, reason, exitInfoReason);
+        killApplication(pkgName, appId, USER_ALL, reason, exitInfoReason);
     }
 
     void killApplication(String pkgName, @AppIdInt int appId,
-            @UserIdInt int userId, String reason, int exitInfoReason) {
+            @CanBeALL @UserIdInt int userId, String reason, int exitInfoReason) {
         // Request the ActivityManager to kill the process(only for existing packages)
         // so that we do not end up in a confused state while the user is still using the older
         // version of the application while the new one gets installed.
@@ -3131,7 +3135,7 @@
     }
 
     void killApplicationSync(String pkgName, @AppIdInt int appId,
-            @UserIdInt int userId, String reason, int exitInfoReason) {
+            @CanBeALL @UserIdInt int userId, String reason, int exitInfoReason) {
         ActivityManagerInternal mAmi = LocalServices.getService(ActivityManagerInternal.class);
         if (Thread.holdsLock(mLock) || mAmi == null) {
             // holds PM's lock, go back killApplication to avoid it run into watchdog reset.
@@ -3228,23 +3232,24 @@
     }
 
     /**
-     * @param inAllUsers Whether to unsuspend packages suspended by the given package in other
-     *                   users. This flag is only used when cross-user suspension is enabled.
+     * @param suspendingUserId The user that has suspended apps using the suspending package.
+     * @param targetUserId The user whose apps should be unsuspended. Pass {@code USER_ALL} to
+     *                     unsuspend for all users.
      */
     void unsuspendForSuspendingPackage(@NonNull Computer computer, String suspendingPackage,
-            @UserIdInt int suspendingUserId, boolean inAllUsers) {
+            @UserIdInt int suspendingUserId, @CanBeALL @UserIdInt int targetUserId) {
         // TODO: This can be replaced by a special parameter to iterate all packages, rather than
         //  this weird pre-collect of all packages.
         final String[] allPackages = computer.getPackageStates().keySet().toArray(new String[0]);
         final Predicate<UserPackage> suspenderPredicate =
                 UserPackage.of(suspendingUserId, suspendingPackage)::equals;
-        if (!crossUserSuspensionEnabledRo() || !inAllUsers) {
+        if (!crossUserSuspensionEnabledRo() || targetUserId != USER_ALL) {
             mSuspendPackageHelper.removeSuspensionsBySuspendingPackage(computer,
-                    allPackages, suspenderPredicate, suspendingUserId);
+                    allPackages, suspenderPredicate, targetUserId);
         } else {
-            for (int targetUserId: mUserManager.getUserIds()) {
+            for (int user : mUserManager.getUserIds()) {
                 mSuspendPackageHelper.removeSuspensionsBySuspendingPackage(
-                        computer, allPackages, suspenderPredicate, targetUserId);
+                        computer, allPackages, suspenderPredicate, user);
             }
         }
     }
@@ -3381,11 +3386,11 @@
                 && !snapshot.isCallerSameApp(packageName, callingUid)) {
             return false;
         }
-        return isPackageDeviceAdmin(packageName, UserHandle.USER_ALL);
+        return isPackageDeviceAdmin(packageName, USER_ALL);
     }
 
     // TODO(b/261957226): centralise this logic in DPM
-    boolean isPackageDeviceAdmin(String packageName, int userId) {
+    boolean isPackageDeviceAdmin(String packageName, @CanBeALL @UserIdInt int userId) {
         final IDevicePolicyManager dpm = getDevicePolicyManager();
         final DevicePolicyManagerInternal dpmi =
                 mInjector.getLocalService(DevicePolicyManagerInternal.class);
@@ -3405,7 +3410,7 @@
                 // Does it contain a device admin for any user?
                 int[] allUsers = mUserManager.getUserIds();
                 int[] targetUsers;
-                if (userId == UserHandle.USER_ALL) {
+                if (userId == USER_ALL) {
                     targetUsers = allUsers;
                 } else {
                     targetUsers = new int[]{userId};
@@ -3555,7 +3560,7 @@
     /** This method takes a specific user id as well as UserHandle.USER_ALL. */
     @GuardedBy("mLock")
     void clearPackagePreferredActivitiesLPw(String packageName,
-            @NonNull SparseBooleanArray outUserChanged, int userId) {
+            @NonNull SparseBooleanArray outUserChanged, @CanBeALL @UserIdInt int userId) {
         mSettings.clearPackagePreferredActivities(packageName, outUserChanged, userId);
     }
 
@@ -4152,7 +4157,7 @@
                 // This app should not generally be allowed to get disabled by the UI, but
                 // if it ever does, we don't want to end up with some of the user's apps
                 // permanently suspended.
-                unsuspendForSuspendingPackage(computer, packageName, userId, true /* inAllUsers */);
+                unsuspendForSuspendingPackage(computer, packageName, userId, USER_ALL);
                 removeAllDistractingPackageRestrictions(computer, userId);
             }
             success = true;
@@ -4243,9 +4248,9 @@
         };
         mContext.getContentResolver().registerContentObserver(android.provider.Settings.Global
                         .getUriFor(Global.ENABLE_EPHEMERAL_FEATURE),
-                false, co, UserHandle.USER_ALL);
+                false, co, USER_ALL);
         mContext.getContentResolver().registerContentObserver(android.provider.Settings.Secure
-                .getUriFor(Secure.INSTANT_APPS_ENABLED), false, co, UserHandle.USER_ALL);
+                .getUriFor(Secure.INSTANT_APPS_ENABLED), false, co, USER_ALL);
         co.onChange(true);
 
         mAppsFilter.onSystemReady(LocalServices.getService(PackageManagerInternal.class));
@@ -4388,14 +4393,14 @@
         }
     }
 
-    public PackageFreezer freezePackage(String packageName, int userId, String killReason,
-            int exitInfoReason, InstallRequest request) {
+    public PackageFreezer freezePackage(String packageName, @CanBeALL @UserIdInt int userId,
+            String killReason, int exitInfoReason, InstallRequest request) {
         return freezePackage(packageName, userId, killReason, exitInfoReason, request,
                 /* waitAppKilled= */ false);
     }
 
-    private PackageFreezer freezePackage(String packageName, int userId, String killReason,
-            int exitInfoReason, InstallRequest request, boolean waitAppKilled) {
+    private PackageFreezer freezePackage(String packageName, @CanBeALL @UserIdInt int userId,
+            String killReason, int exitInfoReason, InstallRequest request, boolean waitAppKilled) {
         return new PackageFreezer(packageName, userId, killReason, this, exitInfoReason, request,
                 waitAppKilled);
     }
@@ -4773,7 +4778,7 @@
             final Computer snapshot = snapshotComputer();
             final AndroidPackage pkg = snapshot.getPackage(packageName);
             try (PackageFreezer ignored =
-                            freezePackage(packageName, UserHandle.USER_ALL,
+                            freezePackage(packageName, USER_ALL,
                                     "clearApplicationProfileData",
                                     ApplicationExitInfo.REASON_OTHER, null /* request */)) {
                 try (PackageManagerTracedLock installLock = mInstallLock.acquireLock()) {
@@ -4819,7 +4824,7 @@
                 public void run() {
                     mHandler.removeCallbacks(this);
                     final boolean succeeded;
-                    try (PackageFreezer freezer = freezePackage(packageName, UserHandle.USER_ALL,
+                    try (PackageFreezer freezer = freezePackage(packageName, USER_ALL,
                             "clearApplicationUserData",
                             ApplicationExitInfo.REASON_USER_REQUESTED, null /* request */,
                             /* waitAppKilled= */ true)) {
@@ -4846,7 +4851,7 @@
                                 == PERMISSION_GRANTED) {
                             final Computer snapshot = snapshotComputer();
                             unsuspendForSuspendingPackage(
-                                    snapshot, packageName, userId, true /* inAllUsers */);
+                                    snapshot, packageName, userId, USER_ALL);
                             removeAllDistractingPackageRestrictions(snapshot, userId);
                             synchronized (mLock) {
                                 flushPackageRestrictionsAsUserInternalLocked(userId);
@@ -6371,13 +6376,13 @@
             if (mComponentResolver.updateMimeGroup(snapshotComputer(), packageName, mimeGroup)) {
                 Binder.withCleanCallingIdentity(() -> {
                     mPreferredActivityHelper.clearPackagePreferredActivities(packageName,
-                            UserHandle.USER_ALL);
+                            USER_ALL);
                     // Send the ACTION_PACKAGE_CHANGED when the mimeGroup has changes
                     final Computer snapShot = snapshotComputer();
                     final ArrayList<String> components = new ArrayList<>(
                             Collections.singletonList(packageName));
                     final int appId = packageState.getAppId();
-                    final int[] userIds = resolveUserIds(UserHandle.USER_ALL);
+                    final int[] userIds = resolveUserIds(USER_ALL);
                     final String reason = "The mimeGroup is changed";
                     for (int i = 0; i < userIds.length; i++) {
                         final PackageUserStateInternal pkgUserState =
diff --git a/services/core/java/com/android/server/pm/PackageManagerServiceInjector.java b/services/core/java/com/android/server/pm/PackageManagerServiceInjector.java
index ae2eaeb..a9d367e 100644
--- a/services/core/java/com/android/server/pm/PackageManagerServiceInjector.java
+++ b/services/core/java/com/android/server/pm/PackageManagerServiceInjector.java
@@ -17,6 +17,7 @@
 package com.android.server.pm;
 
 import android.app.ActivityManagerInternal;
+import android.app.AppOpsManagerInternal;
 import android.app.backup.IBackupManager;
 import android.content.ComponentName;
 import android.content.Context;
@@ -96,6 +97,7 @@
             mComponentResolverProducer;
     private final Singleton<PermissionManagerServiceInternal>
             mPermissionManagerServiceProducer;
+    private final Singleton<AppOpsManagerInternal> mAppOpsManagerInternalProducer;
     private final Singleton<UserManagerService>
             mUserManagerProducer;
     private final Singleton<Settings> mSettingsProducer;
@@ -149,6 +151,7 @@
             List<ScanPartition> systemPartitions,
             Producer<ComponentResolver> componentResolverProducer,
             Producer<PermissionManagerServiceInternal> permissionManagerServiceProducer,
+            Producer<AppOpsManagerInternal> appOpsManagerInternalProducer,
             Producer<UserManagerService> userManagerProducer,
             Producer<Settings> settingsProducer,
             Producer<AppsFilterImpl> appsFilterProducer,
@@ -194,6 +197,7 @@
                 componentResolverProducer);
         mPermissionManagerServiceProducer = new Singleton<>(
                 permissionManagerServiceProducer);
+        mAppOpsManagerInternalProducer = new Singleton<>(appOpsManagerInternalProducer);
         mUserManagerProducer = new Singleton<>(userManagerProducer);
         mSettingsProducer = new Singleton<>(settingsProducer);
         mAppsFilterProducer = new Singleton<>(appsFilterProducer);
@@ -290,6 +294,10 @@
         return mPermissionManagerServiceProducer.get(this, mPackageManager);
     }
 
+    public AppOpsManagerInternal getAppOpsManagerInternal() {
+        return mAppOpsManagerInternalProducer.get(this, mPackageManager);
+    }
+
     public Context getContext() {
         return mContext;
     }
diff --git a/services/core/java/com/android/server/pm/PreferredActivityHelper.java b/services/core/java/com/android/server/pm/PreferredActivityHelper.java
index 41d2aeb..fa56596 100644
--- a/services/core/java/com/android/server/pm/PreferredActivityHelper.java
+++ b/services/core/java/com/android/server/pm/PreferredActivityHelper.java
@@ -25,6 +25,7 @@
 import static com.android.server.pm.PackageManagerService.TAG;
 
 import android.annotation.NonNull;
+import android.annotation.SpecialUsers.CanBeALL;
 import android.annotation.UserIdInt;
 import android.content.ComponentName;
 import android.content.Intent;
@@ -115,7 +116,8 @@
     }
 
     /** This method takes a specific user id as well as UserHandle.USER_ALL. */
-    public void clearPackagePreferredActivities(String packageName, int userId) {
+    public void clearPackagePreferredActivities(String packageName,
+            @CanBeALL @UserIdInt int userId) {
         final SparseBooleanArray changedUsers = new SparseBooleanArray();
         synchronized (mPm.mLock) {
             mPm.clearPackagePreferredActivitiesLPw(packageName, changedUsers, userId);
diff --git a/services/core/java/com/android/server/pm/RemovePackageHelper.java b/services/core/java/com/android/server/pm/RemovePackageHelper.java
index f01a74e..22b4ec7 100644
--- a/services/core/java/com/android/server/pm/RemovePackageHelper.java
+++ b/services/core/java/com/android/server/pm/RemovePackageHelper.java
@@ -30,6 +30,8 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SpecialUsers.CanBeALL;
+import android.annotation.UserIdInt;
 import android.content.pm.PackageManager;
 import android.content.pm.parsing.ApkLiteParseUtils;
 import android.content.pm.parsing.PackageLite;
@@ -256,7 +258,8 @@
      * Make sure this flag is set for partially installed apps. If not it's meaningless to
      * delete a partially installed application.
      */
-    public void clearPackageStateForUserLIF(PackageSetting ps, int userId, int flags) {
+    public void clearPackageStateForUserLIF(PackageSetting ps, @CanBeALL @UserIdInt int userId,
+            int flags) {
         final String packageName = ps.getPackageName();
         // Step 1: always destroy app profiles except when explicitly preserved
         if ((flags & Installer.FLAG_CLEAR_APP_DATA_KEEP_ART_PROFILES) == 0) {
@@ -370,13 +373,13 @@
      * This method deletes the package from internal data structures such as mPackages / mSettings.
      *
      * @param targetUserId indicates the target user of the deletion. It equals to
-     *                     {@link UserHandle.USER_ALL} if the deletion was initiated for all users,
+     *                     {@link UserHandle#USER_ALL} if the deletion was initiated for all users,
      *                     otherwise it equals to the specific user id that the deletion was meant
      *                     for.
      */
     @GuardedBy("mPm.mInstallLock")
-    public void removePackageDataLIF(final PackageSetting deletedPs, int targetUserId,
-            @NonNull int[] allUserHandles,
+    public void removePackageDataLIF(final PackageSetting deletedPs,
+            @CanBeALL @UserIdInt int targetUserId, @NonNull int[] allUserHandles,
             @NonNull PackageRemovedInfo outInfo, int flags, boolean writeSettings) {
         String packageName = deletedPs.getPackageName();
         if (DEBUG_REMOVE) Slog.d(TAG, "removePackageDataLI: " + deletedPs);
@@ -482,7 +485,8 @@
         }
     }
 
-    private static boolean shouldDeletePackageSetting(PackageSetting deletedPs, int userId,
+    private static boolean shouldDeletePackageSetting(PackageSetting deletedPs,
+                                                      @CanBeALL @UserIdInt int userId,
                                                       int[] allUserHandles, int flags) {
         if ((flags & PackageManager.DELETE_KEEP_DATA) != 0) {
             return false;
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 485a280..92257f1 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -35,6 +35,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SpecialUsers.CanBeALL;
 import android.annotation.UserIdInt;
 import android.app.compat.ChangeIdStateCache;
 import android.content.ComponentName;
@@ -6639,7 +6640,7 @@
 
     /** This method takes a specific user id as well as UserHandle.USER_ALL. */
     void clearPackagePreferredActivities(String packageName,
-            @NonNull SparseBooleanArray outUserChanged, int userId) {
+            @NonNull SparseBooleanArray outUserChanged, @CanBeALL @UserIdInt int userId) {
         boolean changed = false;
         ArrayList<PreferredActivity> removed = null;
         for (int i = 0; i < mPreferredActivities.size(); i++) {
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index c7737e9..5a6d7a2 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -2937,28 +2937,20 @@
 
         int flags = UserManager.SWITCHABILITY_STATUS_OK;
 
-        t.traceBegin("TM.isInCall");
-        final long identity = Binder.clearCallingIdentity();
-        try {
-            final TelecomManager telecomManager = mContext.getSystemService(TelecomManager.class);
-            if (com.android.internal.telephony.flags
-                    .Flags.enforceTelephonyFeatureMappingForPublicApis()) {
-                if (mContext.getPackageManager().hasSystemFeature(
-                        PackageManager.FEATURE_TELECOM)) {
-                    if (telecomManager != null && telecomManager.isInCall()) {
-                        flags |= UserManager.SWITCHABILITY_STATUS_USER_IN_CALL;
-                    }
-                }
-            } else {
+        if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELECOM)) {
+            t.traceBegin("TM.isInCall");
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                final TelecomManager telecomManager = mContext.getSystemService(
+                        TelecomManager.class);
                 if (telecomManager != null && telecomManager.isInCall()) {
                     flags |= UserManager.SWITCHABILITY_STATUS_USER_IN_CALL;
                 }
+            } finally {
+                Binder.restoreCallingIdentity(identity);
             }
-        } finally {
-            Binder.restoreCallingIdentity(identity);
+            t.traceEnd();
         }
-        t.traceEnd();
-
         t.traceBegin("hasUserRestriction-DISALLOW_USER_SWITCH");
         if (mLocalService.hasUserRestriction(DISALLOW_USER_SWITCH, userId)) {
             flags |= UserManager.SWITCHABILITY_STATUS_USER_SWITCH_DISALLOWED;
@@ -5784,8 +5776,8 @@
         final boolean isRestricted = UserManager.isUserTypeRestricted(userType);
         final boolean isDemo = UserManager.isUserTypeDemo(userType);
         final boolean isManagedProfile = UserManager.isUserTypeManagedProfile(userType);
-        final boolean isCommunalProfile = UserManager.isUserTypeCommunalProfile(userType);
         final boolean isPrivateProfile = UserManager.isUserTypePrivateProfile(userType);
+        final boolean requiresProfileParent = userTypeDetails.isProfileParentRequired();
 
         final long ident = Binder.clearCallingIdentity();
         UserInfo userInfo;
@@ -5825,7 +5817,7 @@
                             UserManager.USER_OPERATION_ERROR_MAX_USERS);
                 }
                 // TODO(b/142482943): Perhaps let the following code apply to restricted users too.
-                if (isProfile && !isCommunalProfile &&
+                if (requiresProfileParent &&
                         !canAddMoreProfilesToUser(userType, parentId, false)) {
                     throwCheckedUserOperationException(
                             "Cannot add more profiles of type " + userType
diff --git a/services/core/java/com/android/server/pm/UserTypeDetails.java b/services/core/java/com/android/server/pm/UserTypeDetails.java
index 19410e5..c1f63f0 100644
--- a/services/core/java/com/android/server/pm/UserTypeDetails.java
+++ b/services/core/java/com/android/server/pm/UserTypeDetails.java
@@ -112,6 +112,9 @@
      */
     private final @Nullable List<DefaultCrossProfileIntentFilter> mDefaultCrossProfileIntentFilters;
 
+    /** Whether the {@link #isProfile() profile} requires having a parent (as most profiles do). */
+    private final boolean mProfileParentRequired;
+
 
     // Fields for profiles only, controlling the nature of their badges.
     // All badge information should be set if {@link #hasBadge()} is true.
@@ -174,7 +177,7 @@
 
     private UserTypeDetails(@NonNull String name, boolean enabled, int maxAllowed,
             @UserInfoFlag int baseType, @UserInfoFlag int defaultUserInfoPropertyFlags,
-            @Nullable int[] labels, int maxAllowedPerParent,
+            @Nullable int[] labels, int maxAllowedPerParent, boolean profileParentRequired,
             int iconBadge, int badgePlain, int badgeNoBackground,
             int statusBarIcon,
             @Nullable int[] badgeLabels, @Nullable int[] badgeColors,
@@ -195,6 +198,7 @@
         this.mDefaultSystemSettings = defaultSystemSettings;
         this.mDefaultSecureSettings = defaultSecureSettings;
         this.mDefaultCrossProfileIntentFilters = defaultCrossProfileIntentFilters;
+        this.mProfileParentRequired = profileParentRequired;
         this.mIconBadge = iconBadge;
         this.mBadgePlain = badgePlain;
         this.mBadgeNoBackground = badgeNoBackground;
@@ -249,6 +253,14 @@
     }
 
     /**
+     * Returns whether this type of {@link #isProfile() profile} requires having a parent.
+     * Inapplicable to non-profiles (and therefore inapplicable to restricted profiles).
+     */
+    public boolean isProfileParentRequired() {
+        return mProfileParentRequired;
+    }
+
+    /**
      * Returns the resource ID corresponding to the badgeIndexth label name where the badgeIndex is
      * expected to be the {@link UserInfo#profileBadge} of the user. If badgeIndex exceeds the
      * number of labels, returns the label for the highest index.
@@ -406,6 +418,7 @@
             UserRestrictionsUtils.dumpRestrictions(pw, restrictionsPrefix, mDefaultRestrictions);
         }
 
+        pw.print(prefix); pw.print("mProfileParentRequired: "); pw.println(mProfileParentRequired);
         pw.print(prefix); pw.print("mIconBadge: "); pw.println(mIconBadge);
         pw.print(prefix); pw.print("mBadgePlain: "); pw.println(mBadgePlain);
         pw.print(prefix); pw.print("mBadgeNoBackground: "); pw.println(mBadgeNoBackground);
@@ -438,6 +451,7 @@
         private @Nullable int[] mBadgeLabels = null;
         private @Nullable int[] mBadgeColors = null;
         private @Nullable int[] mDarkThemeBadgeColors = null;
+        private boolean mProfileParentRequired = false;
         private @DrawableRes int mIconBadge = Resources.ID_NULL;
         private @DrawableRes int mBadgePlain = Resources.ID_NULL;
         private @DrawableRes int mBadgeNoBackground = Resources.ID_NULL;
@@ -487,14 +501,17 @@
             return this;
         }
 
-        /**
-         * The badge colors when the badge is on a dark background.
-         */
+        /** The badge colors when the badge is on a dark background. */
         public Builder setDarkThemeBadgeColors(@ColorRes int ... darkThemeBadgeColors) {
             mDarkThemeBadgeColors = darkThemeBadgeColors;
             return this;
         }
 
+        public Builder setProfileParentRequired(boolean profileParentRequired) {
+            mProfileParentRequired = profileParentRequired;
+            return this;
+        }
+
         public Builder setIconBadge(@DrawableRes int badgeIcon) {
             mIconBadge = badgeIcon;
             return this;
@@ -541,9 +558,7 @@
             return this;
         }
 
-        /**
-         * Sets the accessibility label associated with the user
-         */
+        /** Sets the accessibility label associated with the user */
         public Builder setAccessibilityString(@StringRes int accessibilityString) {
             mAccessibilityString = accessibilityString;
             return this;
@@ -590,6 +605,8 @@
                                 || mDefaultCrossProfileIntentFilters.isEmpty(),
                         "UserTypeDetails %s has a non empty "
                                 + "defaultCrossProfileIntentFilters", mName);
+                Preconditions.checkArgument(!mProfileParentRequired,
+                        "UserTypeDetails %s requires a parent but isn't a profile", mName);
             }
             return new UserTypeDetails(
                     mName,
@@ -599,6 +616,7 @@
                     mDefaultUserInfoPropertyFlags,
                     mLabels,
                     mMaxAllowedPerParent,
+                    mProfileParentRequired,
                     mIconBadge,
                     mBadgePlain,
                     mBadgeNoBackground,
diff --git a/services/core/java/com/android/server/pm/UserTypeFactory.java b/services/core/java/com/android/server/pm/UserTypeFactory.java
index 2715025..58c5b1c 100644
--- a/services/core/java/com/android/server/pm/UserTypeFactory.java
+++ b/services/core/java/com/android/server/pm/UserTypeFactory.java
@@ -128,6 +128,7 @@
                 .setName(USER_TYPE_PROFILE_CLONE)
                 .setBaseType(FLAG_PROFILE)
                 .setMaxAllowedPerParent(1)
+                .setProfileParentRequired(true)
                 .setLabels(R.string.profile_label_clone)
                 .setIconBadge(com.android.internal.R.drawable.ic_clone_icon_badge)
                 .setBadgePlain(com.android.internal.R.drawable.ic_clone_badge)
@@ -177,6 +178,7 @@
                 .setBaseType(FLAG_PROFILE)
                 .setDefaultUserInfoPropertyFlags(FLAG_MANAGED_PROFILE)
                 .setMaxAllowedPerParent(1)
+                .setProfileParentRequired(true)
                 .setLabels(
                         R.string.profile_label_work,
                         R.string.profile_label_work_2,
@@ -226,6 +228,7 @@
                 .setName(USER_TYPE_PROFILE_TEST)
                 .setBaseType(FLAG_PROFILE)
                 .setMaxAllowedPerParent(2)
+                .setProfileParentRequired(true)
                 .setLabels(
                         R.string.profile_label_test,
                         R.string.profile_label_test,
@@ -259,6 +262,7 @@
                 .setName(USER_TYPE_PROFILE_COMMUNAL)
                 .setBaseType(FLAG_PROFILE)
                 .setMaxAllowed(1)
+                .setProfileParentRequired(false)
                 .setEnabled(UserManager.isCommunalProfileEnabled() ? 1 : 0)
                 .setLabels(R.string.profile_label_communal)
                 .setIconBadge(com.android.internal.R.drawable.ic_test_icon_badge_experiment)
@@ -295,6 +299,7 @@
         return new UserTypeDetails.Builder()
                 .setName(USER_TYPE_PROFILE_PRIVATE)
                 .setBaseType(FLAG_PROFILE)
+                .setProfileParentRequired(true)
                 .setMaxAllowedPerParent(1)
                 .setEnabled(UserManager.isPrivateProfileEnabled() ? 1 : 0)
                 .setLabels(R.string.profile_label_private)
@@ -387,6 +392,7 @@
                 .setBaseType(FLAG_FULL)
                 .setDefaultUserInfoPropertyFlags(FLAG_RESTRICTED)
                 .setMaxAllowed(UNLIMITED_NUMBER_OF_USERS)
+                .setProfileParentRequired(false) // they have a "parent", but not a profile parent
                 // NB: UserManagerService.createRestrictedProfile() applies hardcoded restrictions.
                 .setDefaultRestrictions(null);
     }
@@ -541,6 +547,8 @@
                     builder = new UserTypeDetails.Builder();
                     builder.setName(typeName);
                     builder.setBaseType(FLAG_PROFILE);
+                    // Custom parentless profiles are not yet supported.
+                    builder.setProfileParentRequired(true);
                     builders.put(typeName, builder);
                 } else {
                     throw new IllegalArgumentException("Creation of non-profile user type "
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
index 5c5a9c1..ac19ea1 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
@@ -37,6 +37,7 @@
 import android.annotation.AppIdInt;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SpecialUsers.CanBeALL;
 import android.annotation.UserIdInt;
 import android.app.ActivityManager;
 import android.app.AppOpsManager;
@@ -765,7 +766,7 @@
         @Override
         public void onPackageUninstalled(@NonNull String packageName, int appId,
                 @NonNull PackageState packageState, @Nullable AndroidPackage pkg,
-                @NonNull List<AndroidPackage> sharedUserPkgs, @UserIdInt int userId) {
+                @NonNull List<AndroidPackage> sharedUserPkgs, @CanBeALL @UserIdInt int userId) {
             if (userId != UserHandle.USER_ALL) {
                 final int[] userIds = getAllUserIds();
                 if (!ArrayUtils.contains(userIds, userId)) {
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java
index e51ec04..33d57d5 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java
@@ -65,6 +65,7 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SpecialUsers.CanBeALL;
 import android.annotation.UserIdInt;
 import android.app.ActivityManager;
 import android.app.AppOpsManager;
@@ -5284,7 +5285,7 @@
     @Override
     public void onPackageUninstalled(@NonNull String packageName, int appId,
             @NonNull PackageState packageState, @Nullable AndroidPackage pkg,
-            @NonNull List<AndroidPackage> sharedUserPkgs, @UserIdInt int userId) {
+            @NonNull List<AndroidPackage> sharedUserPkgs, @CanBeALL @UserIdInt int userId) {
         Objects.requireNonNull(packageState, "packageState");
         Objects.requireNonNull(packageName, "packageName");
         Objects.requireNonNull(sharedUserPkgs, "sharedUserPkgs");
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInterface.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInterface.java
index 3d295f7..f2491d9 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInterface.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInterface.java
@@ -19,6 +19,7 @@
 import android.annotation.AppIdInt;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SpecialUsers.CanBeALL;
 import android.annotation.UserIdInt;
 import android.content.Context;
 import android.content.pm.PackageManager;
@@ -662,5 +663,5 @@
      */
     void onPackageUninstalled(@NonNull String packageName, int appId,
             @NonNull PackageState packageState, @Nullable AndroidPackage pkg,
-            @NonNull List<AndroidPackage> sharedUserPkgs, @UserIdInt int userId);
+            @NonNull List<AndroidPackage> sharedUserPkgs, @CanBeALL @UserIdInt int userId);
 }
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java
index a5c1284..ad765c8 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java
@@ -18,6 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SpecialUsers.CanBeALL;
 import android.annotation.UserIdInt;
 import android.app.AppOpsManager;
 import android.content.pm.PackageInstaller.SessionParams;
@@ -325,7 +326,7 @@
     //@SystemApi(client = SystemApi.Client.SYSTEM_SERVER)
     void onPackageUninstalled(@NonNull String packageName, int appId,
             @Nullable PackageState packageState, @Nullable AndroidPackage pkg,
-            @NonNull List<AndroidPackage> sharedUserPkgs, @UserIdInt int userId);
+            @NonNull List<AndroidPackage> sharedUserPkgs, @CanBeALL @UserIdInt int userId);
 
     /**
      * The permission-related parameters passed in for package installation.
diff --git a/services/core/java/com/android/server/policy/KeyCombinationManager.java b/services/core/java/com/android/server/policy/KeyCombinationManager.java
index 1592ef3..1b98dd1 100644
--- a/services/core/java/com/android/server/policy/KeyCombinationManager.java
+++ b/services/core/java/com/android/server/policy/KeyCombinationManager.java
@@ -148,19 +148,19 @@
      * to a window.
      * Return true if any active rule could be triggered by the key event, otherwise false.
      */
-    public boolean interceptKey(KeyEvent event, boolean interactive) {
+    public boolean interceptKey(KeyEvent event, boolean isDefaultDisplayInteractive) {
         synchronized (mLock) {
-            return interceptKeyLocked(event, interactive);
+            return interceptKeyLocked(event, isDefaultDisplayInteractive);
         }
     }
 
-    private boolean interceptKeyLocked(KeyEvent event, boolean interactive) {
+    private boolean interceptKeyLocked(KeyEvent event, boolean isDefaultDisplayInteractive) {
         final boolean down = event.getAction() == KeyEvent.ACTION_DOWN;
         final int keyCode = event.getKeyCode();
         final int count = mActiveRules.size();
         final long eventTime = event.getEventTime();
 
-        if (interactive && down) {
+        if (isDefaultDisplayInteractive && down) {
             if (mDownTimes.size() > 0) {
                 if (count > 0
                         && eventTime > mDownTimes.valueAt(0) + COMBINE_KEY_DELAY_MILLIS) {
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 980fb155..f27194a 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -1163,15 +1163,6 @@
         }
     }
 
-    private boolean shouldShowHub() {
-        final boolean hubEnabled = Settings.Secure.getIntForUser(
-                mContext.getContentResolver(), Settings.Secure.GLANCEABLE_HUB_ENABLED,
-                1, mCurrentUserId) == 1;
-
-        return mUserManagerInternal != null && mUserManagerInternal.isUserUnlocked(mCurrentUserId)
-                && hubEnabled && mDreamManagerInternal.dreamConditionActive();
-    }
-
     @VisibleForTesting
     void powerPress(long eventTime, int count, int displayId) {
         // SideFPS still needs to know about suppressed power buttons, in case it needs to block
@@ -1260,8 +1251,7 @@
                             mContext.getContentResolver(), Settings.Secure.GLANCEABLE_HUB_ENABLED,
                             1, mCurrentUserId) == 1;
 
-                    if ((mDreamManagerInternal != null && mDreamManagerInternal.isDreaming())
-                            || isKeyguardShowing()) {
+                    if (mDreamManagerInternal.isDreaming() || isKeyguardShowing()) {
                         // If the device is already dreaming or on keyguard, go to sleep.
                         sleepDefaultDisplayFromPowerButton(eventTime, 0);
                         break;
@@ -1271,10 +1261,9 @@
                     // show hub.
                     boolean keyguardAvailable = !mLockPatternUtils.isLockScreenDisabled(
                             mCurrentUserId);
-                    if (shouldShowHub() && keyguardAvailable) {
-                        // If the hub can be launched, send a message to keyguard. We do not know if
-                        // the hub is already running or not, keyguard handles turning screen off if
-                        // it is.
+                    if (mUserManagerInternal.isUserUnlocked(mCurrentUserId) && hubEnabled
+                            && keyguardAvailable && mDreamManagerInternal.dreamConditionActive()) {
+                        // If the hub can be launched, send a message to keyguard.
                         Bundle options = new Bundle();
                         options.putBoolean(EXTRA_TRIGGER_HUB, true);
                         lockNow(options);
@@ -1335,14 +1324,14 @@
      * @param isScreenOn Whether the screen is currently on.
      * @param noDreamAction The action to perform if dreaming is not possible.
      */
-    private boolean attemptToDreamFromShortPowerButtonPress(
+    private void attemptToDreamFromShortPowerButtonPress(
             boolean isScreenOn, Runnable noDreamAction) {
         if (mShortPressOnPowerBehavior != SHORT_PRESS_POWER_DREAM_OR_SLEEP
                 && mShortPressOnPowerBehavior != SHORT_PRESS_POWER_HUB_OR_DREAM_OR_SLEEP) {
             // If the power button behavior isn't one that should be able to trigger the dream, give
             // up.
             noDreamAction.run();
-            return false;
+            return;
         }
 
         final DreamManagerInternal dreamManagerInternal = getDreamManagerInternal();
@@ -1350,7 +1339,7 @@
             Slog.d(TAG, "Can't start dreaming when attempting to dream from short power"
                     + " press (isScreenOn=" + isScreenOn + ")");
             noDreamAction.run();
-            return false;
+            return;
         }
 
         synchronized (mLock) {
@@ -1361,8 +1350,6 @@
         }
 
         dreamManagerInternal.requestDream();
-
-        return true;
     }
 
     /**
@@ -2340,10 +2327,6 @@
         WindowWakeUpPolicy getWindowWakeUpPolicy() {
             return new WindowWakeUpPolicy(mContext);
         }
-
-        DreamManagerInternal getDreamManagerInternal() {
-            return LocalServices.getService(DreamManagerInternal.class);
-        }
     }
 
     /** {@inheritDoc} */
@@ -2362,7 +2345,7 @@
         mActivityTaskManagerInternal = LocalServices.getService(ActivityTaskManagerInternal.class);
         mInputManager = mContext.getSystemService(InputManager.class);
         mInputManagerInternal = LocalServices.getService(InputManagerInternal.class);
-        mDreamManagerInternal = injector.getDreamManagerInternal();
+        mDreamManagerInternal = LocalServices.getService(DreamManagerInternal.class);
         mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class);
         mAppOpsManager = mContext.getSystemService(AppOpsManager.class);
         mSensorPrivacyManager = mContext.getSystemService(SensorPrivacyManager.class);
@@ -4300,22 +4283,19 @@
                     case KeyGestureEvent.KEY_GESTURE_TYPE_CLOSE_ALL_DIALOGS:
                     case KeyGestureEvent.KEY_GESTURE_TYPE_LAUNCH_APPLICATION:
                     case KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_DO_NOT_DISTURB:
-                        return true;
                     case KeyGestureEvent.KEY_GESTURE_TYPE_SCREENSHOT_CHORD:
                     case KeyGestureEvent.KEY_GESTURE_TYPE_RINGER_TOGGLE_CHORD:
                     case KeyGestureEvent.KEY_GESTURE_TYPE_GLOBAL_ACTIONS:
                     case KeyGestureEvent.KEY_GESTURE_TYPE_TV_TRIGGER_BUG_REPORT:
-                        return mDefaultDisplayPolicy.isAwake();
-                    case KeyGestureEvent.KEY_GESTURE_TYPE_ACCESSIBILITY_SHORTCUT_CHORD:
-                        return mDefaultDisplayPolicy.isAwake() && mAccessibilityShortcutController
-                                .isAccessibilityShortcutAvailable(isKeyguardLocked());
-                    case KeyGestureEvent.KEY_GESTURE_TYPE_TV_ACCESSIBILITY_SHORTCUT_CHORD:
-                        return mDefaultDisplayPolicy.isAwake() && mAccessibilityShortcutController
-                                .isAccessibilityShortcutAvailable(false);
                     case KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK:
-                        return enableTalkbackAndMagnifierKeyGestures();
                     case KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_VOICE_ACCESS:
-                        return enableVoiceAccessKeyGestures();
+                        return true;
+                    case KeyGestureEvent.KEY_GESTURE_TYPE_ACCESSIBILITY_SHORTCUT_CHORD:
+                        return mAccessibilityShortcutController.isAccessibilityShortcutAvailable(
+                                isKeyguardLocked());
+                    case KeyGestureEvent.KEY_GESTURE_TYPE_TV_ACCESSIBILITY_SHORTCUT_CHORD:
+                        return mAccessibilityShortcutController.isAccessibilityShortcutAvailable(
+                                false);
                     default:
                         return false;
                 }
@@ -6409,17 +6389,6 @@
                 event.getDisplayId(), event.getKeyCode(), "wakeUpFromWakeKey")) {
             return;
         }
-
-        if (!shouldShowHub()
-                && mShortPressOnPowerBehavior == SHORT_PRESS_POWER_HUB_OR_DREAM_OR_SLEEP
-                && event.getKeyCode() == KEYCODE_POWER
-                && attemptToDreamFromShortPowerButtonPress(false, () -> {})) {
-            // In the case that we should wake to dream and successfully initiate dreaming, do not
-            // continue waking up. Doing so will exit the dream state and cause UI to react
-            // accordingly.
-            return;
-        }
-
         wakeUpFromWakeKey(
                 event.getEventTime(),
                 event.getKeyCode(),
diff --git a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
index 1d62087..2cf6b7e 100644
--- a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
+++ b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
@@ -2911,19 +2911,7 @@
                 return false;
             }
 
-            mCounter.getCounts(counts, procState);
-
-            // Return counts only if at least one of the elements is non-zero.
-            for (int i = counts.length - 1; i >= 0; --i) {
-                if (counts[i] != 0) {
-                    return true;
-                }
-            }
-            return false;
-        }
-
-        public void logState(Printer pw, String prefix) {
-            pw.println(prefix + "mCounter=" + mCounter);
+            return mCounter.getCounts(counts, procState);
         }
 
         /**
diff --git a/services/core/java/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor.java
index 5f93bdf..a550f2d 100644
--- a/services/core/java/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor.java
@@ -68,11 +68,15 @@
         // processor. All that remains to be done is copy the estimates over.
         MultiStateStats.States.forEachTrackedStateCombination(deviceStateConfig,
                 states -> {
-                    screenStats.getDeviceStats(mTmpScreenStats, states);
+                    if (!screenStats.getDeviceStats(mTmpScreenStats, states)) {
+                        return;
+                    }
                     double power =
                             mScreenPowerStatsLayout.getScreenDozePowerEstimate(mTmpScreenStats);
-                    mStatsLayout.setDevicePowerEstimate(mTmpDeviceStats, power);
-                    stats.setDeviceStats(states, mTmpDeviceStats);
+                    if (power != 0) {
+                        mStatsLayout.setDevicePowerEstimate(mTmpDeviceStats, power);
+                        stats.setDeviceStats(states, mTmpDeviceStats);
+                    }
                 });
     }
 }
diff --git a/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java
index 6ce2cf7..98280be 100644
--- a/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java
@@ -119,6 +119,8 @@
         mTmpUidStatsArray = new long[descriptor.uidStatsArrayLength];
 
         mWakelockDescriptor = null;
+
+        initEnergyConsumerToPowerBracketMaps();
     }
 
     /**
@@ -157,9 +159,6 @@
 
         if (mPlan == null) {
             mPlan = new PowerEstimationPlan(stats.getConfig());
-            if (mStatsLayout.getEnergyConsumerCount() != 0) {
-                initEnergyConsumerToPowerBracketMaps();
-            }
         }
 
         Intermediates intermediates = new Intermediates();
@@ -255,6 +254,10 @@
      */
     private void initEnergyConsumerToPowerBracketMaps() {
         int energyConsumerCount = mStatsLayout.getEnergyConsumerCount();
+        if (energyConsumerCount == 0) {
+            return;
+        }
+
         int powerBracketCount = mStatsLayout.getCpuPowerBracketCount();
 
         mEnergyConsumerToCombinedEnergyConsumerMap = new int[energyConsumerCount];
@@ -404,7 +407,10 @@
             deviceStatsIntermediates.timeByBracket = new long[powerBracketCount];
             deviceStatsIntermediates.powerByBracket = new double[powerBracketCount];
 
-            stats.getDeviceStats(mTmpDeviceStatsArray, deviceStateEstimation.stateValues);
+            if (!stats.getDeviceStats(mTmpDeviceStatsArray, deviceStateEstimation.stateValues)) {
+                continue;
+            }
+
             for (int step = 0; step < cpuScalingStepCount; step++) {
                 if (intermediates.timeByScalingStep[step] == 0) {
                     continue;
@@ -429,16 +435,19 @@
             }
 
             if (wakelockStats != null) {
-                wakelockStats.getDeviceStats(mTmpWakelockDeviceStats,
-                        deviceStateEstimation.stateValues);
-                double wakelockPowerEstimate = mWakelockPowerStatsLayout.getDevicePowerEstimate(
-                        mTmpWakelockDeviceStats);
-                power = Math.max(0, power - wakelockPowerEstimate);
+                if (wakelockStats.getDeviceStats(mTmpWakelockDeviceStats,
+                        deviceStateEstimation.stateValues)) {
+                    double wakelockPowerEstimate = mWakelockPowerStatsLayout.getDevicePowerEstimate(
+                            mTmpWakelockDeviceStats);
+                    power = Math.max(0, power - wakelockPowerEstimate);
+                }
             }
 
-            deviceStatsIntermediates.power = power;
-            mStatsLayout.setDevicePowerEstimate(mTmpDeviceStatsArray, power);
-            stats.setDeviceStats(deviceStateEstimation.stateValues, mTmpDeviceStatsArray);
+            if (power != 0) {
+                deviceStatsIntermediates.power = power;
+                mStatsLayout.setDevicePowerEstimate(mTmpDeviceStatsArray, power);
+                stats.setDeviceStats(deviceStateEstimation.stateValues, mTmpDeviceStatsArray);
+            }
         }
     }
 
@@ -538,11 +547,12 @@
             }
 
             if (wakelockStats != null) {
-                wakelockStats.getUidStats(mTmpWakelockUidStats, uid,
-                        proportionalEstimate.stateValues);
-                double wakelockPowerEstimate = mWakelockPowerStatsLayout.getUidPowerEstimate(
-                        mTmpWakelockUidStats);
-                power = Math.max(0, power - wakelockPowerEstimate);
+                if (wakelockStats.getUidStats(mTmpWakelockUidStats, uid,
+                        proportionalEstimate.stateValues)) {
+                    double wakelockPowerEstimate = mWakelockPowerStatsLayout.getUidPowerEstimate(
+                            mTmpWakelockUidStats);
+                    power = Math.max(0, power - wakelockPowerEstimate);
+                }
             }
 
             if (power != 0) {
diff --git a/services/core/java/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessor.java
index a544daa..58835053 100644
--- a/services/core/java/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessor.java
@@ -259,7 +259,9 @@
 
         stats.forEachStateStatsKey(key -> {
             RxTxPowerEstimators estimators = mRxTxPowerEstimators.get(key);
-            stats.getStateStats(mTmpStateStatsArray, key, deviceStates);
+            if (!stats.getStateStats(mTmpStateStatsArray, key, deviceStates)) {
+                return;
+            }
             long rxTime = mStatsLayout.getStateRxTime(mTmpStateStatsArray);
             intermediates.rxPower += estimators.mRxPowerEstimator.calculatePower(rxTime);
             for (int txLevel = 0; txLevel < ModemActivityInfo.getNumTxPowerLevels(); txLevel++) {
diff --git a/services/core/java/com/android/server/power/stats/processor/MultiStateStats.java b/services/core/java/com/android/server/power/stats/processor/MultiStateStats.java
index 6932575..0038943 100644
--- a/services/core/java/com/android/server/power/stats/processor/MultiStateStats.java
+++ b/services/core/java/com/android/server/power/stats/processor/MultiStateStats.java
@@ -16,6 +16,7 @@
 
 package com.android.server.power.stats.processor;
 
+import android.annotation.CheckResult;
 import android.annotation.Nullable;
 import android.util.Slog;
 
@@ -342,10 +343,12 @@
     }
 
     /**
-     * Returns accumulated stats for the specified composite state.
+     * Returns accumulated stats for the specified composite state or false if the results are
+     * all zeros.
      */
-    void getStats(long[] outValues, int[] states) {
-        mCounter.getCounts(outValues, mFactory.getSerialState(states));
+    @CheckResult
+    boolean getStats(long[] outValues, int[] states) {
+        return mCounter.getCounts(outValues, mFactory.getSerialState(states));
     }
 
     /**
@@ -389,15 +392,7 @@
 
     private void writeXmlForStates(TypedXmlSerializer serializer, int[] states, long[] values)
             throws IOException {
-        mCounter.getCounts(values, mFactory.getSerialState(states));
-        boolean nonZero = false;
-        for (long value : values) {
-            if (value != 0) {
-                nonZero = true;
-                break;
-            }
-        }
-        if (!nonZero) {
+        if (!mCounter.getCounts(values, mFactory.getSerialState(states))) {
             return;
         }
 
@@ -470,15 +465,7 @@
         StringBuilder sb = new StringBuilder();
         long[] values = new long[mCounter.getArrayLength()];
         States.forEachTrackedStateCombination(mFactory.mStates, states -> {
-            mCounter.getCounts(values, mFactory.getSerialState(states));
-            boolean nonZero = false;
-            for (long value : values) {
-                if (value != 0) {
-                    nonZero = true;
-                    break;
-                }
-            }
-            if (!nonZero) {
+            if (!mCounter.getCounts(values, mFactory.getSerialState(states))) {
                 return;
             }
 
diff --git a/services/core/java/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessor.java
index 3957ae0..4344c32 100644
--- a/services/core/java/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessor.java
@@ -39,6 +39,21 @@
         mTmpDeviceStats = new long[mDescriptor.statsArrayLength];
     }
 
+    private boolean unpackMobileRadioStatsDescriptor(PowerStats.Descriptor descriptor) {
+        if (descriptor == null) {
+            return false;
+        }
+
+        if (descriptor.equals(mMobileRadioStatsDescriptor)) {
+            return true;
+        }
+
+        mMobileRadioStatsDescriptor = descriptor;
+        mMobileRadioStatsLayout = new MobileRadioPowerStatsLayout(mMobileRadioStatsDescriptor);
+        mTmpMobileRadioDeviceStats = new long[mMobileRadioStatsDescriptor.statsArrayLength];
+        return true;
+    }
+
     @Override
     void finish(PowerComponentAggregatedPowerStats stats, long timestampMs) {
         stats.setPowerStatsDescriptor(mDescriptor);
@@ -50,16 +65,8 @@
             return;
         }
 
-        if (mMobileRadioStatsDescriptor == null) {
-            mMobileRadioStatsDescriptor = mobileRadioStats.getPowerStatsDescriptor();
-            if (mMobileRadioStatsDescriptor == null) {
-                return;
-            }
-
-            mMobileRadioStatsLayout =
-                    new MobileRadioPowerStatsLayout(
-                            mMobileRadioStatsDescriptor);
-            mTmpMobileRadioDeviceStats = new long[mMobileRadioStatsDescriptor.statsArrayLength];
+        if (!unpackMobileRadioStatsDescriptor(mobileRadioStats.getPowerStatsDescriptor())) {
+            return;
         }
 
         MultiStateStats.States[] deviceStateConfig =
@@ -69,12 +76,15 @@
         // processor. All that remains to be done is copy the estimates over.
         MultiStateStats.States.forEachTrackedStateCombination(deviceStateConfig,
                 states -> {
-                    mobileRadioStats.getDeviceStats(mTmpMobileRadioDeviceStats, states);
-                    double callPowerEstimate =
-                            mMobileRadioStatsLayout.getDeviceCallPowerEstimate(
-                                    mTmpMobileRadioDeviceStats);
-                    mStatsLayout.setDevicePowerEstimate(mTmpDeviceStats, callPowerEstimate);
-                    stats.setDeviceStats(states, mTmpDeviceStats);
+                    if (!mobileRadioStats.getDeviceStats(mTmpMobileRadioDeviceStats, states)) {
+                        return;
+                    }
+                    double callPowerEstimate = mMobileRadioStatsLayout.getDeviceCallPowerEstimate(
+                            mTmpMobileRadioDeviceStats);
+                    if (callPowerEstimate != 0) {
+                        mStatsLayout.setDevicePowerEstimate(mTmpDeviceStats, callPowerEstimate);
+                        stats.setDeviceStats(states, mTmpDeviceStats);
+                    }
                 });
     }
 }
diff --git a/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java b/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java
index f9b9da9..d285a59 100644
--- a/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java
+++ b/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java
@@ -16,6 +16,7 @@
 
 package com.android.server.power.stats.processor;
 
+import android.annotation.CheckResult;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.os.BatteryStats;
@@ -312,6 +313,11 @@
         return uids;
     }
 
+    /**
+     * Populates outValues with the stats for the specified states. If the stats are all 0,
+     * returns false, leaving outValues unchanged.
+     */
+    @CheckResult
     boolean getDeviceStats(long[] outValues, int[] deviceStates) {
         if (deviceStates.length != mDeviceStateConfig.length) {
             throw new IllegalArgumentException(
@@ -319,12 +325,16 @@
                     + " expected: " + mDeviceStateConfig.length);
         }
         if (mDeviceStats != null) {
-            mDeviceStats.getStats(outValues, deviceStates);
-            return true;
+            return mDeviceStats.getStats(outValues, deviceStates);
         }
         return false;
     }
 
+    /**
+     * Populates outValues with the stats for the specified key and device states. If the stats
+     * are all 0, returns false, leaving outValues unchanged.
+     */
+    @CheckResult
     boolean getStateStats(long[] outValues, int key, int[] deviceStates) {
         if (deviceStates.length != mDeviceStateConfig.length) {
             throw new IllegalArgumentException(
@@ -333,8 +343,7 @@
         }
         MultiStateStats stateStats = mStateStats.get(key);
         if (stateStats != null) {
-            stateStats.getStats(outValues, deviceStates);
-            return true;
+            return stateStats.getStats(outValues, deviceStates);
         }
         return false;
     }
@@ -345,6 +354,11 @@
         }
     }
 
+    /**
+     * Populates outValues with the stats for the specified UID and UID states. If the stats are
+     *  all 0, returns false, leaving outValues unchanged.
+     */
+    @CheckResult
     boolean getUidStats(long[] outValues, int uid, int[] uidStates) {
         if (uidStates.length != mUidStateConfig.length) {
             throw new IllegalArgumentException(
@@ -353,8 +367,7 @@
         }
         UidStats uidStats = mUidStats.get(uid);
         if (uidStats != null && uidStats.stats != null) {
-            uidStats.stats.getStats(outValues, uidStates);
-            return true;
+            return uidStats.stats.getStats(outValues, uidStates);
         }
         return false;
     }
@@ -578,15 +591,7 @@
         long[] values = new long[stats.getDimensionCount()];
         MultiStateStats.States[] stateInfo = stats.getStates();
         MultiStateStats.States.forEachTrackedStateCombination(stateInfo, states -> {
-            stats.getStats(values, states);
-            boolean nonZero = false;
-            for (long value : values) {
-                if (value != 0) {
-                    nonZero = true;
-                    break;
-                }
-            }
-            if (!nonZero) {
+            if (!stats.getStats(values, states)) {
                 return;
             }
 
diff --git a/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java
index ba728d3..284e6a9 100644
--- a/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java
@@ -298,12 +298,16 @@
                 continue;
             }
 
-            if (!stats.getDeviceStats(mTmpDeviceStatsArray, estimation.stateValues)) {
+            double power = ((Intermediates) estimation.intermediates).power;
+            if (power == 0) {
                 continue;
             }
 
-            mStatsLayout.setDevicePowerEstimate(mTmpDeviceStatsArray,
-                    ((Intermediates) estimation.intermediates).power);
+            if (!stats.getDeviceStats(mTmpDeviceStatsArray, estimation.stateValues)) {
+                Arrays.fill(mTmpDeviceStatsArray, 0);
+            }
+
+            mStatsLayout.setDevicePowerEstimate(mTmpDeviceStatsArray, power);
             stats.setDeviceStats(estimation.stateValues, mTmpDeviceStatsArray);
         }
     }
diff --git a/services/core/java/com/android/server/security/CertificateRevocationStatusManager.java b/services/core/java/com/android/server/security/CertificateRevocationStatusManager.java
index 4cd4b3b..7991575 100644
--- a/services/core/java/com/android/server/security/CertificateRevocationStatusManager.java
+++ b/services/core/java/com/android/server/security/CertificateRevocationStatusManager.java
@@ -24,7 +24,7 @@
 import android.net.NetworkCapabilities;
 import android.net.NetworkRequest;
 import android.os.Environment;
-import android.os.PersistableBundle;
+import android.util.AtomicFile;
 import android.util.Slog;
 
 import com.android.internal.R;
@@ -35,6 +35,7 @@
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -42,52 +43,27 @@
 import java.net.URL;
 import java.security.cert.CertPathValidatorException;
 import java.security.cert.X509Certificate;
-import java.time.Duration;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.time.format.DateTimeParseException;
+import java.time.OffsetDateTime;
 import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 /** Manages the revocation status of certificates used in remote attestation. */
 class CertificateRevocationStatusManager {
     private static final String TAG = "AVF_CRL";
     // Must be unique within system server
     private static final int JOB_ID = 1737671340;
-    private static final String REVOCATION_STATUS_FILE_NAME = "certificate_revocation_status.txt";
-    private static final String REVOCATION_STATUS_FILE_FIELD_DELIMITER = ",";
+    private static final String REVOCATION_LIST_FILE_NAME = "certificate_revocation_list.json";
+    @VisibleForTesting static final int MAX_OFFLINE_REVOCATION_LIST_AGE_DAYS = 30;
 
-    /**
-     * The number of days since last update for which a stored revocation status can be accepted.
-     */
-    @VisibleForTesting static final int MAX_DAYS_SINCE_LAST_CHECK = 30;
-
-    @VisibleForTesting static final int NUM_HOURS_BEFORE_NEXT_CHECK = 24;
-
-    /**
-     * The number of days since issue date for an intermediary certificate to be considered fresh
-     * and not require a revocation list check.
-     */
-    private static final int FRESH_INTERMEDIARY_CERT_DAYS = 70;
-
-    /**
-     * The expected number of days between a certificate's issue date and notBefore date. Used to
-     * infer a certificate's issue date from its notBefore date.
-     */
-    private static final int DAYS_BETWEEN_ISSUE_AND_NOT_BEFORE_DATES = 2;
+    @VisibleForTesting static final int NUM_HOURS_BEFORE_NEXT_FETCH = 24;
 
     private static final String TOP_LEVEL_JSON_PROPERTY_KEY = "entries";
     private static final Object sFileLock = new Object();
 
     private final Context mContext;
     private final String mTestRemoteRevocationListUrl;
-    private final File mTestRevocationStatusFile;
+    private final File mTestStoredRevocationListFile;
     private final boolean mShouldScheduleJob;
 
     CertificateRevocationStatusManager(Context context) {
@@ -98,29 +74,22 @@
     CertificateRevocationStatusManager(
             Context context,
             String testRemoteRevocationListUrl,
-            File testRevocationStatusFile,
+            File testStoredRevocationListFile,
             boolean shouldScheduleJob) {
         mContext = context;
         mTestRemoteRevocationListUrl = testRemoteRevocationListUrl;
-        mTestRevocationStatusFile = testRevocationStatusFile;
+        mTestStoredRevocationListFile = testStoredRevocationListFile;
         mShouldScheduleJob = shouldScheduleJob;
     }
 
     /**
      * Check the revocation status of the provided {@link X509Certificate}s.
      *
-     * <p>The provided certificates should have been validated and ordered from leaf to a
-     * certificate issued by the trust anchor, per the convention specified in the javadoc of {@link
-     * java.security.cert.CertPath}.
-     *
      * @param certificates List of certificates to be checked
      * @throws CertPathValidatorException if the check failed
      */
     void checkRevocationStatus(List<X509Certificate> certificates)
             throws CertPathValidatorException {
-        if (!needToCheckRevocationStatus(certificates)) {
-            return;
-        }
         List<String> serialNumbers = new ArrayList<>();
         for (X509Certificate certificate : certificates) {
             String serialNumber = certificate.getSerialNumber().toString(16);
@@ -129,217 +98,124 @@
             }
             serialNumbers.add(serialNumber);
         }
+        LocalDateTime now = LocalDateTime.now();
+        JSONObject revocationList;
         try {
-            if (isLastCheckedWithin(Duration.ofHours(NUM_HOURS_BEFORE_NEXT_CHECK), serialNumbers)) {
-                Slog.d(
-                        TAG,
-                        "All certificates have been checked for revocation recently. No need to"
-                                + " check this time.");
+            if (getLastModifiedDateTime(getRevocationListFile())
+                    .isAfter(now.minusHours(NUM_HOURS_BEFORE_NEXT_FETCH))) {
+                Slog.d(TAG, "CRL is fetched recently, do not fetch again.");
+                revocationList = getStoredRevocationList();
+                checkRevocationStatus(revocationList, serialNumbers);
                 return;
             }
-        } catch (IOException ignored) {
-            // Proceed to check the revocation status
+        } catch (IOException | JSONException ignored) {
+            // Proceed to fetch the remote revocation list
         }
         try {
-            JSONObject revocationList = fetchRemoteRevocationList();
-            Map<String, Boolean> areCertificatesRevoked = new HashMap<>();
-            for (String serialNumber : serialNumbers) {
-                areCertificatesRevoked.put(serialNumber, revocationList.has(serialNumber));
-            }
-            updateLastRevocationCheckData(areCertificatesRevoked);
-            for (Map.Entry<String, Boolean> entry : areCertificatesRevoked.entrySet()) {
-                if (entry.getValue()) {
-                    throw new CertPathValidatorException(
-                            "Certificate " + entry.getKey() + " has been revoked.");
-                }
-            }
+            byte[] revocationListBytes = fetchRemoteRevocationListBytes();
+            silentlyStoreRevocationList(revocationListBytes);
+            revocationList = parseRevocationList(revocationListBytes);
+            checkRevocationStatus(revocationList, serialNumbers);
         } catch (IOException | JSONException ex) {
             Slog.d(TAG, "Fallback to check stored revocation status", ex);
             if (ex instanceof IOException && mShouldScheduleJob) {
-                scheduleJobToUpdateStoredDataWithRemoteRevocationList(serialNumbers);
-            }
-            for (X509Certificate certificate : certificates) {
-                // Assume recently issued certificates are not revoked.
-                if (isIssuedWithinDays(certificate, MAX_DAYS_SINCE_LAST_CHECK)) {
-                    String serialNumber = certificate.getSerialNumber().toString(16);
-                    serialNumbers.remove(serialNumber);
-                }
+                scheduleJobToFetchRemoteRevocationJob();
             }
             try {
-                if (!isLastCheckedWithin(
-                        Duration.ofDays(MAX_DAYS_SINCE_LAST_CHECK), serialNumbers)) {
-                    throw new CertPathValidatorException(
-                            "Unable to verify the revocation status of one of the certificates "
-                                    + serialNumbers);
-                }
-            } catch (IOException ex2) {
+                revocationList = getStoredRevocationList();
+                checkRevocationStatus(revocationList, serialNumbers);
+            } catch (IOException | JSONException ex2) {
                 throw new CertPathValidatorException(
-                        "Unable to load stored revocation status", ex2);
+                        "Unable to load or parse stored revocation status", ex2);
             }
         }
     }
 
-    private boolean isLastCheckedWithin(Duration lastCheckedWithin, List<String> serialNumbers)
-            throws IOException {
-        Map<String, LocalDateTime> lastRevocationCheckData = getLastRevocationCheckData();
+    private static void checkRevocationStatus(JSONObject revocationList, List<String> serialNumbers)
+            throws CertPathValidatorException {
         for (String serialNumber : serialNumbers) {
-            if (!lastRevocationCheckData.containsKey(serialNumber)
-                    || lastRevocationCheckData
-                            .get(serialNumber)
-                            .isBefore(LocalDateTime.now().minus(lastCheckedWithin))) {
-                return false;
+            if (revocationList.has(serialNumber)) {
+                throw new CertPathValidatorException(
+                        "Certificate has been revoked: " + serialNumber);
             }
         }
-        return true;
     }
 
-    private static boolean needToCheckRevocationStatus(
-            List<X509Certificate> certificatesOrderedLeafFirst) {
-        if (certificatesOrderedLeafFirst.isEmpty()) {
-            return false;
+    private JSONObject getStoredRevocationList() throws IOException, JSONException {
+        File offlineRevocationListFile = getRevocationListFile();
+        if (!offlineRevocationListFile.exists()
+                || isRevocationListExpired(offlineRevocationListFile)) {
+            throw new FileNotFoundException("Offline copy does not exist or has expired.");
         }
-        // A certificate isn't revoked when it is first issued, so we treat it as checked on its
-        // issue date.
-        if (!isIssuedWithinDays(certificatesOrderedLeafFirst.get(0), MAX_DAYS_SINCE_LAST_CHECK)) {
-            return true;
-        }
-        for (int i = 1; i < certificatesOrderedLeafFirst.size(); i++) {
-            if (!isIssuedWithinDays(
-                    certificatesOrderedLeafFirst.get(i), FRESH_INTERMEDIARY_CERT_DAYS)) {
-                return true;
+        synchronized (sFileLock) {
+            try (FileInputStream inputStream = new FileInputStream(offlineRevocationListFile)) {
+                return parseRevocationList(inputStream.readAllBytes());
             }
         }
-        return false;
     }
 
-    private static boolean isIssuedWithinDays(X509Certificate certificate, int days) {
-        LocalDate notBeforeDate =
-                LocalDate.ofInstant(certificate.getNotBefore().toInstant(), ZoneId.systemDefault());
-        LocalDate expectedIssueData =
-                notBeforeDate.plusDays(DAYS_BETWEEN_ISSUE_AND_NOT_BEFORE_DATES);
-        return LocalDate.now().minusDays(days + 1).isBefore(expectedIssueData);
+    private boolean isRevocationListExpired(File offlineRevocationListFile) {
+        LocalDateTime acceptableLastModifiedDate =
+                LocalDateTime.now().minusDays(MAX_OFFLINE_REVOCATION_LIST_AGE_DAYS);
+        LocalDateTime lastModifiedDate = getLastModifiedDateTime(offlineRevocationListFile);
+        return lastModifiedDate.isBefore(acceptableLastModifiedDate);
     }
 
-    void updateLastRevocationCheckDataForAllPreviouslySeenCertificates(
-            JSONObject revocationList, Collection<String> otherCertificatesToCheck) {
-        Set<String> allCertificatesToCheck = new HashSet<>(otherCertificatesToCheck);
-        try {
-            allCertificatesToCheck.addAll(getLastRevocationCheckData().keySet());
-        } catch (IOException ex) {
-            Slog.e(TAG, "Unable to update last check date of stored data.", ex);
-        }
-        Map<String, Boolean> areCertificatesRevoked = new HashMap<>();
-        for (String serialNumber : allCertificatesToCheck) {
-            areCertificatesRevoked.put(serialNumber, revocationList.has(serialNumber));
-        }
-        updateLastRevocationCheckData(areCertificatesRevoked);
+    private static LocalDateTime getLastModifiedDateTime(File file) {
+        // if the file does not exist, file.lastModified() returns 0, so this method returns the
+        // epoch time
+        return LocalDateTime.ofEpochSecond(
+                file.lastModified() / 1000, 0, OffsetDateTime.now().getOffset());
     }
 
     /**
-     * Update the last revocation check data stored on this device.
+     * Store the provided bytes to the local revocation list file.
      *
-     * @param areCertificatesRevoked A Map whose keys are certificate serial numbers and values are
-     *     whether that certificate has been revoked
+     * <p>This method does not throw an exception even if it fails to store the bytes.
+     *
+     * <p>This method internally synchronize file access with other methods in this class.
+     *
+     * @param revocationListBytes The bytes to store to the local revocation list file.
      */
-    void updateLastRevocationCheckData(Map<String, Boolean> areCertificatesRevoked) {
-        LocalDateTime now = LocalDateTime.now();
+    void silentlyStoreRevocationList(byte[] revocationListBytes) {
         synchronized (sFileLock) {
-            Map<String, LocalDateTime> lastRevocationCheckData;
+            AtomicFile atomicRevocationListFile = new AtomicFile(getRevocationListFile());
+            FileOutputStream fileOutputStream = null;
             try {
-                lastRevocationCheckData = getLastRevocationCheckData();
+                fileOutputStream = atomicRevocationListFile.startWrite();
+                fileOutputStream.write(revocationListBytes);
+                atomicRevocationListFile.finishWrite(fileOutputStream);
+                Slog.d(TAG, "Successfully stored revocation list.");
             } catch (IOException ex) {
-                Slog.e(TAG, "Unable to updateLastRevocationCheckData", ex);
-                return;
-            }
-            for (Map.Entry<String, Boolean> entry : areCertificatesRevoked.entrySet()) {
-                if (entry.getValue()) {
-                    lastRevocationCheckData.remove(entry.getKey());
-                } else {
-                    lastRevocationCheckData.put(entry.getKey(), now);
-                }
-            }
-            storeLastRevocationCheckData(lastRevocationCheckData);
-        }
-    }
-
-    Map<String, LocalDateTime> getLastRevocationCheckData() throws IOException {
-        Map<String, LocalDateTime> data = new HashMap<>();
-        File dataFile = getLastRevocationCheckDataFile();
-        synchronized (sFileLock) {
-            if (!dataFile.exists()) {
-                return data;
-            }
-            String dataString;
-            try (FileInputStream in = new FileInputStream(dataFile)) {
-                dataString = new String(in.readAllBytes(), UTF_8);
-            }
-            for (String line : dataString.split(System.lineSeparator())) {
-                String[] elements = line.split(REVOCATION_STATUS_FILE_FIELD_DELIMITER);
-                if (elements.length != 2) {
-                    continue;
-                }
-                try {
-                    data.put(elements[0], LocalDateTime.parse(elements[1]));
-                } catch (DateTimeParseException ex) {
-                    Slog.e(
-                            TAG,
-                            "Unable to parse last checked LocalDateTime from file. Deleting the"
-                                    + " potentially corrupted file.",
-                            ex);
-                    dataFile.delete();
-                    return data;
+                Slog.e(TAG, "Failed to store the certificate revocation list.", ex);
+                // this happens when fileOutputStream.write fails
+                if (fileOutputStream != null) {
+                    atomicRevocationListFile.failWrite(fileOutputStream);
                 }
             }
         }
-        return data;
     }
 
-    @VisibleForTesting
-    void storeLastRevocationCheckData(Map<String, LocalDateTime> lastRevocationCheckData) {
-        StringBuilder dataStringBuilder = new StringBuilder();
-        for (Map.Entry<String, LocalDateTime> entry : lastRevocationCheckData.entrySet()) {
-            dataStringBuilder
-                    .append(entry.getKey())
-                    .append(REVOCATION_STATUS_FILE_FIELD_DELIMITER)
-                    .append(entry.getValue())
-                    .append(System.lineSeparator());
+    private File getRevocationListFile() {
+        if (mTestStoredRevocationListFile != null) {
+            return mTestStoredRevocationListFile;
         }
-        synchronized (sFileLock) {
-            try (FileOutputStream fileOutputStream =
-                    new FileOutputStream(getLastRevocationCheckDataFile())) {
-                fileOutputStream.write(dataStringBuilder.toString().getBytes(UTF_8));
-                Slog.d(TAG, "Successfully stored revocation status data.");
-            } catch (IOException ex) {
-                Slog.e(TAG, "Failed to store revocation status data.", ex);
-            }
-        }
+        return new File(Environment.getDataSystemDirectory(), REVOCATION_LIST_FILE_NAME);
     }
 
-    private File getLastRevocationCheckDataFile() {
-        if (mTestRevocationStatusFile != null) {
-            return mTestRevocationStatusFile;
-        }
-        return new File(Environment.getDataSystemDirectory(), REVOCATION_STATUS_FILE_NAME);
-    }
-
-    private void scheduleJobToUpdateStoredDataWithRemoteRevocationList(List<String> serialNumbers) {
+    private void scheduleJobToFetchRemoteRevocationJob() {
         JobScheduler jobScheduler = mContext.getSystemService(JobScheduler.class);
         if (jobScheduler == null) {
             Slog.e(TAG, "Unable to get job scheduler.");
             return;
         }
         Slog.d(TAG, "Scheduling job to fetch remote CRL.");
-        PersistableBundle extras = new PersistableBundle();
-        extras.putStringArray(
-                UpdateCertificateRevocationStatusJobService.EXTRA_KEY_CERTIFICATES_TO_CHECK,
-                serialNumbers.toArray(new String[0]));
         jobScheduler.schedule(
                 new JobInfo.Builder(
                                 JOB_ID,
                                 new ComponentName(
                                         mContext,
                                         UpdateCertificateRevocationStatusJobService.class))
-                        .setExtras(extras)
                         .setRequiredNetwork(
                                 new NetworkRequest.Builder()
                                         .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
@@ -351,13 +227,11 @@
      * Fetches the revocation list from the URL specified in
      * R.string.vendor_required_attestation_revocation_list_url
      *
-     * @return The remote revocation list entries in a JSONObject
+     * @return The remote revocation list entries in a byte[].
      * @throws CertPathValidatorException if the URL is not defined or is malformed.
      * @throws IOException if the URL is valid but the fetch failed.
-     * @throws JSONException if the revocation list content cannot be parsed
      */
-    JSONObject fetchRemoteRevocationList()
-            throws CertPathValidatorException, IOException, JSONException {
+    byte[] fetchRemoteRevocationListBytes() throws CertPathValidatorException, IOException {
         String urlString = getRemoteRevocationListUrl();
         if (urlString == null || urlString.isEmpty()) {
             throw new CertPathValidatorException(
@@ -369,10 +243,13 @@
         } catch (MalformedURLException ex) {
             throw new CertPathValidatorException("Unable to parse the URL " + urlString, ex);
         }
-        byte[] revocationListBytes;
         try (InputStream inputStream = url.openStream()) {
-            revocationListBytes = inputStream.readAllBytes();
+            return inputStream.readAllBytes();
         }
+    }
+
+    private JSONObject parseRevocationList(byte[] revocationListBytes)
+            throws IOException, JSONException {
         JSONObject revocationListJson = new JSONObject(new String(revocationListBytes, UTF_8));
         return revocationListJson.getJSONObject(TOP_LEVEL_JSON_PROPERTY_KEY);
     }
diff --git a/services/core/java/com/android/server/security/UpdateCertificateRevocationStatusJobService.java b/services/core/java/com/android/server/security/UpdateCertificateRevocationStatusJobService.java
index 768c812..7d1a70e 100644
--- a/services/core/java/com/android/server/security/UpdateCertificateRevocationStatusJobService.java
+++ b/services/core/java/com/android/server/security/UpdateCertificateRevocationStatusJobService.java
@@ -20,17 +20,15 @@
 import android.app.job.JobService;
 import android.util.Slog;
 
-import org.json.JSONObject;
-
-import java.util.Arrays;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-/** A {@link JobService} that fetches the certificate revocation list from a remote location. */
+/**
+ * A {@link JobService} that fetches the certificate revocation list from a remote location and
+ * stores it locally.
+ */
 public class UpdateCertificateRevocationStatusJobService extends JobService {
 
-    static final String EXTRA_KEY_CERTIFICATES_TO_CHECK =
-            "com.android.server.security.extra.CERTIFICATES_TO_CHECK";
     private static final String TAG = "AVF_CRL";
     private ExecutorService mExecutorService;
 
@@ -48,20 +46,12 @@
                         CertificateRevocationStatusManager certificateRevocationStatusManager =
                                 new CertificateRevocationStatusManager(this);
                         Slog.d(TAG, "Starting to fetch remote CRL from job service.");
-                        JSONObject revocationList =
-                                certificateRevocationStatusManager.fetchRemoteRevocationList();
-                        String[] certificatesToCheckFromJobParams =
-                                params.getExtras().getStringArray(EXTRA_KEY_CERTIFICATES_TO_CHECK);
-                        if (certificatesToCheckFromJobParams == null) {
-                            Slog.e(TAG, "Extras not found: " + EXTRA_KEY_CERTIFICATES_TO_CHECK);
-                            return;
-                        }
-                        certificateRevocationStatusManager
-                                .updateLastRevocationCheckDataForAllPreviouslySeenCertificates(
-                                        revocationList,
-                                        Arrays.asList(certificatesToCheckFromJobParams));
+                        byte[] revocationList =
+                                certificateRevocationStatusManager.fetchRemoteRevocationListBytes();
+                        certificateRevocationStatusManager.silentlyStoreRevocationList(
+                                revocationList);
                     } catch (Throwable t) {
-                        Slog.e(TAG, "Unable to update the stored revocation status.", t);
+                        Slog.e(TAG, "Unable to update the stored revocation list.", t);
                     }
                     jobFinished(params, false);
                 });
diff --git a/services/core/java/com/android/server/security/advancedprotection/features/DisallowCellular2GAdvancedProtectionHook.java b/services/core/java/com/android/server/security/advancedprotection/features/DisallowCellular2GAdvancedProtectionHook.java
index acdea88..be26334 100644
--- a/services/core/java/com/android/server/security/advancedprotection/features/DisallowCellular2GAdvancedProtectionHook.java
+++ b/services/core/java/com/android/server/security/advancedprotection/features/DisallowCellular2GAdvancedProtectionHook.java
@@ -60,8 +60,7 @@
     private static boolean isEmbeddedSubscriptionVisible(SubscriptionInfo subInfo) {
         if (subInfo.isEmbedded()
                 && (subInfo.getProfileClass() == SubscriptionManager.PROFILE_CLASS_PROVISIONING
-                        || (com.android.internal.telephony.flags.Flags.oemEnabledSatelliteFlag()
-                                && subInfo.isOnlyNonTerrestrialNetwork()))) {
+                        || subInfo.isOnlyNonTerrestrialNetwork())) {
             return false;
         }
 
diff --git a/services/core/java/com/android/server/sensorprivacy/SensorPrivacyService.java b/services/core/java/com/android/server/sensorprivacy/SensorPrivacyService.java
index 16658e3..a64e38e 100644
--- a/services/core/java/com/android/server/sensorprivacy/SensorPrivacyService.java
+++ b/services/core/java/com/android/server/sensorprivacy/SensorPrivacyService.java
@@ -131,7 +131,6 @@
 
 import com.android.internal.R;
 import com.android.internal.annotations.GuardedBy;
-import com.android.internal.annotations.KeepForWeakReference;
 import com.android.internal.camera.flags.Flags;
 import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
 import com.android.internal.os.BackgroundThread;
@@ -2008,11 +2007,7 @@
     }
 
     private class CallStateHelper {
-        // TelephonyCallback instances are only weakly referenced when registered, so we need
-        // to ensure these fields are kept during optimization to preserve lifecycle semantics.
-        @KeepForWeakReference
         private final OutgoingEmergencyStateCallback mEmergencyStateCallback;
-        @KeepForWeakReference
         private final CallStateCallback mCallStateCallback;
 
         private boolean mIsInEmergencyCall;
diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java b/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java
index fab19b6..1afbb34 100644
--- a/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java
+++ b/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java
@@ -160,8 +160,10 @@
      * @param displayId The changed display Id.
      * @param rootDisplayAreaId The changed display area Id.
      * @param isImmersiveMode {@code true} if the display area get into immersive mode.
+     * @param windowType The window type of the controlling window.
      */
-    void immersiveModeChanged(int displayId, int rootDisplayAreaId, boolean isImmersiveMode);
+    void immersiveModeChanged(int displayId, int rootDisplayAreaId, boolean isImmersiveMode,
+            int windowType);
 
     /**
      * Show a rotation suggestion that a user may approve to rotate the screen.
diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
index da9d016..798c794 100644
--- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
+++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
@@ -732,7 +732,7 @@
 
         @Override
         public void immersiveModeChanged(int displayId, int rootDisplayAreaId,
-                boolean isImmersiveMode) {
+                boolean isImmersiveMode, int windowType) {
             if (mBar == null) {
                 return;
             }
@@ -746,7 +746,7 @@
             if (!CLIENT_TRANSIENT) {
                 // Only call from here when the client transient is not enabled.
                 try {
-                    mBar.immersiveModeChanged(rootDisplayAreaId, isImmersiveMode);
+                    mBar.immersiveModeChanged(rootDisplayAreaId, isImmersiveMode, windowType);
                 } catch (RemoteException ex) {
                 }
             }
diff --git a/services/core/java/com/android/server/storage/ImmutableVolumeInfo.java b/services/core/java/com/android/server/storage/ImmutableVolumeInfo.java
index 9d60a57..0f8212e 100644
--- a/services/core/java/com/android/server/storage/ImmutableVolumeInfo.java
+++ b/services/core/java/com/android/server/storage/ImmutableVolumeInfo.java
@@ -136,4 +136,9 @@
     public boolean isVisibleForWrite(int userId) {
         return mVolumeInfo.isVisibleForWrite(userId);
     }
+
+    @Override
+    public String toString() {
+        return mVolumeInfo.toString();
+    }
 }
diff --git a/services/core/java/com/android/server/storage/StorageSessionController.java b/services/core/java/com/android/server/storage/StorageSessionController.java
index 342b864..281aeb6 100644
--- a/services/core/java/com/android/server/storage/StorageSessionController.java
+++ b/services/core/java/com/android/server/storage/StorageSessionController.java
@@ -156,14 +156,15 @@
         StorageUserConnection connection = null;
         synchronized (mLock) {
             connection = mConnections.get(connectionUserId);
-            if (connection != null) {
-                Slog.i(TAG, "Notifying volume state changed for session with id: " + sessionId);
-                connection.notifyVolumeStateChanged(sessionId,
-                        vol.buildStorageVolume(mContext, vol.getMountUserId(), false));
-            } else {
-                Slog.w(TAG, "No available storage user connection for userId : "
-                        + connectionUserId);
-            }
+        }
+
+        if (connection != null) {
+            Slog.i(TAG, "Notifying volume state changed for session with id: " + sessionId);
+            connection.notifyVolumeStateChanged(sessionId,
+                    vol.buildStorageVolume(mContext, vol.getMountUserId(), false));
+        } else {
+            Slog.w(TAG, "No available storage user connection for userId : "
+                    + connectionUserId);
         }
     }
 
@@ -225,16 +226,18 @@
         String sessionId = vol.getId();
         int userId = getConnectionUserIdForVolume(vol);
 
+        StorageUserConnection connection = null;
         synchronized (mLock) {
-            StorageUserConnection connection = mConnections.get(userId);
-            if (connection != null) {
-                Slog.i(TAG, "Removed session for vol with id: " + sessionId);
-                connection.removeSession(sessionId);
-                return connection;
-            } else {
-                Slog.w(TAG, "Session already removed for vol with id: " + sessionId);
-                return null;
-            }
+            connection = mConnections.get(userId);
+        }
+
+        if (connection != null) {
+            Slog.i(TAG, "Removed session for vol with id: " + sessionId);
+            connection.removeSession(sessionId);
+            return connection;
+        } else {
+            Slog.w(TAG, "Session already removed for vol with id: " + sessionId);
+            return null;
         }
     }
 
diff --git a/services/core/java/com/android/server/storage/WatchedVolumeInfo.java b/services/core/java/com/android/server/storage/WatchedVolumeInfo.java
index 4124cfb..d4b20fb 100644
--- a/services/core/java/com/android/server/storage/WatchedVolumeInfo.java
+++ b/services/core/java/com/android/server/storage/WatchedVolumeInfo.java
@@ -68,6 +68,10 @@
         return ImmutableVolumeInfo.fromVolumeInfo(mVolumeInfo);
     }
 
+    public ImmutableVolumeInfo getClonedImmutableVolumeInfo() {
+        return ImmutableVolumeInfo.fromVolumeInfo(mVolumeInfo.clone());
+    }
+
     public StorageVolume buildStorageVolume(Context context, int userId, boolean reportUnmounted) {
         return mVolumeInfo.buildStorageVolume(context, userId, reportUnmounted);
     }
@@ -203,4 +207,9 @@
     public boolean isVisibleForWrite(int userId) {
         return mVolumeInfo.isVisibleForWrite(userId);
     }
+
+    @Override
+    public String toString() {
+        return mVolumeInfo.toString();
+    }
 }
\ No newline at end of file
diff --git a/services/core/java/com/android/server/vibrator/AbstractVibratorStep.java b/services/core/java/com/android/server/vibrator/AbstractVibratorStep.java
index 07d9ad1..da6478b 100644
--- a/services/core/java/com/android/server/vibrator/AbstractVibratorStep.java
+++ b/services/core/java/com/android/server/vibrator/AbstractVibratorStep.java
@@ -124,6 +124,8 @@
             Slog.d(VibrationThread.TAG,
                     "Turning off vibrator " + getVibratorId());
         }
+        // Make sure we ignore any pending callback from old vibration commands.
+        conductor.nextVibratorCallbackStepId(getVibratorId());
         controller.off();
         getVibration().stats.reportVibratorOff();
         mPendingVibratorOffDeadline = 0;
diff --git a/services/core/java/com/android/server/vibrator/ComposePrimitivesVibratorStep.java b/services/core/java/com/android/server/vibrator/ComposePrimitivesVibratorStep.java
index e495af5..b3eead1 100644
--- a/services/core/java/com/android/server/vibrator/ComposePrimitivesVibratorStep.java
+++ b/services/core/java/com/android/server/vibrator/ComposePrimitivesVibratorStep.java
@@ -73,7 +73,8 @@
 
             PrimitiveSegment[] primitivesArray =
                     primitives.toArray(new PrimitiveSegment[primitives.size()]);
-            long vibratorOnResult = controller.on(primitivesArray, getVibration().id);
+            int stepId = conductor.nextVibratorCallbackStepId(getVibratorId());
+            long vibratorOnResult = controller.on(primitivesArray, getVibration().id, stepId);
             handleVibratorOnResult(vibratorOnResult);
             getVibration().stats.reportComposePrimitives(vibratorOnResult, primitivesArray);
 
diff --git a/services/core/java/com/android/server/vibrator/ComposePwleV2VibratorStep.java b/services/core/java/com/android/server/vibrator/ComposePwleV2VibratorStep.java
index bb8e6ee..7b41457 100644
--- a/services/core/java/com/android/server/vibrator/ComposePwleV2VibratorStep.java
+++ b/services/core/java/com/android/server/vibrator/ComposePwleV2VibratorStep.java
@@ -72,7 +72,8 @@
                         + controller.getVibratorInfo().getId());
             }
             PwlePoint[] pwlesArray = pwles.toArray(new PwlePoint[pwles.size()]);
-            long vibratorOnResult = controller.on(pwlesArray, getVibration().id);
+            int stepId = conductor.nextVibratorCallbackStepId(getVibratorId());
+            long vibratorOnResult = controller.on(pwlesArray, getVibration().id, stepId);
             handleVibratorOnResult(vibratorOnResult);
             getVibration().stats.reportComposePwle(vibratorOnResult, pwlesArray);
 
diff --git a/services/core/java/com/android/server/vibrator/ComposePwleVibratorStep.java b/services/core/java/com/android/server/vibrator/ComposePwleVibratorStep.java
index e8952fa..d003251 100644
--- a/services/core/java/com/android/server/vibrator/ComposePwleVibratorStep.java
+++ b/services/core/java/com/android/server/vibrator/ComposePwleVibratorStep.java
@@ -71,7 +71,8 @@
                         + controller.getVibratorInfo().getId());
             }
             RampSegment[] pwlesArray = pwles.toArray(new RampSegment[pwles.size()]);
-            long vibratorOnResult = controller.on(pwlesArray, getVibration().id);
+            int stepId = conductor.nextVibratorCallbackStepId(getVibratorId());
+            long vibratorOnResult = controller.on(pwlesArray, getVibration().id, stepId);
             handleVibratorOnResult(vibratorOnResult);
             getVibration().stats.reportComposePwle(vibratorOnResult, pwlesArray);
 
diff --git a/services/core/java/com/android/server/vibrator/ExternalVibrationSession.java b/services/core/java/com/android/server/vibrator/ExternalVibrationSession.java
index a92ac67..b2cc1f6 100644
--- a/services/core/java/com/android/server/vibrator/ExternalVibrationSession.java
+++ b/services/core/java/com/android/server/vibrator/ExternalVibrationSession.java
@@ -148,7 +148,7 @@
     }
 
     @Override
-    public void notifyVibratorCallback(int vibratorId, long vibrationId) {
+    public void notifyVibratorCallback(int vibratorId, long vibrationId, long stepId) {
         // ignored, external control does not expect callbacks from the vibrator
     }
 
diff --git a/services/core/java/com/android/server/vibrator/PerformPrebakedVibratorStep.java b/services/core/java/com/android/server/vibrator/PerformPrebakedVibratorStep.java
index 4b23216..88bb181 100644
--- a/services/core/java/com/android/server/vibrator/PerformPrebakedVibratorStep.java
+++ b/services/core/java/com/android/server/vibrator/PerformPrebakedVibratorStep.java
@@ -64,7 +64,8 @@
             }
 
             VibrationEffect fallback = getVibration().getFallback(prebaked.getEffectId());
-            long vibratorOnResult = controller.on(prebaked, getVibration().id);
+            int stepId = conductor.nextVibratorCallbackStepId(getVibratorId());
+            long vibratorOnResult = controller.on(prebaked, getVibration().id, stepId);
             handleVibratorOnResult(vibratorOnResult);
             getVibration().stats.reportPerformEffect(vibratorOnResult, prebaked);
 
diff --git a/services/core/java/com/android/server/vibrator/PerformVendorEffectVibratorStep.java b/services/core/java/com/android/server/vibrator/PerformVendorEffectVibratorStep.java
index 407f3d9..d4bcc36 100644
--- a/services/core/java/com/android/server/vibrator/PerformVendorEffectVibratorStep.java
+++ b/services/core/java/com/android/server/vibrator/PerformVendorEffectVibratorStep.java
@@ -49,7 +49,8 @@
     public List<Step> play() {
         Trace.traceBegin(Trace.TRACE_TAG_VIBRATOR, "PerformVendorEffectVibratorStep");
         try {
-            long vibratorOnResult = controller.on(effect, getVibration().id);
+            int stepId = conductor.nextVibratorCallbackStepId(getVibratorId());
+            long vibratorOnResult = controller.on(effect, getVibration().id, stepId);
             vibratorOnResult = Math.min(vibratorOnResult, VENDOR_EFFECT_MAX_DURATION_MS);
             handleVibratorOnResult(vibratorOnResult);
             getVibration().stats.reportPerformVendorEffect(vibratorOnResult);
diff --git a/services/core/java/com/android/server/vibrator/SetAmplitudeVibratorStep.java b/services/core/java/com/android/server/vibrator/SetAmplitudeVibratorStep.java
index 8478e77..26b9595 100644
--- a/services/core/java/com/android/server/vibrator/SetAmplitudeVibratorStep.java
+++ b/services/core/java/com/android/server/vibrator/SetAmplitudeVibratorStep.java
@@ -20,6 +20,7 @@
 import android.os.SystemClock;
 import android.os.Trace;
 import android.os.VibrationEffect;
+import android.os.vibrator.Flags;
 import android.os.vibrator.StepSegment;
 import android.os.vibrator.VibrationEffectSegment;
 import android.util.Slog;
@@ -49,6 +50,10 @@
 
     @Override
     public boolean acceptVibratorCompleteCallback(int vibratorId) {
+        if (Flags.fixVibrationThreadCallbackHandling()) {
+            // TODO: remove this method once flag removed.
+            return super.acceptVibratorCompleteCallback(vibratorId);
+        }
         // Ensure the super method is called and will reset the off timeout and boolean flag.
         // This is true if the vibrator was ON and this callback has the same vibratorId.
         if (!super.acceptVibratorCompleteCallback(vibratorId)) {
@@ -161,7 +166,8 @@
                     "Turning on vibrator " + controller.getVibratorInfo().getId() + " for "
                             + duration + "ms");
         }
-        long vibratorOnResult = controller.on(duration, getVibration().id);
+        int stepId = conductor.nextVibratorCallbackStepId(getVibratorId());
+        long vibratorOnResult = controller.on(duration, getVibration().id, stepId);
         handleVibratorOnResult(vibratorOnResult);
         getVibration().stats.reportVibratorOn(vibratorOnResult);
         return vibratorOnResult;
diff --git a/services/core/java/com/android/server/vibrator/SingleVibrationSession.java b/services/core/java/com/android/server/vibrator/SingleVibrationSession.java
index 628221b..309eb8c 100644
--- a/services/core/java/com/android/server/vibrator/SingleVibrationSession.java
+++ b/services/core/java/com/android/server/vibrator/SingleVibrationSession.java
@@ -137,13 +137,13 @@
     }
 
     @Override
-    public void notifyVibratorCallback(int vibratorId, long vibrationId) {
+    public void notifyVibratorCallback(int vibratorId, long vibrationId, long stepId) {
         if (vibrationId != mVibration.id) {
             return;
         }
         synchronized (mLock) {
             if (mConductor != null) {
-                mConductor.notifyVibratorComplete(vibratorId);
+                mConductor.notifyVibratorComplete(vibratorId, stepId);
             }
         }
     }
diff --git a/services/core/java/com/android/server/vibrator/VendorVibrationSession.java b/services/core/java/com/android/server/vibrator/VendorVibrationSession.java
index 64b52b1..bda3d44 100644
--- a/services/core/java/com/android/server/vibrator/VendorVibrationSession.java
+++ b/services/core/java/com/android/server/vibrator/VendorVibrationSession.java
@@ -218,8 +218,8 @@
     }
 
     @Override
-    public void notifyVibratorCallback(int vibratorId, long vibrationId) {
-        Slog.d(TAG, "Vibration callback received for vibration " + vibrationId
+    public void notifyVibratorCallback(int vibratorId, long vibrationId, long stepId) {
+        Slog.d(TAG, "Vibration callback received for vibration " + vibrationId + " step " + stepId
                 + " on vibrator " + vibratorId + ", ignoring...");
     }
 
diff --git a/services/core/java/com/android/server/vibrator/VibrationSession.java b/services/core/java/com/android/server/vibrator/VibrationSession.java
index ae95a70..23715e39 100644
--- a/services/core/java/com/android/server/vibrator/VibrationSession.java
+++ b/services/core/java/com/android/server/vibrator/VibrationSession.java
@@ -106,7 +106,7 @@
      * complete (e.g. on(), perform(), compose()). This does not mean the vibration is complete,
      * since its playback might have one or more interactions with the vibrator hardware.
      */
-    void notifyVibratorCallback(int vibratorId, long vibrationId);
+    void notifyVibratorCallback(int vibratorId, long vibrationId, long stepId);
 
     /**
      * Notify all synced vibrators have completed the last synchronized command during the playback
diff --git a/services/core/java/com/android/server/vibrator/VibrationStepConductor.java b/services/core/java/com/android/server/vibrator/VibrationStepConductor.java
index 1e20deb..36e1322 100644
--- a/services/core/java/com/android/server/vibrator/VibrationStepConductor.java
+++ b/services/core/java/com/android/server/vibrator/VibrationStepConductor.java
@@ -30,6 +30,7 @@
 import android.util.IntArray;
 import android.util.Slog;
 import android.util.SparseArray;
+import android.util.SparseIntArray;
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.server.vibrator.VibrationSession.Status;
@@ -93,6 +94,8 @@
     private final Object mLock = new Object();
     @GuardedBy("mLock")
     private final IntArray mSignalVibratorsComplete;
+    @GuardedBy("mLock")
+    private final SparseIntArray mSignalVibratorStepIds;
     @Nullable
     @GuardedBy("mLock")
     private Vibration.EndInfo mSignalCancel = null;
@@ -121,6 +124,8 @@
         this.vibratorManagerHooks = vibratorManagerHooks;
         this.mSignalVibratorsComplete =
                 new IntArray(mDeviceAdapter.getAvailableVibratorIds().length);
+        this.mSignalVibratorStepIds =
+                new SparseIntArray(mDeviceAdapter.getAvailableVibratorIds().length);
     }
 
     @Nullable
@@ -418,7 +423,7 @@
      * <p>This is a lightweight method intended to be called directly via native callbacks.
      * The state update is recorded for processing on the main execution thread (VibrationThread).
      */
-    public void notifyVibratorComplete(int vibratorId) {
+    public void notifyVibratorComplete(int vibratorId, long stepId) {
         // HAL callbacks may be triggered directly within HAL calls, so these notifications
         // could be on the VibrationThread as it calls the HAL, or some other executor later.
         // Therefore no thread assertion is made here.
@@ -428,6 +433,14 @@
         }
 
         synchronized (mLock) {
+            if (Flags.fixVibrationThreadCallbackHandling()
+                    && mSignalVibratorStepIds.get(vibratorId) != stepId) {
+                if (DEBUG) {
+                    Slog.d(TAG, "Vibrator " + vibratorId + " callback for step=" + stepId
+                            + " ignored, current step=" + mSignalVibratorStepIds.get(vibratorId));
+                }
+                return;
+            }
             mSignalVibratorsComplete.add(vibratorId);
             mLock.notify();
         }
@@ -645,6 +658,26 @@
         }
     }
 
+    /**
+     * Updates and returns the next step id value to be used in vibrator commands.
+     *
+     * <p>This new step id will be kept by this conductor to filter out old callbacks that might be
+     * triggered too late by the HAL, preventing them from affecting the ongoing vibration playback.
+     */
+    public int nextVibratorCallbackStepId(int vibratorId) {
+        if (!Flags.fixVibrationThreadCallbackHandling()) {
+            return 0;
+        }
+        if (Build.IS_DEBUGGABLE) {
+            expectIsVibrationThread(true);
+        }
+        synchronized (mLock) {
+            int stepId = mSignalVibratorStepIds.get(vibratorId) + 1;
+            mSignalVibratorStepIds.put(vibratorId, stepId);
+            return stepId;
+        }
+    }
+
     private static CombinedVibration.Sequential toSequential(CombinedVibration effect) {
         if (effect instanceof CombinedVibration.Sequential) {
             return (CombinedVibration.Sequential) effect;
diff --git a/services/core/java/com/android/server/vibrator/VibratorController.java b/services/core/java/com/android/server/vibrator/VibratorController.java
index acb31ce..ab13b0e 100644
--- a/services/core/java/com/android/server/vibrator/VibratorController.java
+++ b/services/core/java/com/android/server/vibrator/VibratorController.java
@@ -72,7 +72,7 @@
     public interface OnVibrationCompleteListener {
 
         /** Callback triggered when an active vibration command is complete. */
-        void onComplete(int vibratorId, long vibrationId);
+        void onComplete(int vibratorId, long vibrationId, long stepId);
     }
 
     /** Representation of the vibrator state based on the interactions through this controller. */
@@ -285,11 +285,11 @@
      * @return The positive duration of the vibration started, if successful, zero if the vibrator
      * do not support the input or a negative number if the operation failed.
      */
-    public long on(long milliseconds, long vibrationId) {
+    public long on(long milliseconds, long vibrationId, long stepId) {
         Trace.traceBegin(TRACE_TAG_VIBRATOR, "VibratorController#on");
         try {
             synchronized (mLock) {
-                long duration = mNativeWrapper.on(milliseconds, vibrationId);
+                long duration = mNativeWrapper.on(milliseconds, vibrationId, stepId);
                 if (duration > 0) {
                     mCurrentAmplitude = -1;
                     updateStateAndNotifyListenersLocked(VibratorState.VIBRATING);
@@ -310,7 +310,7 @@
      * @return The positive duration of the vibration started, if successful, zero if the vibrator
      * do not support the input or a negative number if the operation failed.
      */
-    public long on(VibrationEffect.VendorEffect vendorEffect, long vibrationId) {
+    public long on(VibrationEffect.VendorEffect vendorEffect, long vibrationId, long stepId) {
         Trace.traceBegin(TRACE_TAG_VIBRATOR, "VibratorController#on (vendor)");
         synchronized (mLock) {
             Parcel vendorData = Parcel.obtain();
@@ -319,7 +319,7 @@
                 vendorData.setDataPosition(0);
                 long duration = mNativeWrapper.performVendorEffect(vendorData,
                         vendorEffect.getEffectStrength(), vendorEffect.getScale(),
-                        vendorEffect.getAdaptiveScale(), vibrationId);
+                        vendorEffect.getAdaptiveScale(), vibrationId, stepId);
                 if (duration > 0) {
                     mCurrentAmplitude = -1;
                     updateStateAndNotifyListenersLocked(VibratorState.VIBRATING);
@@ -341,12 +341,12 @@
      * @return The positive duration of the vibration started, if successful, zero if the vibrator
      * do not support the input or a negative number if the operation failed.
      */
-    public long on(PrebakedSegment prebaked, long vibrationId) {
+    public long on(PrebakedSegment prebaked, long vibrationId, long stepId) {
         Trace.traceBegin(TRACE_TAG_VIBRATOR, "VibratorController#on (Prebaked)");
         try {
             synchronized (mLock) {
                 long duration = mNativeWrapper.perform(prebaked.getEffectId(),
-                        prebaked.getEffectStrength(), vibrationId);
+                        prebaked.getEffectStrength(), vibrationId, stepId);
                 if (duration > 0) {
                     mCurrentAmplitude = -1;
                     updateStateAndNotifyListenersLocked(VibratorState.VIBRATING);
@@ -367,14 +367,14 @@
      * @return The positive duration of the vibration started, if successful, zero if the vibrator
      * do not support the input or a negative number if the operation failed.
      */
-    public long on(PrimitiveSegment[] primitives, long vibrationId) {
+    public long on(PrimitiveSegment[] primitives, long vibrationId, long stepId) {
         Trace.traceBegin(TRACE_TAG_VIBRATOR, "VibratorController#on (Primitive)");
         try {
             if (!mVibratorInfo.hasCapability(IVibrator.CAP_COMPOSE_EFFECTS)) {
                 return 0;
             }
             synchronized (mLock) {
-                long duration = mNativeWrapper.compose(primitives, vibrationId);
+                long duration = mNativeWrapper.compose(primitives, vibrationId, stepId);
                 if (duration > 0) {
                     mCurrentAmplitude = -1;
                     updateStateAndNotifyListenersLocked(VibratorState.VIBRATING);
@@ -394,7 +394,7 @@
      *
      * @return The duration of the effect playing, or 0 if unsupported.
      */
-    public long on(RampSegment[] primitives, long vibrationId) {
+    public long on(RampSegment[] primitives, long vibrationId, long stepId) {
         Trace.traceBegin(TRACE_TAG_VIBRATOR, "VibratorController#on (PWLE)");
         try {
             if (!mVibratorInfo.hasCapability(IVibrator.CAP_COMPOSE_PWLE_EFFECTS)) {
@@ -402,7 +402,8 @@
             }
             synchronized (mLock) {
                 int braking = mVibratorInfo.getDefaultBraking();
-                long duration = mNativeWrapper.composePwle(primitives, braking, vibrationId);
+                long duration = mNativeWrapper.composePwle(
+                        primitives, braking, vibrationId, stepId);
                 if (duration > 0) {
                     mCurrentAmplitude = -1;
                     updateStateAndNotifyListenersLocked(VibratorState.VIBRATING);
@@ -422,14 +423,14 @@
      *
      * @return The duration of the effect playing, or 0 if unsupported.
      */
-    public long on(PwlePoint[] pwlePoints, long vibrationId) {
+    public long on(PwlePoint[] pwlePoints, long vibrationId, long stepId) {
         Trace.traceBegin(TRACE_TAG_VIBRATOR, "VibratorController#on (PWLE v2)");
         try {
             if (!mVibratorInfo.hasCapability(IVibrator.CAP_COMPOSE_PWLE_EFFECTS_V2)) {
                 return 0;
             }
             synchronized (mLock) {
-                long duration = mNativeWrapper.composePwleV2(pwlePoints, vibrationId);
+                long duration = mNativeWrapper.composePwleV2(pwlePoints, vibrationId, stepId);
                 if (duration > 0) {
                     mCurrentAmplitude = -1;
                     updateStateAndNotifyListenersLocked(VibratorState.VIBRATING);
@@ -544,26 +545,27 @@
 
         private static native boolean isAvailable(long nativePtr);
 
-        private static native long on(long nativePtr, long milliseconds, long vibrationId);
+        private static native long on(long nativePtr, long milliseconds, long vibrationId,
+                long stepId);
 
         private static native void off(long nativePtr);
 
         private static native void setAmplitude(long nativePtr, float amplitude);
 
         private static native long performEffect(long nativePtr, long effect, long strength,
-                long vibrationId);
+                long vibrationId, long stepId);
 
         private static native long performVendorEffect(long nativePtr, Parcel vendorData,
-                long strength, float scale, float adaptiveScale, long vibrationId);
+                long strength, float scale, float adaptiveScale, long vibrationId, long stepId);
 
         private static native long performComposedEffect(long nativePtr, PrimitiveSegment[] effect,
-                long vibrationId);
+                long vibrationId, long stepId);
 
         private static native long performPwleEffect(long nativePtr, RampSegment[] effect,
-                int braking, long vibrationId);
+                int braking, long vibrationId, long stepId);
 
         private static native long performPwleV2Effect(long nativePtr, PwlePoint[] effect,
-                long vibrationId);
+                long vibrationId, long stepId);
 
         private static native void setExternalControl(long nativePtr, boolean enabled);
 
@@ -595,8 +597,8 @@
         }
 
         /** Turns vibrator on for given time. */
-        public long on(long milliseconds, long vibrationId) {
-            return on(mNativePtr, milliseconds, vibrationId);
+        public long on(long milliseconds, long vibrationId, long stepId) {
+            return on(mNativePtr, milliseconds, vibrationId, stepId);
         }
 
         /** Turns vibrator off. */
@@ -610,30 +612,31 @@
         }
 
         /** Turns vibrator on to perform one of the supported effects. */
-        public long perform(long effect, long strength, long vibrationId) {
-            return performEffect(mNativePtr, effect, strength, vibrationId);
+        public long perform(long effect, long strength, long vibrationId, long stepId) {
+            return performEffect(mNativePtr, effect, strength, vibrationId, stepId);
         }
 
         /** Turns vibrator on to perform a vendor-specific effect. */
         public long performVendorEffect(Parcel vendorData, long strength, float scale,
-                float adaptiveScale, long vibrationId) {
+                float adaptiveScale, long vibrationId, long stepId) {
             return performVendorEffect(mNativePtr, vendorData, strength, scale, adaptiveScale,
-                    vibrationId);
+                    vibrationId, stepId);
         }
 
         /** Turns vibrator on to perform effect composed of give primitives effect. */
-        public long compose(PrimitiveSegment[] primitives, long vibrationId) {
-            return performComposedEffect(mNativePtr, primitives, vibrationId);
+        public long compose(PrimitiveSegment[] primitives, long vibrationId, long stepId) {
+            return performComposedEffect(mNativePtr, primitives, vibrationId, stepId);
         }
 
         /** Turns vibrator on to perform PWLE effect composed of given primitives. */
-        public long composePwle(RampSegment[] primitives, int braking, long vibrationId) {
-            return performPwleEffect(mNativePtr, primitives, braking, vibrationId);
+        public long composePwle(RampSegment[] primitives, int braking, long vibrationId,
+                long stepId) {
+            return performPwleEffect(mNativePtr, primitives, braking, vibrationId, stepId);
         }
 
         /** Turns vibrator on to perform PWLE effect composed of given points. */
-        public long composePwleV2(PwlePoint[] pwlePoints, long vibrationId) {
-            return performPwleV2Effect(mNativePtr, pwlePoints, vibrationId);
+        public long composePwleV2(PwlePoint[] pwlePoints, long vibrationId, long stepId) {
+            return performPwleV2Effect(mNativePtr, pwlePoints, vibrationId, stepId);
         }
 
         /** Enabled the device vibrator to be controlled by another service. */
diff --git a/services/core/java/com/android/server/vibrator/VibratorManagerService.java b/services/core/java/com/android/server/vibrator/VibratorManagerService.java
index 75b1b20..ce91e63 100644
--- a/services/core/java/com/android/server/vibrator/VibratorManagerService.java
+++ b/services/core/java/com/android/server/vibrator/VibratorManagerService.java
@@ -1015,9 +1015,12 @@
                 updateAlwaysOnLocked(mAlwaysOnEffects.valueAt(i));
             }
 
-            // TODO(b/372241975): investigate why external vibrations were not handled here before
-            if (mCurrentSession == null
-                    || (mCurrentSession instanceof ExternalVibrationSession)) {
+            if (mCurrentSession == null) {
+                return;
+            }
+
+            if (!Flags.fixExternalVibrationSystemUpdateAware()
+                    && (mCurrentSession instanceof ExternalVibrationSession)) {
                 return;
             }
 
@@ -1025,7 +1028,7 @@
             if (inputDevicesChanged || (ignoreStatus != null)) {
                 if (DEBUG) {
                     Slog.d(TAG, "Canceling vibration because settings changed: "
-                            + (inputDevicesChanged ? "input devices changed" : ignoreStatus));
+                            + (ignoreStatus == null ? "input devices changed" : ignoreStatus));
                 }
                 mCurrentSession.requestEnd(Status.CANCELLED_BY_SETTINGS_UPDATE);
             }
@@ -1293,14 +1296,14 @@
         }
     }
 
-    private void onVibrationComplete(int vibratorId, long vibrationId) {
+    private void onVibrationComplete(int vibratorId, long vibrationId, long stepId) {
         synchronized (mLock) {
             if (mCurrentSession != null) {
                 if (DEBUG) {
-                    Slog.d(TAG, "Vibration " + vibrationId + " on vibrator " + vibratorId
-                            + " complete, notifying thread");
+                    Slog.d(TAG, "Vibration " + vibrationId + " step " + stepId
+                            + " on vibrator " + vibratorId + " complete, notifying thread");
                 }
-                mCurrentSession.notifyVibratorCallback(vibratorId, vibrationId);
+                mCurrentSession.notifyVibratorCallback(vibratorId, vibrationId, stepId);
             }
         }
     }
@@ -2100,10 +2103,10 @@
         }
 
         @Override
-        public void onComplete(int vibratorId, long vibrationId) {
+        public void onComplete(int vibratorId, long vibrationId, long stepId) {
             VibratorManagerService service = mServiceRef.get();
             if (service != null) {
-                service.onVibrationComplete(vibratorId, vibrationId);
+                service.onVibrationComplete(vibratorId, vibrationId, stepId);
             }
         }
     }
@@ -2334,14 +2337,22 @@
     @GuardedBy("mLock")
     private void maybeClearCurrentAndNextSessionsLocked(
             Predicate<VibrationSession> shouldEndSessionPredicate, Status endStatus) {
-        // TODO(b/372241975): investigate why external vibrations were not handled here before
-        if (!(mNextSession instanceof ExternalVibrationSession)
-                && shouldEndSessionPredicate.test(mNextSession)) {
-            clearNextSessionLocked(endStatus);
-        }
-        if (!(mCurrentSession instanceof ExternalVibrationSession)
-                && shouldEndSessionPredicate.test(mCurrentSession)) {
-            mCurrentSession.requestEnd(endStatus);
+        if (Flags.fixExternalVibrationSystemUpdateAware()) {
+            if (shouldEndSessionPredicate.test(mNextSession)) {
+                clearNextSessionLocked(endStatus);
+            }
+            if (shouldEndSessionPredicate.test(mCurrentSession)) {
+                mCurrentSession.requestEnd(endStatus);
+            }
+        } else {
+            if (!(mNextSession instanceof ExternalVibrationSession)
+                    && shouldEndSessionPredicate.test(mNextSession)) {
+                clearNextSessionLocked(endStatus);
+            }
+            if (!(mCurrentSession instanceof ExternalVibrationSession)
+                    && shouldEndSessionPredicate.test(mCurrentSession)) {
+                mCurrentSession.requestEnd(endStatus);
+            }
         }
     }
 
@@ -2535,6 +2546,9 @@
                             Slog.d(TAG, "Stopping external vibration: " + vib);
                         }
                         mCurrentSession.requestEnd(Status.FINISHED);
+                    } else if (Build.IS_DEBUGGABLE) {
+                        Slog.wtf(TAG, "VibrationSession invalid on external vibration stop."
+                                + " currentSession=" + mCurrentSession + ", received=" + vib);
                     }
                 }
             } finally {
diff --git a/services/core/java/com/android/server/wallpaper/WallpaperCropper.java b/services/core/java/com/android/server/wallpaper/WallpaperCropper.java
index b3e68a35..8e8455a 100644
--- a/services/core/java/com/android/server/wallpaper/WallpaperCropper.java
+++ b/services/core/java/com/android/server/wallpaper/WallpaperCropper.java
@@ -16,6 +16,8 @@
 
 package com.android.server.wallpaper;
 
+import static android.app.WallpaperManager.ORIENTATION_LANDSCAPE;
+import static android.app.WallpaperManager.ORIENTATION_SQUARE_LANDSCAPE;
 import static android.app.WallpaperManager.ORIENTATION_UNKNOWN;
 import static android.app.WallpaperManager.getOrientation;
 import static android.app.WallpaperManager.getRotatedOrientation;
@@ -28,6 +30,7 @@
 import static com.android.server.wallpaper.WallpaperUtils.getWallpaperDir;
 import static com.android.window.flags.Flags.multiCrop;
 
+import android.app.WallpaperManager;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.ImageDecoder;
@@ -821,4 +824,54 @@
             }
         }
     }
+
+    /**
+     * Returns true if a wallpaper is compatible with a given display with ID, {@code displayId}.
+     *
+     * <p>A wallpaper is compatible with a display if any of the following are true
+     * <ol>the display is a default display</o>
+     * <ol>the wallpaper is a stock wallpaper</ol>
+     * <ol>the wallpaper size is at least 3/4 of the display resolution and, in landscape displays,
+     * the wallpaper has an aspect ratio of at least 11:13.</ol>
+     */
+    @VisibleForTesting
+    boolean isWallpaperCompatibleForDisplay(int displayId, WallpaperData wallpaperData) {
+        if (displayId == DEFAULT_DISPLAY) {
+            return true;
+        }
+
+        File wallpaperFile = wallpaperData.getWallpaperFile();
+        if (!wallpaperFile.exists()) {
+            // Assumption: Stock wallpaper is suitable for all display sizes.
+            return true;
+        }
+
+        DisplayInfo displayInfo = mWallpaperDisplayHelper.getDisplayInfo(displayId);
+        Point displaySize = new Point(displayInfo.logicalWidth, displayInfo.logicalHeight);
+        int displayOrientation = WallpaperManager.getOrientation(displaySize);
+
+        Point wallpaperImageSize = new Point(
+                (int) Math.ceil(wallpaperData.cropHint.width() / wallpaperData.mSampleSize),
+                (int) Math.ceil(wallpaperData.cropHint.height() / wallpaperData.mSampleSize));
+        if (wallpaperImageSize.equals(0, 0)) {
+            BitmapFactory.Options options = new BitmapFactory.Options();
+            options.inJustDecodeBounds = true;
+            BitmapFactory.decodeFile(wallpaperFile.getAbsolutePath(), options);
+            wallpaperImageSize.set(options.outWidth, options.outHeight);
+        }
+
+        double maxDisplayToImageRatio = Math.max((double) displaySize.x / wallpaperImageSize.x,
+                (double) displaySize.y / wallpaperImageSize.y);
+        if (maxDisplayToImageRatio > 1.5) {
+            return false;
+        }
+
+        // For displays in landscape, we only support images with an aspect ratio >= 11:13
+        if (displayOrientation == ORIENTATION_LANDSCAPE) {
+            return ((double) wallpaperImageSize.x / wallpaperImageSize.y) >= 11.0 / 13;
+        }
+
+        // For other orientations, we don't enforce any aspect ratio.
+        return true;
+    }
 }
diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
index 69b2b9b..d620e98 100644
--- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
+++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
@@ -118,7 +118,6 @@
 import android.system.ErrnoException;
 import android.system.Os;
 import android.text.TextUtils;
-import android.util.ArraySet;
 import android.util.EventLog;
 import android.util.IntArray;
 import android.util.Slog;
@@ -161,7 +160,6 @@
 import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Set;
 import java.util.function.Consumer;
 import java.util.function.Predicate;
 
@@ -743,10 +741,8 @@
     final WallpaperDisplayHelper mWallpaperDisplayHelper;
     final WallpaperCropper mWallpaperCropper;
 
-    // TODO(b/384519749): Remove this set after we introduce the aspect ratio check.
-    private final Set<Integer> mWallpaperCompatibleDisplaysForTest = new ArraySet<>();
-
-    private boolean isWallpaperCompatibleForDisplay(int displayId, WallpaperConnection connection) {
+    @VisibleForTesting
+    boolean isWallpaperCompatibleForDisplay(int displayId, WallpaperConnection connection) {
         if (connection == null) {
             return false;
         }
@@ -757,26 +753,14 @@
 
         // Image wallpaper
         if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
-            // TODO(b/384519749): check display's resolution and image wallpaper cropped image
-            //  aspect ratio.
-            return displayId == DEFAULT_DISPLAY
-                    || mWallpaperCompatibleDisplaysForTest.contains(displayId);
+            return mWallpaperCropper.isWallpaperCompatibleForDisplay(displayId,
+                    connection.mWallpaper);
         }
         // When enableConnectedDisplaysWallpaper is off, we assume the image wallpaper supports all
         // usable displays.
         return true;
     }
 
-    @VisibleForTesting
-    void addWallpaperCompatibleDisplayForTest(int displayId) {
-        mWallpaperCompatibleDisplaysForTest.add(displayId);
-    }
-
-    @VisibleForTesting
-    void removeWallpaperCompatibleDisplayForTest(int displayId) {
-        mWallpaperCompatibleDisplaysForTest.remove(displayId);
-    }
-
     private void updateFallbackConnection(int clientUid) {
         if (mLastWallpaper == null || mFallbackWallpaper == null) return;
         final WallpaperConnection systemConnection = mLastWallpaper.connection;
@@ -844,7 +828,7 @@
                     // `which` flag.
                     DisplayConnector fallbackConnector =
                             mFallbackWallpaper.connection.getDisplayConnectorOrCreate(displayId);
-                    if (fallbackConnector != null && fallbackConnector.mEngine != null) {
+                    if (fallbackConnector != null) {
                         fallbackConnector.mWhich = which;
                         fallbackConnector.connectLocked(mFallbackWallpaper.connection,
                                 mFallbackWallpaper);
diff --git a/services/core/java/com/android/server/wm/AbsAppSnapshotController.java b/services/core/java/com/android/server/wm/AbsAppSnapshotController.java
index 90c2216..a731bf7 100644
--- a/services/core/java/com/android/server/wm/AbsAppSnapshotController.java
+++ b/services/core/java/com/android/server/wm/AbsAppSnapshotController.java
@@ -334,7 +334,7 @@
         builder.setId(System.currentTimeMillis());
         builder.setContentInsets(contentInsets);
         builder.setLetterboxInsets(letterboxInsets);
-        final boolean isWindowTranslucent = mainWindow.getAttrs().format != PixelFormat.OPAQUE;
+        final boolean isWindowTranslucent = mainWindow.mAttrs.format != PixelFormat.OPAQUE;
         final boolean isShowWallpaper = mainWindow.hasWallpaper();
         int pixelFormat = builder.getPixelFormat();
         if (pixelFormat == PixelFormat.UNKNOWN) {
@@ -432,7 +432,7 @@
         final ActivityManager.TaskDescription taskDescription = getTaskDescription(source);
         final int color = ColorUtils.setAlphaComponent(
                 taskDescription.getBackgroundColor(), 255);
-        final WindowManager.LayoutParams attrs = mainWindow.getAttrs();
+        final WindowManager.LayoutParams attrs = mainWindow.mAttrs;
         final Rect taskBounds = source.getBounds();
         final InsetsState insetsState = mainWindow.getInsetsStateWithVisibilityOverride();
         final Rect systemBarInsets = getSystemBarInsets(mainWindow.getFrame(), insetsState);
diff --git a/services/core/java/com/android/server/wm/ActivityClientController.java b/services/core/java/com/android/server/wm/ActivityClientController.java
index 05794cd..7ce52b1 100644
--- a/services/core/java/com/android/server/wm/ActivityClientController.java
+++ b/services/core/java/com/android/server/wm/ActivityClientController.java
@@ -1515,8 +1515,10 @@
                         r.mOverrideTaskTransition);
                 r.mTransitionController.setOverrideAnimation(
                         TransitionInfo.AnimationOptions.makeCustomAnimOptions(packageName,
-                                enterAnim, exitAnim, backgroundColor, r.mOverrideTaskTransition), r,
-                        null /* startCallback */, null /* finishCallback */);
+                                enterAnim, 0 /* changeResId */, exitAnim,
+                                r.mOverrideTaskTransition),
+                        r, null /* startCallback */, null /* finishCallback */);
+                r.mTransitionController.setOverrideBackgroundColor(backgroundColor);
             }
         }
         Binder.restoreCallingIdentity(origId);
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index aa3b500..57b82c3 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -109,7 +109,6 @@
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
 import static android.view.WindowManager.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED;
 import static android.view.WindowManager.PROPERTY_ALLOW_UNTRUSTED_ACTIVITY_EMBEDDING_STATE_SHARING;
-import static android.view.WindowManager.TRANSIT_CLOSE;
 import static android.view.WindowManager.TRANSIT_OLD_UNSET;
 import static android.view.WindowManager.TRANSIT_RELAUNCH;
 import static android.view.WindowManager.hasWindowExtensionsEnabled;
@@ -321,9 +320,7 @@
 import android.util.Slog;
 import android.util.TimeUtils;
 import android.util.proto.ProtoOutputStream;
-import android.view.AppTransitionAnimationSpec;
 import android.view.DisplayInfo;
-import android.view.IAppTransitionAnimationSpecsFuture;
 import android.view.InputApplicationHandle;
 import android.view.RemoteAnimationAdapter;
 import android.view.RemoteAnimationDefinition;
@@ -347,7 +344,6 @@
 
 import com.android.internal.R;
 import com.android.internal.annotations.GuardedBy;
-import com.android.internal.annotations.KeepForWeakReference;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.ResolverActivity;
 import com.android.internal.content.ReferrerIntent;
@@ -436,9 +432,6 @@
     // next activity.
     private static final int PAUSE_TIMEOUT = 500;
 
-    // Ticks during which we check progress while waiting for an app to launch.
-    private static final int LAUNCH_TICK = 500;
-
     // How long we wait for the activity to tell us it has stopped before
     // giving up.  This is a good amount of time because we really need this
     // from the application in order to get its saved state. Once the stop
@@ -494,7 +487,6 @@
     long lastVisibleTime;         // last time this activity became visible
     long pauseTime;               // last time we started pausing the activity
     long mStoppedTime;            // last time we completely stopped the activity
-    long launchTickTime;          // base time for launch tick messages
     long topResumedStateLossTime; // last time we reported top resumed state loss to an activity
     // Last configuration reported to the activity in the client process.
     private final MergedConfiguration mLastReportedConfiguration;
@@ -861,8 +853,6 @@
 
     private RemoteCallbackList<IScreenCaptureObserver> mCaptureCallbacks;
 
-    // Ensure the field is kept during optimization to preserve downstream weak refs.
-    @KeepForWeakReference
     private final ColorDisplayService.ColorTransformController mColorTransformController =
             (matrix, translation) -> mWmService.mH.post(() -> {
                 synchronized (mWmService.mGlobalLock) {
@@ -943,24 +933,11 @@
                 if (!hasProcess()) {
                     return;
                 }
-                mAtmService.logAppTooSlow(app, pauseTime, "pausing " + ActivityRecord.this);
                 activityPaused(true);
             }
         }
     };
 
-    private final Runnable mLaunchTickRunnable = new Runnable() {
-        @Override
-        public void run() {
-            synchronized (mAtmService.mGlobalLock) {
-                if (continueLaunchTicking()) {
-                    mAtmService.logAppTooSlow(
-                            app, launchTickTime, "launching " + ActivityRecord.this);
-                }
-            }
-        }
-    };
-
     private final Runnable mDestroyTimeoutRunnable = new Runnable() {
         @Override
         public void run() {
@@ -2112,7 +2089,8 @@
         }
         try {
             return mAtmService.mContext.getPackageManager()
-                    .getProperty(PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED, packageName)
+                    .getPropertyAsUser(PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED, packageName,
+                            null /* className */, mUserId)
                     .getBoolean();
         } catch (PackageManager.NameNotFoundException e) {
             // No such property name.
@@ -2348,12 +2326,16 @@
             if (isActivityTypeHome()) {
                 // The snapshot of home is only used once because it won't be updated while screen
                 // is on (see {@link TaskSnapshotController#screenTurningOff}).
-                mWmService.mTaskSnapshotController.removeSnapshotCache(task.mTaskId);
-                if ((mDisplayContent.mAppTransition.getTransitFlags()
+                final Transition transition = mTransitionController.getCollectingTransition();
+                if (transition != null && (transition.getFlags()
                         & WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_NO_ANIMATION) == 0) {
+                    mWmService.mTaskSnapshotController.removeSnapshotCache(task.mTaskId);
                     // Only use snapshot of home as starting window when unlocking directly.
                     return false;
                 }
+                // Add a reference before removing snapshot from cache.
+                snapshot.addReference(TaskSnapshot.REFERENCE_WRITE_TO_PARCEL);
+                mWmService.mTaskSnapshotController.removeSnapshotCache(task.mTaskId);
             }
             return createSnapshot(snapshot, typeParameter);
         }
@@ -2969,8 +2951,9 @@
         }
         try {
             return mAtmService.mContext.getPackageManager()
-                    .getProperty(PROPERTY_ALLOW_UNTRUSTED_ACTIVITY_EMBEDDING_STATE_SHARING,
-                            mActivityComponent)
+                    .getPropertyAsUser(PROPERTY_ALLOW_UNTRUSTED_ACTIVITY_EMBEDDING_STATE_SHARING,
+                            mActivityComponent.getPackageName(),
+                            mActivityComponent.getClassName(), mUserId)
                     .getBoolean();
         } catch (PackageManager.NameNotFoundException e) {
             // No such property name.
@@ -3078,7 +3061,7 @@
         if (win == null) {
             return;
         }
-        isOpaque = isOpaque & !PixelFormat.formatHasAlpha(win.getAttrs().format);
+        isOpaque = isOpaque & !PixelFormat.formatHasAlpha(win.mAttrs.format);
         win.mWinAnimator.setOpaqueLocked(isOpaque);
     }
 
@@ -3170,7 +3153,8 @@
             return true;
         }
         return !AppCompatResizeOverrides.allowRestrictedResizability(
-                wms.mContext.getPackageManager(), appInfo.packageName);
+                wms.mContext.getPackageManager(), appInfo.packageName,
+                UserHandle.getUserId(appInfo.uid));
     }
 
     boolean isResizeable() {
@@ -3638,7 +3622,6 @@
                 if (DEBUG_VISIBILITY || DEBUG_TRANSITION) {
                     Slog.v(TAG_TRANSITION, "Prepare close transition: finishing " + this);
                 }
-                mDisplayContent.prepareAppTransition(TRANSIT_CLOSE);
 
                 // When finishing the activity preemptively take the snapshot before the app window
                 // is marked as hidden and any configuration changes take place
@@ -3740,7 +3723,6 @@
 
     private void prepareActivityHideTransitionAnimation() {
         final DisplayContent dc = mDisplayContent;
-        dc.prepareAppTransition(TRANSIT_CLOSE);
         setVisibility(false);
         dc.executeAppTransition();
     }
@@ -4392,13 +4374,6 @@
             removeStartingWindow();
         }
 
-        // If app transition animation was running for this activity, then we need to ensure that
-        // the app transition notifies that animations have completed in
-        // DisplayContent.handleAnimatingStoppedAndTransition(), so add to that list now
-        if (isAnimating(TRANSITION | PARENTS, ANIMATION_TYPE_APP_TRANSITION)) {
-            getDisplayContent().mNoAnimationNotifyOnTransitionFinished.add(token);
-        }
-
         if (delayed && !isEmpty()) {
             // set the token aside because it has an active animation to be finished
             ProtoLog.v(WM_DEBUG_ADD_REMOVE,
@@ -5070,8 +5045,6 @@
     void applyOptionsAnimation() {
         if (DEBUG_TRANSITION) Slog.i(TAG, "Applying options for " + this);
         if (mPendingRemoteAnimation != null) {
-            mDisplayContent.mAppTransition.overridePendingAppTransitionRemote(
-                    mPendingRemoteAnimation);
             mTransitionController.setStatusBarTransitionDelay(
                     mPendingRemoteAnimation.getStatusBarTransitionDelay());
         } else {
@@ -5101,25 +5074,14 @@
         IRemoteCallback finishCallback = null;
         switch (animationType) {
             case ANIM_CUSTOM:
-                displayContent.mAppTransition.overridePendingAppTransition(
-                        pendingOptions.getPackageName(),
-                        pendingOptions.getCustomEnterResId(),
-                        pendingOptions.getCustomExitResId(),
-                        pendingOptions.getCustomBackgroundColor(),
-                        pendingOptions.getAnimationStartedListener(),
-                        pendingOptions.getAnimationFinishedListener(),
-                        pendingOptions.getOverrideTaskTransition());
                 options = AnimationOptions.makeCustomAnimOptions(pendingOptions.getPackageName(),
-                        pendingOptions.getCustomEnterResId(), pendingOptions.getCustomExitResId(),
-                        pendingOptions.getCustomBackgroundColor(),
+                        pendingOptions.getCustomEnterResId(), 0 /* changeResId */,
+                        pendingOptions.getCustomExitResId(),
                         pendingOptions.getOverrideTaskTransition());
                 startCallback = pendingOptions.getAnimationStartedListener();
                 finishCallback = pendingOptions.getAnimationFinishedListener();
                 break;
             case ANIM_CLIP_REVEAL:
-                displayContent.mAppTransition.overridePendingAppTransitionClipReveal(
-                        pendingOptions.getStartX(), pendingOptions.getStartY(),
-                        pendingOptions.getWidth(), pendingOptions.getHeight());
                 options = AnimationOptions.makeClipRevealAnimOptions(
                         pendingOptions.getStartX(), pendingOptions.getStartY(),
                         pendingOptions.getWidth(), pendingOptions.getHeight());
@@ -5131,9 +5093,6 @@
                 }
                 break;
             case ANIM_SCALE_UP:
-                displayContent.mAppTransition.overridePendingAppTransitionScaleUp(
-                        pendingOptions.getStartX(), pendingOptions.getStartY(),
-                        pendingOptions.getWidth(), pendingOptions.getHeight());
                 options = AnimationOptions.makeScaleUpAnimOptions(
                         pendingOptions.getStartX(), pendingOptions.getStartY(),
                         pendingOptions.getWidth(), pendingOptions.getHeight(),
@@ -5149,10 +5108,6 @@
             case ANIM_THUMBNAIL_SCALE_DOWN:
                 final boolean scaleUp = (animationType == ANIM_THUMBNAIL_SCALE_UP);
                 final HardwareBuffer buffer = pendingOptions.getThumbnail();
-                displayContent.mAppTransition.overridePendingAppTransitionThumb(buffer,
-                        pendingOptions.getStartX(), pendingOptions.getStartY(),
-                        pendingOptions.getAnimationStartedListener(),
-                        scaleUp);
                 options = AnimationOptions.makeThumbnailAnimOptions(buffer,
                         pendingOptions.getStartX(), pendingOptions.getStartY(), scaleUp);
                 startCallback = pendingOptions.getAnimationStartedListener();
@@ -5165,36 +5120,9 @@
                 break;
             case ANIM_THUMBNAIL_ASPECT_SCALE_UP:
             case ANIM_THUMBNAIL_ASPECT_SCALE_DOWN:
-                final AppTransitionAnimationSpec[] specs = pendingOptions.getAnimSpecs();
-                final IAppTransitionAnimationSpecsFuture specsFuture =
-                        pendingOptions.getSpecsFuture();
-                if (specsFuture != null) {
-                    displayContent.mAppTransition.overridePendingAppTransitionMultiThumbFuture(
-                            specsFuture, pendingOptions.getAnimationStartedListener(),
-                            animationType == ANIM_THUMBNAIL_ASPECT_SCALE_UP);
-                } else if (animationType == ANIM_THUMBNAIL_ASPECT_SCALE_DOWN
-                        && specs != null) {
-                    displayContent.mAppTransition.overridePendingAppTransitionMultiThumb(
-                            specs, pendingOptions.getAnimationStartedListener(),
-                            pendingOptions.getAnimationFinishedListener(), false);
-                } else {
-                    displayContent.mAppTransition.overridePendingAppTransitionAspectScaledThumb(
-                            pendingOptions.getThumbnail(),
-                            pendingOptions.getStartX(), pendingOptions.getStartY(),
-                            pendingOptions.getWidth(), pendingOptions.getHeight(),
-                            pendingOptions.getAnimationStartedListener(),
-                            (animationType == ANIM_THUMBNAIL_ASPECT_SCALE_UP));
-                    if (intent.getSourceBounds() == null) {
-                        intent.setSourceBounds(new Rect(pendingOptions.getStartX(),
-                                pendingOptions.getStartY(),
-                                pendingOptions.getStartX() + pendingOptions.getWidth(),
-                                pendingOptions.getStartY() + pendingOptions.getHeight()));
-                    }
-                }
+                // TODO(b/397847511): remove the related types from ActivityOptions.
                 break;
             case ANIM_OPEN_CROSS_PROFILE_APPS:
-                displayContent.mAppTransition
-                        .overridePendingAppTransitionStartCrossProfileApps();
                 options = AnimationOptions.makeCrossProfileAnimOptions();
                 break;
             case ANIM_NONE:
@@ -5209,6 +5137,10 @@
             mTransitionController.setOverrideAnimation(options, this, startCallback,
                     finishCallback);
         }
+        final int backgroundColor = pendingOptions.getCustomBackgroundColor();
+        if (backgroundColor != 0) {
+            mTransitionController.setOverrideBackgroundColor(backgroundColor);
+        }
     }
 
     void clearAllDrawn() {
@@ -5451,8 +5383,6 @@
     }
 
     private void setVisibility(boolean visible, boolean deferHidingClient) {
-        final AppTransition appTransition = getDisplayContent().mAppTransition;
-
         // Don't set visibility to false if we were already not visible. This prevents WM from
         // adding the app to the closing app list which doesn't make sense for something that is
         // already not visible. However, set visibility to true even if we are already visible.
@@ -5472,8 +5402,8 @@
         }
 
         ProtoLog.v(WM_DEBUG_APP_TRANSITIONS,
-                "setAppVisibility(%s, visible=%b): %s visible=%b mVisibleRequested=%b Callers=%s",
-                token, visible, appTransition, isVisible(), mVisibleRequested,
+                "setAppVisibility(%s, visible=%b): visible=%b mVisibleRequested=%b Callers=%s",
+                token, visible, isVisible(), mVisibleRequested,
                 Debug.getCallers(6));
 
         // Before setting mVisibleRequested so we can track changes.
@@ -5570,15 +5500,6 @@
         updateReportedVisibilityLocked();
     }
 
-    @Override
-    boolean applyAnimation(LayoutParams lp, @TransitionOldType int transit, boolean enter,
-            boolean isVoiceInteraction, @Nullable ArrayList<WindowContainer> sources) {
-        if ((mTransitionChangeFlags & FLAG_STARTING_WINDOW_TRANSFER_RECIPIENT) != 0) {
-            return false;
-        }
-        return super.applyAnimation(lp, transit, enter, isVoiceInteraction, sources);
-    }
-
     /**
      * Update visibility to this {@link ActivityRecord}.
      *
@@ -6403,7 +6324,6 @@
         removePauseTimeout();
         removeStopTimeout();
         removeDestroyTimeout();
-        finishLaunchTickingLocked();
     }
 
     void stopIfPossible() {
@@ -6544,44 +6464,6 @@
         }
     }
 
-    void startLaunchTickingLocked() {
-        if (Build.IS_USER) {
-            return;
-        }
-        if (launchTickTime == 0) {
-            launchTickTime = SystemClock.uptimeMillis();
-            continueLaunchTicking();
-        }
-    }
-
-    private boolean continueLaunchTicking() {
-        if (launchTickTime == 0) {
-            return false;
-        }
-
-        final Task rootTask = getRootTask();
-        if (rootTask == null) {
-            return false;
-        }
-
-        rootTask.removeLaunchTickMessages();
-        mAtmService.mH.postDelayed(mLaunchTickRunnable, LAUNCH_TICK);
-        return true;
-    }
-
-    void removeLaunchTickRunnable() {
-        mAtmService.mH.removeCallbacks(mLaunchTickRunnable);
-    }
-
-    void finishLaunchTickingLocked() {
-        launchTickTime = 0;
-        final Task rootTask = getRootTask();
-        if (rootTask == null) {
-            return;
-        }
-        rootTask.removeLaunchTickMessages();
-    }
-
     void onFirstWindowDrawn(WindowState win) {
         firstWindowDrawn = true;
         // stop tracking
@@ -6642,9 +6524,7 @@
         // starting window is drawn, the transition can start earlier. Exclude finishing and bubble
         // because it may be a trampoline.
         if (app == null && !finishing && !mLaunchedFromBubble
-                && mVisibleRequested && !mDisplayContent.mAppTransition.isReady()
-                && !mDisplayContent.mAppTransition.isRunning()
-                && mDisplayContent.isNextTransitionForward()) {
+                && mVisibleRequested && mDisplayContent.isNextTransitionForward()) {
             // The pending transition state will be cleared after the transition is started, so
             // save the state for launching the client later (used by LaunchActivityItem).
             mStartingData.mIsTransitionForward = true;
@@ -6671,7 +6551,6 @@
             mTaskSupervisor.reportActivityLaunched(false /* timeout */, this,
                     windowsDrawnDelayMs, launchState);
         }
-        finishLaunchTickingLocked();
         if (task != null) {
             setTaskHasBeenVisible();
         }
@@ -7526,7 +7405,6 @@
             }
         }
 
-        getDisplayContent().mAppTransition.notifyAppTransitionFinishedLocked(token);
         scheduleAnimation();
 
         // Schedule to handle the stopping and finishing activities which the animation is done
diff --git a/services/core/java/com/android/server/wm/ActivityStartInterceptor.java b/services/core/java/com/android/server/wm/ActivityStartInterceptor.java
index a318c4b..5cc186c 100644
--- a/services/core/java/com/android/server/wm/ActivityStartInterceptor.java
+++ b/services/core/java/com/android/server/wm/ActivityStartInterceptor.java
@@ -73,7 +73,6 @@
 import com.android.server.LocalServices;
 import com.android.server.am.ActivityManagerService;
 import com.android.server.wm.ActivityInterceptorCallback.ActivityInterceptResult;
-import com.android.window.flags.Flags;
 
 /**
  * A class that contains activity intercepting logic for {@link ActivityStarter#execute()}
@@ -504,43 +503,37 @@
         }
 
         boolean intercepted = false;
-        if (Flags.normalizeHomeIntent()) {
-            if (!ACTION_MAIN.equals(mIntent.getAction()) || (!mIntent.hasCategory(CATEGORY_HOME)
-                    && !mIntent.hasCategory(CATEGORY_SECONDARY_HOME))) {
-                // not a home intent
+        if (!ACTION_MAIN.equals(mIntent.getAction()) || (!mIntent.hasCategory(CATEGORY_HOME)
+                && !mIntent.hasCategory(CATEGORY_SECONDARY_HOME))) {
+            // not a home intent
+            return false;
+        }
+
+        if (mComponentSpecified) {
+            Slog.w(TAG, "Starting home with component specified, uid=" + mCallingUid);
+            if (mService.isCallerRecents(mCallingUid)
+                    || ActivityTaskManagerService.checkPermission(MANAGE_ACTIVITY_TASKS,
+                    mCallingPid, mCallingUid) == PERMISSION_GRANTED) {
+                // Allow home component specified from trusted callers.
                 return false;
             }
 
-            if (mComponentSpecified) {
-                Slog.w(TAG, "Starting home with component specified, uid=" + mCallingUid);
-                if (mService.isCallerRecents(mCallingUid)
-                        || ActivityTaskManagerService.checkPermission(MANAGE_ACTIVITY_TASKS,
-                                mCallingPid, mCallingUid) == PERMISSION_GRANTED) {
-                    // Allow home component specified from trusted callers.
-                    return false;
-                }
-
-                final ComponentName homeComponent = mIntent.getComponent();
-                final Intent homeIntent = mService.getHomeIntent();
-                final ActivityInfo aInfo = mService.mRootWindowContainer.resolveHomeActivity(
-                        mUserId, homeIntent);
-                if (!aInfo.getComponentName().equals(homeComponent)) {
-                    // Do nothing if the intent is not for the default home component.
-                    return false;
-                }
-            }
-
-            if (!ActivityRecord.isHomeIntent(mIntent) || mComponentSpecified) {
-                // This is not a standard home intent, make it so if possible.
-                normalizeHomeIntent();
-                intercepted = true;
-            }
-        } else {
-            if (!ActivityRecord.isHomeIntent(mIntent)) {
+            final ComponentName homeComponent = mIntent.getComponent();
+            final Intent homeIntent = mService.getHomeIntent();
+            final ActivityInfo aInfo = mService.mRootWindowContainer.resolveHomeActivity(
+                    mUserId, homeIntent);
+            if (!aInfo.getComponentName().equals(homeComponent)) {
+                // Do nothing if the intent is not for the default home component.
                 return false;
             }
         }
 
+        if (!ActivityRecord.isHomeIntent(mIntent) || mComponentSpecified) {
+            // This is not a standard home intent, make it so if possible.
+            normalizeHomeIntent();
+            intercepted = true;
+        }
+
         intercepted |= replaceToSecondaryHomeIntentIfNeeded();
         if (intercepted) {
             mCallingPid = mRealCallingPid;
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 6f83822..9c96566 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -96,7 +96,6 @@
 import static com.android.server.am.EventLogTags.writeBootProgressEnableScreen;
 import static com.android.server.am.EventLogTags.writeConfigurationChanged;
 import static com.android.server.am.StackTracesDumpHelper.ANR_TRACE_DIR;
-import static com.android.server.am.StackTracesDumpHelper.dumpStackTraces;
 import static com.android.server.wm.ActivityInterceptorCallback.MAINLINE_FIRST_ORDERED_ID;
 import static com.android.server.wm.ActivityInterceptorCallback.MAINLINE_LAST_ORDERED_ID;
 import static com.android.server.wm.ActivityInterceptorCallback.SYSTEM_FIRST_ORDERED_ID;
@@ -199,7 +198,6 @@
 import android.os.Build;
 import android.os.Bundle;
 import android.os.FactoryTest;
-import android.os.FileUtils;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.IUserManager;
@@ -213,7 +211,6 @@
 import android.os.RemoteCallback;
 import android.os.RemoteException;
 import android.os.ServiceManager;
-import android.os.StrictMode;
 import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.os.Trace;
@@ -227,7 +224,6 @@
 import android.service.voice.VoiceInteractionManagerInternal;
 import android.sysprop.DisplayProperties;
 import android.telecom.TelecomManager;
-import android.text.format.TimeMigrationUtils;
 import android.util.ArrayMap;
 import android.util.ArraySet;
 import android.util.IntArray;
@@ -292,7 +288,6 @@
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileDescriptor;
-import java.io.FileOutputStream;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -310,7 +305,6 @@
 import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
@@ -5790,65 +5784,6 @@
         mLastANRState = sw.toString();
     }
 
-    void logAppTooSlow(WindowProcessController app, long startTime, String msg) {
-        if (true || Build.IS_USER) {
-            return;
-        }
-
-        StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
-        StrictMode.allowThreadDiskWrites();
-        try {
-            File tracesDir = new File("/data/anr");
-            File tracesFile = null;
-            try {
-                tracesFile = File.createTempFile("app_slow", null, tracesDir);
-
-                StringBuilder sb = new StringBuilder();
-                String timeString =
-                        TimeMigrationUtils.formatMillisWithFixedFormat(System.currentTimeMillis());
-                sb.append(timeString);
-                sb.append(": ");
-                TimeUtils.formatDuration(SystemClock.uptimeMillis() - startTime, sb);
-                sb.append(" since ");
-                sb.append(msg);
-                FileOutputStream fos = new FileOutputStream(tracesFile);
-                fos.write(sb.toString().getBytes());
-                if (app == null) {
-                    fos.write("\n*** No application process!".getBytes());
-                }
-                fos.close();
-                FileUtils.setPermissions(tracesFile.getPath(), 0666, -1, -1); // -rw-rw-rw-
-            } catch (IOException e) {
-                Slog.w(TAG, "Unable to prepare slow app traces file: " + tracesFile, e);
-                return;
-            }
-
-            if (app != null && app.getPid() > 0) {
-                ArrayList<Integer> firstPids = new ArrayList<Integer>();
-                firstPids.add(app.getPid());
-                dumpStackTraces(tracesFile.getAbsolutePath(), firstPids, null, null, null, null);
-            }
-
-            File lastTracesFile = null;
-            File curTracesFile = null;
-            for (int i = 9; i >= 0; i--) {
-                String name = String.format(Locale.US, "slow%02d.txt", i);
-                curTracesFile = new File(tracesDir, name);
-                if (curTracesFile.exists()) {
-                    if (lastTracesFile != null) {
-                        curTracesFile.renameTo(lastTracesFile);
-                    } else {
-                        curTracesFile.delete();
-                    }
-                }
-                lastTracesFile = curTracesFile;
-            }
-            tracesFile.renameTo(curTracesFile);
-        } finally {
-            StrictMode.setThreadPolicy(oldPolicy);
-        }
-    }
-
     boolean isAssociatedCompanionApp(int userId, int uid) {
         final Set<Integer> allUids = mCompanionAppUidsMap.get(userId);
         if (allUids == null) {
diff --git a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
index 463a92f..c45f7e8 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
@@ -840,8 +840,6 @@
         proc.pauseConfigurationDispatch();
 
         try {
-            // schedule launch ticks to collect information about slow apps.
-            r.startLaunchTickingLocked();
             r.lastLaunchTime = SystemClock.uptimeMillis();
             r.setProcess(proc);
 
@@ -1485,7 +1483,6 @@
             if (DEBUG_IDLE) Slog.d(TAG_IDLE, "activityIdleInternal: Callers="
                     + Debug.getCallers(4));
             mHandler.removeMessages(IDLE_TIMEOUT_MSG, r);
-            r.finishLaunchTickingLocked();
             if (fromTimeout) {
                 reportActivityLaunched(fromTimeout, r, INVALID_DELAY, -1 /* launchState */);
             }
@@ -2766,10 +2763,6 @@
                 case TOP_RESUMED_STATE_LOSS_TIMEOUT_MSG: {
                     final ActivityRecord r = (ActivityRecord) msg.obj;
                     Slog.w(TAG, "Activity top resumed state loss timeout for " + r);
-                    if (r.hasProcess()) {
-                        mService.logAppTooSlow(r.app, r.topResumedStateLossTime,
-                                "top state loss for " + r);
-                    }
                     handleTopResumedStateReleased(true /* timeout */);
                 } break;
                 default:
diff --git a/services/core/java/com/android/server/wm/AppCompatAspectRatioPolicy.java b/services/core/java/com/android/server/wm/AppCompatAspectRatioPolicy.java
index 15c0789..3535a96 100644
--- a/services/core/java/com/android/server/wm/AppCompatAspectRatioPolicy.java
+++ b/services/core/java/com/android/server/wm/AppCompatAspectRatioPolicy.java
@@ -36,8 +36,7 @@
 import android.content.pm.ActivityInfo;
 import android.content.res.Configuration;
 import android.graphics.Rect;
-
-import com.android.window.flags.Flags;
+import android.window.DesktopModeFlags;
 
 /**
  * Encapsulate app compat policy logic related to aspect ratio.
@@ -298,7 +297,8 @@
                 // Camera compat mode is an exception to this, where the activity is letterboxed
                 // to an aspect ratio commonly found on phones, e.g. 16:9, to avoid issues like
                 // stretching of the camera preview.
-                || (Flags.ignoreAspectRatioRestrictionsForResizeableFreeformActivities()
+                || (DesktopModeFlags
+                    .IGNORE_ASPECT_RATIO_RESTRICTIONS_FOR_RESIZEABLE_FREEFORM_ACTIVITIES.isTrue()
                     && task.getWindowingMode() == WINDOWING_MODE_FREEFORM
                     && !mActivityRecord.shouldCreateAppCompatDisplayInsets()
                     && !AppCompatCameraPolicy.shouldCameraCompatControlAspectRatio(
diff --git a/services/core/java/com/android/server/wm/AppCompatCameraOverrides.java b/services/core/java/com/android/server/wm/AppCompatCameraOverrides.java
index 47d30c9..5eed5470 100644
--- a/services/core/java/com/android/server/wm/AppCompatCameraOverrides.java
+++ b/services/core/java/com/android/server/wm/AppCompatCameraOverrides.java
@@ -23,6 +23,7 @@
 import static android.content.pm.ActivityInfo.OVERRIDE_MIN_ASPECT_RATIO_ONLY_FOR_CAMERA;
 import static android.content.pm.ActivityInfo.OVERRIDE_ORIENTATION_ONLY_FOR_CAMERA;
 import static android.view.WindowManager.PROPERTY_CAMERA_COMPAT_ALLOW_FORCE_ROTATION;
+import static android.view.WindowManager.PROPERTY_CAMERA_COMPAT_ALLOW_SIMULATE_REQUESTED_ORIENTATION;
 import static android.view.WindowManager.PROPERTY_CAMERA_COMPAT_ALLOW_REFRESH;
 import static android.view.WindowManager.PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE;
 import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_MIN_ASPECT_RATIO_OVERRIDE;
@@ -32,6 +33,7 @@
 import static com.android.server.wm.AppCompatUtils.isChangeEnabled;
 
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 
 import com.android.server.wm.utils.OptPropFactory;
 import com.android.window.flags.Flags;
@@ -60,6 +62,8 @@
     private final OptPropFactory.OptProp mCameraCompatEnableRefreshViaPauseOptProp;
     @NonNull
     private final OptPropFactory.OptProp mCameraCompatAllowForceRotationOptProp;
+    @Nullable
+    private final OptPropFactory.OptProp mCameraCompatAllowOrientationTreatmentOptProp;
 
     AppCompatCameraOverrides(@NonNull ActivityRecord activityRecord,
             @NonNull AppCompatConfiguration appCompatConfiguration,
@@ -80,6 +84,10 @@
         mCameraCompatAllowForceRotationOptProp = optPropBuilder.create(
                 PROPERTY_CAMERA_COMPAT_ALLOW_FORCE_ROTATION,
                 isCameraCompatTreatmentEnabled);
+        mCameraCompatAllowOrientationTreatmentOptProp =
+                Flags.enableCameraCompatForDesktopWindowingOptOut() ? optPropBuilder.create(
+                PROPERTY_CAMERA_COMPAT_ALLOW_SIMULATE_REQUESTED_ORIENTATION,
+                isCameraCompatTreatmentEnabled) : null;
     }
 
     /**
@@ -168,10 +176,31 @@
      * </ul>
      */
     boolean shouldApplyFreeformTreatmentForCameraCompat() {
-        return Flags.enableCameraCompatForDesktopWindowing() && (isChangeEnabled(mActivityRecord,
-                OVERRIDE_CAMERA_COMPAT_ENABLE_FREEFORM_WINDOWING_TREATMENT)
-                || mActivityRecord.mWmService.mAppCompatConfiguration
-                    .isCameraCompatFreeformWindowingTreatmentEnabled());
+        return Flags.enableCameraCompatForDesktopWindowing()
+                && (shouldEnableCameraCompatFreeformTreatmentForApp()
+                || shouldEnableCameraCompatFreeformTreatmentForAllApps());
+    }
+
+    private boolean shouldEnableCameraCompatFreeformTreatmentForApp() {
+        if (mCameraCompatAllowOrientationTreatmentOptProp != null) {
+            return mCameraCompatAllowOrientationTreatmentOptProp
+                    .shouldEnableWithOptOutOverrideAndProperty(isChangeEnabled(mActivityRecord,
+                            OVERRIDE_CAMERA_COMPAT_ENABLE_FREEFORM_WINDOWING_TREATMENT));
+        } else {
+            return isChangeEnabled(mActivityRecord,
+                    OVERRIDE_CAMERA_COMPAT_ENABLE_FREEFORM_WINDOWING_TREATMENT);
+        }
+    }
+
+    /**
+     * Returns whether camera compat treatment should be enabled for all apps targeted for treatment
+     * (usually fixed-orientation apps).
+     *
+     * <p>This can be enabled via adb only.
+     */
+    private boolean shouldEnableCameraCompatFreeformTreatmentForAllApps() {
+        return mActivityRecord.mWmService.mAppCompatConfiguration
+                .isCameraCompatFreeformWindowingTreatmentEnabled();
     }
 
     boolean isOverrideOrientationOnlyForCameraEnabled() {
diff --git a/services/core/java/com/android/server/wm/AppCompatController.java b/services/core/java/com/android/server/wm/AppCompatController.java
index fc50479..48f08e9 100644
--- a/services/core/java/com/android/server/wm/AppCompatController.java
+++ b/services/core/java/com/android/server/wm/AppCompatController.java
@@ -51,7 +51,7 @@
                         @NonNull ActivityRecord activityRecord) {
         final PackageManager packageManager = wmService.mContext.getPackageManager();
         final OptPropFactory optPropBuilder = new OptPropFactory(packageManager,
-                activityRecord.packageName);
+                activityRecord.packageName, activityRecord.mUserId);
         mDeviceStateQuery = new AppCompatDeviceStateQuery(activityRecord);
         mTransparentPolicy = new TransparentPolicy(activityRecord,
                 wmService.mAppCompatConfiguration);
diff --git a/services/core/java/com/android/server/wm/AppCompatLetterboxPolicy.java b/services/core/java/com/android/server/wm/AppCompatLetterboxPolicy.java
index 57811e2..6873270 100644
--- a/services/core/java/com/android/server/wm/AppCompatLetterboxPolicy.java
+++ b/services/core/java/com/android/server/wm/AppCompatLetterboxPolicy.java
@@ -223,7 +223,7 @@
                         // Check for FLAG_SHOW_WALLPAPER explicitly instead of using
                         // WindowContainer#showWallpaper because the later will return true when
                         // this activity is using blurred wallpaper for letterbox background.
-                        && (mainWindow.getAttrs().flags & FLAG_SHOW_WALLPAPER) == 0;
+                        && (mainWindow.mAttrs.flags & FLAG_SHOW_WALLPAPER) == 0;
 
         mLastShouldShowLetterboxUi = shouldShowLetterboxUi;
 
@@ -334,7 +334,7 @@
         if (w == null) {
             return true;
         }
-        final int type = w.getAttrs().type;
+        final int type = w.mAttrs.type;
         // Allow letterbox to be displayed early for base application or application starting
         // windows even if it is not on the top z order to prevent flickering when the
         // letterboxed window is brought to the top
diff --git a/services/core/java/com/android/server/wm/AppCompatResizeOverrides.java b/services/core/java/com/android/server/wm/AppCompatResizeOverrides.java
index fa53153..1546917 100644
--- a/services/core/java/com/android/server/wm/AppCompatResizeOverrides.java
+++ b/services/core/java/com/android/server/wm/AppCompatResizeOverrides.java
@@ -24,6 +24,7 @@
 import static com.android.server.wm.AppCompatUtils.isChangeEnabled;
 
 import android.annotation.NonNull;
+import android.annotation.UserIdInt;
 import android.content.pm.PackageManager;
 
 import com.android.server.wm.utils.OptPropFactory;
@@ -52,7 +53,8 @@
                 PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES);
         mAllowRestrictedResizability = AppCompatUtils.asLazy(() -> {
             // Application level.
-            if (allowRestrictedResizability(packageManager, mActivityRecord.packageName)) {
+            if (allowRestrictedResizability(packageManager, mActivityRecord.packageName,
+                    mActivityRecord.mUserId)) {
                 return true;
             }
             // Activity level.
@@ -68,10 +70,11 @@
         });
     }
 
-    static boolean allowRestrictedResizability(PackageManager pm, String packageName) {
+    static boolean allowRestrictedResizability(@NonNull PackageManager pm,
+            @NonNull String packageName, @UserIdInt int userId) {
         try {
-            return pm.getProperty(PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY, packageName)
-                    .getBoolean();
+            return pm.getPropertyAsUser(PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY, packageName,
+                            null /* className */, userId).getBoolean();
         } catch (PackageManager.NameNotFoundException e) {
             return false;
         }
diff --git a/services/core/java/com/android/server/wm/BackNavigationController.java b/services/core/java/com/android/server/wm/BackNavigationController.java
index d652ea1..e9d9ace 100644
--- a/services/core/java/com/android/server/wm/BackNavigationController.java
+++ b/services/core/java/com/android/server/wm/BackNavigationController.java
@@ -222,7 +222,7 @@
                     }
                 }
             }
-            final boolean canInterruptInView = (window.getAttrs().privateFlags
+            final boolean canInterruptInView = (window.mAttrs.privateFlags
                     & PRIVATE_FLAG_APP_PROGRESS_GENERATION_ALLOWED) != 0;
             infoBuilder.setAppProgressAllowed(canInterruptInView && !transferGestureToEmbedded
                     && callbackInfo.isAnimationCallback());
@@ -1552,7 +1552,7 @@
             }
 
             void createStartingSurface(@Nullable TaskSnapshot snapshot) {
-                if (Flags.deferPredictiveAnimationIfNoSnapshot() && snapshot == null) {
+                if (snapshot == null) {
                     return;
                 }
                 if (mAdaptors[0].mSwitchType == DIALOG_CLOSE) {
diff --git a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java
index 119709e..f51e60c 100644
--- a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java
+++ b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java
@@ -279,16 +279,24 @@
         mSupervisor = supervisor;
     }
 
+    private ActivityTaskManagerService getService() {
+        return mService;
+    }
+
+    private ActivityTaskSupervisor getSupervisor() {
+        return mSupervisor;
+    }
+
     private boolean isHomeApp(int uid, @Nullable String packageName) {
-        if (mService.mHomeProcess != null) {
+        if (getService().mHomeProcess != null) {
             // Fast check
-            return uid == mService.mHomeProcess.mUid;
+            return uid == getService().mHomeProcess.mUid;
         }
         if (packageName == null) {
             return false;
         }
         ComponentName activity =
-                mService.getPackageManagerInternalLocked()
+                getService().getPackageManagerInternalLocked()
                         .getDefaultHomeActivity(UserHandle.getUserId(uid));
         return activity != null && packageName.equals(activity.getPackageName());
     }
@@ -342,7 +350,8 @@
             mAllowBalExemptionForSystemProcess = allowBalExemptionForSystemProcess;
             mOriginatingPendingIntent = originatingPendingIntent;
             mIntent = intent;
-            mRealCallingPackage = mService.getPackageNameIfUnique(realCallingUid, realCallingPid);
+            mRealCallingPackage = getService().getPackageNameIfUnique(realCallingUid,
+                    realCallingPid);
             mIsCallForResult = resultRecord != null;
             mCheckedOptions = checkedOptions;
             @BackgroundActivityStartMode int callerBackgroundActivityStartMode =
@@ -401,13 +410,13 @@
                                 checkedOptions, realCallingUid, mRealCallingPackage);
             }
 
-            mAppSwitchState = mService.getBalAppSwitchesState();
-            mCallingUidProcState = mService.mActiveUids.getUidState(callingUid);
+            mAppSwitchState = getService().getBalAppSwitchesState();
+            mCallingUidProcState = getService().mActiveUids.getUidState(callingUid);
             mIsCallingUidPersistentSystemProcess =
                     mCallingUidProcState <= ActivityManager.PROCESS_STATE_PERSISTENT_UI;
             mCallingUidHasVisibleActivity =
-                    mService.mVisibleActivityProcessTracker.hasVisibleActivity(callingUid);
-            mCallingUidHasNonAppVisibleWindow = mService.mActiveUids.hasNonAppVisibleWindow(
+                    getService().mVisibleActivityProcessTracker.hasVisibleActivity(callingUid);
+            mCallingUidHasNonAppVisibleWindow = getService().mActiveUids.hasNonAppVisibleWindow(
                     callingUid);
             if (realCallingUid == NO_PROCESS_UID) {
                 // no process provided
@@ -422,16 +431,17 @@
                 mRealCallingUidHasNonAppVisibleWindow = mCallingUidHasNonAppVisibleWindow;
                 // In the PendingIntent case callerApp is not passed in, so resolve it ourselves.
                 mRealCallerApp = callerApp == null
-                        ? mService.getProcessController(realCallingPid, realCallingUid)
+                        ? getService().getProcessController(realCallingPid, realCallingUid)
                         : callerApp;
                 mIsRealCallingUidPersistentSystemProcess = mIsCallingUidPersistentSystemProcess;
             } else {
-                mRealCallingUidProcState = mService.mActiveUids.getUidState(realCallingUid);
+                mRealCallingUidProcState = getService().mActiveUids.getUidState(realCallingUid);
                 mRealCallingUidHasVisibleActivity =
-                        mService.mVisibleActivityProcessTracker.hasVisibleActivity(realCallingUid);
+                        getService().mVisibleActivityProcessTracker.hasVisibleActivity(
+                                realCallingUid);
                 mRealCallingUidHasNonAppVisibleWindow =
-                        mService.mActiveUids.hasNonAppVisibleWindow(realCallingUid);
-                mRealCallerApp = mService.getProcessController(realCallingPid, realCallingUid);
+                        getService().mActiveUids.hasNonAppVisibleWindow(realCallingUid);
+                mRealCallerApp = getService().getProcessController(realCallingPid, realCallingUid);
                 mIsRealCallingUidPersistentSystemProcess =
                         mRealCallingUidProcState <= ActivityManager.PROCESS_STATE_PERSISTENT_UI;
             }
@@ -481,7 +491,7 @@
             if (uid == 0) {
                 return "root[debugOnly]";
             }
-            String name = mService.getPackageManagerInternalLocked().getNameForUid(uid);
+            String name = getService().getPackageManagerInternalLocked().getNameForUid(uid);
             if (name == null) {
                 name = "uid=" + uid;
             }
@@ -783,7 +793,7 @@
                     Process.getAppUidForSdkSandboxUid(state.mRealCallingUid);
             // realCallingSdkSandboxUidToAppUid should probably just be used instead (or in addition
             // to realCallingUid when calculating resultForRealCaller below.
-            if (mService.hasActiveVisibleWindow(realCallingSdkSandboxUidToAppUid)) {
+            if (getService().hasActiveVisibleWindow(realCallingSdkSandboxUidToAppUid)) {
                 state.setResultForRealCaller(new BalVerdict(BAL_ALLOW_SDK_SANDBOX,
                         /*background*/ false,
                         "uid in SDK sandbox has visible (non-toast) window"));
@@ -1000,37 +1010,45 @@
      * or {@link #BAL_BLOCK} if the launch should be blocked
      */
     BalVerdict checkBackgroundActivityStartAllowedByCaller(BalState state) {
+        boolean evaluateVisibleOnly = balAdditionalStartModes()
+                && state.mCheckedOptions.getPendingIntentCreatorBackgroundActivityStartMode()
+                == MODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE;
+        if (evaluateVisibleOnly) {
+            return evaluateChain(state, mCheckCallerVisible, mCheckCallerNonAppVisible,
+                    mCheckCallerProcessAllowsForeground);
+        }
         if (state.isPendingIntent()) {
             // PendingIntents should mostly be allowed by the sender (real caller) or a permission
             // the creator of the PendingIntent has. Visibility should be the exceptional case, so
             // test it last (this does not change the result, just the bal code).
-            BalVerdict result = BalVerdict.BLOCK;
-            if (!(balAdditionalStartModes()
-                    && state.mCheckedOptions.getPendingIntentCreatorBackgroundActivityStartMode()
-                    == MODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE)) {
-                result = checkBackgroundActivityStartAllowedByCallerInBackground(state);
-            }
-            if (result == BalVerdict.BLOCK) {
-                result = checkBackgroundActivityStartAllowedByCallerInForeground(state);
-
-            }
-            return result;
-        } else {
-            BalVerdict result = checkBackgroundActivityStartAllowedByCallerInForeground(state);
-            if (result == BalVerdict.BLOCK && !(balAdditionalStartModes()
-                    && state.mCheckedOptions.getPendingIntentCreatorBackgroundActivityStartMode()
-                    == MODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE)) {
-                result = checkBackgroundActivityStartAllowedByCallerInBackground(state);
-            }
-            return result;
+            return evaluateChain(state, mCheckCallerIsAllowlistedUid,
+                    mCheckCallerIsAllowlistedComponent, mCheckCallerHasBackgroundPermission,
+                    mCheckCallerHasSawPermission, mCheckCallerHasBgStartAppOp,
+                    mCheckCallerProcessAllowsBackground, mCheckCallerVisible,
+                    mCheckCallerNonAppVisible, mCheckCallerProcessAllowsForeground);
         }
+        return evaluateChain(state, mCheckCallerVisible, mCheckCallerNonAppVisible,
+                mCheckCallerProcessAllowsForeground, mCheckCallerIsAllowlistedUid,
+                mCheckCallerIsAllowlistedComponent, mCheckCallerHasBackgroundPermission,
+                mCheckCallerHasSawPermission, mCheckCallerHasBgStartAppOp,
+                mCheckCallerProcessAllowsBackground);
     }
 
-    /**
-     * @return A code denoting which BAL rule allows an activity to be started,
-     * or {@link #BAL_BLOCK} if the launch should be blocked
-     */
-    BalVerdict checkBackgroundActivityStartAllowedByCallerInForeground(BalState state) {
+    interface BalExemptionCheck {
+        BalVerdict evaluate(BalState state);
+    }
+
+    private BalVerdict evaluateChain(BalState state, BalExemptionCheck... checks) {
+        for (BalExemptionCheck check : checks) {
+            BalVerdict verdict = check.evaluate(state);
+            if (verdict != BalVerdict.BLOCK) {
+                return verdict;
+            }
+        }
+        return BalVerdict.BLOCK;
+    }
+
+    private final BalExemptionCheck mCheckCallerVisible = state -> {
         // This is used to block background activity launch even if the app is still
         // visible to user after user clicking home button.
 
@@ -1044,21 +1062,19 @@
             return new BalVerdict(BAL_ALLOW_VISIBLE_WINDOW,
                     /*background*/ false, "callingUid has visible window");
         }
+        return BalVerdict.BLOCK;
+    };
+
+    private final BalExemptionCheck mCheckCallerNonAppVisible = state -> {
         if (state.mCallingUidHasNonAppVisibleWindow) {
             return new BalVerdict(BAL_ALLOW_NON_APP_VISIBLE_WINDOW,
                     /*background*/ false, "callingUid has non-app visible window "
-                    + mService.mActiveUids.getNonAppVisibleWindowDetails(state.mCallingUid));
+                    + getService().mActiveUids.getNonAppVisibleWindowDetails(state.mCallingUid));
         }
-        // Don't abort if the callerApp or other processes of that uid are considered to be in the
-        // foreground.
-        return checkProcessAllowsBal(state.mCallerApp, state, BAL_CHECK_FOREGROUND);
-    }
+        return BalVerdict.BLOCK;
+    };
 
-    /**
-     * @return A code denoting which BAL rule allows an activity to be started,
-     * or {@link #BAL_BLOCK} if the launch should be blocked
-     */
-    BalVerdict checkBackgroundActivityStartAllowedByCallerInBackground(BalState state) {
+    private final BalExemptionCheck mCheckCallerIsAllowlistedUid = state -> {
         // don't abort for the most important UIDs
         final int callingAppId = UserHandle.getAppId(state.mCallingUid);
         if (state.mCallingUid == Process.ROOT_UID
@@ -1066,9 +1082,12 @@
                 || callingAppId == Process.NFC_UID) {
             return new BalVerdict(
                     BAL_ALLOW_ALLOWLISTED_UID, /*background*/ false,
-                     "Important callingUid");
+                    "Important callingUid");
         }
+        return BalVerdict.BLOCK;
+    };
 
+    private final BalExemptionCheck mCheckCallerIsAllowlistedComponent = state -> {
         // Always allow home application to start activities.
         if (isHomeApp(state.mCallingUid, state.mCallingPackage)) {
             return new BalVerdict(BAL_ALLOW_ALLOWLISTED_COMPONENT,
@@ -1076,9 +1095,10 @@
                     "Home app");
         }
 
+        final int callingAppId = UserHandle.getAppId(state.mCallingUid);
         // IME should always be allowed to start activity, like IME settings.
         final WindowState imeWindow =
-                mService.mRootWindowContainer.getCurrentInputMethodWindow();
+                getService().mRootWindowContainer.getCurrentInputMethodWindow();
         if (imeWindow != null && callingAppId == imeWindow.mOwnerUid) {
             return new BalVerdict(BAL_ALLOW_ALLOWLISTED_COMPONENT,
                     /*background*/ false,
@@ -1091,71 +1111,88 @@
                     /*background*/ false, "callingUid is persistent system process");
         }
 
+        // don't abort if the caller has the same uid as the recents component
+        if (getSupervisor().mRecentTasks.isCallerRecents(state.mCallingUid)) {
+            return new BalVerdict(BAL_ALLOW_ALLOWLISTED_COMPONENT,
+                    /*background*/ true, "Recents Component");
+        }
+        // don't abort if the callingUid is the device owner
+        if (getService().isDeviceOwner(state.mCallingUid)) {
+            return new BalVerdict(BAL_ALLOW_ALLOWLISTED_COMPONENT,
+                    /*background*/ true, "Device Owner");
+        }
+        // don't abort if the callingUid is a affiliated profile owner
+        if (getService().isAffiliatedProfileOwner(state.mCallingUid)) {
+            return new BalVerdict(BAL_ALLOW_ALLOWLISTED_COMPONENT,
+                    /*background*/ true, "Affiliated Profile Owner");
+        }
+        // don't abort if the callingUid has companion device
+        final int callingUserId = UserHandle.getUserId(state.mCallingUid);
+        if (getService().isAssociatedCompanionApp(callingUserId, state.mCallingUid)) {
+            return new BalVerdict(BAL_ALLOW_ALLOWLISTED_COMPONENT,
+                    /*background*/ true, "Companion App");
+        }
+        return BalVerdict.BLOCK;
+    };
+
+    private final BalExemptionCheck mCheckCallerHasBackgroundPermission = state -> {
         // don't abort if the callingUid has START_ACTIVITIES_FROM_BACKGROUND permission
         if (hasBalPermission(state.mCallingUid, state.mCallingPid)) {
             return new BalVerdict(BAL_ALLOW_PERMISSION,
                     /*background*/ true,
                     "START_ACTIVITIES_FROM_BACKGROUND permission granted");
         }
-        // don't abort if the caller has the same uid as the recents component
-        if (mSupervisor.mRecentTasks.isCallerRecents(state.mCallingUid)) {
-            return new BalVerdict(BAL_ALLOW_ALLOWLISTED_COMPONENT,
-                    /*background*/ true, "Recents Component");
-        }
-        // don't abort if the callingUid is the device owner
-        if (mService.isDeviceOwner(state.mCallingUid)) {
-            return new BalVerdict(BAL_ALLOW_ALLOWLISTED_COMPONENT,
-                    /*background*/ true, "Device Owner");
-        }
-        // don't abort if the callingUid is a affiliated profile owner
-        if (mService.isAffiliatedProfileOwner(state.mCallingUid)) {
-            return new BalVerdict(BAL_ALLOW_ALLOWLISTED_COMPONENT,
-                    /*background*/ true, "Affiliated Profile Owner");
-        }
-        // don't abort if the callingUid has companion device
-        final int callingUserId = UserHandle.getUserId(state.mCallingUid);
-        if (mService.isAssociatedCompanionApp(callingUserId, state.mCallingUid)) {
-            return new BalVerdict(BAL_ALLOW_ALLOWLISTED_COMPONENT,
-                    /*background*/ true, "Companion App");
-        }
+        return BalVerdict.BLOCK;
+    };
+    private final BalExemptionCheck mCheckCallerHasSawPermission = state -> {
         // don't abort if the callingUid has SYSTEM_ALERT_WINDOW permission
-        if (mService.hasSystemAlertWindowPermission(state.mCallingUid, state.mCallingPid,
+        if (getService().hasSystemAlertWindowPermission(state.mCallingUid, state.mCallingPid,
                 state.mCallingPackage)) {
             return new BalVerdict(BAL_ALLOW_SAW_PERMISSION,
                     /*background*/ true, "SYSTEM_ALERT_WINDOW permission is granted");
         }
+        return BalVerdict.BLOCK;
+    };
+    private final BalExemptionCheck mCheckCallerHasBgStartAppOp = state -> {
         // don't abort if the callingUid and callingPackage have the
         // OP_SYSTEM_EXEMPT_FROM_ACTIVITY_BG_START_RESTRICTION appop
-        if (isSystemExemptFlagEnabled() && mService.getAppOpsManager().checkOpNoThrow(
+        if (isSystemExemptFlagEnabled() && getService().getAppOpsManager().checkOpNoThrow(
                 AppOpsManager.OP_SYSTEM_EXEMPT_FROM_ACTIVITY_BG_START_RESTRICTION,
                 state.mCallingUid, state.mCallingPackage) == AppOpsManager.MODE_ALLOWED) {
             return new BalVerdict(BAL_ALLOW_PERMISSION, /*background*/ true,
                     "OP_SYSTEM_EXEMPT_FROM_ACTIVITY_BG_START_RESTRICTION appop is granted");
         }
+        return BalVerdict.BLOCK;
+    };
 
-        // Don't abort if the callerApp or other processes of that uid are allowed in any way.
-        return checkProcessAllowsBal(state.mCallerApp, state, BAL_CHECK_BACKGROUND);
-    }
+
+    // Don't abort if the callerApp or other processes of that uid are considered to be in the
+    // foreground.
+    private final BalExemptionCheck mCheckCallerProcessAllowsForeground =
+            state -> checkProcessAllowsBal(state.mCallerApp, state, BAL_CHECK_FOREGROUND);
+    // Don't abort if the callerApp or other processes of that uid are allowed in any way.
+    private final BalExemptionCheck mCheckCallerProcessAllowsBackground =
+            state -> checkProcessAllowsBal(state.mCallerApp, state, BAL_CHECK_BACKGROUND);
 
     /**
      * @return A code denoting which BAL rule allows an activity to be started,
      * or {@link #BAL_BLOCK} if the launch should be blocked
      */
     BalVerdict checkBackgroundActivityStartAllowedByRealCaller(BalState state) {
-        BalVerdict result = checkBackgroundActivityStartAllowedByRealCallerInForeground(state);
-        if (result == BalVerdict.BLOCK && !(balAdditionalStartModes()
+        boolean evaluateVisibleOnly = balAdditionalStartModes()
                 && state.mCheckedOptions.getPendingIntentBackgroundActivityStartMode()
-                == MODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE)) {
-            result = checkBackgroundActivityStartAllowedByRealCallerInBackground(state);
+                == MODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE;
+        if (evaluateVisibleOnly) {
+            return evaluateChain(state, mCheckRealCallerVisible, mCheckRealCallerNonAppVisible,
+                    mCheckRealCallerProcessAllowsBalForeground);
         }
-        return result;
+        return evaluateChain(state, mCheckRealCallerVisible, mCheckRealCallerNonAppVisible,
+                mCheckRealCallerProcessAllowsBalForeground, mCheckRealCallerBalPermission,
+                mCheckRealCallerSawPermission, mCheckRealCallerAllowlistedUid,
+                mCheckRealCallerAllowlistedComponent, mCheckRealCallerProcessAllowsBalBackground);
     }
 
-    /**
-     * @return A code denoting which BAL rule allows an activity to be started,
-     * or {@link #BAL_BLOCK} if the launch should be blocked
-     */
-    BalVerdict checkBackgroundActivityStartAllowedByRealCallerInForeground(BalState state) {
+    private final BalExemptionCheck mCheckRealCallerVisible = state -> {
         // Normal apps with visible app window will be allowed to start activity if app switching
         // is allowed, or apps like live wallpaper with non app visible window will be allowed.
         // The home app can start apps even if app switches are usually disallowed.
@@ -1166,22 +1203,29 @@
             return new BalVerdict(BAL_ALLOW_VISIBLE_WINDOW,
                     /*background*/ false, "realCallingUid has visible window");
         }
+        return BalVerdict.BLOCK;
+    };
+
+    private final BalExemptionCheck mCheckRealCallerNonAppVisible = state -> {
         if (state.mRealCallingUidHasNonAppVisibleWindow) {
             return new BalVerdict(BAL_ALLOW_NON_APP_VISIBLE_WINDOW,
                     /*background*/ false, "realCallingUid has non-app visible window "
-                    + mService.mActiveUids.getNonAppVisibleWindowDetails(state.mRealCallingUid));
+                    + getService().mActiveUids.getNonAppVisibleWindowDetails(
+                    state.mRealCallingUid));
         }
+        return BalVerdict.BLOCK;
+    };
 
-        // Don't abort if the realCallerApp or other processes of that uid are considered to be in
-        // the foreground.
-        return checkProcessAllowsBal(state.mRealCallerApp, state, BAL_CHECK_FOREGROUND);
-    }
+    // Don't abort if the realCallerApp or other processes of that uid are considered to be in
+    // the foreground.
+    private final BalExemptionCheck mCheckRealCallerProcessAllowsBalForeground =
+            state -> checkProcessAllowsBal(state.mRealCallerApp, state, BAL_CHECK_FOREGROUND);
 
-    /**
-     * @return A code denoting which BAL rule allows an activity to be started,
-     * or {@link #BAL_BLOCK} if the launch should be blocked
-     */
-    BalVerdict checkBackgroundActivityStartAllowedByRealCallerInBackground(BalState state) {
+    // don't abort if the callerApp or other processes of that uid are allowed in any way
+    private final BalExemptionCheck mCheckRealCallerProcessAllowsBalBackground =
+            state -> checkProcessAllowsBal(state.mRealCallerApp, state, BAL_CHECK_BACKGROUND);
+
+    private final BalExemptionCheck mCheckRealCallerBalPermission = state -> {
         boolean allowAlways = state.mCheckedOptions.getPendingIntentBackgroundActivityStartMode()
                 == MODE_BACKGROUND_ACTIVITY_START_ALLOW_ALWAYS;
         if (allowAlways
@@ -1190,15 +1234,25 @@
                     /*background*/ false,
                     "realCallingUid has BAL permission.");
         }
+        return BalVerdict.BLOCK;
+    };
 
+    private final BalExemptionCheck mCheckRealCallerSawPermission = state -> {
+        boolean allowAlways = state.mCheckedOptions.getPendingIntentBackgroundActivityStartMode()
+                == MODE_BACKGROUND_ACTIVITY_START_ALLOW_ALWAYS;
         // don't abort if the realCallingUid has SYSTEM_ALERT_WINDOW permission
         if (allowAlways
-                && mService.hasSystemAlertWindowPermission(state.mRealCallingUid,
+                && getService().hasSystemAlertWindowPermission(state.mRealCallingUid,
                 state.mRealCallingPid, state.mRealCallingPackage)) {
             return new BalVerdict(BAL_ALLOW_SAW_PERMISSION,
                     /*background*/ true, "SYSTEM_ALERT_WINDOW permission is granted");
         }
+        return BalVerdict.BLOCK;
+    };
 
+    private final BalExemptionCheck mCheckRealCallerAllowlistedUid = state -> {
+        boolean allowAlways = state.mCheckedOptions.getPendingIntentBackgroundActivityStartMode()
+                == MODE_BACKGROUND_ACTIVITY_START_ALLOW_ALWAYS;
         // if the realCallingUid is a persistent system process, abort if the IntentSender
         // wasn't allowed to start an activity
         if ((allowAlways || state.mAllowBalExemptionForSystemProcess)
@@ -1208,17 +1262,19 @@
                     "realCallingUid is persistent system process AND intent "
                             + "sender forced to allow.");
         }
+        return BalVerdict.BLOCK;
+    };
+
+    private final BalExemptionCheck mCheckRealCallerAllowlistedComponent = state -> {
         // don't abort if the realCallingUid is an associated companion app
-        if (mService.isAssociatedCompanionApp(
+        if (getService().isAssociatedCompanionApp(
                 UserHandle.getUserId(state.mRealCallingUid), state.mRealCallingUid)) {
             return new BalVerdict(BAL_ALLOW_ALLOWLISTED_COMPONENT,
                     /*background*/ false,
                     "realCallingUid is a companion app.");
         }
-
-        // don't abort if the callerApp or other processes of that uid are allowed in any way
-        return checkProcessAllowsBal(state.mRealCallerApp, state, BAL_CHECK_BACKGROUND);
-    }
+        return BalVerdict.BLOCK;
+    };
 
     @VisibleForTesting boolean hasBalPermission(int uid, int pid) {
         return ActivityTaskManagerService.checkPermission(START_ACTIVITIES_FROM_BACKGROUND,
@@ -1245,7 +1301,7 @@
         } else {
             // only if that one wasn't allowed, check the other ones
             final ArraySet<WindowProcessController> uidProcesses =
-                    mService.mProcessMap.getProcesses(app.mUid);
+                    getService().mProcessMap.getProcesses(app.mUid);
             if (uidProcesses != null) {
                 for (int i = uidProcesses.size() - 1; i >= 0; i--) {
                     final WindowProcessController proc = uidProcesses.valueAt(i);
@@ -1416,7 +1472,7 @@
         if (ActivitySecurityModelFeatureFlags.shouldShowToast(callingUid)) {
             String toastText = ActivitySecurityModelFeatureFlags.DOC_LINK
                     + (enforceBlock ? " blocked " : " would block ")
-                    + getApplicationLabel(mService.mContext.getPackageManager(),
+                    + getApplicationLabel(getService().mContext.getPackageManager(),
                     launchedFromPackageName);
             showToast(toastText);
 
@@ -1438,7 +1494,7 @@
     }
 
     @VisibleForTesting void showToast(String toastText) {
-        UiThread.getHandler().post(() -> Toast.makeText(mService.mContext,
+        UiThread.getHandler().post(() -> Toast.makeText(getService().mContext,
                 toastText, Toast.LENGTH_LONG).show());
     }
 
@@ -1515,7 +1571,7 @@
             return;
         }
 
-        String packageName =  mService.mContext.getPackageManager().getNameForUid(callingUid);
+        String packageName =  getService().mContext.getPackageManager().getNameForUid(callingUid);
         BalState state = new BalState(callingUid, callingPid, packageName, INVALID_UID,
                 INVALID_PID, null, null, false, null, null, ActivityOptions.makeBasic());
         @BalCode int balCode = checkBackgroundActivityStartAllowedByCaller(state).mCode;
@@ -1576,7 +1632,7 @@
         boolean restrictActivitySwitch = ActivitySecurityModelFeatureFlags
                 .shouldRestrictActivitySwitch(callingUid) && bas.mTopActivityOptedIn;
 
-        PackageManager pm = mService.mContext.getPackageManager();
+        PackageManager pm = getService().mContext.getPackageManager();
         String callingPackage = pm.getNameForUid(callingUid);
         final CharSequence callingLabel;
         if (callingPackage == null) {
@@ -1737,7 +1793,7 @@
             return bas.optedIn(ar);
         }
 
-        PackageManager pm = mService.mContext.getPackageManager();
+        PackageManager pm = getService().mContext.getPackageManager();
         ApplicationInfo applicationInfo;
 
         final int sourceUserId = UserHandle.getUserId(sourceUid);
@@ -1794,7 +1850,7 @@
 
         if (sourceRecord == null) {
             joiner.add(prefix + "Source Package: " + targetRecord.launchedFromPackage);
-            String realCallingPackage = mService.mContext.getPackageManager().getNameForUid(
+            String realCallingPackage = getService().mContext.getPackageManager().getNameForUid(
                     realCallingUid);
             joiner.add(prefix + "Real Calling Uid Package: " + realCallingPackage);
         } else {
@@ -1829,7 +1885,7 @@
         joiner.add(prefix + "BalCode: " + balCodeToString(balCode));
         joiner.add(prefix + "Allowed By Grace Period: " + allowedByGracePeriod);
         joiner.add(prefix + "LastResumedActivity: "
-                       + recordToString.apply(mService.mLastResumedActivity));
+                       + recordToString.apply(getService().mLastResumedActivity));
         joiner.add(prefix + "System opted into enforcement: " + asmOptSystemIntoEnforcement());
 
         if (mTopFinishedActivity != null) {
@@ -1902,7 +1958,7 @@
     }
 
     private BalVerdict statsLog(BalVerdict finalVerdict, BalState state) {
-        if (finalVerdict.blocks() && mService.isActivityStartsLoggingEnabled()) {
+        if (finalVerdict.blocks() && getService().isActivityStartsLoggingEnabled()) {
             // log aborted activity start to TRON
             mSupervisor
                     .getActivityMetricsLogger()
@@ -2138,7 +2194,7 @@
             return -1;
         }
         try {
-            PackageManager pm = mService.mContext.getPackageManager();
+            PackageManager pm = getService().mContext.getPackageManager();
             return pm.getTargetSdkVersion(packageName);
         } catch (Exception e) {
             return -1;
@@ -2159,8 +2215,8 @@
             this.mLaunchCount = entry == null || !ar.isUid(entry.mUid) ? 1 : entry.mLaunchCount + 1;
             this.mDebugInfo = getDebugStringForActivityRecord(ar);
 
-            mService.mH.postDelayed(() -> {
-                synchronized (mService.mGlobalLock) {
+            getService().mH.postDelayed(() -> {
+                synchronized (getService().mGlobalLock) {
                     if (mTaskIdToFinishedActivity.get(taskId) == this) {
                         mTaskIdToFinishedActivity.remove(taskId);
                     }
diff --git a/services/core/java/com/android/server/wm/DesktopModeHelper.java b/services/core/java/com/android/server/wm/DesktopModeHelper.java
index c2255d8..dc42b32 100644
--- a/services/core/java/com/android/server/wm/DesktopModeHelper.java
+++ b/services/core/java/com/android/server/wm/DesktopModeHelper.java
@@ -79,7 +79,7 @@
     }
 
     @VisibleForTesting
-    static boolean isDeviceEligibleForDesktopMode(@NonNull Context context) {
+    public static boolean isDeviceEligibleForDesktopMode(@NonNull Context context) {
         if (!shouldEnforceDeviceRestrictions()) {
             return true;
         }
diff --git a/services/core/java/com/android/server/wm/DimmerAnimationHelper.java b/services/core/java/com/android/server/wm/DimmerAnimationHelper.java
index 1d447dd..5041ded 100644
--- a/services/core/java/com/android/server/wm/DimmerAnimationHelper.java
+++ b/services/core/java/com/android/server/wm/DimmerAnimationHelper.java
@@ -208,6 +208,8 @@
                         setCurrentAlphaBlur(dim, finishTransaction);
                         if (targetAlpha == 0f && !dim.isDimming()) {
                             dim.remove(finishTransaction);
+                            // Ensure the finishTransaction is applied if pending
+                            dim.mHostContainer.scheduleAnimation();
                         }
                         mLocalAnimationAdapter = null;
                         mAlphaAnimationSpec = null;
diff --git a/services/core/java/com/android/server/wm/DisplayArea.java b/services/core/java/com/android/server/wm/DisplayArea.java
index b932ef3..6718ae4 100644
--- a/services/core/java/com/android/server/wm/DisplayArea.java
+++ b/services/core/java/com/android/server/wm/DisplayArea.java
@@ -748,14 +748,9 @@
                         && policy.okToAnimate(true /* ignoreScreenOn */)) {
                     return false;
                 }
-                // Consider unoccluding only when all unknown visibilities have been
-                // resolved, as otherwise we just may be starting another occluding activity.
-                final boolean isUnoccluding =
-                        mDisplayContent.mAppTransition.isUnoccluding()
-                                && mDisplayContent.mUnknownAppVisibilityController.allResolved();
-                // If keyguard is showing, or we're unoccluding, force the keyguard's orientation,
+                // Use keyguard's orientation if it is showing and not occluded
                 // even if SystemUI hasn't updated the attrs yet.
-                if (policy.isKeyguardShowingAndNotOccluded() || isUnoccluding) {
+                if (policy.isKeyguardShowingAndNotOccluded()) {
                     return true;
                 }
             }
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index e30c24d..50f12c3 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -46,6 +46,7 @@
 import static android.view.Display.FLAG_SHOULD_SHOW_SYSTEM_DECORATIONS;
 import static android.view.Display.INVALID_DISPLAY;
 import static android.view.Display.STATE_UNKNOWN;
+import static android.view.Display.TYPE_EXTERNAL;
 import static android.view.Display.isSuspendedState;
 import static android.view.InsetsSource.ID_IME;
 import static android.view.Surface.ROTATION_0;
@@ -88,7 +89,6 @@
 import static android.window.DisplayAreaOrganizer.FEATURE_IME;
 import static android.window.DisplayAreaOrganizer.FEATURE_ROOT;
 
-import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS;
 import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_BOOT;
 import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONTENT_RECORDING;
 import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS;
@@ -156,6 +156,8 @@
 import static com.android.server.wm.utils.DisplayInfoOverrides.copyDisplayInfoFields;
 import static com.android.server.wm.utils.RegionUtils.forEachRectReverse;
 import static com.android.server.wm.utils.RegionUtils.rectListToRegion;
+import static com.android.window.flags.Flags.enablePersistingDensityScaleForConnectedDisplays;
+import static com.android.window.flags.Flags.enablePresentationForConnectedDisplays;
 
 import android.annotation.IntDef;
 import android.annotation.NonNull;
@@ -369,12 +371,6 @@
 
     private MetricsLogger mMetricsLogger;
 
-    /**
-     * List of clients without a transtiton animation that we notify once we are done
-     * transitioning since they won't be notified through the app window animator.
-     */
-    final List<IBinder> mNoAnimationNotifyOnTransitionFinished = new ArrayList<>();
-
     // Mapping from a token IBinder to a WindowToken object on this display.
     private final HashMap<IBinder, WindowToken> mTokenMap = new HashMap();
 
@@ -433,6 +429,12 @@
      * @see WindowManagerService#setForcedDisplayDensityForUser(int, int, int)
      */
     int mBaseDisplayDensity = 0;
+
+    /**
+     * Ratio between overridden display density for current user and the initial display density,
+     * used only for external displays.
+     */
+    float mExternalDisplayForcedDensityRatio = 0.0f;
     boolean mIsDensityForced = false;
 
     /**
@@ -829,28 +831,36 @@
      */
     private final ToBooleanFunction<WindowState> mFindFocusedWindow = w -> {
         final ActivityRecord focusedApp = mFocusedApp;
+        final boolean canReceiveKeys = w.canReceiveKeys();
         ProtoLog.v(WM_DEBUG_FOCUS, "Looking for focus: %s, flags=%d, canReceive=%b, reason=%s",
-                w, w.mAttrs.flags, w.canReceiveKeys(),
+                w, w.mAttrs.flags, canReceiveKeys,
                 w.canReceiveKeysReason(false /* fromUserTouch */));
 
-        if (!w.canReceiveKeys()) {
+        if (!canReceiveKeys) {
             return false;
         }
 
-        // When switching the app task, we keep the IME window visibility for better
-        // transitioning experiences.
-        // However, in case IME created a child window or the IME selection dialog without
-        // dismissing during the task switching to keep the window focus because IME window has
-        // higher window hierarchy, we don't give it focus if the next IME layering target
-        // doesn't request IME visible.
-        if (w.mIsImWindow && w.isChildWindow() && (mImeLayeringTarget == null
-                || !mImeLayeringTarget.isRequestedVisible(ime()))) {
-            return false;
-        }
-        if (w.mAttrs.type == TYPE_INPUT_METHOD_DIALOG && mImeLayeringTarget != null
-                && !(mImeLayeringTarget.isRequestedVisible(ime())
-                        && mImeLayeringTarget.isVisibleRequested())) {
-            return false;
+        // IME windows remain visibleRequested while switching apps to maintain a smooth animation.
+        // This persists until the new app is focused, so they can be visibleRequested despite not
+        // being visible to the user (i.e. occluded). These rank higher in the window hierarchy than
+        // app windows, so they will always be considered first. To avoid having the focus stuck,
+        // an IME window (child or not) cannot be focused if the IME parent is not visible. However,
+        // child windows also require the IME to be visible in the current app.
+        if (w.mIsImWindow) {
+            final boolean imeParentVisible = mInputMethodSurfaceParentWindow != null
+                    && mInputMethodSurfaceParentWindow.isVisibleRequested();
+            if (!imeParentVisible) {
+                ProtoLog.v(WM_DEBUG_FOCUS, "findFocusedWindow: IME window not focusable as"
+                        + " IME parent is not visible");
+                return false;
+            }
+
+            if (w.isChildWindow()
+                    && !getInsetsStateController().getImeSourceProvider().isImeShowing()) {
+                ProtoLog.v(WM_DEBUG_FOCUS, "findFocusedWindow: IME child window not focusable as"
+                        + " IME is not visible");
+                return false;
+            }
         }
 
         final ActivityRecord activity = w.mActivityRecord;
@@ -1171,8 +1181,6 @@
 
         mFixedRotationTransitionListener = new FixedRotationTransitionListener(mDisplayId);
         mAppTransition = new AppTransition(mWmService.mContext, mWmService, this);
-        mAppTransition.registerListenerLocked(mWmService.mActivityManagerAppTransitionNotifier);
-        mAppTransition.registerListenerLocked(mFixedRotationTransitionListener);
         mTransitionController.registerLegacyListener(mFixedRotationTransitionListener);
         mUnknownAppVisibilityController = new UnknownAppVisibilityController(mWmService, this);
         mRemoteDisplayChangeController = new RemoteDisplayChangeController(this);
@@ -2858,13 +2866,6 @@
         return isVisible() && !mRemoved && !mRemoving;
     }
 
-    @Override
-    void onAppTransitionDone() {
-        super.onAppTransitionDone();
-        mWmService.mWindowsChanged = true;
-        onTransitionFinished();
-    }
-
     void onTransitionFinished() {
         // If the transition finished callback cannot match the token for some reason, make sure the
         // rotated state is cleared if it is already invisible.
@@ -3073,6 +3074,17 @@
                 mDisplayPolicy.physicalDisplayChanged();
             }
 
+            // Real display metrics changed, so we should also update initial values.
+            mInitialDisplayWidth = newWidth;
+            mInitialDisplayHeight = newHeight;
+            mInitialDisplayDensity = newDensity;
+            mInitialPhysicalXDpi = newXDpi;
+            mInitialPhysicalYDpi = newYDpi;
+            mInitialDisplayCutout = newCutout;
+            mInitialRoundedCorners = newRoundedCorners;
+            mInitialDisplayShape = newDisplayShape;
+            mCurrentUniqueDisplayId = newUniqueId;
+
             // If there is an override set for base values - use it, otherwise use new values.
             updateBaseDisplayMetrics(mIsSizeForced ? mBaseDisplayWidth : newWidth,
                     mIsSizeForced ? mBaseDisplayHeight : newHeight,
@@ -3089,16 +3101,6 @@
                 mWmService.mDisplayWindowSettings.applyRotationSettingsToDisplayLocked(this);
             }
 
-            // Real display metrics changed, so we should also update initial values.
-            mInitialDisplayWidth = newWidth;
-            mInitialDisplayHeight = newHeight;
-            mInitialDisplayDensity = newDensity;
-            mInitialPhysicalXDpi = newXDpi;
-            mInitialPhysicalYDpi = newYDpi;
-            mInitialDisplayCutout = newCutout;
-            mInitialRoundedCorners = newRoundedCorners;
-            mInitialDisplayShape = newDisplayShape;
-            mCurrentUniqueDisplayId = newUniqueId;
             reconfigureDisplayLocked();
 
             if (physicalDisplayChanged) {
@@ -3151,6 +3153,12 @@
                         + mBaseDisplayHeight + " on display:" + getDisplayId());
             }
         }
+        // Update the base density if there is a forced density ratio.
+        if (enablePersistingDensityScaleForConnectedDisplays()
+                && mIsDensityForced && mExternalDisplayForcedDensityRatio != 0.0f) {
+            mBaseDisplayDensity = (int)
+                    (mInitialDisplayDensity * mExternalDisplayForcedDensityRatio + 0.5);
+        }
         if (mDisplayReady && !mDisplayPolicy.shouldKeepCurrentDecorInsets()) {
             mDisplayPolicy.mDecorInsets.invalidate();
         }
@@ -3180,6 +3188,14 @@
         if (density == getInitialDisplayDensity()) {
             density = 0;
         }
+        // Save the new density ratio to settings for external displays.
+        if (enablePersistingDensityScaleForConnectedDisplays()
+                && mDisplayInfo.type == TYPE_EXTERNAL) {
+            mExternalDisplayForcedDensityRatio = (float)
+                    mBaseDisplayDensity / getInitialDisplayDensity();
+            mWmService.mDisplayWindowSettings.setForcedDensityRatio(getDisplayInfo(),
+                    mExternalDisplayForcedDensityRatio);
+        }
         mWmService.mDisplayWindowSettings.setForcedDensity(getDisplayInfo(), density, userId);
     }
 
@@ -3279,7 +3295,12 @@
             return false;
         }
 
-        // TODO(b/391965805): Remove this after introducing FLAG_ALLOW_SYSTEM_DECORATIONS_CHANGE.
+        // TODO(b/391965805): Remove this after introducing FLAG_ALLOW_CONTENT_MODE_SWITCH.
+        if ((mDisplay.getFlags() & Display.FLAG_REAR) != 0) {
+            return false;
+        }
+
+        // TODO(b/391965805): Remove this after introducing FLAG_ALLOW_CONTENT_MODE_SWITCH.
         // Virtual displays cannot add or remove system decorations during their lifecycle.
         if (mDisplay.getType() == Display.TYPE_VIRTUAL) {
             return false;
@@ -3385,9 +3406,7 @@
         mDeferredRemoval = false;
         try {
             mUnknownAppVisibilityController.clear();
-            mAppTransition.removeAppTransitionTimeoutCallbacks();
             mTransitionController.unregisterLegacyListener(mFixedRotationTransitionListener);
-            handleAnimatingStoppedAndTransition();
             mDeviceStateController.unregisterDeviceStateCallback(mDeviceStateConsumer);
             super.removeImmediately();
             if (DEBUG_DISPLAY) Slog.v(TAG_WM, "Removing display=" + this);
@@ -3570,11 +3589,7 @@
         mDisplayRotation.dumpDebug(proto, DISPLAY_ROTATION);
         mDisplayFrames.dumpDebug(proto, DISPLAY_FRAMES);
         proto.write(MIN_SIZE_OF_RESIZEABLE_TASK_DP, mMinSizeOfResizeableTaskDp);
-        if (mTransitionController.isShellTransitionsEnabled()) {
-            mTransitionController.dumpDebugLegacy(proto, APP_TRANSITION);
-        } else {
-            mAppTransition.dumpDebug(proto, APP_TRANSITION);
-        }
+        mTransitionController.dumpDebugLegacy(proto, APP_TRANSITION);
         if (mFocusedApp != null) {
             mFocusedApp.writeNameToProto(proto, FOCUSED_APP);
         }
@@ -3821,13 +3836,18 @@
 
     /**
      * Looking for the focused window on this display if the top focused display hasn't been
-     * found yet (topFocusedDisplayId is INVALID_DISPLAY) or per-display focused was allowed.
+     * found yet (topFocusedDisplayId is INVALID_DISPLAY), per-display focused was allowed, or
+     * the display is presenting. The last one is needed to update system bar visibility in response
+     * to presentation visibility because per-display focus is needed to change system bar
+     * visibility, but the display shouldn't get global focus when a presentation gets shown.
      *
      * @param topFocusedDisplayId Id of the top focused display.
      * @return The focused window or null if there isn't any or no need to seek.
      */
     WindowState findFocusedWindowIfNeeded(int topFocusedDisplayId) {
-        return (hasOwnFocus() || topFocusedDisplayId == INVALID_DISPLAY)
+        return (hasOwnFocus() || topFocusedDisplayId == INVALID_DISPLAY
+                || (enablePresentationForConnectedDisplays()
+                && mWmService.mPresentationController.isPresentationVisible(mDisplayId)))
                     ? findFocusedWindow() : null;
     }
 
@@ -5634,61 +5654,20 @@
      * @see AppTransition#prepareAppTransition
      */
     void requestTransitionAndLegacyPrepare(@WindowManager.TransitionType int transit,
-            @WindowManager.TransitionFlags int flags) {
-        prepareAppTransition(transit, flags);
-        mTransitionController.requestTransitionIfNeeded(transit, flags, null /* trigger */, this);
+            @WindowManager.TransitionFlags int flags, @Nullable WindowContainer trigger) {
+        mTransitionController.requestTransitionIfNeeded(transit, flags, trigger, this);
     }
 
     void executeAppTransition() {
         mTransitionController.setReady(this);
-        if (mAppTransition.isTransitionSet()) {
-            ProtoLog.w(WM_DEBUG_APP_TRANSITIONS,
-                    "Execute app transition: %s, displayId: %d Callers=%s",
-                    mAppTransition, mDisplayId, Debug.getCallers(5));
-            mAppTransition.setReady();
-            mWmService.mWindowPlacerLocked.requestTraversal();
-        }
-    }
-
-    /**
-     * Update pendingLayoutChanges after app transition has finished.
-     */
-    void handleAnimatingStoppedAndTransition() {
-        int changes = 0;
-
-        mAppTransition.setIdle();
-
-        for (int i = mNoAnimationNotifyOnTransitionFinished.size() - 1; i >= 0; i--) {
-            final IBinder token = mNoAnimationNotifyOnTransitionFinished.get(i);
-            mAppTransition.notifyAppTransitionFinishedLocked(token);
-        }
-        mNoAnimationNotifyOnTransitionFinished.clear();
-
-        mWallpaperController.hideDeferredWallpapersIfNeededLegacy();
-
-        onAppTransitionDone();
-
-        changes |= FINISH_LAYOUT_REDO_LAYOUT;
-        ProtoLog.v(WM_DEBUG_WALLPAPER, "Wallpaper layer changed: assigning layers + relayout");
-        computeImeTarget(true /* updateImeTarget */);
-        mWallpaperMayChange = true;
-        // Since the window list has been rebuilt, focus might have to be recomputed since the
-        // actual order of windows might have changed again.
-        mWmService.mFocusMayChange = true;
-
-        pendingLayoutChanges |= changes;
     }
 
     /** Check if pending app transition is for activity / task launch. */
     boolean isNextTransitionForward() {
         // TODO(b/191375840): decouple "forwardness" from transition system.
-        if (mTransitionController.isShellTransitionsEnabled()) {
-            @WindowManager.TransitionType int type =
-                    mTransitionController.getCollectingTransitionType();
-            return type == TRANSIT_OPEN || type == TRANSIT_TO_FRONT;
-        }
-        return mAppTransition.containsTransitRequest(TRANSIT_OPEN)
-                || mAppTransition.containsTransitRequest(TRANSIT_TO_FRONT);
+        final @WindowManager.TransitionType int type =
+                mTransitionController.getCollectingTransitionType();
+        return type == TRANSIT_OPEN || type == TRANSIT_TO_FRONT;
     }
 
     /**
@@ -5866,7 +5845,7 @@
         // For each window, we only take the rects that fall within its touchable region.
         forAllWindows(w -> {
             if (!w.canReceiveTouchInput() || !w.isVisible()
-                    || (w.getAttrs().flags & FLAG_NOT_TOUCHABLE) != 0
+                    || (w.mAttrs.flags & FLAG_NOT_TOUCHABLE) != 0
                     || unhandled.isEmpty()) {
                 return;
             }
@@ -5956,7 +5935,7 @@
         if (win.mWmService.mConstants.mSystemGestureExclusionLogDebounceTimeoutMillis <= 0) {
             return false;
         }
-        final WindowManager.LayoutParams attrs = win.getAttrs();
+        final WindowManager.LayoutParams attrs = win.mAttrs;
         final int type = attrs.type;
         return type != TYPE_WALLPAPER
                 && type != TYPE_APPLICATION_STARTING
@@ -6959,6 +6938,8 @@
         /** The actual requested visible inset types for this display */
         private @InsetsType int mRequestedVisibleTypes = WindowInsets.Type.defaultVisible();
 
+        private @InsetsType int mAnimatingTypes = 0;
+
         /** The component name of the top focused window on this display */
         private ComponentName mTopFocusedComponentName = null;
 
@@ -7096,6 +7077,18 @@
             }
             return 0;
         }
+
+        @Override
+        public @InsetsType int getAnimatingTypes() {
+            return mAnimatingTypes;
+        }
+
+        @Override
+        public void setAnimatingTypes(@InsetsType int animatingTypes) {
+            if (mAnimatingTypes != animatingTypes) {
+                mAnimatingTypes = animatingTypes;
+            }
+        }
     }
 
     MagnificationSpec getMagnificationSpec() {
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index fbe8501..ec5b503f 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -631,7 +631,6 @@
                 mHandler.post(mAppTransitionFinished);
             }
         };
-        displayContent.mAppTransition.registerListenerLocked(mAppTransitionListener);
         displayContent.mTransitionController.registerLegacyListener(mAppTransitionListener);
 
         // TODO: Make it can take screenshot on external display
@@ -1876,18 +1875,40 @@
     }
 
     void notifyDisplayAddSystemDecorations() {
-        mHandler.post(() -> {
+        if (enableDisplayContentModeManagement()) {
             final int displayId = getDisplayId();
-            StatusBarManagerInternal statusBar = getStatusBarManagerInternal();
-            if (statusBar != null) {
-                statusBar.onDisplayAddSystemDecorations(displayId);
-            }
-            final WallpaperManagerInternal wpMgr = LocalServices
-                    .getService(WallpaperManagerInternal.class);
-            if (wpMgr != null) {
-                wpMgr.onDisplayAddSystemDecorations(displayId);
-            }
-        });
+            final boolean isSystemDecorationsSupported =
+                    mDisplayContent.isSystemDecorationsSupported();
+            final boolean isHomeSupported = mDisplayContent.isHomeSupported();
+            mHandler.post(() -> {
+                if (isSystemDecorationsSupported) {
+                    StatusBarManagerInternal statusBar = getStatusBarManagerInternal();
+                    if (statusBar != null) {
+                        statusBar.onDisplayAddSystemDecorations(displayId);
+                    }
+                }
+                if (isHomeSupported) {
+                    final WallpaperManagerInternal wpMgr =
+                            LocalServices.getService(WallpaperManagerInternal.class);
+                    if (wpMgr != null) {
+                        wpMgr.onDisplayAddSystemDecorations(displayId);
+                    }
+                }
+            });
+        } else {
+            mHandler.post(() -> {
+                final int displayId = getDisplayId();
+                StatusBarManagerInternal statusBar = getStatusBarManagerInternal();
+                if (statusBar != null) {
+                    statusBar.onDisplayAddSystemDecorations(displayId);
+                }
+                final WallpaperManagerInternal wpMgr = LocalServices
+                        .getService(WallpaperManagerInternal.class);
+                if (wpMgr != null) {
+                    wpMgr.onDisplayAddSystemDecorations(displayId);
+                }
+            });
+        }
     }
 
     void notifyDisplayRemoveSystemDecorations() {
@@ -2366,7 +2387,7 @@
 
         // Immersive mode confirmation should never affect the system bar visibility, otherwise
         // it will unhide the navigation bar and hide itself.
-        if ((winCandidate.getAttrs().privateFlags
+        if ((winCandidate.mAttrs.privateFlags
                 & PRIVATE_FLAG_IMMERSIVE_CONFIRMATION_WINDOW) != 0) {
             if (mNotificationShade != null && mNotificationShade.canReceiveKeys()) {
                 // Let notification shade control the system bar visibility.
@@ -2543,7 +2564,7 @@
             final int rootDisplayAreaId = root == null ? FEATURE_UNDEFINED : root.mFeatureId;
             // TODO(b/277290737): Move this to the client side, instead of using a proxy.
             callStatusBarSafely(statusBar -> statusBar.immersiveModeChanged(getDisplayId(),
-                        rootDisplayAreaId, isImmersiveMode));
+                        rootDisplayAreaId, isImmersiveMode, win.getWindowType()));
         }
 
         // Show transient bars for panic if needed.
@@ -2634,9 +2655,9 @@
         }
 
         final boolean drawsSystemBars =
-                (win.getAttrs().flags & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) != 0;
+                (win.mAttrs.flags & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) != 0;
         final boolean forceDrawsSystemBars =
-                (win.getAttrs().privateFlags & PRIVATE_FLAG_FORCE_DRAW_BAR_BACKGROUNDS) != 0;
+                (win.mAttrs.privateFlags & PRIVATE_FLAG_FORCE_DRAW_BAR_BACKGROUNDS) != 0;
 
         return forceDrawsSystemBars || drawsSystemBars;
     }
diff --git a/services/core/java/com/android/server/wm/DisplayRotation.java b/services/core/java/com/android/server/wm/DisplayRotation.java
index 786161c..1a90bcc 100644
--- a/services/core/java/com/android/server/wm/DisplayRotation.java
+++ b/services/core/java/com/android/server/wm/DisplayRotation.java
@@ -730,7 +730,7 @@
         // We only enable seamless rotation if the top window has requested it and is in the
         // fullscreen opaque state. Seamless rotation requires freezing various Surface states and
         // won't work well with animations, so we disable it in the animation case for now.
-        if (w.getAttrs().rotationAnimation != ROTATION_ANIMATION_SEAMLESS || w.inMultiWindowMode()
+        if (w.mAttrs.rotationAnimation != ROTATION_ANIMATION_SEAMLESS || w.inMultiWindowMode()
                 || w.isAnimatingLw()) {
             return false;
         }
diff --git a/services/core/java/com/android/server/wm/DisplayWindowSettings.java b/services/core/java/com/android/server/wm/DisplayWindowSettings.java
index 1173875..c6892e9 100644
--- a/services/core/java/com/android/server/wm/DisplayWindowSettings.java
+++ b/services/core/java/com/android/server/wm/DisplayWindowSettings.java
@@ -23,11 +23,10 @@
 import static android.view.WindowManager.REMOVE_CONTENT_MODE_MOVE_TO_PRIMARY;
 import static android.view.WindowManager.REMOVE_CONTENT_MODE_UNDEFINED;
 
+import static com.android.server.display.feature.flags.Flags.enableDisplayContentModeManagement;
 import static com.android.server.wm.DisplayContent.FORCE_SCALING_MODE_AUTO;
 import static com.android.server.wm.DisplayContent.FORCE_SCALING_MODE_DISABLED;
 
-import static com.android.server.display.feature.flags.Flags.enableDisplayContentModeManagement;
-
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.WindowConfiguration;
@@ -100,6 +99,13 @@
         mSettingsProvider.updateOverrideSettings(info, overrideSettings);
     }
 
+    void setForcedDensityRatio(@NonNull DisplayInfo info, float ratio) {
+        final SettingsProvider.SettingsEntry overrideSettings =
+                mSettingsProvider.getOverrideSettings(info);
+        overrideSettings.mForcedDensityRatio = ratio;
+        mSettingsProvider.updateOverrideSettings(info, overrideSettings);
+    }
+
     void setForcedScalingMode(@NonNull DisplayContent displayContent, @ForceScalingMode int mode) {
         if (displayContent.isDefaultDisplay) {
             Settings.Global.putInt(mService.mContext.getContentResolver(),
@@ -367,6 +373,7 @@
                 mFixedToUserRotation);
 
         final boolean hasDensityOverride = settings.mForcedDensity != 0;
+        final boolean hasDensityOverrideRatio = settings.mForcedDensityRatio != 0.0f;
         final boolean hasSizeOverride = settings.mForcedWidth != 0 && settings.mForcedHeight != 0;
         dc.mIsDensityForced = hasDensityOverride;
         dc.mIsSizeForced = hasSizeOverride;
@@ -378,6 +385,10 @@
         final int height = hasSizeOverride ? settings.mForcedHeight : dc.mInitialDisplayHeight;
         final int density = hasDensityOverride ? settings.mForcedDensity
                 : dc.getInitialDisplayDensity();
+        if (hasDensityOverrideRatio) {
+            dc.mExternalDisplayForcedDensityRatio = settings.mForcedDensityRatio;
+        }
+
         dc.updateBaseDisplayMetrics(width, height, density, dc.mBaseDisplayPhysicalXDpi,
                 dc.mBaseDisplayPhysicalYDpi);
 
@@ -496,6 +507,13 @@
             int mForcedWidth;
             int mForcedHeight;
             int mForcedDensity;
+            /**
+             * The ratio of the forced density to the initial density of the display. This is only
+             * saved for external displays, and used to make sure ratio between forced density and
+             * initial density persist when a resolution change happens. Ratio is updated when
+             * mForcedDensity is changed.
+             */
+            float mForcedDensityRatio;
             @Nullable
             @ForceScalingMode
             Integer mForcedScalingMode;
@@ -561,6 +579,10 @@
                     mForcedDensity = other.mForcedDensity;
                     changed = true;
                 }
+                if (other.mForcedDensityRatio != mForcedDensityRatio) {
+                    mForcedDensityRatio = other.mForcedDensityRatio;
+                    changed = true;
+                }
                 if (!Objects.equals(other.mForcedScalingMode, mForcedScalingMode)) {
                     mForcedScalingMode = other.mForcedScalingMode;
                     changed = true;
@@ -649,6 +671,11 @@
                     mForcedDensity = delta.mForcedDensity;
                     changed = true;
                 }
+                if (delta.mForcedDensityRatio != 0
+                        && delta.mForcedDensityRatio != mForcedDensityRatio) {
+                    mForcedDensityRatio = delta.mForcedDensityRatio;
+                    changed = true;
+                }
                 if (delta.mForcedScalingMode != null
                         && !Objects.equals(delta.mForcedScalingMode, mForcedScalingMode)) {
                     mForcedScalingMode = delta.mForcedScalingMode;
@@ -713,6 +740,7 @@
                         && mUserRotationMode == null
                         && mUserRotation == null
                         && mForcedWidth == 0 && mForcedHeight == 0 && mForcedDensity == 0
+                        && mForcedDensityRatio == 0.0f
                         && mForcedScalingMode == null
                         && mRemoveContentMode == REMOVE_CONTENT_MODE_UNDEFINED
                         && mShouldShowWithInsecureKeyguard == null
@@ -736,6 +764,7 @@
                         && mForcedHeight == that.mForcedHeight
                         && mForcedDensity == that.mForcedDensity
                         && mRemoveContentMode == that.mRemoveContentMode
+                        && mForcedDensityRatio == that.mForcedDensityRatio
                         && Objects.equals(mUserRotationMode, that.mUserRotationMode)
                         && Objects.equals(mUserRotation, that.mUserRotation)
                         && Objects.equals(mForcedScalingMode, that.mForcedScalingMode)
@@ -755,10 +784,11 @@
             @Override
             public int hashCode() {
                 return Objects.hash(mWindowingMode, mUserRotationMode, mUserRotation, mForcedWidth,
-                        mForcedHeight, mForcedDensity, mForcedScalingMode, mRemoveContentMode,
-                        mShouldShowWithInsecureKeyguard, mShouldShowSystemDecors, mIsHomeSupported,
-                        mImePolicy, mFixedToUserRotation, mIgnoreOrientationRequest,
-                        mIgnoreDisplayCutout, mDontMoveToTop, mIgnoreActivitySizeRestrictions);
+                        mForcedHeight, mForcedDensity, mForcedDensityRatio, mForcedScalingMode,
+                        mRemoveContentMode, mShouldShowWithInsecureKeyguard,
+                        mShouldShowSystemDecors, mIsHomeSupported, mImePolicy, mFixedToUserRotation,
+                        mIgnoreOrientationRequest, mIgnoreDisplayCutout, mDontMoveToTop,
+                        mIgnoreActivitySizeRestrictions);
             }
 
             @Override
@@ -770,6 +800,7 @@
                         + ", mForcedWidth=" + mForcedWidth
                         + ", mForcedHeight=" + mForcedHeight
                         + ", mForcedDensity=" + mForcedDensity
+                        + ", mForcedDensityRatio=" + mForcedDensityRatio
                         + ", mForcedScalingMode=" + mForcedScalingMode
                         + ", mRemoveContentMode=" + mRemoveContentMode
                         + ", mShouldShowWithInsecureKeyguard=" + mShouldShowWithInsecureKeyguard
diff --git a/services/core/java/com/android/server/wm/DisplayWindowSettingsProvider.java b/services/core/java/com/android/server/wm/DisplayWindowSettingsProvider.java
index 7135c3b..e7a1fdd 100644
--- a/services/core/java/com/android/server/wm/DisplayWindowSettingsProvider.java
+++ b/services/core/java/com/android/server/wm/DisplayWindowSettingsProvider.java
@@ -511,6 +511,8 @@
                     0 /* defaultValue */);
             settingsEntry.mForcedDensity = getIntAttribute(parser, "forcedDensity",
                     0 /* defaultValue */);
+            settingsEntry.mForcedDensityRatio = parser.getAttributeFloat(null, "forcedDensityRatio",
+                    0.0f /* defaultValue */);
             settingsEntry.mForcedScalingMode = getIntegerAttribute(parser, "forcedScalingMode",
                     null /* defaultValue */);
             settingsEntry.mRemoveContentMode = getIntAttribute(parser, "removeContentMode",
@@ -599,6 +601,10 @@
                 if (settingsEntry.mForcedDensity != 0) {
                     out.attributeInt(null, "forcedDensity", settingsEntry.mForcedDensity);
                 }
+                if (settingsEntry.mForcedDensityRatio != 0.0f) {
+                    out.attributeFloat(null, "forcedDensityRatio",
+                            settingsEntry.mForcedDensityRatio);
+                }
                 if (settingsEntry.mForcedScalingMode != null) {
                     out.attributeInt(null, "forcedScalingMode",
                             settingsEntry.mForcedScalingMode);
diff --git a/services/core/java/com/android/server/wm/InsetsControlTarget.java b/services/core/java/com/android/server/wm/InsetsControlTarget.java
index cee4967..6462a37 100644
--- a/services/core/java/com/android/server/wm/InsetsControlTarget.java
+++ b/services/core/java/com/android/server/wm/InsetsControlTarget.java
@@ -97,6 +97,20 @@
             @NonNull ImeTracker.Token statsToken) {
     }
 
+    /**
+     * @return {@link WindowInsets.Type.InsetsType}s which are currently animating (showing or
+     * hiding).
+     */
+    default @InsetsType int getAnimatingTypes() {
+        return 0;
+    }
+
+    /**
+     * @param animatingTypes the {@link InsetsType}s, that are currently animating
+     */
+    default void setAnimatingTypes(@InsetsType int animatingTypes) {
+    }
+
     /** Returns {@code target.getWindow()}, or null if {@code target} is {@code null}. */
     static WindowState asWindowOrNull(InsetsControlTarget target) {
         return target != null ? target.getWindow() : null;
diff --git a/services/core/java/com/android/server/wm/InsetsPolicy.java b/services/core/java/com/android/server/wm/InsetsPolicy.java
index b4d55a1..2872214 100644
--- a/services/core/java/com/android/server/wm/InsetsPolicy.java
+++ b/services/core/java/com/android/server/wm/InsetsPolicy.java
@@ -113,25 +113,33 @@
             abortTransient();
         }
         mFocusedWin = focusedWin;
+        final @InsetsType int[] requestedVisibleTypes =
+                {focusedWin != null ? focusedWin.getRequestedVisibleTypes() : 0};
         final WindowState notificationShade = mPolicy.getNotificationShade();
         final WindowState topApp = mPolicy.getTopFullscreenOpaqueWindow();
         final InsetsControlTarget statusControlTarget =
-                getStatusControlTarget(focusedWin, false /* fake */);
+                getStatusControlTarget(focusedWin, false /* fake */, requestedVisibleTypes);
         mFakeStatusControlTarget = statusControlTarget == mTransientControlTarget
-                ? getStatusControlTarget(focusedWin, true /* fake */)
+                ? getStatusControlTarget(focusedWin, true /* fake */, requestedVisibleTypes)
                 : statusControlTarget == notificationShade
-                        ? getStatusControlTarget(topApp, true /* fake */)
+                        ? getStatusControlTarget(topApp, true /* fake */, requestedVisibleTypes)
                         : null;
         final InsetsControlTarget navControlTarget =
-                getNavControlTarget(focusedWin, false /* fake */);
+                getNavControlTarget(focusedWin, false /* fake */, requestedVisibleTypes);
         mFakeNavControlTarget = navControlTarget == mTransientControlTarget
-                ? getNavControlTarget(focusedWin, true /* fake */)
+                ? getNavControlTarget(focusedWin, true /* fake */, requestedVisibleTypes)
                 : navControlTarget == notificationShade
-                        ? getNavControlTarget(topApp, true /* fake */)
+                        ? getNavControlTarget(topApp, true /* fake */, requestedVisibleTypes)
                         : null;
         mStateController.onBarControlTargetChanged(
                 statusControlTarget, mFakeStatusControlTarget,
                 navControlTarget, mFakeNavControlTarget);
+
+        if (statusControlTarget == mDisplayContent.mRemoteInsetsControlTarget
+                && navControlTarget == mDisplayContent.mRemoteInsetsControlTarget) {
+            notifyRemoteInsetsController(focusedWin, requestedVisibleTypes[0]);
+        }
+
         mStatusBar.updateVisibility(statusControlTarget, Type.statusBars());
         mNavBar.updateVisibility(navControlTarget, Type.navigationBars());
     }
@@ -182,12 +190,12 @@
 
     @VisibleForTesting
     InsetsControlTarget getTransientControlTarget() {
-        return  mTransientControlTarget;
+        return mTransientControlTarget;
     }
 
     @VisibleForTesting
     InsetsControlTarget getPermanentControlTarget() {
-        return  mPermanentControlTarget;
+        return mPermanentControlTarget;
     }
 
     void hideTransient() {
@@ -259,12 +267,12 @@
      * modes.
      *
      * @param target the target on which the policy is applied
-     * @param state the input inset state containing all the sources
+     * @param state  the input inset state containing all the sources
      * @return The state stripped of the necessary information.
      */
     InsetsState enforceInsetsPolicyForTarget(WindowState target, InsetsState state) {
         final InsetsState originalState = state;
-        final WindowManager.LayoutParams attrs = target.getAttrs();
+        final WindowManager.LayoutParams attrs = target.mAttrs;
 
         // The caller should not receive the visible insets provided by itself.
         if (attrs.type == TYPE_INPUT_METHOD) {
@@ -461,7 +469,7 @@
                 mStateController.getFakeControllingTypes(caller);
         final @InsetsType int abortTypes =
                 (fakeControllingTypes & caller.getRequestedVisibleTypes())
-                | (isImeVisible ? Type.navigationBars() : 0);
+                        | (isImeVisible ? Type.navigationBars() : 0);
         mShowingTransientTypes &= ~abortTypes;
         if (abortTypes != 0) {
             mDisplayContent.setLayoutNeeded();
@@ -496,6 +504,18 @@
     }
 
     private @Nullable InsetsControlTarget getStatusControlTarget(@Nullable WindowState focusedWin,
+            boolean fake, @InsetsType int[] requestedVisibleTypes) {
+        final InsetsControlTarget target = getStatusControlTargetInner(focusedWin, fake);
+        if (remoteInsetsControllerControlsSystemBars(target)) {
+            requestedVisibleTypes[0] = (requestedVisibleTypes[0] & ~Type.statusBars()) | (
+                    target.getRequestedVisibleTypes() & Type.statusBars());
+            return mDisplayContent.mRemoteInsetsControlTarget;
+        }
+        return target;
+    }
+
+    private @Nullable InsetsControlTarget getStatusControlTargetInner(
+            @Nullable WindowState focusedWin,
             boolean fake) {
         if (!fake && isTransient(Type.statusBars())) {
             return mTransientControlTarget;
@@ -521,17 +541,7 @@
                 && (notificationShade == null || !notificationShade.canReceiveKeys())) {
             // Non-fullscreen focused window should not break the state that the top-fullscreen-app
             // window hides status bar, unless the notification shade can receive keys.
-            if (remoteInsetsControllerControlsSystemBars(
-                    mPolicy.getTopFullscreenOpaqueWindow())) {
-                notifyRemoteInsetsController(mPolicy.getTopFullscreenOpaqueWindow());
-                return mDisplayContent.mRemoteInsetsControlTarget;
-            } else {
-                return mPolicy.getTopFullscreenOpaqueWindow();
-            }
-        }
-        if (remoteInsetsControllerControlsSystemBars(focusedWin)) {
-            notifyRemoteInsetsController(focusedWin);
-            return mDisplayContent.mRemoteInsetsControlTarget;
+            return mPolicy.getTopFullscreenOpaqueWindow();
         }
         return focusedWin;
     }
@@ -547,6 +557,17 @@
     }
 
     private @Nullable InsetsControlTarget getNavControlTarget(@Nullable WindowState focusedWin,
+            boolean fake, @InsetsType int[] requestedVisibleTypes) {
+        final InsetsControlTarget target = getNavControlTargetInner(focusedWin, fake);
+        if (remoteInsetsControllerControlsSystemBars(target)) {
+            requestedVisibleTypes[0] = (requestedVisibleTypes[0] & ~Type.navigationBars()) | (
+                    target.getRequestedVisibleTypes() & Type.navigationBars());
+            return mDisplayContent.mRemoteInsetsControlTarget;
+        }
+        return target;
+    }
+
+    private @Nullable InsetsControlTarget getNavControlTargetInner(@Nullable WindowState focusedWin,
             boolean fake) {
         final WindowState imeWin = mDisplayContent.mInputMethodWindow;
         if (imeWin != null && imeWin.isVisible() && !mHideNavBarForKeyboard) {
@@ -585,29 +606,21 @@
                 && (notificationShade == null || !notificationShade.canReceiveKeys())) {
             // Non-fullscreen focused window should not break the state that the top-fullscreen-app
             // window hides navigation bar, unless the notification shade can receive keys.
-            if (remoteInsetsControllerControlsSystemBars(
-                    mPolicy.getTopFullscreenOpaqueWindow())) {
-                notifyRemoteInsetsController(mPolicy.getTopFullscreenOpaqueWindow());
-                return mDisplayContent.mRemoteInsetsControlTarget;
-            } else {
-                return mPolicy.getTopFullscreenOpaqueWindow();
-            }
-        }
-        if (remoteInsetsControllerControlsSystemBars(focusedWin)) {
-            notifyRemoteInsetsController(focusedWin);
-            return mDisplayContent.mRemoteInsetsControlTarget;
+            return mPolicy.getTopFullscreenOpaqueWindow();
         }
         return focusedWin;
     }
 
-    private void notifyRemoteInsetsController(@Nullable WindowState win) {
+    private void notifyRemoteInsetsController(@Nullable WindowState win,
+            @InsetsType int requestVisibleTypes) {
         if (win == null) {
             return;
         }
         ComponentName component = win.mActivityRecord != null
                 ? win.mActivityRecord.mActivityComponent : null;
+
         mDisplayContent.mRemoteInsetsControlTarget.topFocusedWindowChanged(
-                component, win.getRequestedVisibleTypes());
+                component, requestVisibleTypes);
     }
 
     boolean areTypesForciblyShowing(@InsetsType int types) {
@@ -645,8 +658,8 @@
      * Determines whether the remote insets controller should take control of system bars for all
      * windows.
      */
-    boolean remoteInsetsControllerControlsSystemBars(@Nullable WindowState focusedWin) {
-        if (focusedWin == null) {
+    boolean remoteInsetsControllerControlsSystemBars(@Nullable InsetsControlTarget target) {
+        if (!(target instanceof WindowState win)) {
             return false;
         }
 
@@ -660,8 +673,8 @@
         // If necessary, auto can control application windows when
         // config_remoteInsetsControllerControlsSystemBars is set to true. This is useful in cases
         // where we want to dictate system bar inset state for applications.
-        return focusedWin.getAttrs().type >= WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW
-                && focusedWin.getAttrs().type <= WindowManager.LayoutParams.LAST_APPLICATION_WINDOW;
+        return win.mAttrs.type >= WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW
+                && win.mAttrs.type <= WindowManager.LayoutParams.LAST_APPLICATION_WINDOW;
     }
 
     private void dispatchTransientSystemBarsVisibilityChanged(
@@ -708,7 +721,7 @@
     private class BarWindow {
 
         private final int mId;
-        private  @StatusBarManager.WindowVisibleState int mState =
+        private @StatusBarManager.WindowVisibleState int mState =
                 StatusBarManager.WINDOW_STATE_SHOWING;
 
         BarWindow(int id) {
@@ -777,8 +790,6 @@
         private final Handler mHandler;
         private final String mName;
 
-        private boolean mInsetsAnimationRunning;
-
         Host(Handler handler, String name) {
             mHandler = handler;
             mName = name;
@@ -790,11 +801,13 @@
         }
 
         @Override
-        public void notifyInsetsChanged() { }
+        public void notifyInsetsChanged() {
+        }
 
         @Override
         public void dispatchWindowInsetsAnimationPrepare(
-                @NonNull WindowInsetsAnimation animation) { }
+                @NonNull WindowInsetsAnimation animation) {
+        }
 
         @Override
         public Bounds dispatchWindowInsetsAnimationStart(
@@ -812,7 +825,8 @@
 
         @Override
         public void dispatchWindowInsetsAnimationEnd(
-                @NonNull WindowInsetsAnimation animation) { }
+                @NonNull WindowInsetsAnimation animation) {
+        }
 
         @Override
         public void applySurfaceParams(SyncRtSurfaceTransactionApplier.SurfaceParams... p) {
@@ -834,7 +848,8 @@
         }
 
         @Override
-        public void setSystemBarsAppearance(int appearance, int mask) { }
+        public void setSystemBarsAppearance(int appearance, int mask) {
+        }
 
         @Override
         public int getSystemBarsAppearance() {
@@ -842,7 +857,8 @@
         }
 
         @Override
-        public void setSystemBarsBehavior(int behavior) { }
+        public void setSystemBarsBehavior(int behavior) {
+        }
 
         @Override
         public int getSystemBarsBehavior() {
@@ -855,10 +871,12 @@
         }
 
         @Override
-        public void addOnPreDrawRunnable(Runnable r) { }
+        public void addOnPreDrawRunnable(Runnable r) {
+        }
 
         @Override
-        public void postInsetsAnimationCallback(Runnable r) { }
+        public void postInsetsAnimationCallback(Runnable r) {
+        }
 
         @Override
         public InputMethodManager getInputMethodManager() {
@@ -881,10 +899,5 @@
         public IBinder getWindowToken() {
             return null;
         }
-
-        @Override
-        public void notifyAnimationRunningStateChanged(boolean running) {
-            mInsetsAnimationRunning = running;
-        }
     }
 }
diff --git a/services/core/java/com/android/server/wm/InsetsStateController.java b/services/core/java/com/android/server/wm/InsetsStateController.java
index 164abab..5e0395f 100644
--- a/services/core/java/com/android/server/wm/InsetsStateController.java
+++ b/services/core/java/com/android/server/wm/InsetsStateController.java
@@ -225,13 +225,16 @@
         for (int i = mProviders.size() - 1; i >= 0; i--) {
             final InsetsSourceProvider provider = mProviders.valueAt(i);
             final @InsetsType int type = provider.getSource().getType();
+            final boolean isImeProvider = type == WindowInsets.Type.ime();
             if ((type & changedTypes) != 0) {
-                final boolean isImeProvider = type == WindowInsets.Type.ime();
                 changed |= provider.updateClientVisibility(
-                                caller, isImeProvider ? statsToken : null)
+                        caller, isImeProvider ? statsToken : null)
                         // Fake control target cannot change the client visibility, but it should
                         // change the insets with its newly requested visibility.
                         || (caller == provider.getFakeControlTarget());
+            } else if (isImeProvider && android.view.inputmethod.Flags.refactorInsetsController()) {
+                ImeTracker.forLogging().onCancelled(statsToken,
+                        ImeTracker.PHASE_WM_SET_REMOTE_TARGET_IME_VISIBILITY);
             }
         }
         if (changed) {
diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java
index 6091b83..6d73739 100644
--- a/services/core/java/com/android/server/wm/KeyguardController.java
+++ b/services/core/java/com/android/server/wm/KeyguardController.java
@@ -250,7 +250,7 @@
                 // to the locked state before holding the sleep token again
                 if (!ENABLE_NEW_KEYGUARD_SHELL_TRANSITIONS) {
                     dc.requestTransitionAndLegacyPrepare(
-                            TRANSIT_TO_FRONT, TRANSIT_FLAG_KEYGUARD_APPEARING);
+                            TRANSIT_TO_FRONT, TRANSIT_FLAG_KEYGUARD_APPEARING, /* trigger= */ null);
                 }
                 dc.mWallpaperController.adjustWallpaperWindows();
                 dc.executeAppTransition();
diff --git a/services/core/java/com/android/server/wm/PresentationController.java b/services/core/java/com/android/server/wm/PresentationController.java
index b3cff9c..acc658b 100644
--- a/services/core/java/com/android/server/wm/PresentationController.java
+++ b/services/core/java/com/android/server/wm/PresentationController.java
@@ -16,10 +16,17 @@
 
 package com.android.server.wm;
 
+import static android.view.WindowManager.LayoutParams.TYPE_PRESENTATION;
+import static android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION;
+
+import static com.android.internal.protolog.WmProtoLogGroups.WM_ERROR;
 import static com.android.window.flags.Flags.enablePresentationForConnectedDisplays;
 
 import android.annotation.NonNull;
-import android.util.IntArray;
+import android.annotation.Nullable;
+import android.hardware.display.DisplayManager;
+import android.util.SparseArray;
+import android.view.WindowManager.LayoutParams.WindowType;
 
 import com.android.internal.protolog.ProtoLog;
 import com.android.internal.protolog.WmProtoLogGroups;
@@ -27,15 +34,125 @@
 /**
  * Manages presentation windows.
  */
-class PresentationController {
+class PresentationController implements DisplayManager.DisplayListener {
 
-    // TODO(b/395475549): Add support for display add/remove, and activity move across displays.
-    private final IntArray mPresentingDisplayIds = new IntArray();
+    private static class Presentation {
+        @NonNull final WindowState mWin;
+        @NonNull final WindowContainerListener mPresentationListener;
+        // This is the task which started this presentation. This shouldn't be null in most cases
+        // because the intended usage of the Presentation API is that an activity that started a
+        // presentation should control the UI and lifecycle of the presentation window.
+        // However, the API doesn't necessarily requires a host activity to exist (e.g. a background
+        // service can launch a presentation), so this can be null.
+        @Nullable final Task mHostTask;
+        @Nullable final WindowContainerListener mHostTaskListener;
 
-    PresentationController() {}
+        Presentation(@NonNull WindowState win,
+                @NonNull WindowContainerListener presentationListener,
+                @Nullable Task hostTask,
+                @Nullable WindowContainerListener hostTaskListener) {
+            mWin = win;
+            mPresentationListener = presentationListener;
+            mHostTask = hostTask;
+            mHostTaskListener = hostTaskListener;
+        }
 
-    private boolean isPresenting(int displayId) {
-        return mPresentingDisplayIds.contains(displayId);
+        @Override
+        public String toString() {
+            return "{win: " + mWin.getName() + ", display: " + mWin.getDisplayId()
+                    + ", hostTask: " + (mHostTask != null ? mHostTask.getName() : null) + "}";
+        }
+    }
+
+    private final SparseArray<Presentation> mPresentations = new SparseArray();
+
+    @Nullable
+    private Presentation getPresentation(@Nullable WindowState win) {
+        if (win == null) return null;
+        for (int i = 0; i < mPresentations.size(); i++) {
+            final Presentation presentation = mPresentations.valueAt(i);
+            if (win == presentation.mWin) return presentation;
+        }
+        return null;
+    }
+
+    private boolean hasPresentationWindow(int displayId) {
+        return mPresentations.contains(displayId);
+    }
+
+    boolean isPresentationVisible(int displayId) {
+        final Presentation presentation = mPresentations.get(displayId);
+        return presentation != null && presentation.mWin.mToken.isVisibleRequested();
+    }
+
+    boolean canPresent(@NonNull WindowState win, @NonNull DisplayContent displayContent) {
+        return canPresent(win, displayContent, win.mAttrs.type, win.getUid());
+    }
+
+    /**
+     * Checks if a presentation window can be shown on the given display.
+     * If the given |win| is empty, a new presentation window is being created.
+     * If the given |win| is not empty, the window already exists as presentation, and we're
+     * revalidate if the |win| is still qualified to be shown.
+     */
+    boolean canPresent(@Nullable WindowState win, @NonNull DisplayContent displayContent,
+            @WindowType int type, int uid) {
+        if (type == TYPE_PRIVATE_PRESENTATION) {
+            // Private presentations can only be created on private displays.
+            return displayContent.isPrivate();
+        }
+
+        if (type != TYPE_PRESENTATION) {
+            return false;
+        }
+
+        if (!enablePresentationForConnectedDisplays()) {
+            return displayContent.getDisplay().isPublicPresentation();
+        }
+
+        boolean allDisplaysArePresenting = true;
+        for (int i = 0; i < displayContent.mWmService.mRoot.mChildren.size(); i++) {
+            final DisplayContent dc = displayContent.mWmService.mRoot.mChildren.get(i);
+            if (displayContent.mDisplayId != dc.mDisplayId
+                    && !mPresentations.contains(dc.mDisplayId)) {
+                allDisplaysArePresenting = false;
+                break;
+            }
+        }
+        if (allDisplaysArePresenting) {
+            // All displays can't present simultaneously.
+            return false;
+        }
+
+        final int displayId = displayContent.mDisplayId;
+        if (hasPresentationWindow(displayId)
+                && win != null && win != mPresentations.get(displayId).mWin) {
+            // A display can't have multiple presentations.
+            return false;
+        }
+
+        Task hostTask = null;
+        final Presentation presentation = getPresentation(win);
+        if (presentation != null) {
+            hostTask = presentation.mHostTask;
+        } else if (win == null) {
+            final Task globallyFocusedTask =
+                    displayContent.mWmService.mRoot.getTopDisplayFocusedRootTask();
+            if (globallyFocusedTask != null && uid == globallyFocusedTask.effectiveUid) {
+                hostTask = globallyFocusedTask;
+            }
+        }
+        if (hostTask != null && displayId == hostTask.getDisplayId()) {
+            // A presentation can't cover its own host task.
+            return false;
+        }
+        if (hostTask == null && !displayContent.getDisplay().isPublicPresentation()) {
+            // A globally focused host task on a different display is needed to show a
+            // presentation on a non-presenting display.
+            return false;
+        }
+
+        return true;
     }
 
     boolean shouldOccludeActivities(int displayId) {
@@ -45,32 +162,87 @@
         // be shown on them.
         // TODO(b/390481621): Disallow a presentation from covering its controlling activity so that
         // the presentation won't stop its controlling activity.
-        return enablePresentationForConnectedDisplays() && isPresenting(displayId);
+        return enablePresentationForConnectedDisplays() && isPresentationVisible(displayId);
     }
 
-    void onPresentationAdded(@NonNull WindowState win) {
+    void onPresentationAdded(@NonNull WindowState win, int uid) {
         final int displayId = win.getDisplayId();
-        if (isPresenting(displayId)) {
-            return;
-        }
         ProtoLog.v(WmProtoLogGroups.WM_DEBUG_PRESENTATION, "Presentation added to display %d: %s",
-                win.getDisplayId(), win);
-        mPresentingDisplayIds.add(win.getDisplayId());
+                displayId, win);
         win.mWmService.mDisplayManagerInternal.onPresentation(displayId, /*isShown=*/ true);
+
+        final WindowContainerListener presentationWindowListener = new WindowContainerListener() {
+            @Override
+            public void onRemoved() {
+                if (!hasPresentationWindow(displayId)) {
+                    ProtoLog.e(WM_ERROR, "Failed to remove presentation on"
+                            + "non-presenting display %d: %s", displayId, win);
+                    return;
+                }
+                final Presentation presentation = mPresentations.get(displayId);
+                win.mToken.unregisterWindowContainerListener(presentation.mPresentationListener);
+                if (presentation.mHostTask != null) {
+                    presentation.mHostTask.unregisterWindowContainerListener(
+                            presentation.mHostTaskListener);
+                }
+                mPresentations.remove(displayId);
+                win.mWmService.mDisplayManagerInternal.onPresentation(displayId, false /*isShown*/);
+            }
+        };
+        win.mToken.registerWindowContainerListener(presentationWindowListener);
+
+        Task hostTask = null;
+        if (enablePresentationForConnectedDisplays()) {
+            final Task globallyFocusedTask =
+                    win.mWmService.mRoot.getTopDisplayFocusedRootTask();
+            if (globallyFocusedTask != null && uid == globallyFocusedTask.effectiveUid) {
+                hostTask = globallyFocusedTask;
+            }
+        }
+        WindowContainerListener hostTaskListener = null;
+        if (hostTask != null) {
+            hostTaskListener = new WindowContainerListener() {
+                public void onDisplayChanged(DisplayContent dc) {
+                    final Presentation presentation = mPresentations.get(dc.getDisplayId());
+                    if (presentation != null && !canPresent(presentation.mWin, dc)) {
+                        removePresentation(dc.mDisplayId, "host task moved to display "
+                                + dc.getDisplayId());
+                    }
+                }
+
+                public void onRemoved() {
+                    removePresentation(win.getDisplayId(), "host task removed");
+                }
+            };
+            hostTask.registerWindowContainerListener(hostTaskListener);
+        }
+
+        mPresentations.put(displayId, new Presentation(win, presentationWindowListener, hostTask,
+                hostTaskListener));
     }
 
-    void onPresentationRemoved(@NonNull WindowState win) {
-        final int displayId = win.getDisplayId();
-        if (!isPresenting(displayId)) {
-            return;
+    void removePresentation(int displayId, @NonNull String reason) {
+        final Presentation presentation = mPresentations.get(displayId);
+        if (enablePresentationForConnectedDisplays() && presentation != null) {
+            ProtoLog.v(WmProtoLogGroups.WM_DEBUG_PRESENTATION, "Removing Presentation %s for "
+                    + "reason %s", mPresentations.get(displayId), reason);
+            final WindowState win = presentation.mWin;
+            win.mWmService.mAtmService.mH.post(() -> {
+                synchronized (win.mWmService.mGlobalLock) {
+                    win.removeIfPossible();
+                }
+            });
         }
-        ProtoLog.v(WmProtoLogGroups.WM_DEBUG_PRESENTATION,
-                "Presentation removed from display %d: %s", win.getDisplayId(), win);
-        // TODO(b/393945496): Make sure that there's one presentation at most per display.
-        final int displayIdIndex = mPresentingDisplayIds.indexOf(displayId);
-        if (displayIdIndex != -1) {
-            mPresentingDisplayIds.remove(displayIdIndex);
-        }
-        win.mWmService.mDisplayManagerInternal.onPresentation(displayId, /*isShown=*/ false);
     }
+
+    @Override
+    public void onDisplayAdded(int displayId) {}
+
+    @Override
+    public void onDisplayRemoved(int displayId) {
+        removePresentation(displayId, "display removed " + displayId);
+    }
+
+    @Override
+    public void onDisplayChanged(int displayId) {}
 }
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java
index 40f16c1..e864ecf 100644
--- a/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -2103,10 +2103,6 @@
                 removeRootTasksInWindowingModes(WINDOWING_MODE_PINNED);
             }
 
-            // Set a transition to ensure that we don't immediately try and update the visibility
-            // of the activity entering PIP
-            r.getDisplayContent().prepareAppTransition(TRANSIT_NONE);
-
             transitionController.collect(task);
 
             // Defer the windowing mode change until after the transition to prevent the activity
@@ -2798,13 +2794,7 @@
         }
 
         startHomeOnDisplay(mCurrentUser, reason, displayContent.getDisplayId());
-        if (enableDisplayContentModeManagement()) {
-            if (displayContent.isSystemDecorationsSupported()) {
-                displayContent.getDisplayPolicy().notifyDisplayAddSystemDecorations();
-            }
-        } else {
-            displayContent.getDisplayPolicy().notifyDisplayAddSystemDecorations();
-        }
+        displayContent.getDisplayPolicy().notifyDisplayAddSystemDecorations();
     }
 
     @Override
diff --git a/services/core/java/com/android/server/wm/Session.java b/services/core/java/com/android/server/wm/Session.java
index 8d198b2..3ed16db 100644
--- a/services/core/java/com/android/server/wm/Session.java
+++ b/services/core/java/com/android/server/wm/Session.java
@@ -737,6 +737,17 @@
         }
     }
 
+    @Override
+    public void updateAnimatingTypes(IWindow window, @InsetsType int animatingTypes) {
+        synchronized (mService.mGlobalLock) {
+            final WindowState win = mService.windowForClientLocked(this, window,
+                    false /* throwOnError */);
+            if (win != null) {
+                win.setAnimatingTypes(animatingTypes);
+            }
+        }
+    }
+
     void onWindowAdded(WindowState w) {
         if (mPackageName == null) {
             mPackageName = mProcess.mInfo.packageName;
@@ -1015,15 +1026,4 @@
             }
         }
     }
-
-    @Override
-    public void notifyInsetsAnimationRunningStateChanged(IWindow window, boolean running) {
-        synchronized (mService.mGlobalLock) {
-            final WindowState win = mService.windowForClientLocked(this, window,
-                    false /* throwOnError */);
-            if (win != null) {
-                win.notifyInsetsAnimationRunningStateChanged(running);
-            }
-        }
-    }
 }
diff --git a/services/core/java/com/android/server/wm/SnapshotController.java b/services/core/java/com/android/server/wm/SnapshotController.java
index 2664dcd..3a7222a 100644
--- a/services/core/java/com/android/server/wm/SnapshotController.java
+++ b/services/core/java/com/android/server/wm/SnapshotController.java
@@ -31,8 +31,6 @@
 import android.view.WindowManager;
 import android.window.TaskSnapshot;
 
-import com.android.window.flags.Flags;
-
 import java.io.PrintWriter;
 import java.util.ArrayList;
 
@@ -147,12 +145,6 @@
                 if (mOpenActivities.isEmpty()) {
                     return false;
                 }
-                // TODO (b/362183912) always capture activity snapshot will cause performance
-                //  regression, remove flag after ramp up
-                if (!Flags.deferPredictiveAnimationIfNoSnapshot()
-                        && Flags.alwaysCaptureActivitySnapshot()) {
-                    return true;
-                }
                 for (int i = mOpenActivities.size() - 1; i >= 0; --i) {
                     if (!mOpenActivities.get(i).mOptInOnBackInvoked) {
                         return false;
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index 988af44..22f0278 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -54,7 +54,6 @@
 import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES;
 import static android.view.WindowManager.TRANSIT_CLOSE;
 import static android.view.WindowManager.TRANSIT_FLAG_APP_CRASHED;
-import static android.view.WindowManager.TRANSIT_NONE;
 import static android.view.WindowManager.TRANSIT_OPEN;
 import static android.view.WindowManager.TRANSIT_TO_BACK;
 import static android.view.WindowManager.TRANSIT_TO_FRONT;
@@ -1658,8 +1657,7 @@
                 // Prevent the transition from being executed too early if the top activity is
                 // resumed but the mVisibleRequested of any other activity is true, the transition
                 // should wait until next activity resumed.
-                if (r.isState(RESUMED) || (r.isVisible()
-                        && !mDisplayContent.mAppTransition.containsTransitRequest(TRANSIT_CLOSE))) {
+                if (r.isState(RESUMED) || r.isVisible()) {
                     r.finishIfPossible(reason, false /* oomAdj */);
                 } else {
                     r.destroyIfPossible(reason);
@@ -1848,9 +1846,9 @@
 
     private void updateAllowForceResizeOverride() {
         try {
-            mAllowForceResizeOverride = mAtmService.mContext.getPackageManager().getProperty(
+            mAllowForceResizeOverride = mAtmService.mContext.getPackageManager().getPropertyAsUser(
                     PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES,
-                    getBasePackageName()).getBoolean();
+                    getBasePackageName(), null /* className */, mUserId).getBoolean();
         } catch (PackageManager.NameNotFoundException e) {
             // Package not found or property not defined, reset to default value.
             mAllowForceResizeOverride = true;
@@ -2172,25 +2170,29 @@
 
     void adjustForMinimalTaskDimensions(@NonNull Rect bounds, @NonNull Rect previousBounds,
             @NonNull Configuration parentConfig) {
-        int minWidth = mMinWidth;
-        int minHeight = mMinHeight;
         // If the task has no requested minimal size, we'd like to enforce a minimal size
         // so that the user can not render the task fragment too small to manipulate. We don't need
         // to do this for the root pinned task as the bounds are controlled by the system.
-        if (!inPinnedWindowingMode()) {
-            // Use Display specific min sizes when there is one associated with this Task.
-            final int defaultMinSizeDp = mDisplayContent == null
-                    ? DEFAULT_MIN_TASK_SIZE_DP : mDisplayContent.mMinSizeOfResizeableTaskDp;
-            final float density = (float) parentConfig.densityDpi / DisplayMetrics.DENSITY_DEFAULT;
-            final int defaultMinSize = (int) (defaultMinSizeDp * density);
-
-            if (minWidth == INVALID_MIN_SIZE) {
-                minWidth = defaultMinSize;
-            }
-            if (minHeight == INVALID_MIN_SIZE) {
-                minHeight = defaultMinSize;
-            }
+        if (inPinnedWindowingMode()) {
+            Slog.i(TAG, "Skip adjustForMinimalTaskDimensions for pip task");
+            return;
         }
+
+        int minWidth = mMinWidth;
+        int minHeight = mMinHeight;
+        // Use Display specific min sizes when there is one associated with this Task.
+        final int defaultMinSizeDp = mDisplayContent == null
+                ? DEFAULT_MIN_TASK_SIZE_DP : mDisplayContent.mMinSizeOfResizeableTaskDp;
+        final float density = (float) parentConfig.densityDpi / DisplayMetrics.DENSITY_DEFAULT;
+        final int defaultMinSize = (int) (defaultMinSizeDp * density);
+
+        if (minWidth == INVALID_MIN_SIZE) {
+            minWidth = defaultMinSize;
+        }
+        if (minHeight == INVALID_MIN_SIZE) {
+            minHeight = defaultMinSize;
+        }
+
         if (bounds.isEmpty()) {
             // If inheriting parent bounds, check if parent bounds adhere to minimum size. If they
             // do, we can just skip.
@@ -2335,11 +2337,6 @@
         mLastSurfaceSize.set(width, height);
     }
 
-    @VisibleForTesting
-    boolean isInChangeTransition() {
-        return AppTransition.isChangeTransitOld(mTransit);
-    }
-
     @Override
     void writeIdentifierToProto(ProtoOutputStream proto, long fieldId) {
         final long token = proto.start(fieldId);
@@ -3587,7 +3584,7 @@
                 & StartingWindowInfo.TYPE_PARAMETER_ACTIVITY_CREATED) != 0) {
             final WindowState topMainWin = getTopFullscreenMainWindow();
             if (topMainWin != null) {
-                info.mainWindowLayoutParams = topMainWin.getAttrs();
+                info.mainWindowLayoutParams = topMainWin.mAttrs;
                 info.requestedVisibleTypes = topMainWin.getRequestedVisibleTypes();
             }
         }
@@ -5305,11 +5302,9 @@
 
         // Place a new activity at top of root task, so it is next to interact with the user.
         if ((r.intent.getFlags() & Intent.FLAG_ACTIVITY_NO_ANIMATION) != 0) {
-            mDisplayContent.prepareAppTransition(TRANSIT_NONE);
             mTaskSupervisor.mNoAnimActivities.add(r);
             mTransitionController.setNoAnimation(r);
         } else {
-            mDisplayContent.prepareAppTransition(TRANSIT_OPEN);
             mTaskSupervisor.mNoAnimActivities.remove(r);
         }
         if (newTask && !r.mLaunchTaskBehind) {
@@ -5489,7 +5484,8 @@
         Slog.w(TAG, "  Force finishing activity "
                 + r.intent.getComponent().flattenToShortString());
         Task finishedTask = r.getTask();
-        mDisplayContent.requestTransitionAndLegacyPrepare(TRANSIT_CLOSE, TRANSIT_FLAG_APP_CRASHED);
+        mDisplayContent.requestTransitionAndLegacyPrepare(TRANSIT_CLOSE, TRANSIT_FLAG_APP_CRASHED,
+                finishedTask);
         r.finishIfPossible(reason, false /* oomAdj */);
 
         // Also terminate any activities below it that aren't yet stopped, to avoid a situation
@@ -5693,10 +5689,6 @@
         return foundParentInTask;
     }
 
-    void removeLaunchTickMessages() {
-        forAllActivities(ActivityRecord::removeLaunchTickRunnable);
-    }
-
     private void updateTransitLocked(@WindowManager.TransitionType int transit,
             ActivityOptions options) {
         if (options != null) {
@@ -5707,7 +5699,6 @@
                 ActivityOptions.abort(options);
             }
         }
-        mDisplayContent.prepareAppTransition(transit);
     }
 
     final void moveTaskToFront(Task tr, boolean noAnimation, ActivityOptions options,
@@ -5759,12 +5750,9 @@
 
             if (DEBUG_TRANSITION) Slog.v(TAG_TRANSITION, "Prepare to front transition: task=" + tr);
             if (noAnimation) {
-                mDisplayContent.prepareAppTransition(TRANSIT_NONE);
                 mTaskSupervisor.mNoAnimActivities.add(top);
-                if (mTransitionController.isShellTransitionsEnabled()) {
-                    mTransitionController.collect(top);
-                    mTransitionController.setNoAnimation(top);
-                }
+                mTransitionController.collect(top);
+                mTransitionController.setNoAnimation(top);
                 ActivityOptions.abort(options);
             } else {
                 updateTransitLocked(TRANSIT_TO_FRONT, options);
@@ -5874,10 +5862,6 @@
                         moveTaskToBackInner(tr, transition);
                     });
         } else {
-            // Skip the transition for pinned task.
-            if (!inPinnedWindowingMode()) {
-                mDisplayContent.prepareAppTransition(TRANSIT_TO_BACK);
-            }
             moveTaskToBackInner(tr, null /* transition */);
         }
         return true;
diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java
index bbda849..a8c67f8 100644
--- a/services/core/java/com/android/server/wm/TaskFragment.java
+++ b/services/core/java/com/android/server/wm/TaskFragment.java
@@ -44,10 +44,6 @@
 import static android.view.Surface.ROTATION_270;
 import static android.view.Surface.ROTATION_90;
 import static android.view.WindowManager.LayoutParams.FLAG_DIM_BEHIND;
-import static android.view.WindowManager.TRANSIT_CLOSE;
-import static android.view.WindowManager.TRANSIT_FLAG_OPEN_BEHIND;
-import static android.view.WindowManager.TRANSIT_NONE;
-import static android.view.WindowManager.TRANSIT_OPEN;
 
 import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES;
 import static com.android.server.wm.ActivityRecord.State.PAUSED;
@@ -56,7 +52,6 @@
 import static com.android.server.wm.ActivityRecord.State.STOPPING;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_RESULTS;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_SWITCH;
-import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_TRANSITION;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_RESULTS;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_SWITCH;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_TRANSITION;
@@ -1682,36 +1677,15 @@
         final DisplayContent dc = taskDisplayArea.mDisplayContent;
         if (prev != null) {
             if (prev.finishing) {
-                if (DEBUG_TRANSITION) {
-                    Slog.v(TAG_TRANSITION, "Prepare close transition: prev=" + prev);
-                }
                 if (mTaskSupervisor.mNoAnimActivities.contains(prev)) {
                     anim = false;
-                    dc.prepareAppTransition(TRANSIT_NONE);
-                } else {
-                    dc.prepareAppTransition(TRANSIT_CLOSE);
                 }
                 prev.setVisibility(false);
-            } else {
-                if (DEBUG_TRANSITION) {
-                    Slog.v(TAG_TRANSITION, "Prepare open transition: prev=" + prev);
-                }
-                if (mTaskSupervisor.mNoAnimActivities.contains(next)) {
-                    anim = false;
-                    dc.prepareAppTransition(TRANSIT_NONE);
-                } else {
-                    dc.prepareAppTransition(TRANSIT_OPEN,
-                            next.mLaunchTaskBehind ? TRANSIT_FLAG_OPEN_BEHIND : 0);
-                }
-            }
-        } else {
-            if (DEBUG_TRANSITION) Slog.v(TAG_TRANSITION, "Prepare open transition: no previous");
-            if (mTaskSupervisor.mNoAnimActivities.contains(next)) {
+            } else if (mTaskSupervisor.mNoAnimActivities.contains(next)) {
                 anim = false;
-                dc.prepareAppTransition(TRANSIT_NONE);
-            } else {
-                dc.prepareAppTransition(TRANSIT_OPEN);
             }
+        } else if (mTaskSupervisor.mNoAnimActivities.contains(next)) {
+            anim = false;
         }
 
         if (anim) {
@@ -1744,9 +1718,6 @@
                 next.setVisibility(true);
             }
 
-            // schedule launch ticks to collect information about slow apps.
-            next.startLaunchTickingLocked();
-
             ActivityRecord lastResumedActivity =
                     lastFocusedRootTask == null ? null
                             : lastFocusedRootTask.getTopResumedActivity();
@@ -1915,10 +1886,12 @@
             // Even if the transient activity is occluded, defer pausing (addToStopping will still
             // be called) it until the transient transition is done. So the current resuming
             // activity won't need to wait for additional pause complete.
+            ProtoLog.d(WM_DEBUG_STATES, "startPausing: Skipping pause for transient "
+                            + "resumed activity=%s", mResumedActivity);
             return false;
         }
 
-        ProtoLog.d(WM_DEBUG_STATES, "startPausing: taskFrag =%s " + "mResumedActivity=%s", this,
+        ProtoLog.d(WM_DEBUG_STATES, "startPausing: taskFrag=%s mResumedActivity=%s", this,
                 mResumedActivity);
 
         if (mPausingActivity != null) {
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java
index 5217a75..78c6f90 100644
--- a/services/core/java/com/android/server/wm/Transition.java
+++ b/services/core/java/com/android/server/wm/Transition.java
@@ -77,6 +77,7 @@
 import static com.android.server.wm.WindowState.BLAST_TIMEOUT_DURATION;
 import static com.android.window.flags.Flags.enableDisplayFocusInShellTransitions;
 
+import android.annotation.ColorInt;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -257,6 +258,12 @@
     /** Custom activity-level animation options and callbacks. */
     private AnimationOptions mOverrideOptions;
 
+    /**
+     * Custom background color
+     */
+    @ColorInt
+    private int mOverrideBackgroundColor;
+
     private IRemoteCallback mClientAnimationStartCallback = null;
     private IRemoteCallback mClientAnimationFinishCallback = null;
 
@@ -1011,6 +1018,13 @@
     }
 
     /**
+     * Set background color for collecting transition.
+     */
+    void setOverrideBackgroundColor(@ColorInt int backgroundColor) {
+        mOverrideBackgroundColor = backgroundColor;
+    }
+
+    /**
      * Call this when all known changes related to this transition have been applied. Until
      * all participants have finished drawing, the transition can still collect participants.
      *
@@ -1640,6 +1654,12 @@
                     mSyncEngine.setSyncMethod(syncId, BLASTSyncEngine.METHOD_BLAST);
                 }
                 mSyncEngine.addToSyncSet(syncId, target);
+            } else {
+                // If there is an existing sync group for the commit-at-end activity,
+                // enforce BLAST sync method for its windows, before resuming config dispatch.
+                target.forAllWindows(windowState -> {
+                    windowState.mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST;
+                }, true /* traverseTopToBottom */);
             }
             // Reset surface state here (since it was skipped in buildFinishTransaction). Since
             // we are resuming config to the "current" state, we have to calculate the matching
@@ -2026,23 +2046,17 @@
         if (mOverrideOptions == null) {
             return;
         }
-
-        if (!Flags.moveAnimationOptionsToChange()) {
-            info.setAnimationOptions(mOverrideOptions);
-        } else {
-            final List<TransitionInfo.Change> changes = info.getChanges();
-            for (int i = changes.size() - 1; i >= 0; --i) {
-                final WindowContainer<?> container = mTargets.get(i).mContainer;
-                if (container.asActivityRecord() != null
-                        || shouldApplyAnimOptionsToTask(container.asTask())) {
-                    changes.get(i).setAnimationOptions(mOverrideOptions);
-                    // TODO(b/295805497): Extract mBackgroundColor from AnimationOptions.
-                    changes.get(i).setBackgroundColor(mOverrideOptions.getBackgroundColor());
-                } else if (shouldApplyAnimOptionsToEmbeddedTf(container.asTaskFragment())) {
-                    // We only override AnimationOptions because backgroundColor should be from
-                    // TaskFragmentAnimationParams.
-                    changes.get(i).setAnimationOptions(mOverrideOptions);
-                }
+        final List<TransitionInfo.Change> changes = info.getChanges();
+        for (int i = changes.size() - 1; i >= 0; --i) {
+            final WindowContainer<?> container = mTargets.get(i).mContainer;
+            if (container.asActivityRecord() != null
+                    || shouldApplyAnimOptionsToTask(container.asTask())) {
+                changes.get(i).setAnimationOptions(mOverrideOptions);
+                changes.get(i).setBackgroundColor(mOverrideBackgroundColor);
+            } else if (shouldApplyAnimOptionsToEmbeddedTf(container.asTaskFragment())) {
+                // We only override AnimationOptions because backgroundColor should be from
+                // TaskFragmentAnimationParams.
+                changes.get(i).setAnimationOptions(mOverrideOptions);
             }
         }
         updateActivityTargetForCrossProfileAnimation(info);
@@ -2494,7 +2508,12 @@
         sb.append(" id=" + mSyncId);
         sb.append(" type=" + transitTypeToString(mType));
         sb.append(" flags=0x" + Integer.toHexString(mFlags));
-        sb.append(" overrideAnimOptions=" + mOverrideOptions);
+        if (mOverrideOptions != null) {
+            sb.append(" overrideAnimOptions=" + mOverrideOptions);
+        }
+        if (mOverrideBackgroundColor != 0) {
+            sb.append(" overrideBackgroundColor=" + mOverrideBackgroundColor);
+        }
         if (!mChanges.isEmpty()) {
             sb.append(" c=[");
             for (int i = 0; i < mChanges.size(); i++) {
@@ -2933,9 +2952,6 @@
 
         final AnimationOptions animOptionsForActivityTransition =
                 calculateAnimationOptionsForActivityTransition(type, sortedTargets);
-        if (!Flags.moveAnimationOptionsToChange() && animOptionsForActivityTransition != null) {
-            out.setAnimationOptions(animOptionsForActivityTransition);
-        }
 
         final ArraySet<WindowContainer> occludedAtEndContainers = new ArraySet<>();
         // Convert all the resolved ChangeInfos into TransactionInfo.Change objects in order.
@@ -3008,9 +3024,7 @@
             final Rect parentBounds = parent.getBounds();
             change.setEndRelOffset(bounds.left - parentBounds.left,
                     bounds.top - parentBounds.top);
-            if (Flags.activityEmbeddingOverlayPresentationFlag()) {
-                change.setEndParentSize(parentBounds.width(), parentBounds.height());
-            }
+            change.setEndParentSize(parentBounds.width(), parentBounds.height());
             int endRotation = target.getWindowConfiguration().getRotation();
             if (activityRecord != null) {
                 // TODO(b/227427984): Shell needs to aware letterbox.
@@ -3059,27 +3073,21 @@
             }
 
             AnimationOptions animOptions = null;
-            if (Flags.moveAnimationOptionsToChange()) {
-                if (activityRecord != null && animOptionsForActivityTransition != null) {
-                    animOptions = animOptionsForActivityTransition;
-                } else if (Flags.activityEmbeddingOverlayPresentationFlag()
-                        && isEmbeddedTaskFragment) {
-                    final TaskFragmentAnimationParams params = taskFragment.getAnimationParams();
-                    if (params.hasOverrideAnimation()) {
-                        // Only set AnimationOptions if there's any animation override.
-                        // We use separated field for backgroundColor, and
-                        // AnimationOptions#backgroundColor will be removed in long term.
-                        animOptions = AnimationOptions.makeCustomAnimOptions(
-                                taskFragment.getTask().getBasePackageName(),
-                                params.getOpenAnimationResId(), params.getChangeAnimationResId(),
-                                params.getCloseAnimationResId(), 0 /* backgroundColor */,
-                                false /* overrideTaskTransition */);
-                        animOptions.setUserId(taskFragment.getTask().mUserId);
-                    }
+            if (activityRecord != null && animOptionsForActivityTransition != null) {
+                animOptions = animOptionsForActivityTransition;
+            } else if (isEmbeddedTaskFragment) {
+                final TaskFragmentAnimationParams params = taskFragment.getAnimationParams();
+                if (params.hasOverrideAnimation()) {
+                    // Only set AnimationOptions if there's any animation override.
+                    animOptions = AnimationOptions.makeCustomAnimOptions(
+                            taskFragment.getTask().getBasePackageName(),
+                            params.getOpenAnimationResId(), params.getChangeAnimationResId(),
+                            params.getCloseAnimationResId(), false /* overrideTaskTransition */);
+                    animOptions.setUserId(taskFragment.getTask().mUserId);
                 }
-                if (animOptions != null) {
-                    change.setAnimationOptions(animOptions);
-                }
+            }
+            if (animOptions != null) {
+                change.setAnimationOptions(animOptions);
             }
 
             if (activityRecord != null) {
@@ -3336,14 +3344,14 @@
         if (mainWin == null) return ROTATION_ANIMATION_UNSPECIFIED;
         int anim = mainWin.getRotationAnimationHint();
         if (anim >= 0) return anim;
-        anim = mainWin.getAttrs().rotationAnimation;
+        anim = mainWin.mAttrs.rotationAnimation;
         if (anim != ROTATION_ANIMATION_SEAMLESS) return anim;
         if (mainWin != task.mDisplayContent.getDisplayPolicy().getTopFullscreenOpaqueWindow()
                 || !top.matchParentBounds()) {
             // At the moment, we only support seamless rotation if there is only one window showing.
             return ROTATION_ANIMATION_UNSPECIFIED;
         }
-        return mainWin.getAttrs().rotationAnimation;
+        return mainWin.mAttrs.rotationAnimation;
     }
 
     private void validateKeyguardOcclusion() {
diff --git a/services/core/java/com/android/server/wm/TransitionController.java b/services/core/java/com/android/server/wm/TransitionController.java
index ba7f364..11c5c93 100644
--- a/services/core/java/com/android/server/wm/TransitionController.java
+++ b/services/core/java/com/android/server/wm/TransitionController.java
@@ -23,6 +23,7 @@
 
 import static com.android.server.wm.ActivityTaskManagerService.POWER_MODE_REASON_CHANGE_DISPLAY;
 
+import android.annotation.ColorInt;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.ActivityManager;
@@ -938,12 +939,19 @@
     }
 
     /** @see Transition#setOverrideAnimation */
-    void setOverrideAnimation(TransitionInfo.AnimationOptions options, ActivityRecord r,
-            @Nullable IRemoteCallback startCallback, @Nullable IRemoteCallback finishCallback) {
+    void setOverrideAnimation(@NonNull TransitionInfo.AnimationOptions options,
+            @NonNull ActivityRecord r, @Nullable IRemoteCallback startCallback,
+            @Nullable IRemoteCallback finishCallback) {
         if (mCollectingTransition == null) return;
         mCollectingTransition.setOverrideAnimation(options, r, startCallback, finishCallback);
     }
 
+    /** @see Transition#setOverrideBackgroundColor */
+    void setOverrideBackgroundColor(@ColorInt int backgroundColor) {
+        if (mCollectingTransition == null) return;
+        mCollectingTransition.setOverrideBackgroundColor(backgroundColor);
+    }
+
     void setNoAnimation(WindowContainer wc) {
         if (mCollectingTransition == null) return;
         mCollectingTransition.setNoAnimation(wc);
diff --git a/services/core/java/com/android/server/wm/TrustedPresentationListenerController.java b/services/core/java/com/android/server/wm/TrustedPresentationListenerController.java
index 2428836..e612d8e 100644
--- a/services/core/java/com/android/server/wm/TrustedPresentationListenerController.java
+++ b/services/core/java/com/android/server/wm/TrustedPresentationListenerController.java
@@ -20,6 +20,7 @@
 import static android.graphics.Matrix.MSCALE_Y;
 import static android.graphics.Matrix.MSKEW_X;
 import static android.graphics.Matrix.MSKEW_Y;
+import static android.view.Display.INVALID_DISPLAY;
 
 import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TPL;
 
@@ -35,6 +36,7 @@
 import android.util.IntArray;
 import android.util.Pair;
 import android.util.Size;
+import android.util.SparseArray;
 import android.view.InputWindowHandle;
 import android.window.ITrustedPresentationListener;
 import android.window.TrustedPresentationThresholds;
@@ -251,7 +253,7 @@
         Rect tmpLogicalDisplaySize = new Rect();
         Matrix tmpInverseMatrix = new Matrix();
         float[] tmpMatrix = new float[9];
-        Region coveredRegionsAbove = new Region();
+        SparseArray<Region> coveredRegionsAboveByDisplay = new SparseArray<>();
         long currTimeMs = System.currentTimeMillis();
         ProtoLog.v(WM_DEBUG_TPL, "Checking %d windows", mLastWindowHandles.first.length);
 
@@ -262,7 +264,7 @@
                 ProtoLog.v(WM_DEBUG_TPL, "Skipping %s", windowHandle.name);
                 continue;
             }
-            var displayFound = false;
+            int displayId = INVALID_DISPLAY;
             tmpRectF.set(windowHandle.frame);
             for (var displayHandle : mLastWindowHandles.second) {
                 if (displayHandle.mDisplayId == windowHandle.displayId) {
@@ -273,17 +275,18 @@
                     tmpLogicalDisplaySize.set(0, 0, displayHandle.mLogicalSize.getWidth(),
                             displayHandle.mLogicalSize.getHeight());
                     tmpRect.intersect(tmpLogicalDisplaySize);
-                    displayFound = true;
+                    displayId = displayHandle.mDisplayId;
                     break;
                 }
             }
 
-            if (!displayFound) {
+            if (displayId == INVALID_DISPLAY) {
                 ProtoLog.v(WM_DEBUG_TPL, "Skipping %s, no associated display %d", windowHandle.name,
                         windowHandle.displayId);
                 continue;
             }
 
+            Region coveredRegionsAbove = coveredRegionsAboveByDisplay.get(displayId, new Region());
             var listeners = mRegisteredListeners.get(windowHandle.getWindowToken());
             if (listeners != null) {
                 Region region = new Region();
@@ -304,6 +307,7 @@
             }
 
             coveredRegionsAbove.op(tmpRect, Region.Op.UNION);
+            coveredRegionsAboveByDisplay.put(displayId, coveredRegionsAbove);
             ProtoLog.v(WM_DEBUG_TPL, "coveredRegionsAbove updated with %s frame:%s region:%s",
                     windowHandle.name, tmpRect.toShortString(), coveredRegionsAbove);
         }
diff --git a/services/core/java/com/android/server/wm/WallpaperWindowToken.java b/services/core/java/com/android/server/wm/WallpaperWindowToken.java
index 7c88abc..9506ffe 100644
--- a/services/core/java/com/android/server/wm/WallpaperWindowToken.java
+++ b/services/core/java/com/android/server/wm/WallpaperWindowToken.java
@@ -217,8 +217,7 @@
         }
 
         // If in a transition, defer commits for activities that are going invisible
-        if (!visible && (mTransitionController.inTransition()
-                || getDisplayContent().mAppTransition.isRunning())) {
+        if (!visible && mTransitionController.inTransition()) {
             return;
         }
 
diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java
index 45202a2..d0d2067 100644
--- a/services/core/java/com/android/server/wm/WindowContainer.java
+++ b/services/core/java/com/android/server/wm/WindowContainer.java
@@ -16,9 +16,6 @@
 
 package com.android.server.wm;
 
-import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
-import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
-import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
 import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_BEHIND;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSET;
@@ -29,24 +26,15 @@
 import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
 import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
 import static android.content.res.Configuration.ORIENTATION_UNDEFINED;
-import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
 import static android.os.UserHandle.USER_NULL;
 import static android.view.SurfaceControl.Transaction;
 import static android.view.WindowInsets.Type.InsetsType;
 import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE;
-import static android.window.TaskFragmentAnimationParams.DEFAULT_ANIMATION_BACKGROUND_COLOR;
 import static android.window.DesktopModeFlags.ENABLE_CAPTION_COMPAT_INSET_FORCE_CONSUMPTION;
 
 import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM;
-import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS;
-import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS_ANIM;
 import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
 import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SYNC_ENGINE;
-import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
-import static com.android.server.wm.AppTransition.MAX_APP_TRANSITION_DURATION;
-import static com.android.server.wm.AppTransition.isActivityTransitOld;
-import static com.android.server.wm.AppTransition.isTaskFragmentTransitOld;
-import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING;
 import static com.android.server.wm.IdentifierProto.HASH_CODE;
 import static com.android.server.wm.IdentifierProto.TITLE;
 import static com.android.server.wm.IdentifierProto.USER_ID;
@@ -65,7 +53,6 @@
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
-import static com.android.server.wm.WindowStateAnimator.ROOT_TASK_CLIP_AFTER_ANIM;
 
 import android.annotation.CallSuper;
 import android.annotation.ColorInt;
@@ -81,10 +68,8 @@
 import android.os.Debug;
 import android.os.IBinder;
 import android.os.RemoteException;
-import android.os.Trace;
 import android.util.ArrayMap;
 import android.util.ArraySet;
-import android.util.Pair;
 import android.util.Pools;
 import android.util.RotationUtils;
 import android.util.Slog;
@@ -102,14 +87,11 @@
 import android.view.SurfaceControlViewHost;
 import android.view.WindowManager;
 import android.view.WindowManager.TransitionOldType;
-import android.view.animation.Animation;
 import android.window.IWindowContainerToken;
 import android.window.WindowContainerToken;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.graphics.ColorUtils;
 import com.android.internal.protolog.ProtoLog;
-import com.android.internal.protolog.common.LogLevel;
 import com.android.internal.util.ToBooleanFunction;
 import com.android.server.wm.SurfaceAnimator.Animatable;
 import com.android.server.wm.SurfaceAnimator.AnimationType;
@@ -1315,31 +1297,12 @@
     }
 
     /**
-     * Returns true if the container or one of its children as some content it can display or wants
-     * to display (e.g. app views or saved surface).
-     *
-     * NOTE: While this method will return true if the there is some content to display, it doesn't
-     * mean the container is visible. Use {@link #isVisible()} to determine if the container is
-     * visible.
-     */
-    boolean hasContentToDisplay() {
-        for (int i = mChildren.size() - 1; i >= 0; --i) {
-            final WindowContainer wc = mChildren.get(i);
-            if (wc.hasContentToDisplay()) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
      * Returns true if the container or one of its children is considered visible from the
      * WindowManager perspective which usually means valid surface and some other internal state
      * are true.
      *
      * NOTE: While this method will return true if the surface is visible, it doesn't mean the
-     * client has actually displayed any content. Use {@link #hasContentToDisplay()} to determine if
-     * the container has any content to display.
+     * client has actually displayed any content.
      */
     boolean isVisible() {
         // TODO: Will this be more correct if it checks the visibility of its parents?
@@ -1480,13 +1443,6 @@
         }
     }
 
-    void onAppTransitionDone() {
-        for (int i = mChildren.size() - 1; i >= 0; --i) {
-            final WindowContainer wc = mChildren.get(i);
-            wc.onAppTransitionDone();
-        }
-    }
-
     /**
      * Called when this container or one of its descendants changed its requested orientation, and
      * wants this container to handle it or pass it to its parent.
@@ -3039,264 +2995,10 @@
         getRelativePosition(outPosition);
     }
 
-    /**
-     * Applies the app transition animation according the given the layout properties in the
-     * window hierarchy.
-     *
-     * @param lp The layout parameters of the window.
-     * @param transit The app transition type indicates what kind of transition to be applied.
-     * @param enter Whether the app transition is entering transition or not.
-     * @param isVoiceInteraction Whether the container is participating in voice interaction or not.
-     * @param sources {@link ActivityRecord}s which causes this app transition animation.
-     *
-     * @return {@code true} when the container applied the app transition, {@code false} if the
-     *         app transition is disabled or skipped.
-     *
-     * @see #getAnimationAdapter
-     */
-    boolean applyAnimation(WindowManager.LayoutParams lp, @TransitionOldType int transit,
-            boolean enter, boolean isVoiceInteraction,
-            @Nullable ArrayList<WindowContainer> sources) {
-        if (mWmService.mDisableTransitionAnimation) {
-            ProtoLog.v(WM_DEBUG_APP_TRANSITIONS_ANIM,
-                    "applyAnimation: transition animation is disabled or skipped. "
-                            + "container=%s", this);
-            cancelAnimation();
-            return false;
-        }
-
-        // Only apply an animation if the display isn't frozen. If it is frozen, there is no reason
-        // to animate and it can cause strange artifacts when we unfreeze the display if some
-        // different animation is running.
-        try {
-            Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "WC#applyAnimation");
-            if (okToAnimate()) {
-                ProtoLog.v(WM_DEBUG_APP_TRANSITIONS_ANIM,
-                        "applyAnimation: transit=%s, enter=%b, wc=%s",
-                        AppTransition.appTransitionOldToString(transit), enter, this);
-                applyAnimationUnchecked(lp, enter, transit, isVoiceInteraction, sources);
-            } else {
-                cancelAnimation();
-            }
-        } finally {
-            Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
-        }
-
-        return isAnimating();
-    }
-
-    /**
-     * Gets the {@link AnimationAdapter} according the given window layout properties in the window
-     * hierarchy.
-     *
-     * @return The return value will always contain two elements, one for normal animations and the
-     *         other for thumbnail animation, both can be {@code null}.
-     *
-     * @See com.android.server.wm.RemoteAnimationController.RemoteAnimationRecord
-     * @See LocalAnimationAdapter
-     */
-    Pair<AnimationAdapter, AnimationAdapter> getAnimationAdapter(WindowManager.LayoutParams lp,
-            @TransitionOldType int transit, boolean enter, boolean isVoiceInteraction) {
-        final Pair<AnimationAdapter, AnimationAdapter> resultAdapters;
-        final int appRootTaskClipMode = getDisplayContent().mAppTransition.getAppRootTaskClipMode();
-
-        // Separate position and size for use in animators.
-        final Rect screenBounds = getAnimationBounds(appRootTaskClipMode);
-        mTmpRect.set(screenBounds);
-        getAnimationPosition(mTmpPoint);
-        mTmpRect.offsetTo(0, 0);
-
-        final boolean isChanging = AppTransition.isChangeTransitOld(transit);
-
-        if (isChanging) {
-            final float durationScale = mWmService.getTransitionAnimationScaleLocked();
-            final DisplayInfo displayInfo = getDisplayContent().getDisplayInfo();
-            mTmpRect.offsetTo(mTmpPoint.x, mTmpPoint.y);
-
-            final AnimationAdapter adapter = new LocalAnimationAdapter(
-                    new WindowChangeAnimationSpec(null /* startBounds */, mTmpRect,
-                            displayInfo, durationScale, true /* isAppAnimation */,
-                            false /* isThumbnail */),
-                    getSurfaceAnimationRunner());
-
-            final AnimationAdapter thumbnailAdapter = null;
-            resultAdapters = new Pair<>(adapter, thumbnailAdapter);
-            mTransit = transit;
-            mTransitFlags = getDisplayContent().mAppTransition.getTransitFlags();
-        } else {
-            mNeedsAnimationBoundsLayer = (appRootTaskClipMode == ROOT_TASK_CLIP_AFTER_ANIM);
-            final Animation a = loadAnimation(lp, transit, enter, isVoiceInteraction);
-
-            if (a != null) {
-                // Only apply corner radius to animation if we're not in multi window mode.
-                // We don't want rounded corners when in pip or split screen.
-                final float windowCornerRadius = !inMultiWindowMode()
-                        ? getDisplayContent().getWindowCornerRadius()
-                        : 0;
-                if (asActivityRecord() != null
-                        && asActivityRecord().isNeedsLetterboxedAnimation()) {
-                    asActivityRecord().getLetterboxInnerBounds(mTmpRect);
-                }
-                AnimationAdapter adapter = new LocalAnimationAdapter(
-                        new WindowAnimationSpec(a, mTmpPoint, mTmpRect,
-                                getDisplayContent().mAppTransition.canSkipFirstFrame(),
-                                appRootTaskClipMode, true /* isAppAnimation */, windowCornerRadius),
-                        getSurfaceAnimationRunner());
-
-                resultAdapters = new Pair<>(adapter, null);
-                mNeedsZBoost = a.getZAdjustment() == Animation.ZORDER_TOP
-                        || AppTransition.isClosingTransitOld(transit);
-                mTransit = transit;
-                mTransitFlags = getDisplayContent().mAppTransition.getTransitFlags();
-            } else {
-                resultAdapters = new Pair<>(null, null);
-            }
-        }
-        return resultAdapters;
-    }
-
-    protected void applyAnimationUnchecked(WindowManager.LayoutParams lp, boolean enter,
-            @TransitionOldType int transit, boolean isVoiceInteraction,
-            @Nullable ArrayList<WindowContainer> sources) {
-        final Task task = asTask();
-        if (task != null && !enter && !task.isActivityTypeHomeOrRecents()) {
-            final InsetsControlTarget imeTarget = mDisplayContent.getImeTarget(IME_TARGET_LAYERING);
-            final boolean isImeLayeringTarget = imeTarget != null && imeTarget.getWindow() != null
-                    && imeTarget.getWindow().getTask() == task;
-            // Attach and show the IME screenshot when the task is the IME target and performing
-            // task closing transition to the next task.
-            if (isImeLayeringTarget && AppTransition.isTaskCloseTransitOld(transit)) {
-                mDisplayContent.showImeScreenshot();
-            }
-        }
-        final Pair<AnimationAdapter, AnimationAdapter> adapters = getAnimationAdapter(lp,
-                transit, enter, isVoiceInteraction);
-        AnimationAdapter adapter = adapters.first;
-        AnimationAdapter thumbnailAdapter = adapters.second;
-        if (adapter != null) {
-            if (sources != null) {
-                mSurfaceAnimationSources.addAll(sources);
-            }
-
-            AnimationRunnerBuilder animationRunnerBuilder = new AnimationRunnerBuilder();
-
-            // Check if the animation requests to show background color for Activity and embedded
-            // TaskFragment.
-            final ActivityRecord activityRecord = asActivityRecord();
-            final TaskFragment taskFragment = asTaskFragment();
-            if (adapter.getShowBackground()
-                    // Check if it is Activity transition.
-                    && ((activityRecord != null && isActivityTransitOld(transit))
-                    // Check if it is embedded TaskFragment transition.
-                    || (taskFragment != null && taskFragment.isEmbedded()
-                    && isTaskFragmentTransitOld(transit)))) {
-                final @ColorInt int backgroundColorForTransition;
-                if (adapter.getBackgroundColor() != 0) {
-                    // If available use the background color provided through getBackgroundColor
-                    // which if set originates from a call to overridePendingAppTransition.
-                    backgroundColorForTransition = adapter.getBackgroundColor();
-                } else {
-                    final TaskFragment organizedTf = activityRecord != null
-                            ? activityRecord.getOrganizedTaskFragment()
-                            : taskFragment.getOrganizedTaskFragment();
-                    if (organizedTf != null && organizedTf.getAnimationParams()
-                            .getAnimationBackgroundColor() != DEFAULT_ANIMATION_BACKGROUND_COLOR) {
-                        // This window is embedded and has an animation background color set on the
-                        // TaskFragment. Pass this color with this window, so the handler can use it
-                        // as the animation background color if needed,
-                        backgroundColorForTransition = organizedTf.getAnimationParams()
-                                .getAnimationBackgroundColor();
-                    } else {
-                        // Otherwise default to the window's background color if provided through
-                        // the theme as the background color for the animation - the top most window
-                        // with a valid background color and showBackground set takes precedence.
-                        final Task parentTask = activityRecord != null
-                                ? activityRecord.getTask()
-                                : taskFragment.getTask();
-                        backgroundColorForTransition = parentTask.getTaskDescription()
-                                .getBackgroundColor();
-                    }
-                }
-                // Set to opaque for animation background to prevent it from exposing the blank
-                // background or content below.
-                animationRunnerBuilder.setTaskBackgroundColor(ColorUtils.setAlphaComponent(
-                        backgroundColorForTransition, 255));
-            }
-
-            animationRunnerBuilder.build()
-                    .startAnimation(getPendingTransaction(), adapter, !isVisible(),
-                            ANIMATION_TYPE_APP_TRANSITION, thumbnailAdapter);
-
-            if (adapter.getShowWallpaper()) {
-                getDisplayContent().pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
-            }
-        }
-    }
-
     final SurfaceAnimationRunner getSurfaceAnimationRunner() {
         return mWmService.mSurfaceAnimationRunner;
     }
 
-    private Animation loadAnimation(WindowManager.LayoutParams lp, int transit, boolean enter,
-                                    boolean isVoiceInteraction) {
-        if ((isOrganized()
-                // TODO(b/161711458): Clean-up when moved to shell.
-                && getWindowingMode() != WINDOWING_MODE_FULLSCREEN
-                && getWindowingMode() != WINDOWING_MODE_FREEFORM
-                && getWindowingMode() != WINDOWING_MODE_MULTI_WINDOW)) {
-            return null;
-        }
-
-        final DisplayContent displayContent = getDisplayContent();
-        final DisplayInfo displayInfo = displayContent.getDisplayInfo();
-        final int width = displayInfo.appWidth;
-        final int height = displayInfo.appHeight;
-        ProtoLog.v(WM_DEBUG_APP_TRANSITIONS_ANIM, "applyAnimation: container=%s", this);
-
-        // Determine the visible rect to calculate the thumbnail clip with
-        // getAnimationFrames.
-        final Rect frame = new Rect(0, 0, width, height);
-        final Rect displayFrame = new Rect(0, 0,
-                displayInfo.logicalWidth, displayInfo.logicalHeight);
-        final Rect insets = new Rect();
-        final Rect stableInsets = new Rect();
-        final Rect surfaceInsets = new Rect();
-        getAnimationFrames(frame, insets, stableInsets, surfaceInsets);
-
-        if (mLaunchTaskBehind) {
-            // Differentiate the two animations. This one which is briefly on the screen
-            // gets the !enter animation, and the other one which remains on the
-            // screen gets the enter animation. Both appear in the mOpeningApps set.
-            enter = false;
-        }
-        ProtoLog.d(WM_DEBUG_APP_TRANSITIONS,
-                "Loading animation for app transition. transit=%s enter=%b frame=%s insets=%s "
-                        + "surfaceInsets=%s",
-                AppTransition.appTransitionOldToString(transit), enter, frame, insets,
-                surfaceInsets);
-        final Configuration displayConfig = displayContent.getConfiguration();
-        final Animation a = getDisplayContent().mAppTransition.loadAnimation(lp, transit, enter,
-                displayConfig.uiMode, displayConfig.orientation, frame, displayFrame, insets,
-                surfaceInsets, stableInsets, isVoiceInteraction, inFreeformWindowingMode(), this);
-        if (a != null) {
-            if (a != null) {
-                // Setup the maximum app transition duration to prevent malicious app may set a long
-                // animation duration or infinite repeat counts for the app transition through
-                // ActivityOption#makeCustomAnimation or WindowManager#overridePendingTransition.
-                a.restrictDuration(MAX_APP_TRANSITION_DURATION);
-            }
-            if (ProtoLog.isEnabled(WM_DEBUG_ANIM, LogLevel.DEBUG)) {
-                ProtoLog.i(WM_DEBUG_ANIM, "Loaded animation %s for %s, duration: %d, stack=%s",
-                        a, this, ((a != null) ? a.getDuration() : 0), Debug.getCallers(20));
-            }
-            final int containingWidth = frame.width();
-            final int containingHeight = frame.height();
-            a.initialize(containingWidth, containingHeight, width, height);
-            a.scaleCurrentDuration(mWmService.getTransitionAnimationScaleLocked());
-        }
-        return a;
-    }
-
     boolean canCreateRemoteAnimationTarget() {
         return false;
     }
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 8aed91b..28f2825 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -1583,14 +1583,18 @@
                 return WindowManagerGlobal.ADD_DUPLICATE_ADD;
             }
 
-            if (type == TYPE_PRIVATE_PRESENTATION && !displayContent.isPrivate()) {
+            if (type == TYPE_PRIVATE_PRESENTATION
+                    && !mPresentationController.canPresent(null /*win*/, displayContent, type,
+                    callingUid)) {
                 ProtoLog.w(WM_ERROR,
                         "Attempted to add private presentation window to a non-private display.  "
                                 + "Aborting.");
                 return WindowManagerGlobal.ADD_PERMISSION_DENIED;
             }
 
-            if (type == TYPE_PRESENTATION && !displayContent.getDisplay().isPublicPresentation()) {
+            if (type == TYPE_PRESENTATION
+                    && !mPresentationController.canPresent(null /*win*/, displayContent, type,
+                    callingUid)) {
                 ProtoLog.w(WM_ERROR,
                         "Attempted to add presentation window to a non-suitable display.  "
                                 + "Aborting.");
@@ -1830,7 +1834,8 @@
                 }
                 win.mTransitionController.collect(win.mToken);
                 res |= addWindowInner(win, displayPolicy, activity, displayContent, outInsetsState,
-                        outAttachedFrame, outActiveControls, client, outSizeCompatScale, attrs);
+                        outAttachedFrame, outActiveControls, client, outSizeCompatScale, attrs,
+                        callingUid);
                 // A presentation hides all activities behind on the same display.
                 win.mDisplayContent.ensureActivitiesVisible(/*starting=*/ null,
                         /*notifyClients=*/ true);
@@ -1841,7 +1846,8 @@
                 }
             } else {
                 res |= addWindowInner(win, displayPolicy, activity, displayContent, outInsetsState,
-                        outAttachedFrame, outActiveControls, client, outSizeCompatScale, attrs);
+                        outAttachedFrame, outActiveControls, client, outSizeCompatScale, attrs,
+                        callingUid);
             }
         }
 
@@ -1854,7 +1860,7 @@
             @NonNull ActivityRecord activity, @NonNull DisplayContent displayContent,
             @NonNull InsetsState outInsetsState, @NonNull Rect outAttachedFrame,
             @NonNull InsetsSourceControl.Array outActiveControls, @NonNull IWindow client,
-            @NonNull float[] outSizeCompatScale, @NonNull LayoutParams attrs) {
+            @NonNull float[] outSizeCompatScale, @NonNull LayoutParams attrs, int uid) {
         int res = 0;
         final int type = attrs.type;
         boolean imMayMove = true;
@@ -1869,7 +1875,7 @@
         } else if (type == TYPE_INPUT_METHOD
                 // IME window is always touchable.
                 // Ignore non-touchable windows e.g. Stylus InkWindow.java.
-                && (win.getAttrs().flags & FLAG_NOT_TOUCHABLE) == 0) {
+                && (win.mAttrs.flags & FLAG_NOT_TOUCHABLE) == 0) {
             displayContent.setInputMethodWindowLocked(win);
             imMayMove = false;
         } else if (type == TYPE_INPUT_METHOD_DIALOG) {
@@ -1971,7 +1977,7 @@
         outSizeCompatScale[0] = win.getCompatScaleForClient();
 
         if (res >= ADD_OKAY && win.isPresentation()) {
-            mPresentationController.onPresentationAdded(win);
+            mPresentationController.onPresentationAdded(win, uid);
         }
 
         return res;
@@ -4767,6 +4773,26 @@
         }
     }
 
+    @EnforcePermission(android.Manifest.permission.MANAGE_APP_TOKENS)
+    @Override
+    public void updateDisplayWindowAnimatingTypes(int displayId, @InsetsType int animatingTypes) {
+        updateDisplayWindowAnimatingTypes_enforcePermission();
+        if (android.view.inputmethod.Flags.reportAnimatingInsetsTypes()) {
+            final long origId = Binder.clearCallingIdentity();
+            try {
+                synchronized (mGlobalLock) {
+                    final DisplayContent dc = mRoot.getDisplayContent(displayId);
+                    if (dc == null || dc.mRemoteInsetsControlTarget == null) {
+                        return;
+                    }
+                    dc.mRemoteInsetsControlTarget.setAnimatingTypes(animatingTypes);
+                }
+            } finally {
+                Binder.restoreCallingIdentity(origId);
+            }
+        }
+    }
+
     @Override
     public int watchRotation(IRotationWatcher watcher, int displayId) {
         final DisplayContent displayContent;
diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java
index b2d28a3..270de01 100644
--- a/services/core/java/com/android/server/wm/WindowProcessController.java
+++ b/services/core/java/com/android/server/wm/WindowProcessController.java
@@ -482,8 +482,9 @@
             r.detachFromProcess();
             if (r.isVisibleRequested()) {
                 hasVisibleActivity = true;
+                Task finishingTask = r.getTask();
                 r.mDisplayContent.requestTransitionAndLegacyPrepare(TRANSIT_CLOSE,
-                        TRANSIT_FLAG_APP_CRASHED);
+                        TRANSIT_FLAG_APP_CRASHED, finishingTask);
             }
             r.destroyIfPossible("handleAppCrashed");
         }
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 92ad2ce..3b7d312 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -736,6 +736,8 @@
 
     private @InsetsType int mRequestedVisibleTypes = WindowInsets.Type.defaultVisible();
 
+    private @InsetsType int mAnimatingTypes = 0;
+
     /**
      * Freeze the insets state in some cases that not necessarily keeps up-to-date to the client.
      * (e.g app exiting transition)
@@ -842,6 +844,27 @@
                 mRequestedVisibleTypes & ~mask | requestedVisibleTypes & mask);
     }
 
+    @Override
+    public @InsetsType int getAnimatingTypes() {
+        return mAnimatingTypes;
+    }
+
+    @Override
+    public void setAnimatingTypes(@InsetsType int animatingTypes) {
+        if (mAnimatingTypes != animatingTypes) {
+            if (Trace.isTagEnabled(TRACE_TAG_WINDOW_MANAGER)) {
+                Trace.instant(TRACE_TAG_WINDOW_MANAGER,
+                        TextUtils.formatSimple("%s: setAnimatingTypes(%s)",
+                                getName(),
+                                animatingTypes));
+            }
+            mInsetsAnimationRunning = animatingTypes != 0;
+            mWmService.scheduleAnimationLocked();
+
+            mAnimatingTypes = animatingTypes;
+        }
+    }
+
     /**
      * Set a freeze state for the window to ignore dispatching its insets state to the client.
      *
@@ -1412,10 +1435,6 @@
         return mWindowFrames.mParentFrame;
     }
 
-    WindowManager.LayoutParams getAttrs() {
-        return mAttrs;
-    }
-
     /** Retrieves the flags used to disable system UI functions. */
     int getDisableFlags() {
         return mDisableFlags;
@@ -1698,17 +1717,6 @@
                 || mActivityRecord.isStartingWindowDisplayed());
     }
 
-    @Override
-    boolean hasContentToDisplay() {
-        if (!isDrawn() && (mViewVisibility == View.VISIBLE
-                || (isAnimating(TRANSITION | PARENTS)
-                && !getDisplayContent().mAppTransition.isTransitionSet()))) {
-            return true;
-        }
-
-        return super.hasContentToDisplay();
-    }
-
     private boolean isVisibleByPolicyOrInsets() {
         return isVisibleByPolicy()
                 // If we don't have a provider, this window isn't used as a window generating
@@ -2450,7 +2458,6 @@
                 mAnimatingExit = true;
                 mRemoveOnExit = true;
                 mToken.setVisibleRequested(false);
-                mWmService.mPresentationController.onPresentationRemoved(this);
                 // A presentation hides all activities behind on the same display.
                 mDisplayContent.ensureActivitiesVisible(/*starting=*/ null,
                         /*notifyClients=*/ true);
@@ -2671,7 +2678,7 @@
             // The client gave us a touchable region and so first
             // we calculate the untouchable region, then punch that out of our
             // expanded modal region.
-            mTmpRegion.set(0, 0, frame.right, frame.bottom);
+            mTmpRegion.set(0, 0, frame.width(), frame.height());
             mTmpRegion.op(mGivenTouchableRegion, Region.Op.DIFFERENCE);
             region.op(mTmpRegion, Region.Op.DIFFERENCE);
         }
@@ -5647,13 +5654,13 @@
 
     KeyInterceptionInfo getKeyInterceptionInfo() {
         if (mKeyInterceptionInfo == null
-                || mKeyInterceptionInfo.layoutParamsPrivateFlags != getAttrs().privateFlags
-                || mKeyInterceptionInfo.layoutParamsType != getAttrs().type
+                || mKeyInterceptionInfo.layoutParamsPrivateFlags != mAttrs.privateFlags
+                || mKeyInterceptionInfo.layoutParamsType != mAttrs.type
                 || mKeyInterceptionInfo.windowTitle != getWindowTag()
                 || mKeyInterceptionInfo.windowOwnerUid != getOwningUid()
-                || mKeyInterceptionInfo.inputFeaturesFlags != getAttrs().inputFeatures) {
-            mKeyInterceptionInfo = new KeyInterceptionInfo(getAttrs().type, getAttrs().privateFlags,
-                    getWindowTag().toString(), getOwningUid(), getAttrs().inputFeatures);
+                || mKeyInterceptionInfo.inputFeaturesFlags != mAttrs.inputFeatures) {
+            mKeyInterceptionInfo = new KeyInterceptionInfo(mAttrs.type, mAttrs.privateFlags,
+                    getWindowTag().toString(), getOwningUid(), mAttrs.inputFeatures);
         }
         return mKeyInterceptionInfo;
     }
@@ -5677,7 +5684,7 @@
         } else {
             outFrame.set(getParentFrame());
         }
-        outSurfaceInsets.set(getAttrs().surfaceInsets);
+        outSurfaceInsets.set(mAttrs.surfaceInsets);
         final InsetsState state = getInsetsStateWithVisibilityOverride();
         outInsets.set(state.calculateInsets(outFrame, systemBars(),
                 false /* ignoreVisibility */).toRect());
@@ -6094,17 +6101,6 @@
         mWmService.scheduleAnimationLocked();
     }
 
-    void notifyInsetsAnimationRunningStateChanged(boolean running) {
-        if (Trace.isTagEnabled(TRACE_TAG_WINDOW_MANAGER)) {
-            Trace.instant(TRACE_TAG_WINDOW_MANAGER,
-                    TextUtils.formatSimple("%s: notifyInsetsAnimationRunningStateChanged(%s)",
-                    getName(),
-                    Boolean.toString(running)));
-        }
-        mInsetsAnimationRunning = running;
-        mWmService.scheduleAnimationLocked();
-    }
-
     boolean isInsetsAnimationRunning() {
         return mInsetsAnimationRunning;
     }
diff --git a/services/core/java/com/android/server/wm/utils/OptPropFactory.java b/services/core/java/com/android/server/wm/utils/OptPropFactory.java
index 8201969b..753b1d5 100644
--- a/services/core/java/com/android/server/wm/utils/OptPropFactory.java
+++ b/services/core/java/com/android/server/wm/utils/OptPropFactory.java
@@ -21,6 +21,7 @@
 
 import android.annotation.IntDef;
 import android.annotation.NonNull;
+import android.annotation.UserIdInt;
 import android.content.pm.PackageManager;
 import android.util.Slog;
 
@@ -38,15 +39,20 @@
     @NonNull
     private final String mPackageName;
 
+    @UserIdInt
+    private final int mUserId;
+
     /**
      * Object responsible to handle optIn and optOut properties.
      *
      * @param packageManager The PackageManager reference
      * @param packageName    The name of the package.
      */
-    public OptPropFactory(@NonNull PackageManager packageManager, @NonNull String packageName) {
+    public OptPropFactory(@NonNull PackageManager packageManager, @NonNull String packageName,
+            @UserIdInt int userId) {
         mPackageManager = packageManager;
         mPackageName = packageName;
+        mUserId = userId;
     }
 
     /**
@@ -58,7 +64,8 @@
     @NonNull
     public OptProp create(@NonNull String propertyName) {
         return OptProp.create(
-                () -> mPackageManager.getProperty(propertyName, mPackageName).getBoolean(),
+                () -> mPackageManager.getPropertyAsUser(propertyName, mPackageName,
+                        null /* className */, mUserId).getBoolean(),
                 propertyName);
     }
 
@@ -73,7 +80,8 @@
     @NonNull
     public OptProp create(@NonNull String propertyName, @NonNull BooleanSupplier gateCondition) {
         return OptProp.create(
-                () -> mPackageManager.getProperty(propertyName, mPackageName).getBoolean(),
+                () -> mPackageManager.getPropertyAsUser(propertyName, mPackageName,
+                        null /* className */, mUserId).getBoolean(),
                 propertyName,
                 gateCondition);
     }
diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp
index d26539c..9577608 100644
--- a/services/core/jni/Android.bp
+++ b/services/core/jni/Android.bp
@@ -204,6 +204,7 @@
         "android.frameworks.sensorservice-V1-ndk",
         "android.frameworks.stats@1.0",
         "android.frameworks.stats-V2-ndk",
+        "android.os.vibrator.flags-aconfig-cc",
         "android.system.suspend.control-V1-cpp",
         "android.system.suspend.control.internal-cpp",
         "android.system.suspend-V1-ndk",
diff --git a/services/core/jni/BroadcastRadio/OWNERS b/services/core/jni/BroadcastRadio/OWNERS
index ea4421e..a993823 100644
--- a/services/core/jni/BroadcastRadio/OWNERS
+++ b/services/core/jni/BroadcastRadio/OWNERS
@@ -1,2 +1 @@
 twasilczyk@google.com
-randolphs@google.com
diff --git a/services/core/jni/com_android_server_vibrator_VibratorController.cpp b/services/core/jni/com_android_server_vibrator_VibratorController.cpp
index abd4cd2..534dbb1 100644
--- a/services/core/jni/com_android_server_vibrator_VibratorController.cpp
+++ b/services/core/jni/com_android_server_vibrator_VibratorController.cpp
@@ -21,6 +21,7 @@
 #include <android/binder_parcel_jni.h>
 #include <android/hardware/vibrator/1.3/IVibrator.h>
 #include <android/persistable_bundle_aidl.h>
+#include <android_os_vibrator.h>
 #include <nativehelper/JNIHelp.h>
 #include <utils/Log.h>
 #include <utils/misc.h>
@@ -143,21 +144,23 @@
         return mHal->doWithRetry(fn, functionName);
     }
 
-    std::function<void()> createCallback(jlong vibrationId) {
+    std::function<void()> createCallback(jlong vibrationId, jlong stepId) {
         auto callbackId = ++mCallbackId;
-        return [vibrationId, callbackId, this]() {
+        return [vibrationId, stepId, callbackId, this]() {
             auto currentCallbackId = mCallbackId.load();
-            if (currentCallbackId != callbackId) {
-                // This callback is from an older HAL call that is no longer relevant to the service
+            if (!android_os_vibrator_fix_vibration_thread_callback_handling() &&
+                currentCallbackId != callbackId) {
+                // This callback is from an older HAL call that is no longer relevant
                 return;
             }
             auto jniEnv = GetOrAttachJNIEnvironment(sJvm);
-            jniEnv->CallVoidMethod(mCallbackListener, sMethodIdOnComplete, mVibratorId,
-                                   vibrationId);
+            jniEnv->CallVoidMethod(mCallbackListener, sMethodIdOnComplete, mVibratorId, vibrationId,
+                                   stepId);
         };
     }
 
     void disableOldCallbacks() {
+        // TODO remove this once android_os_vibrator_fix_vibration_thread_callback_handling removed
         mCallbackId++;
     }
 
@@ -165,6 +168,7 @@
     const std::shared_ptr<vibrator::HalController> mHal;
     const int32_t mVibratorId;
     const jobject mCallbackListener;
+    // TODO remove this once android_os_vibrator_fix_vibration_thread_callback_handling removed
     std::atomic<int64_t> mCallbackId;
 };
 
@@ -273,13 +277,13 @@
 }
 
 static jlong vibratorOn(JNIEnv* env, jclass /* clazz */, jlong ptr, jlong timeoutMs,
-                        jlong vibrationId) {
+                        jlong vibrationId, jlong stepId) {
     VibratorControllerWrapper* wrapper = reinterpret_cast<VibratorControllerWrapper*>(ptr);
     if (wrapper == nullptr) {
         ALOGE("vibratorOn failed because native wrapper was not initialized");
         return -1;
     }
-    auto callback = wrapper->createCallback(vibrationId);
+    auto callback = wrapper->createCallback(vibrationId, stepId);
     auto onFn = [timeoutMs, &callback](vibrator::HalWrapper* hal) {
         return hal->on(std::chrono::milliseconds(timeoutMs), callback);
     };
@@ -324,7 +328,7 @@
 }
 
 static jlong vibratorPerformEffect(JNIEnv* env, jclass /* clazz */, jlong ptr, jlong effect,
-                                   jlong strength, jlong vibrationId) {
+                                   jlong strength, jlong vibrationId, jlong stepId) {
     VibratorControllerWrapper* wrapper = reinterpret_cast<VibratorControllerWrapper*>(ptr);
     if (wrapper == nullptr) {
         ALOGE("vibratorPerformEffect failed because native wrapper was not initialized");
@@ -332,7 +336,7 @@
     }
     Aidl::Effect effectType = static_cast<Aidl::Effect>(effect);
     Aidl::EffectStrength effectStrength = static_cast<Aidl::EffectStrength>(strength);
-    auto callback = wrapper->createCallback(vibrationId);
+    auto callback = wrapper->createCallback(vibrationId, stepId);
     auto performEffectFn = [effectType, effectStrength, &callback](vibrator::HalWrapper* hal) {
         return hal->performEffect(effectType, effectStrength, callback);
     };
@@ -342,7 +346,7 @@
 
 static jlong vibratorPerformVendorEffect(JNIEnv* env, jclass /* clazz */, jlong ptr,
                                          jobject vendorData, jlong strength, jfloat scale,
-                                         jfloat adaptiveScale, jlong vibrationId) {
+                                         jfloat adaptiveScale, jlong vibrationId, jlong stepId) {
     VibratorControllerWrapper* wrapper = reinterpret_cast<VibratorControllerWrapper*>(ptr);
     if (wrapper == nullptr) {
         ALOGE("vibratorPerformVendorEffect failed because native wrapper was not initialized");
@@ -350,7 +354,7 @@
     }
     Aidl::VendorEffect effect =
             vendorEffectFromJavaParcel(env, vendorData, strength, scale, adaptiveScale);
-    auto callback = wrapper->createCallback(vibrationId);
+    auto callback = wrapper->createCallback(vibrationId, stepId);
     auto performVendorEffectFn = [&effect, &callback](vibrator::HalWrapper* hal) {
         return hal->performVendorEffect(effect, callback);
     };
@@ -359,7 +363,8 @@
 }
 
 static jlong vibratorPerformComposedEffect(JNIEnv* env, jclass /* clazz */, jlong ptr,
-                                           jobjectArray composition, jlong vibrationId) {
+                                           jobjectArray composition, jlong vibrationId,
+                                           jlong stepId) {
     VibratorControllerWrapper* wrapper = reinterpret_cast<VibratorControllerWrapper*>(ptr);
     if (wrapper == nullptr) {
         ALOGE("vibratorPerformComposedEffect failed because native wrapper was not initialized");
@@ -371,7 +376,7 @@
         jobject element = env->GetObjectArrayElement(composition, i);
         effects.push_back(effectFromJavaPrimitive(env, element));
     }
-    auto callback = wrapper->createCallback(vibrationId);
+    auto callback = wrapper->createCallback(vibrationId, stepId);
     auto performComposedEffectFn = [&effects, &callback](vibrator::HalWrapper* hal) {
         return hal->performComposedEffect(effects, callback);
     };
@@ -381,7 +386,8 @@
 }
 
 static jlong vibratorPerformPwleEffect(JNIEnv* env, jclass /* clazz */, jlong ptr,
-                                       jobjectArray waveform, jint brakingId, jlong vibrationId) {
+                                       jobjectArray waveform, jint brakingId, jlong vibrationId,
+                                       jlong stepId) {
     VibratorControllerWrapper* wrapper = reinterpret_cast<VibratorControllerWrapper*>(ptr);
     if (wrapper == nullptr) {
         ALOGE("vibratorPerformPwleEffect failed because native wrapper was not initialized");
@@ -406,7 +412,7 @@
         }
     }
 
-    auto callback = wrapper->createCallback(vibrationId);
+    auto callback = wrapper->createCallback(vibrationId, stepId);
     auto performPwleEffectFn = [&primitives, &callback](vibrator::HalWrapper* hal) {
         return hal->performPwleEffect(primitives, callback);
     };
@@ -415,7 +421,7 @@
 }
 
 static jlong vibratorPerformPwleV2Effect(JNIEnv* env, jclass /* clazz */, jlong ptr,
-                                         jobjectArray waveform, jlong vibrationId) {
+                                         jobjectArray waveform, jlong vibrationId, jlong stepId) {
     VibratorControllerWrapper* wrapper = reinterpret_cast<VibratorControllerWrapper*>(ptr);
     if (wrapper == nullptr) {
         ALOGE("vibratorPerformPwleV2Effect failed because native wrapper was not initialized");
@@ -431,7 +437,7 @@
     }
     composite.pwlePrimitives = primitives;
 
-    auto callback = wrapper->createCallback(vibrationId);
+    auto callback = wrapper->createCallback(vibrationId, stepId);
     auto composePwleV2Fn = [&composite, &callback](vibrator::HalWrapper* hal) {
         return hal->composePwleV2(composite, callback);
     };
@@ -610,16 +616,16 @@
          (void*)vibratorNativeInit},
         {"getNativeFinalizer", "()J", (void*)vibratorGetNativeFinalizer},
         {"isAvailable", "(J)Z", (void*)vibratorIsAvailable},
-        {"on", "(JJJ)J", (void*)vibratorOn},
+        {"on", "(JJJJ)J", (void*)vibratorOn},
         {"off", "(J)V", (void*)vibratorOff},
         {"setAmplitude", "(JF)V", (void*)vibratorSetAmplitude},
-        {"performEffect", "(JJJJ)J", (void*)vibratorPerformEffect},
-        {"performVendorEffect", "(JLandroid/os/Parcel;JFFJ)J", (void*)vibratorPerformVendorEffect},
-        {"performComposedEffect", "(J[Landroid/os/vibrator/PrimitiveSegment;J)J",
+        {"performEffect", "(JJJJJ)J", (void*)vibratorPerformEffect},
+        {"performVendorEffect", "(JLandroid/os/Parcel;JFFJJ)J", (void*)vibratorPerformVendorEffect},
+        {"performComposedEffect", "(J[Landroid/os/vibrator/PrimitiveSegment;JJ)J",
          (void*)vibratorPerformComposedEffect},
-        {"performPwleEffect", "(J[Landroid/os/vibrator/RampSegment;IJ)J",
+        {"performPwleEffect", "(J[Landroid/os/vibrator/RampSegment;IJJ)J",
          (void*)vibratorPerformPwleEffect},
-        {"performPwleV2Effect", "(J[Landroid/os/vibrator/PwlePoint;J)J",
+        {"performPwleV2Effect", "(J[Landroid/os/vibrator/PwlePoint;JJ)J",
          (void*)vibratorPerformPwleV2Effect},
         {"setExternalControl", "(JZ)V", (void*)vibratorSetExternalControl},
         {"alwaysOnEnable", "(JJJJ)V", (void*)vibratorAlwaysOnEnable},
@@ -632,7 +638,7 @@
     auto listenerClassName =
             "com/android/server/vibrator/VibratorController$OnVibrationCompleteListener";
     jclass listenerClass = FindClassOrDie(env, listenerClassName);
-    sMethodIdOnComplete = GetMethodIDOrDie(env, listenerClass, "onComplete", "(IJ)V");
+    sMethodIdOnComplete = GetMethodIDOrDie(env, listenerClass, "onComplete", "(IJJ)V");
 
     jclass primitiveClass = FindClassOrDie(env, "android/os/vibrator/PrimitiveSegment");
     sPrimitiveClassInfo.id = GetFieldIDOrDie(env, primitiveClass, "mPrimitiveId", "I");
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java
index 5b7e7f1..e3b9fdb 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java
@@ -1454,11 +1454,12 @@
             }
 
             for (int i = 0; i < mLocalPolicies.size(); i++) {
-                Set<PolicyKey> localPolicies = new HashSet<>(
-                        mLocalPolicies.get(mLocalPolicies.keyAt(i)).keySet());
+                // New users are potentially added to mLocalPolicies during the loop body
+                // (see b/374511959).
+                int userId = mLocalPolicies.keyAt(i);
+                Set<PolicyKey> localPolicies = new HashSet<>(mLocalPolicies.get(userId).keySet());
                 for (PolicyKey policy : localPolicies) {
-                    PolicyState<?> policyState = mLocalPolicies.get(
-                            mLocalPolicies.keyAt(i)).get(policy);
+                    PolicyState<?> policyState = mLocalPolicies.get(userId).get(policy);
                     if (policyState.getPoliciesSetByAdmins().containsKey(admin)) {
                         removeLocalPolicy(
                                 policyState.getPolicyDefinition(), admin, mLocalPolicies.keyAt(i));
diff --git a/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/AndroidManifest.xml b/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/AndroidManifest.xml
index 4552326..79dd129 100644
--- a/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/AndroidManifest.xml
+++ b/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/AndroidManifest.xml
@@ -16,7 +16,7 @@
   -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          package="com.android.inputmethod.imetests">
+          package="com.android.inputmethodservice">
 
     <!-- Permissions required for granting and logging -->
     <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE"/>
@@ -33,7 +33,7 @@
     </application>
 
     <!-- The "targetPackage" reference the instruments APK package, which is the SimpleTestIme.apk,
-    while the test package is "com.android.inputmethod.imetests" (FrameworksImeTests.apk).-->
+    while the test package is "com.android.inputmethodservice" (FrameworksImeTests.apk).-->
     <instrumentation
         android:name="androidx.test.runner.AndroidJUnitRunner"
         android:targetPackage="com.android.apps.inputmethod.simpleime"
diff --git a/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/AndroidTest.xml b/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/AndroidTest.xml
index 8e6954b..5fe5b23 100644
--- a/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/AndroidTest.xml
+++ b/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/AndroidTest.xml
@@ -34,14 +34,15 @@
     <option name="test-tag" value="FrameworksImeTests" />
 
     <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
-        <option name="package" value="com.android.inputmethod.imetests" />
+        <option name="package" value="com.android.inputmethodservice" />
         <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
         <option name="hidden-api-checks" value="false"/>
     </test>
 
-    <!-- Collect the files in the dump directory for debugging -->
+    <!-- Collect output of DumpOnFailure -->
     <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
-        <option name="directory-keys" value="/sdcard/FrameworksImeTests/" />
+        <option name="directory-keys" value="/data/user/0/com.android.apps.inputmethod.simpleime/files" />
         <option name="collect-on-run-ended-only" value="true" />
+        <option name="clean-up" value="true" />
     </metrics_collector>
 </configuration>
diff --git a/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/InputMethodServiceTest.java b/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/InputMethodServiceTest.java
index ae5e851..2cd860a 100644
--- a/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/InputMethodServiceTest.java
+++ b/services/tests/InputMethodSystemServerTests/src/com/android/inputmethodservice/InputMethodServiceTest.java
@@ -40,10 +40,15 @@
 import android.graphics.Insets;
 import android.os.Build;
 import android.os.RemoteException;
+import android.platform.test.annotations.RequiresFlagsEnabled;
 import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.provider.Settings;
+import android.server.wm.DumpOnFailure;
 import android.server.wm.WindowManagerStateHelper;
 import android.util.Log;
+import android.view.View;
+import android.view.WindowInsets;
+import android.view.WindowInsetsAnimation;
 import android.view.WindowManagerGlobal;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.Flags;
@@ -72,6 +77,7 @@
 import org.junit.rules.TestName;
 import org.junit.runner.RunWith;
 
+import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
@@ -118,6 +124,9 @@
     @Rule
     public final TestName mName = new TestName();
 
+    @Rule
+    public final DumpOnFailure mDumpOnFailure = new DumpOnFailure();
+
     private Instrumentation mInstrumentation;
     private UiDevice mUiDevice;
     private InputMethodManager mImm;
@@ -139,10 +148,9 @@
         if (!mOriginalVerboseImeTrackerLoggingEnabled) {
             setVerboseImeTrackerLogging(true);
         }
+        mUiDevice.setOrientationNatural();
         prepareIme();
         prepareActivity();
-        mUiDevice.freezeRotation();
-        mUiDevice.setOrientationNatural();
         // Waits for input binding ready.
         eventually(() -> {
             mInputMethodService = InputMethodServiceWrapper.getInstance();
@@ -169,6 +177,9 @@
 
     @After
     public void tearDown() throws Exception {
+        if (!mUiDevice.isNaturalOrientation()) {
+            mUiDevice.setOrientationNatural();
+        }
         mUiDevice.unfreezeRotation();
         if (!mOriginalVerboseImeTrackerLoggingEnabled) {
             setVerboseImeTrackerLogging(false);
@@ -245,6 +256,61 @@
     }
 
     /**
+     * This checks that the surface is removed after the window was hidden in
+     * InputMethodService#hideSoftInput
+     */
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)
+    public void testSurfaceRemovedAfterHideSoftInput() {
+        setShowImeWithHardKeyboard(true /* enabled */);
+
+        // Triggers to show IME via public API.
+        verifyInputViewStatusOnMainSync(() -> mActivity.showImeWithWindowInsetsController(),
+                EVENT_SHOW, true /* eventExpected */, true /* shown */, "IME is shown");
+        assertWithMessage("IME is shown").that(mInputMethodService.isInputViewShown()).isTrue();
+
+        final var window = mInputMethodService.getWindow().getWindow();
+        assertWithMessage("IME window exists").that(window).isNotNull();
+        eventually(() -> assertWithMessage("IME window showing").that(
+                window.getDecorView().getVisibility()).isEqualTo(View.VISIBLE));
+
+        mActivity.getWindow().getDecorView().setWindowInsetsAnimationCallback(
+                new WindowInsetsAnimation.Callback(
+                        WindowInsetsAnimation.Callback.DISPATCH_MODE_CONTINUE_ON_SUBTREE) {
+                    @NonNull
+                    @Override
+                    public WindowInsetsAnimation.Bounds onStart(
+                            @NonNull WindowInsetsAnimation animation,
+                            @NonNull WindowInsetsAnimation.Bounds bounds) {
+                        return super.onStart(animation, bounds);
+                    }
+
+                    @NonNull
+                    @Override
+                    public WindowInsets onProgress(@NonNull WindowInsets insets,
+                            @NonNull List<WindowInsetsAnimation> runningAnimations) {
+                        assertWithMessage("IME surface not removed during the animation").that(
+                                window.getDecorView().getVisibility()).isEqualTo(View.VISIBLE);
+                        return insets;
+                    }
+
+                    @Override
+                    public void onEnd(@NonNull WindowInsetsAnimation animation) {
+                        assertWithMessage(
+                                "IME surface not removed before the end of the animation").that(
+                                window.getDecorView().getVisibility()).isEqualTo(View.VISIBLE);
+                        super.onEnd(animation);
+                    }
+                });
+
+        // Triggers to hide IME via public API.
+        verifyInputViewStatusOnMainSync(() -> mActivity.hideImeWithWindowInsetsController(),
+                EVENT_HIDE, true /* eventExpected */, false /* shown */, "IME is not shown");
+        eventually(() -> assertWithMessage("IME window not showing").that(
+                window.getDecorView().getVisibility()).isEqualTo(View.GONE));
+    }
+
+    /**
      * This checks the result of calling IMS#requestShowSelf and IMS#requestHideSelf.
      */
     @Test
@@ -1222,7 +1288,12 @@
 
     @NonNull
     private UiObject2 getUiObject(@NonNull BySelector bySelector) {
+        final var preScreenshot = mInstrumentation.getUiAutomation().takeScreenshot();
+        mDumpOnFailure.dumpOnFailure("pre-getUiObject", preScreenshot);
         final var uiObject = mUiDevice.wait(Until.findObject(bySelector), TIMEOUT_MS);
+        mInstrumentation.waitForIdleSync();
+        final var postScreenshot = mInstrumentation.getUiAutomation().takeScreenshot();
+        mDumpOnFailure.dumpOnFailure("post-getUiObject", postScreenshot);
         assertWithMessage("UiObject with " + bySelector + " was found").that(uiObject).isNotNull();
         return uiObject;
     }
diff --git a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/ClientControllerTest.java b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/ClientControllerTest.java
index 9e3d9ec..d98a0d1 100644
--- a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/ClientControllerTest.java
+++ b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/ClientControllerTest.java
@@ -28,6 +28,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.annotation.NonNull;
 import android.content.pm.PackageManagerInternal;
 import android.os.Handler;
 import android.os.IBinder;
@@ -55,8 +56,7 @@
     private static final String SOME_PACKAGE_NAME = "some.package";
 
     @Rule
-    public final RavenwoodRule mRavenwood = new RavenwoodRule.Builder()
-            .setProvideMainThread(true).build();
+    public final RavenwoodRule mRavenwood = new RavenwoodRule();
 
     @Mock
     private PackageManagerInternal mMockPackageManagerInternal;
@@ -65,7 +65,7 @@
     private IInputMethodClient mClient;
 
     @Mock
-    private IRemoteInputConnection mConnection;
+    private IRemoteInputConnection mFallbackConnection;
 
     private Handler mHandler;
 
@@ -81,23 +81,25 @@
     }
 
     // TODO(b/322895594): No need to directly invoke create$ravenwood once b/322895594 is fixed.
-    private IInputMethodClientInvoker createInvoker(IInputMethodClient client, Handler handler) {
+    @NonNull
+    private IInputMethodClientInvoker createInvoker(@NonNull IInputMethodClient client,
+            @NonNull Handler handler) {
         return RavenwoodRule.isOnRavenwood()
-                ? IInputMethodClientInvoker.create$ravenwood(client, handler) :
-                IInputMethodClientInvoker.create(client, handler);
+                ? IInputMethodClientInvoker.create$ravenwood(client, handler)
+                : IInputMethodClientInvoker.create(client, handler);
     }
 
     @Test
     public void testAddClient_cannotAddTheSameClientTwice() {
         final var invoker = createInvoker(mClient, mHandler);
         synchronized (ImfLock.class) {
-            mController.addClient(invoker, mConnection, ANY_DISPLAY_ID, ANY_CALLER_UID,
+            mController.addClient(invoker, mFallbackConnection, ANY_DISPLAY_ID, ANY_CALLER_UID,
                     ANY_CALLER_PID);
 
             SecurityException thrown = assertThrows(SecurityException.class,
                     () -> {
                         synchronized (ImfLock.class) {
-                            mController.addClient(invoker, mConnection, ANY_DISPLAY_ID,
+                            mController.addClient(invoker, mFallbackConnection, ANY_DISPLAY_ID,
                                     ANY_CALLER_UID, ANY_CALLER_PID);
                         }
                     });
@@ -111,9 +113,8 @@
     public void testAddClient() throws Exception {
         final var invoker = createInvoker(mClient, mHandler);
         synchronized (ImfLock.class) {
-            final var added = mController.addClient(invoker, mConnection, ANY_DISPLAY_ID,
-                    ANY_CALLER_UID,
-                    ANY_CALLER_PID);
+            final var added = mController.addClient(invoker, mFallbackConnection, ANY_DISPLAY_ID,
+                    ANY_CALLER_UID, ANY_CALLER_PID);
 
             verify(invoker.asBinder()).linkToDeath(any(IBinder.DeathRecipient.class), eq(0));
             assertThat(mController.getClient(invoker.asBinder())).isSameInstanceAs(added);
@@ -127,8 +128,8 @@
         ClientState added;
         synchronized (ImfLock.class) {
             mController.addClientControllerCallback(callback);
-            added = mController.addClient(invoker, mConnection, ANY_DISPLAY_ID, ANY_CALLER_UID,
-                    ANY_CALLER_PID);
+            added = mController.addClient(invoker, mFallbackConnection, ANY_DISPLAY_ID,
+                    ANY_CALLER_UID, ANY_CALLER_PID);
             assertThat(mController.getClient(invoker.asBinder())).isSameInstanceAs(added);
             assertThat(mController.removeClient(mClient)).isTrue();
         }
@@ -141,14 +142,14 @@
     @Test
     public void testVerifyClientAndPackageMatch() {
         final var invoker = createInvoker(mClient, mHandler);
-        when(mMockPackageManagerInternal.isSameApp(eq(SOME_PACKAGE_NAME),  /* flags= */
-                anyLong(), eq(ANY_CALLER_UID), /* userId= */ anyInt())).thenReturn(true);
+        when(mMockPackageManagerInternal.isSameApp(eq(SOME_PACKAGE_NAME), anyLong() /* flags */,
+                eq(ANY_CALLER_UID), anyInt() /* userId */)).thenReturn(true);
 
         synchronized (ImfLock.class) {
-            mController.addClient(invoker, mConnection, ANY_DISPLAY_ID, ANY_CALLER_UID,
+            mController.addClient(invoker, mFallbackConnection, ANY_DISPLAY_ID, ANY_CALLER_UID,
                     ANY_CALLER_PID);
-            assertThat(
-                    mController.verifyClientAndPackageMatch(mClient, SOME_PACKAGE_NAME)).isTrue();
+            assertThat(mController.verifyClientAndPackageMatch(mClient, SOME_PACKAGE_NAME))
+                    .isTrue();
         }
     }
 
@@ -171,7 +172,7 @@
         private ClientState mRemoved;
 
         @Override
-        public void onClientRemoved(ClientState removed) {
+        public void onClientRemoved(@NonNull ClientState removed) {
             mRemoved = removed;
             mLatch.countDown();
         }
diff --git a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/DefaultImeVisibilityApplierTest.java b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/DefaultImeVisibilityApplierTest.java
index 3aeab09..05615f6 100644
--- a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/DefaultImeVisibilityApplierTest.java
+++ b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/DefaultImeVisibilityApplierTest.java
@@ -196,7 +196,7 @@
     @RequiresFlagsDisabled(Flags.FLAG_REFACTOR_INSETS_CONTROLLER)
     public void testApplyImeVisibility_hideImeFromTargetOnSecondaryDisplay() {
         // Init a IME target client on the secondary display to show IME.
-        mInputMethodManagerService.addClient(mMockInputMethodClient, mMockRemoteInputConnection,
+        mInputMethodManagerService.addClient(mMockInputMethodClient, mMockFallbackInputConnection,
                 10 /* selfReportedDisplayId */);
         synchronized (ImfLock.class) {
             setAttachedClientLocked(null);
@@ -283,7 +283,7 @@
                 softInputMode /* softInputMode */,
                 0 /* windowFlags */,
                 mEditorInfo /* editorInfo */,
-                mMockRemoteInputConnection /* inputConnection */,
+                mMockFallbackInputConnection /* fallbackInputConnection */,
                 mMockRemoteAccessibilityInputConnection /* remoteAccessibilityInputConnection */,
                 mTargetSdkVersion /* unverifiedTargetSdkVersion */,
                 mUserId /* userId */,
diff --git a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java
index 6af4064..9ce86ca 100644
--- a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java
+++ b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java
@@ -116,7 +116,7 @@
     @Mock protected IInputMethodClient mMockInputMethodClient;
     @Mock protected IInputMethodSession mMockInputMethodSession;
     @Mock protected IBinder mWindowToken;
-    @Mock protected IRemoteInputConnection mMockRemoteInputConnection;
+    @Mock protected IRemoteInputConnection mMockFallbackInputConnection;
     @Mock protected IRemoteAccessibilityInputConnection mMockRemoteAccessibilityInputConnection;
     @Mock protected ImeOnBackInvokedDispatcher mMockImeOnBackInvokedDispatcher;
     @Mock protected IInputMethodManager.Stub mMockIInputMethodManager;
@@ -300,7 +300,8 @@
         lifecycle.onBootPhase(SystemService.PHASE_ACTIVITY_MANAGER_READY);
 
         // Call InputMethodManagerService#addClient() as a preparation to start interacting with it.
-        mInputMethodManagerService.addClient(mMockInputMethodClient, mMockRemoteInputConnection, 0);
+        mInputMethodManagerService.addClient(mMockInputMethodClient, mMockFallbackInputConnection,
+                0 /* selfReportedDisplayId */);
         createSessionForClient(mMockInputMethodClient);
     }
 
diff --git a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceWindowGainedFocusTest.java b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceWindowGainedFocusTest.java
index c958bd3..11abc94 100644
--- a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceWindowGainedFocusTest.java
+++ b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceWindowGainedFocusTest.java
@@ -316,7 +316,7 @@
                 softInputMode /* softInputMode */,
                 0 /* windowFlags */,
                 mEditorInfo /* editorInfo */,
-                mMockRemoteInputConnection /* inputConnection */,
+                mMockFallbackInputConnection /* fallbackInputConnection */,
                 mMockRemoteAccessibilityInputConnection /* remoteAccessibilityInputConnection */,
                 mTargetSdkVersion /* unverifiedTargetSdkVersion */,
                 mUserId /* userId */,
diff --git a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java
index e0e4425..c151732 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java
@@ -984,8 +984,7 @@
 
         Handler handler = displayManager.getDisplayHandler();
         waitForIdleHandler(handler);
-        assertThat(callback.receivedEvents()).containsExactly(EVENT_DISPLAY_BASIC_CHANGED,
-                EVENT_DISPLAY_REFRESH_RATE_CHANGED);
+        assertThat(callback.receivedEvents()).containsExactly(EVENT_DISPLAY_BASIC_CHANGED);
     }
 
     /**
diff --git a/services/tests/mockingservicestests/res/xml/expectedUserWakeupList_1.xml b/services/tests/mockingservicestests/res/xml/expectedUserWakeupList_1.xml
new file mode 100644
index 0000000..21e6dab
--- /dev/null
+++ b/services/tests/mockingservicestests/res/xml/expectedUserWakeupList_1.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2025 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.
+  -->
+<users version="1">
+    <user user_id="10" />
+    <user user_id="11" />
+</users>
\ No newline at end of file
diff --git a/services/tests/mockingservicestests/res/xml/expectedUserWakeupList_2.xml b/services/tests/mockingservicestests/res/xml/expectedUserWakeupList_2.xml
new file mode 100644
index 0000000..d0b371f
--- /dev/null
+++ b/services/tests/mockingservicestests/res/xml/expectedUserWakeupList_2.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2025 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.
+  -->
+<users version="1">
+    <user user_id="10" />
+</users>
\ No newline at end of file
diff --git a/services/tests/mockingservicestests/src/com/android/server/alarm/AlarmManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/alarm/AlarmManagerServiceTest.java
index cb52f18..2a513ae 100644
--- a/services/tests/mockingservicestests/src/com/android/server/alarm/AlarmManagerServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/alarm/AlarmManagerServiceTest.java
@@ -974,6 +974,41 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_ACQUIRE_WAKELOCK_BEFORE_SEND)
+    public void testWakelockReleasedWhenSendFails() throws Exception {
+        final long triggerTime = mNowElapsedTest + 5000;
+        final PendingIntent alarmPi = getNewMockPendingIntent();
+        setTestAlarm(ELAPSED_REALTIME_WAKEUP, triggerTime, alarmPi);
+
+        doThrow(new PendingIntent.CanceledException("test")).when(alarmPi).send(eq(mMockContext),
+                eq(0), any(Intent.class), any(), any(Handler.class), isNull(), any());
+
+        mNowElapsedTest = mTestTimer.getElapsed();
+        mTestTimer.expire();
+
+        final InOrder inOrder = Mockito.inOrder(mWakeLock);
+        inOrder.verify(mWakeLock).acquire();
+        inOrder.verify(mWakeLock).release();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ACQUIRE_WAKELOCK_BEFORE_SEND)
+    public void testWakelockReleasedOnListenerException() throws Exception {
+        final long triggerTime = mNowElapsedTest + 5000;
+        final IAlarmListener listener = getNewListener(() -> {
+            throw new RuntimeException("test");
+        });
+        setTestAlarmWithListener(ELAPSED_REALTIME_WAKEUP, triggerTime, listener);
+
+        mNowElapsedTest = mTestTimer.getElapsed();
+        mTestTimer.expire();
+
+        final InOrder inOrder = Mockito.inOrder(mWakeLock);
+        inOrder.verify(mWakeLock).acquire();
+        inOrder.verify(mWakeLock).release();
+    }
+
+    @Test
     public void testMinFuturityCoreUid() {
         setDeviceConfigLong(KEY_MIN_FUTURITY, 10L);
         assertEquals(10, mService.mConstants.MIN_FUTURITY);
diff --git a/services/tests/mockingservicestests/src/com/android/server/alarm/UserWakeupStoreTest.java b/services/tests/mockingservicestests/src/com/android/server/alarm/UserWakeupStoreTest.java
index 72883e2..240284a 100644
--- a/services/tests/mockingservicestests/src/com/android/server/alarm/UserWakeupStoreTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/alarm/UserWakeupStoreTest.java
@@ -23,15 +23,21 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
+import android.content.res.AssetManager;
+import android.content.res.XmlResourceParser;
 import android.os.Environment;
 import android.os.FileUtils;
 import android.os.SystemClock;
+import android.util.Xml;
 
 import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.runner.AndroidJUnit4;
 
 import com.android.internal.os.BackgroundThread;
+import com.android.internal.util.XmlUtils;
+import com.android.modules.utils.TypedXmlPullParser;
 import com.android.modules.utils.testing.ExtendedMockitoRule;
 
 import org.junit.After;
@@ -40,8 +46,11 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
+import org.xmlpull.v1.XmlPullParserException;
 
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.concurrent.ExecutorService;
@@ -55,6 +64,7 @@
     private static final File TEST_SYSTEM_DIR = new File(InstrumentationRegistry
             .getInstrumentation().getContext().getDataDir(), "alarmsTestDir");
     private static final File ROOT_DIR = new File(TEST_SYSTEM_DIR, UserWakeupStore.ROOT_DIR_NAME);
+    private static final String USERS_FILE_NAME = "usersWithAlarmClocks.xml";
     private ExecutorService mMockExecutorService = null;
     UserWakeupStore mUserWakeupStore;
 
@@ -105,7 +115,7 @@
         Collections.sort(userWakeups);
         assertEquals(userIds, userWakeups);
 
-        final File file = new File(ROOT_DIR , "usersWithAlarmClocks.xml");
+        final File file = new File(ROOT_DIR, USERS_FILE_NAME);
         assertTrue(file.exists());
     }
 
@@ -178,5 +188,47 @@
         assertTrue(mUserWakeupStore.getWakeupTimeForUser(USER_ID_2) - realtime
                 < 3 * BUFFER_TIME_MS + USER_START_TIME_DEVIATION_LIMIT_MS);
     }
-    //TODO: b/330264023 - Add tests for I/O in usersWithAlarmClocks.xml.
+
+    @Test
+    public void testWriteWakeups_xmlIsOrdered() {
+        mUserWakeupStore.addUserWakeup(USER_ID_1, TEST_TIMESTAMP - 19_000);
+        mUserWakeupStore.addUserWakeup(USER_ID_2, TEST_TIMESTAMP - 7_000);
+        assertFileContentsMatchExpectedXml("res/xml/expectedUserWakeupList_1.xml");
+    }
+
+    @Test
+    public void testWriteWakeups_containsOneEntryPerUser() {
+        mUserWakeupStore.addUserWakeup(USER_ID_1, TEST_TIMESTAMP - 19_000);
+        mUserWakeupStore.addUserWakeup(USER_ID_1, TEST_TIMESTAMP - 7_000);
+        assertFileContentsMatchExpectedXml("res/xml/expectedUserWakeupList_2.xml");
+    }
+
+    private static void assertFileContentsMatchExpectedXml(String expectedContentsFile) {
+        final File actual = new File(ROOT_DIR, USERS_FILE_NAME);
+        AssetManager assetManager =
+                InstrumentationRegistry.getInstrumentation().getContext().getAssets();
+        try (FileInputStream actualFis = new FileInputStream(actual)) {
+            final TypedXmlPullParser actualParser = Xml.resolvePullParser(actualFis);
+            final XmlResourceParser expectedParser = assetManager.openXmlResourceParser(
+                    expectedContentsFile);
+            for (XmlUtils.nextElement(expectedParser), XmlUtils.nextElement(actualParser);
+                    actualParser.getEventType() != XmlResourceParser.END_DOCUMENT
+                            && expectedParser.getEventType() != XmlResourceParser.END_DOCUMENT;
+                    XmlUtils.nextElement(actualParser), XmlUtils.nextElement(expectedParser)) {
+                assertEquals("Event types differ ", expectedParser.getEventType(),
+                        actualParser.getEventType());
+                for (int i = 0; i < expectedParser.getAttributeCount(); i++) {
+                    assertEquals("Attribute names differ at index " + i,
+                            expectedParser.getAttributeName(i), actualParser.getAttributeName(i));
+                    assertEquals("Attribute values differ at index " + i,
+                            expectedParser.getAttributeValue(i), actualParser.getAttributeValue(i));
+                }
+            }
+            // Ensure they are both at the end of document
+            assertEquals("One of the parsers has not reached the EOF",
+                    expectedParser.getEventType(), actualParser.getEventType());
+        } catch (IOException | XmlPullParserException e) {
+            fail(e.getLocalizedMessage());
+        }
+    }
 }
diff --git a/services/tests/mockingservicestests/src/com/android/server/am/BaseBroadcastQueueTest.java b/services/tests/mockingservicestests/src/com/android/server/am/BaseBroadcastQueueTest.java
index 5eb23a2..1286648 100644
--- a/services/tests/mockingservicestests/src/com/android/server/am/BaseBroadcastQueueTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/am/BaseBroadcastQueueTest.java
@@ -16,29 +16,43 @@
 
 package com.android.server.am;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 
 import android.annotation.NonNull;
+import android.app.Activity;
+import android.app.ActivityManager;
+import android.app.AppGlobals;
+import android.app.AppOpsManager;
+import android.app.BackgroundStartPrivileges;
+import android.app.BroadcastOptions;
+import android.app.SystemServiceRegistry;
 import android.app.usage.UsageStatsManagerInternal;
 import android.content.ComponentName;
 import android.content.Context;
+import android.content.IIntentReceiver;
+import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.IPackageManager;
 import android.content.pm.PackageManagerInternal;
 import android.content.pm.ResolveInfo;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.TestLooperManager;
 import android.os.UserHandle;
+import android.permission.IPermissionManager;
+import android.permission.PermissionManager;
 import android.platform.test.flag.junit.CheckFlagsRule;
 import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.platform.test.flag.junit.SetFlagsRule;
@@ -47,7 +61,6 @@
 
 import androidx.test.platform.app.InstrumentationRegistry;
 
-import com.android.dx.mockito.inline.extended.ExtendedMockito;
 import com.android.internal.util.FrameworkStatsLog;
 import com.android.modules.utils.testing.ExtendedMockitoRule;
 import com.android.server.AlarmManagerInternal;
@@ -55,6 +68,7 @@
 import com.android.server.LocalServices;
 import com.android.server.appop.AppOpsService;
 import com.android.server.compat.PlatformCompat;
+import com.android.server.firewall.IntentFirewall;
 import com.android.server.wm.ActivityTaskManagerService;
 
 import org.junit.Rule;
@@ -63,8 +77,11 @@
 import org.mockito.MockitoAnnotations;
 
 import java.io.File;
+import java.util.Collections;
+import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.BiFunction;
 
 public abstract class BaseBroadcastQueueTest {
 
@@ -97,6 +114,8 @@
     public final ExtendedMockitoRule mExtendedMockitoRule = new ExtendedMockitoRule.Builder(this)
             .spyStatic(FrameworkStatsLog.class)
             .spyStatic(ProcessList.class)
+            .spyStatic(SystemServiceRegistry.class)
+            .mockStatic(AppGlobals.class)
             .build();
 
 
@@ -119,6 +138,16 @@
     ProcessList mProcessList;
     @Mock
     PlatformCompat mPlatformCompat;
+    @Mock
+    IntentFirewall mIntentFirewall;
+    @Mock
+    IPackageManager mIPackageManager;
+    @Mock
+    AppOpsManager mAppOpsManager;
+    @Mock
+    IPermissionManager mIPermissionManager;
+    @Mock
+    PermissionManager mPermissionManager;
 
     @Mock
     AppStartInfoTracker mAppStartInfoTracker;
@@ -167,22 +196,22 @@
             return getUidForPackage(invocation.getArgument(0));
         }).when(mPackageManagerInt).getPackageUid(any(), anyLong(), eq(UserHandle.USER_SYSTEM));
 
+        final Context spyContext = spy(mContext);
+        doReturn(mPermissionManager).when(spyContext).getSystemService(PermissionManager.class);
         final ActivityManagerService realAms = new ActivityManagerService(
-                new TestInjector(mContext), mServiceThreadRule.getThread());
+                new TestInjector(spyContext), mServiceThreadRule.getThread());
         realAms.mActivityTaskManager = new ActivityTaskManagerService(mContext);
         realAms.mActivityTaskManager.initialize(null, null, mContext.getMainLooper());
         realAms.mAtmInternal = spy(realAms.mActivityTaskManager.getAtmInternal());
         realAms.mOomAdjuster.mCachedAppOptimizer = mock(CachedAppOptimizer.class);
         realAms.mOomAdjuster = spy(realAms.mOomAdjuster);
-        ExtendedMockito.doNothing().when(() -> ProcessList.setOomAdj(anyInt(), anyInt(), anyInt()));
+        doNothing().when(() -> ProcessList.setOomAdj(anyInt(), anyInt(), anyInt()));
         realAms.mPackageManagerInt = mPackageManagerInt;
         realAms.mUsageStatsService = mUsageStatsManagerInt;
         realAms.mProcessesReady = true;
         mAms = spy(realAms);
 
-        mSkipPolicy = spy(new BroadcastSkipPolicy(mAms));
-        doReturn(null).when(mSkipPolicy).shouldSkipMessage(any(), any());
-        doReturn(false).when(mSkipPolicy).disallowBackgroundStart(any());
+        mSkipPolicy = createBroadcastSkipPolicy();
 
         doReturn(mAppStartInfoTracker).when(mProcessList).getAppStartInfoTracker();
 
@@ -198,6 +227,14 @@
         }
     }
 
+    public BroadcastSkipPolicy createBroadcastSkipPolicy() {
+        final BroadcastSkipPolicy skipPolicy = spy(new BroadcastSkipPolicy(mAms));
+        doReturn(null).when(skipPolicy).shouldSkipAtEnqueueMessage(any(), any());
+        doReturn(null).when(skipPolicy).shouldSkipMessage(any(), any());
+        doReturn(false).when(skipPolicy).disallowBackgroundStart(any());
+        return skipPolicy;
+    }
+
     static int getUidForPackage(@NonNull String packageName) {
         switch (packageName) {
             case PACKAGE_ANDROID: return android.os.Process.SYSTEM_UID;
@@ -240,6 +277,11 @@
         public BroadcastQueue getBroadcastQueue(ActivityManagerService service) {
             return null;
         }
+
+        @Override
+        public IntentFirewall getIntentFirewall() {
+            return mIntentFirewall;
+        }
     }
 
     abstract String getTag();
@@ -281,24 +323,35 @@
         ri.activityInfo.packageName = packageName;
         ri.activityInfo.processName = processName;
         ri.activityInfo.name = name;
+        ri.activityInfo.exported = true;
         ri.activityInfo.applicationInfo = makeApplicationInfo(packageName, processName, userId);
         return ri;
     }
 
+    // TODO: Reuse BroadcastQueueTest.makeActiveProcessRecord()
+    @SuppressWarnings("GuardedBy")
+    ProcessRecord makeProcessRecord(ApplicationInfo info) {
+        final ProcessRecord r = spy(new ProcessRecord(mAms, info, info.processName, info.uid));
+        r.setPid(mNextPid.incrementAndGet());
+        ProcessRecord.updateProcessRecordNodes(r);
+        return r;
+    }
+
     BroadcastFilter makeRegisteredReceiver(ProcessRecord app) {
         return makeRegisteredReceiver(app, 0);
     }
 
     BroadcastFilter makeRegisteredReceiver(ProcessRecord app, int priority) {
         final ReceiverList receiverList = mRegisteredReceivers.get(app.getPid());
-        return makeRegisteredReceiver(receiverList, priority);
+        return makeRegisteredReceiver(receiverList, priority, null);
     }
 
-    static BroadcastFilter makeRegisteredReceiver(ReceiverList receiverList, int priority) {
+    static BroadcastFilter makeRegisteredReceiver(ReceiverList receiverList, int priority,
+            String requiredPermission) {
         final IntentFilter filter = new IntentFilter();
         filter.setPriority(priority);
         final BroadcastFilter res = new BroadcastFilter(filter, receiverList,
-                receiverList.app.info.packageName, null, null, null, receiverList.uid,
+                receiverList.app.info.packageName, null, null, requiredPermission, receiverList.uid,
                 receiverList.userId, false, false, true, receiverList.app.info,
                 mock(PlatformCompat.class));
         receiverList.add(res);
@@ -313,4 +366,62 @@
     ArgumentMatcher<ApplicationInfo> appInfoEquals(int uid) {
         return test -> (test.uid == uid);
     }
+
+    static final class BroadcastRecordBuilder {
+        private BroadcastQueue mQueue = mock(BroadcastQueue.class);
+        private Intent mIntent = mock(Intent.class);
+        private ProcessRecord mProcessRecord = mock(ProcessRecord.class);
+        private String mCallerPackage;
+        private String mCallerFeatureId;
+        private int mCallingPid;
+        private int mCallingUid;
+        private boolean mCallerInstantApp;
+        private String mResolvedType;
+        private String[] mRequiredPermissions;
+        private String[] mExcludedPermissions;
+        private String[] mExcludedPackages;
+        private int mAppOp;
+        private BroadcastOptions mOptions = BroadcastOptions.makeBasic();
+        private List mReceivers = Collections.emptyList();
+        private ProcessRecord mResultToApp;
+        private IIntentReceiver mResultTo;
+        private int mResultCode = Activity.RESULT_OK;
+        private String mResultData;
+        private Bundle mResultExtras;
+        private boolean mSerialized;
+        private boolean mSticky;
+        private boolean mInitialSticky;
+        private int mUserId = UserHandle.USER_SYSTEM;
+        private BackgroundStartPrivileges mBackgroundStartPrivileges =
+                BackgroundStartPrivileges.NONE;
+        private boolean mTimeoutExempt;
+        private BiFunction<Integer, Bundle, Bundle> mFilterExtrasForReceiver;
+        private int mCallerAppProcState = ActivityManager.PROCESS_STATE_UNKNOWN;
+        private PlatformCompat mPlatformCompat = mock(PlatformCompat.class);
+
+        public BroadcastRecordBuilder setIntent(Intent intent) {
+            mIntent = intent;
+            return this;
+        }
+
+        public BroadcastRecordBuilder setRequiredPermissions(String[] requiredPermissions) {
+            mRequiredPermissions = requiredPermissions;
+            return this;
+        }
+
+        public BroadcastRecordBuilder setAppOp(int appOp) {
+            mAppOp = appOp;
+            return this;
+        }
+
+        public BroadcastRecord build() {
+            return new BroadcastRecord(mQueue, mIntent, mProcessRecord, mCallerPackage,
+                    mCallerFeatureId, mCallingPid, mCallingUid, mCallerInstantApp, mResolvedType,
+                    mRequiredPermissions, mExcludedPermissions, mExcludedPackages, mAppOp,
+                    mOptions, mReceivers, mResultToApp, mResultTo, mResultCode, mResultData,
+                    mResultExtras, mSerialized, mSticky, mInitialSticky, mUserId,
+                    mBackgroundStartPrivileges, mTimeoutExempt, mFilterExtrasForReceiver,
+                    mCallerAppProcState, mPlatformCompat);
+        }
+    }
 }
diff --git a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueImplTest.java b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueImplTest.java
index 409706b..b32ce49 100644
--- a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueImplTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueImplTest.java
@@ -1803,6 +1803,46 @@
         assertEquals(ProcessList.SCHED_GROUP_DEFAULT, queue.getPreferredSchedulingGroupLocked());
     }
 
+    @SuppressWarnings("GuardedBy")
+    @DisableFlags(Flags.FLAG_AVOID_NOTE_OP_AT_ENQUEUE)
+    @Test
+    public void testSkipPolicy_atEnqueueTime_flagDisabled() throws Exception {
+        final Intent userPresent = new Intent(Intent.ACTION_USER_PRESENT);
+        final Object greenReceiver = makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN);
+        final Object redReceiver = makeManifestReceiver(PACKAGE_RED, CLASS_RED);
+
+        final BroadcastRecord userPresentRecord = makeBroadcastRecord(userPresent,
+                List.of(greenReceiver, redReceiver));
+
+        final Intent timeTick = new Intent(Intent.ACTION_TIME_TICK);
+        final BroadcastRecord timeTickRecord = makeBroadcastRecord(timeTick,
+                List.of(greenReceiver, redReceiver));
+
+        doAnswer(invocation -> {
+            final BroadcastRecord r = invocation.getArgument(0);
+            final Object o = invocation.getArgument(1);
+            if (userPresent.getAction().equals(r.intent.getAction())
+                    && isReceiverEquals(o, greenReceiver)) {
+                return "receiver skipped by test";
+            }
+            return null;
+        }).when(mSkipPolicy).shouldSkipMessage(any(BroadcastRecord.class), any());
+
+        mImpl.enqueueBroadcastLocked(userPresentRecord);
+        mImpl.enqueueBroadcastLocked(timeTickRecord);
+
+        final BroadcastProcessQueue greenQueue = mImpl.getProcessQueue(PACKAGE_GREEN,
+                getUidForPackage(PACKAGE_GREEN));
+        // There should be only one broadcast for green process as the other would have
+        // been skipped.
+        verifyPendingRecords(greenQueue, List.of(timeTick));
+        final BroadcastProcessQueue redQueue = mImpl.getProcessQueue(PACKAGE_RED,
+                getUidForPackage(PACKAGE_RED));
+        verifyPendingRecords(redQueue, List.of(userPresent, timeTick));
+    }
+
+    @SuppressWarnings("GuardedBy")
+    @EnableFlags(Flags.FLAG_AVOID_NOTE_OP_AT_ENQUEUE)
     @Test
     public void testSkipPolicy_atEnqueueTime() throws Exception {
         final Intent userPresent = new Intent(Intent.ACTION_USER_PRESENT);
@@ -1824,7 +1864,7 @@
                 return "receiver skipped by test";
             }
             return null;
-        }).when(mSkipPolicy).shouldSkipMessage(any(BroadcastRecord.class), any());
+        }).when(mSkipPolicy).shouldSkipAtEnqueueMessage(any(BroadcastRecord.class), any());
 
         mImpl.enqueueBroadcastLocked(userPresentRecord);
         mImpl.enqueueBroadcastLocked(timeTickRecord);
@@ -2270,19 +2310,11 @@
         assertFalse(mImpl.isProcessFreezable(greenProcess));
     }
 
-    // TODO: Reuse BroadcastQueueTest.makeActiveProcessRecord()
-    private ProcessRecord makeProcessRecord(ApplicationInfo info) {
-        final ProcessRecord r = spy(new ProcessRecord(mAms, info, info.processName, info.uid));
-        r.setPid(mNextPid.incrementAndGet());
-        ProcessRecord.updateProcessRecordNodes(r);
-        return r;
-    }
-
     BroadcastFilter makeRegisteredReceiver(ProcessRecord app, int priority) {
         final IIntentReceiver receiver = mock(IIntentReceiver.class);
         final ReceiverList receiverList = new ReceiverList(mAms, app, app.getPid(), app.info.uid,
                 UserHandle.getUserId(app.info.uid), receiver);
-        return makeRegisteredReceiver(receiverList, priority);
+        return makeRegisteredReceiver(receiverList, priority, null /* requiredPermission */);
     }
 
     private Intent createPackageChangedIntent(int uid, List<String> componentNameList) {
diff --git a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java
index ad35b25..3a9c99d 100644
--- a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java
@@ -2301,6 +2301,52 @@
     }
 
     /**
+     * Verify that we skip broadcasts at enqueue if {@link BroadcastSkipPolicy} decides it
+     * should be skipped.
+     */
+    @EnableFlags(Flags.FLAG_AVOID_NOTE_OP_AT_ENQUEUE)
+    @Test
+    public void testSkipPolicy_atEnqueueTime() throws Exception {
+        final ProcessRecord callerApp = makeActiveProcessRecord(PACKAGE_RED);
+        final ProcessRecord receiverGreenApp = makeActiveProcessRecord(PACKAGE_GREEN);
+        final ProcessRecord receiverBlueApp = makeActiveProcessRecord(PACKAGE_BLUE);
+
+        final Intent airplane = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
+        final Object greenReceiver = makeRegisteredReceiver(receiverGreenApp);
+        final Object blueReceiver = makeRegisteredReceiver(receiverBlueApp);
+        final Object yellowReceiver = makeManifestReceiver(PACKAGE_YELLOW, CLASS_YELLOW);
+        final Object orangeReceiver = makeManifestReceiver(PACKAGE_ORANGE, CLASS_ORANGE);
+
+        doAnswer(invocation -> {
+            final BroadcastRecord r = invocation.getArgument(0);
+            final Object o = invocation.getArgument(1);
+            if (airplane.getAction().equals(r.intent.getAction())
+                    && (isReceiverEquals(o, greenReceiver)
+                    || isReceiverEquals(o, orangeReceiver))) {
+                return "test skipped receiver";
+            }
+            return null;
+        }).when(mSkipPolicy).shouldSkipAtEnqueueMessage(any(BroadcastRecord.class), any());
+        enqueueBroadcast(makeBroadcastRecord(airplane, callerApp,
+                List.of(greenReceiver, blueReceiver, yellowReceiver, orangeReceiver)));
+
+        waitForIdle();
+        // Verify that only blue and yellow receiver apps received the broadcast.
+        verifyScheduleRegisteredReceiver(never(), receiverGreenApp, USER_SYSTEM);
+        verify(mSkipPolicy, never()).shouldSkipMessage(any(BroadcastRecord.class),
+                eq(greenReceiver));
+        verifyScheduleRegisteredReceiver(receiverBlueApp, airplane);
+        final ProcessRecord receiverYellowApp = mAms.getProcessRecordLocked(PACKAGE_YELLOW,
+                getUidForPackage(PACKAGE_YELLOW));
+        verifyScheduleReceiver(receiverYellowApp, airplane);
+        final ProcessRecord receiverOrangeApp = mAms.getProcessRecordLocked(PACKAGE_ORANGE,
+                getUidForPackage(PACKAGE_ORANGE));
+        assertNull(receiverOrangeApp);
+        verify(mSkipPolicy, never()).shouldSkipMessage(any(BroadcastRecord.class),
+                eq(orangeReceiver));
+    }
+
+    /**
      * Verify broadcasts to runtime receivers in cached processes are deferred
      * until that process leaves the cached state.
      */
diff --git a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastSkipPolicyTest.java b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastSkipPolicyTest.java
new file mode 100644
index 0000000..c8aad79e
--- /dev/null
+++ b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastSkipPolicyTest.java
@@ -0,0 +1,305 @@
+/*
+ * Copyright (C) 2025 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.am;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+
+import static org.junit.Assert.assertNull;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.nullable;
+import static org.mockito.Mockito.never;
+
+import android.Manifest;
+import android.app.ActivityManager;
+import android.app.AppGlobals;
+import android.app.AppOpsManager;
+import android.content.IIntentReceiver;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.os.UserHandle;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.Before;
+import org.junit.Test;
+
+@SmallTest
+public class BroadcastSkipPolicyTest extends BaseBroadcastQueueTest {
+    private static final String TAG = "BroadcastSkipPolicyTest";
+
+    BroadcastSkipPolicy mBroadcastSkipPolicy;
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+        mBroadcastSkipPolicy = new BroadcastSkipPolicy(mAms);
+
+        doReturn(true).when(mIntentFirewall).checkBroadcast(any(Intent.class),
+                anyInt(), anyInt(), nullable(String.class), anyInt());
+
+        doReturn(mIPackageManager).when(AppGlobals::getPackageManager);
+        doReturn(true).when(mIPackageManager).isPackageAvailable(anyString(), anyInt());
+
+        doReturn(ActivityManager.APP_START_MODE_NORMAL).when(mAms).getAppStartModeLOSP(anyInt(),
+                anyString(), anyInt(), anyInt(), eq(true), eq(false), eq(false));
+
+        doReturn(mAppOpsManager).when(mAms).getAppOpsManager();
+        doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager).checkOpNoThrow(anyString(),
+                anyInt(), anyString(), nullable(String.class));
+        doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager).noteOpNoThrow(anyString(),
+                anyInt(), anyString(), nullable(String.class), anyString());
+
+        doReturn(mIPermissionManager).when(AppGlobals::getPermissionManager);
+        doReturn(PackageManager.PERMISSION_GRANTED).when(mIPermissionManager).checkUidPermission(
+                anyInt(), anyString(), anyInt());
+    }
+
+    @Override
+    public String getTag() {
+        return TAG;
+    }
+
+    @Override
+    public BroadcastSkipPolicy createBroadcastSkipPolicy() {
+        return new BroadcastSkipPolicy(mAms);
+    }
+
+    @Test
+    public void testShouldSkipMessage_withManifestRcvr_withCompPerm_invokesNoteOp() {
+        final BroadcastRecord record = new BroadcastRecordBuilder()
+                .setIntent(new Intent(Intent.ACTION_TIME_TICK))
+                .build();
+        final String msg = mBroadcastSkipPolicy.shouldSkipMessage(record,
+                makeManifestReceiverWithPermission(PACKAGE_GREEN, CLASS_GREEN,
+                        Manifest.permission.PACKAGE_USAGE_STATS));
+        assertNull(msg);
+        verify(mAppOpsManager).noteOpNoThrow(
+                eq(AppOpsManager.permissionToOp(Manifest.permission.PACKAGE_USAGE_STATS)),
+                eq(record.callingUid), eq(record.callerPackage), eq(record.callerFeatureId),
+                anyString());
+        verify(mAppOpsManager, never()).checkOpNoThrow(
+                anyString(), anyInt(), anyString(), nullable(String.class));
+    }
+
+    @Test
+    public void testShouldSkipMessage_withRegRcvr_withCompPerm_invokesNoteOp() {
+        final BroadcastRecord record = new BroadcastRecordBuilder()
+                .setIntent(new Intent(Intent.ACTION_TIME_TICK))
+                .build();
+        final ProcessRecord receiverApp = makeProcessRecord(makeApplicationInfo(PACKAGE_GREEN));
+        final String msg = mBroadcastSkipPolicy.shouldSkipMessage(record,
+                makeRegisteredReceiver(receiverApp, 0 /* priority */,
+                        Manifest.permission.PACKAGE_USAGE_STATS));
+        assertNull(msg);
+        verify(mAppOpsManager).noteOpNoThrow(
+                eq(AppOpsManager.permissionToOp(Manifest.permission.PACKAGE_USAGE_STATS)),
+                eq(record.callingUid), eq(record.callerPackage), eq(record.callerFeatureId),
+                anyString());
+        verify(mAppOpsManager, never()).checkOpNoThrow(
+                anyString(), anyInt(), anyString(), nullable(String.class));
+    }
+
+    @Test
+    public void testShouldSkipAtEnqueueMessage_withManifestRcvr_withCompPerm_invokesCheckOp() {
+        final BroadcastRecord record = new BroadcastRecordBuilder()
+                .setIntent(new Intent(Intent.ACTION_TIME_TICK))
+                .build();
+        final String msg = mBroadcastSkipPolicy.shouldSkipAtEnqueueMessage(record,
+                makeManifestReceiverWithPermission(PACKAGE_GREEN, CLASS_GREEN,
+                        Manifest.permission.PACKAGE_USAGE_STATS));
+        assertNull(msg);
+        verify(mAppOpsManager).checkOpNoThrow(
+                eq(AppOpsManager.permissionToOp(Manifest.permission.PACKAGE_USAGE_STATS)),
+                eq(record.callingUid), eq(record.callerPackage), eq(record.callerFeatureId));
+        verify(mAppOpsManager, never()).noteOpNoThrow(
+                anyString(), anyInt(), anyString(), nullable(String.class), anyString());
+    }
+
+    @Test
+    public void testShouldSkipAtEnqueueMessage_withRegRcvr_withCompPerm_invokesCheckOp() {
+        final BroadcastRecord record = new BroadcastRecordBuilder()
+                .setIntent(new Intent(Intent.ACTION_TIME_TICK))
+                .build();
+        final ProcessRecord receiverApp = makeProcessRecord(makeApplicationInfo(PACKAGE_GREEN));
+        final String msg = mBroadcastSkipPolicy.shouldSkipAtEnqueueMessage(record,
+                makeRegisteredReceiver(receiverApp, 0 /* priority */,
+                        Manifest.permission.PACKAGE_USAGE_STATS));
+        assertNull(msg);
+        verify(mAppOpsManager).checkOpNoThrow(
+                eq(AppOpsManager.permissionToOp(Manifest.permission.PACKAGE_USAGE_STATS)),
+                eq(record.callingUid), eq(record.callerPackage), eq(record.callerFeatureId));
+        verify(mAppOpsManager, never()).noteOpNoThrow(
+                anyString(), anyInt(), anyString(), nullable(String.class), anyString());
+    }
+
+    @Test
+    public void testShouldSkipMessage_withManifestRcvr_withAppOp_invokesNoteOp() {
+        final BroadcastRecord record = new BroadcastRecordBuilder()
+                .setIntent(new Intent(Intent.ACTION_TIME_TICK))
+                .setAppOp(AppOpsManager.permissionToOpCode(Manifest.permission.PACKAGE_USAGE_STATS))
+                .build();
+        final ResolveInfo receiver = makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN);
+        final String msg = mBroadcastSkipPolicy.shouldSkipMessage(record, receiver);
+        assertNull(msg);
+        verify(mAppOpsManager).noteOpNoThrow(
+                eq(AppOpsManager.permissionToOp(Manifest.permission.PACKAGE_USAGE_STATS)),
+                eq(receiver.activityInfo.applicationInfo.uid),
+                eq(receiver.activityInfo.packageName), nullable(String.class), anyString());
+        verify(mAppOpsManager, never()).checkOpNoThrow(
+                anyString(), anyInt(), anyString(), nullable(String.class));
+    }
+
+    @Test
+    public void testShouldSkipMessage_withRegRcvr_withAppOp_invokesNoteOp() {
+        final BroadcastRecord record = new BroadcastRecordBuilder()
+                .setIntent(new Intent(Intent.ACTION_TIME_TICK))
+                .setAppOp(AppOpsManager.permissionToOpCode(Manifest.permission.PACKAGE_USAGE_STATS))
+                .build();
+        final ProcessRecord receiverApp = makeProcessRecord(makeApplicationInfo(PACKAGE_GREEN));
+        final BroadcastFilter filter = makeRegisteredReceiver(receiverApp, 0 /* priority */,
+                null /* requiredPermission */);
+        final String msg = mBroadcastSkipPolicy.shouldSkipMessage(record, filter);
+        assertNull(msg);
+        verify(mAppOpsManager).noteOpNoThrow(
+                eq(AppOpsManager.permissionToOp(Manifest.permission.PACKAGE_USAGE_STATS)),
+                eq(filter.receiverList.uid),
+                eq(filter.packageName), nullable(String.class), anyString());
+        verify(mAppOpsManager, never()).checkOpNoThrow(
+                anyString(), anyInt(), anyString(), nullable(String.class));
+    }
+
+    @Test
+    public void testShouldSkipAtEnqueueMessage_withManifestRcvr_withAppOp_invokesCheckOp() {
+        final BroadcastRecord record = new BroadcastRecordBuilder()
+                .setIntent(new Intent(Intent.ACTION_TIME_TICK))
+                .setAppOp(AppOpsManager.permissionToOpCode(Manifest.permission.PACKAGE_USAGE_STATS))
+                .build();
+        final ResolveInfo receiver = makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN);
+        final String msg = mBroadcastSkipPolicy.shouldSkipAtEnqueueMessage(record, receiver);
+        assertNull(msg);
+        verify(mAppOpsManager).checkOpNoThrow(
+                eq(AppOpsManager.permissionToOp(Manifest.permission.PACKAGE_USAGE_STATS)),
+                eq(receiver.activityInfo.applicationInfo.uid),
+                eq(receiver.activityInfo.applicationInfo.packageName), nullable(String.class));
+        verify(mAppOpsManager, never()).noteOpNoThrow(
+                anyString(), anyInt(), anyString(), nullable(String.class), anyString());
+    }
+
+    @Test
+    public void testShouldSkipAtEnqueueMessage_withRegRcvr_withAppOp_invokesCheckOp() {
+        final BroadcastRecord record = new BroadcastRecordBuilder()
+                .setIntent(new Intent(Intent.ACTION_TIME_TICK))
+                .setAppOp(AppOpsManager.permissionToOpCode(Manifest.permission.PACKAGE_USAGE_STATS))
+                .build();
+        final ProcessRecord receiverApp = makeProcessRecord(makeApplicationInfo(PACKAGE_GREEN));
+        final BroadcastFilter filter = makeRegisteredReceiver(receiverApp, 0 /* priority */,
+                null /* requiredPermission */);
+        final String msg = mBroadcastSkipPolicy.shouldSkipAtEnqueueMessage(record, filter);
+        assertNull(msg);
+        verify(mAppOpsManager).checkOpNoThrow(
+                eq(AppOpsManager.permissionToOp(Manifest.permission.PACKAGE_USAGE_STATS)),
+                eq(filter.receiverList.uid),
+                eq(filter.packageName), nullable(String.class));
+        verify(mAppOpsManager, never()).noteOpNoThrow(
+                anyString(), anyInt(), anyString(), nullable(String.class), anyString());
+    }
+
+    @Test
+    public void testShouldSkipMessage_withManifestRcvr_withRequiredPerms_invokesNoteOp() {
+        final BroadcastRecord record = new BroadcastRecordBuilder()
+                .setIntent(new Intent(Intent.ACTION_TIME_TICK))
+                .setRequiredPermissions(new String[] {Manifest.permission.PACKAGE_USAGE_STATS})
+                .build();
+        final String msg = mBroadcastSkipPolicy.shouldSkipMessage(record,
+                makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN));
+        assertNull(msg);
+        verify(mPermissionManager).checkPermissionForDataDelivery(
+                eq(Manifest.permission.PACKAGE_USAGE_STATS), any(), anyString());
+        verify(mPermissionManager, never()).checkPermissionForPreflight(
+                eq(Manifest.permission.PACKAGE_USAGE_STATS), any());
+    }
+
+    @Test
+    public void testShouldSkipMessage_withRegRcvr_withRequiredPerms_invokesNoteOp() {
+        final BroadcastRecord record = new BroadcastRecordBuilder()
+                .setIntent(new Intent(Intent.ACTION_TIME_TICK))
+                .setRequiredPermissions(new String[] {Manifest.permission.PACKAGE_USAGE_STATS})
+                .build();
+        final ProcessRecord receiverApp = makeProcessRecord(makeApplicationInfo(PACKAGE_GREEN));
+        final String msg = mBroadcastSkipPolicy.shouldSkipMessage(record,
+                makeRegisteredReceiver(receiverApp, 0 /* priority */,
+                        null /* requiredPermission */));
+        assertNull(msg);
+        verify(mPermissionManager).checkPermissionForDataDelivery(
+                eq(Manifest.permission.PACKAGE_USAGE_STATS), any(), anyString());
+        verify(mPermissionManager, never()).checkPermissionForPreflight(
+                eq(Manifest.permission.PACKAGE_USAGE_STATS), any());
+    }
+
+    @Test
+    public void testShouldSkipAtEnqueueMessage_withManifestRcvr_withRequiredPerms_invokesCheckOp() {
+        final BroadcastRecord record = new BroadcastRecordBuilder()
+                .setIntent(new Intent(Intent.ACTION_TIME_TICK))
+                .setRequiredPermissions(new String[] {Manifest.permission.PACKAGE_USAGE_STATS})
+                .build();
+        final String msg = mBroadcastSkipPolicy.shouldSkipAtEnqueueMessage(record,
+                makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN));
+        assertNull(msg);
+        verify(mPermissionManager, never()).checkPermissionForDataDelivery(
+                eq(Manifest.permission.PACKAGE_USAGE_STATS), any(), anyString());
+        verify(mPermissionManager).checkPermissionForPreflight(
+                eq(Manifest.permission.PACKAGE_USAGE_STATS), any());
+    }
+
+    @Test
+    public void testShouldSkipAtEnqueueMessage_withRegRcvr_withRequiredPerms_invokesCheckOp() {
+        final BroadcastRecord record = new BroadcastRecordBuilder()
+                .setIntent(new Intent(Intent.ACTION_TIME_TICK))
+                .setRequiredPermissions(new String[] {Manifest.permission.PACKAGE_USAGE_STATS})
+                .build();
+        final ProcessRecord receiverApp = makeProcessRecord(makeApplicationInfo(PACKAGE_GREEN));
+        final String msg = mBroadcastSkipPolicy.shouldSkipAtEnqueueMessage(record,
+                makeRegisteredReceiver(receiverApp, 0 /* priority */,
+                        null /* requiredPermission */));
+        assertNull(msg);
+        verify(mPermissionManager, never()).checkPermissionForDataDelivery(
+                eq(Manifest.permission.PACKAGE_USAGE_STATS), any(), anyString());
+        verify(mPermissionManager).checkPermissionForPreflight(
+                eq(Manifest.permission.PACKAGE_USAGE_STATS), any());
+    }
+
+    private ResolveInfo makeManifestReceiverWithPermission(String packageName, String name,
+            String permission) {
+        final ResolveInfo resolveInfo = makeManifestReceiver(packageName, name);
+        resolveInfo.activityInfo.permission = permission;
+        return resolveInfo;
+    }
+
+    private BroadcastFilter makeRegisteredReceiver(ProcessRecord app, int priority,
+            String requiredPermission) {
+        final IIntentReceiver receiver = mock(IIntentReceiver.class);
+        final ReceiverList receiverList = new ReceiverList(mAms, app, app.getPid(), app.info.uid,
+                UserHandle.getUserId(app.info.uid), receiver);
+        return makeRegisteredReceiver(receiverList, priority, requiredPermission);
+    }
+}
diff --git a/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java b/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java
index 4b53f13..46bc70e 100644
--- a/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java
@@ -383,6 +383,12 @@
         // When we override new reasonable throttle values after init...
         mCountDown = new CountDownLatch(8);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+                CachedAppOptimizer.KEY_COMPACT_THROTTLE_MIN_OOM_ADJ,
+                Long.toString(CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_MIN_OOM_ADJ + 1), false);
+        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+                CachedAppOptimizer.KEY_COMPACT_THROTTLE_MAX_OOM_ADJ,
+                Long.toString(CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_MAX_OOM_ADJ - 1), false);
+        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                 CachedAppOptimizer.KEY_COMPACT_THROTTLE_1,
                 Long.toString(CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_1 + 1), false);
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -400,12 +406,6 @@
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                 CachedAppOptimizer.KEY_COMPACT_THROTTLE_6,
                 Long.toString(CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_6 + 1), false);
-        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
-                CachedAppOptimizer.KEY_COMPACT_THROTTLE_MIN_OOM_ADJ,
-                Long.toString(CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_MIN_OOM_ADJ + 1), false);
-        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
-                CachedAppOptimizer.KEY_COMPACT_THROTTLE_MAX_OOM_ADJ,
-                Long.toString(CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_MAX_OOM_ADJ - 1), false);
         assertThat(mCountDown.await(7, TimeUnit.SECONDS)).isTrue();
 
         // Then those flags values are reflected in the compactor.
diff --git a/services/tests/mockingservicestests/src/com/android/server/crashrecovery/AndroidTest.xml b/services/tests/mockingservicestests/src/com/android/server/crashrecovery/AndroidTest.xml
index 7b06ebe..5043c47 100644
--- a/services/tests/mockingservicestests/src/com/android/server/crashrecovery/AndroidTest.xml
+++ b/services/tests/mockingservicestests/src/com/android/server/crashrecovery/AndroidTest.xml
@@ -31,4 +31,9 @@
         <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
         <option name="hidden-api-checks" value="false"/>
     </test>
+
+    <!-- Only run this Tests if the Crashrecovery Mainline module is installed. -->
+    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MainlineTestModuleController">
+        <option name="mainline-module-package-name" value="com.google.android.crashrecovery" />
+    </object>
 </configuration>
diff --git a/services/tests/mockingservicestests/src/com/android/server/job/controllers/QuotaControllerTest.java b/services/tests/mockingservicestests/src/com/android/server/job/controllers/QuotaControllerTest.java
index 4e4b3df..3e87943 100644
--- a/services/tests/mockingservicestests/src/com/android/server/job/controllers/QuotaControllerTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/job/controllers/QuotaControllerTest.java
@@ -2388,6 +2388,104 @@
         }
     }
 
+    @Test
+    @EnableFlags({Flags.FLAG_ADJUST_QUOTA_DEFAULT_CONSTANTS,
+            Flags.FLAG_ADDITIONAL_QUOTA_FOR_SYSTEM_INSTALLER})
+    public void testGetTimeUntilQuotaConsumedLocked_Installer() {
+        PackageInfo pi = new PackageInfo();
+        pi.packageName = SOURCE_PACKAGE;
+        pi.requestedPermissions = new String[]{Manifest.permission.INSTALL_PACKAGES};
+        pi.requestedPermissionsFlags = new int[]{PackageInfo.REQUESTED_PERMISSION_GRANTED};
+        pi.applicationInfo = new ApplicationInfo();
+        pi.applicationInfo.uid = mSourceUid;
+        doReturn(List.of(pi)).when(mPackageManager).getInstalledPackagesAsUser(anyInt(), anyInt());
+        doReturn(PackageManager.PERMISSION_GRANTED).when(mContext).checkPermission(
+                eq(Manifest.permission.INSTALL_PACKAGES), anyInt(), eq(mSourceUid));
+        mQuotaController.onSystemServicesReady();
+
+        final long now = JobSchedulerService.sElapsedRealtimeClock.millis();
+        // Close to RARE boundary.
+        mQuotaController.saveTimingSession(SOURCE_USER_ID, SOURCE_PACKAGE,
+                createTimingSession(
+                        now - (mQcConstants.WINDOW_SIZE_RARE_MS - 30 * SECOND_IN_MILLIS),
+                        90 * SECOND_IN_MILLIS, 5), false);
+        // Far away from FREQUENT boundary.
+        mQuotaController.saveTimingSession(SOURCE_USER_ID, SOURCE_PACKAGE,
+                createTimingSession(
+                        now - (mQcConstants.WINDOW_SIZE_FREQUENT_MS -  HOUR_IN_MILLIS),
+                        2 * MINUTE_IN_MILLIS, 5), false);
+        // Overlap WORKING_SET boundary.
+        mQuotaController.saveTimingSession(SOURCE_USER_ID, SOURCE_PACKAGE,
+                createTimingSession(
+                        now - (mQcConstants.WINDOW_SIZE_WORKING_MS + MINUTE_IN_MILLIS),
+                        2 * MINUTE_IN_MILLIS, 5), false);
+        // Close to ACTIVE boundary.
+        mQuotaController.saveTimingSession(SOURCE_USER_ID, SOURCE_PACKAGE,
+                createTimingSession(
+                        now - (mQcConstants.WINDOW_SIZE_ACTIVE_MS -  MINUTE_IN_MILLIS),
+                        2 * MINUTE_IN_MILLIS, 5), false);
+        // Close to EXEMPTED boundary.
+        mQuotaController.saveTimingSession(SOURCE_USER_ID, SOURCE_PACKAGE,
+                createTimingSession(
+                        now - (mQcConstants.WINDOW_SIZE_EXEMPTED_MS -  MINUTE_IN_MILLIS),
+                        2 * MINUTE_IN_MILLIS, 5), false);
+
+        // No additional quota for the system installer when the app is in RARE, FREQUENT,
+        // WORKING_SET or ACTIVE bucket.
+        setStandbyBucket(RARE_INDEX);
+        synchronized (mQuotaController.mLock) {
+            assertEquals(30 * SECOND_IN_MILLIS,
+                    mQuotaController.getRemainingExecutionTimeLocked(
+                            SOURCE_USER_ID, SOURCE_PACKAGE));
+            assertEquals(2 * MINUTE_IN_MILLIS,
+                    mQuotaController.getTimeUntilQuotaConsumedLocked(
+                            SOURCE_USER_ID, SOURCE_PACKAGE));
+        }
+
+        setStandbyBucket(FREQUENT_INDEX);
+        synchronized (mQuotaController.mLock) {
+            assertEquals(2 * MINUTE_IN_MILLIS,
+                    mQuotaController.getRemainingExecutionTimeLocked(
+                            SOURCE_USER_ID, SOURCE_PACKAGE));
+            assertEquals(2 * MINUTE_IN_MILLIS,
+                    mQuotaController.getTimeUntilQuotaConsumedLocked(
+                            SOURCE_USER_ID, SOURCE_PACKAGE));
+        }
+
+        setStandbyBucket(WORKING_INDEX);
+        synchronized (mQuotaController.mLock) {
+            assertEquals(5 * MINUTE_IN_MILLIS,
+                    mQuotaController.getRemainingExecutionTimeLocked(
+                            SOURCE_USER_ID, SOURCE_PACKAGE));
+            assertEquals(6 * MINUTE_IN_MILLIS,
+                    mQuotaController.getTimeUntilQuotaConsumedLocked(
+                            SOURCE_USER_ID, SOURCE_PACKAGE));
+        }
+
+        // ACTIVE window != allowed time.
+        setStandbyBucket(ACTIVE_INDEX);
+        synchronized (mQuotaController.mLock) {
+            assertEquals(6 * MINUTE_IN_MILLIS,
+                    mQuotaController.getRemainingExecutionTimeLocked(
+                            SOURCE_USER_ID, SOURCE_PACKAGE));
+            assertEquals(8 * MINUTE_IN_MILLIS,
+                    mQuotaController.getTimeUntilQuotaConsumedLocked(
+                            SOURCE_USER_ID, SOURCE_PACKAGE));
+        }
+
+        // Additional quota for the system installer when the app is in EXEMPTED bucket.
+        // EXEMPTED window == allowed time.
+        setStandbyBucket(EXEMPTED_INDEX);
+        synchronized (mQuotaController.mLock) {
+            assertEquals(18 * MINUTE_IN_MILLIS,
+                    mQuotaController.getRemainingExecutionTimeLocked(
+                            SOURCE_USER_ID, SOURCE_PACKAGE));
+            assertEquals(mQcConstants.MAX_EXECUTION_TIME_MS - 8 * MINUTE_IN_MILLIS,
+                    mQuotaController.getTimeUntilQuotaConsumedLocked(
+                            SOURCE_USER_ID, SOURCE_PACKAGE));
+        }
+    }
+
     /**
      * Test getTimeUntilQuotaConsumedLocked when the app is close to the max execution limit.
      */
@@ -4119,6 +4217,12 @@
         assertEquals(85 * SECOND_IN_MILLIS, mQuotaController.getEJRewardNotificationSeenMs());
         assertEquals(84 * SECOND_IN_MILLIS, mQuotaController.getEJGracePeriodTempAllowlistMs());
         assertEquals(83 * SECOND_IN_MILLIS, mQuotaController.getEJGracePeriodTopAppMs());
+
+        mSetFlagsRule.enableFlags(Flags.FLAG_ADDITIONAL_QUOTA_FOR_SYSTEM_INSTALLER);
+        setDeviceConfigLong(QcConstants.KEY_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS,
+                6 * MINUTE_IN_MILLIS);
+        assertEquals(6 * MINUTE_IN_MILLIS,
+                mQuotaController.getAllowedTimePeriodAdditionInstallerMs());
     }
 
     @Test
@@ -4222,6 +4326,13 @@
         assertEquals(0, mQuotaController.getEJGracePeriodTempAllowlistMs());
         assertEquals(0, mQuotaController.getEJGracePeriodTopAppMs());
 
+        mSetFlagsRule.enableFlags(Flags.FLAG_ADDITIONAL_QUOTA_FOR_SYSTEM_INSTALLER);
+        setDeviceConfigLong(QcConstants.KEY_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS,
+                -MINUTE_IN_MILLIS);
+        assertEquals(0,
+                mQuotaController.getAllowedTimePeriodAdditionInstallerMs());
+        mSetFlagsRule.disableFlags(Flags.FLAG_ADDITIONAL_QUOTA_FOR_SYSTEM_INSTALLER);
+
         // Invalid configurations.
         // In_QUOTA_BUFFER should never be greater than ALLOWED_TIME_PER_PERIOD
         setDeviceConfigLong(QcConstants.KEY_ALLOWED_TIME_PER_PERIOD_EXEMPTED_MS,
@@ -4237,9 +4348,18 @@
                 10 * MINUTE_IN_MILLIS);
         setDeviceConfigLong(QcConstants.KEY_IN_QUOTA_BUFFER_MS, 5 * MINUTE_IN_MILLIS);
 
-        assertTrue(mQuotaController.getInQuotaBufferMs()
+        assertTrue(mQuotaController.getAllowedTimePeriodAdditionInstallerMs()
                 <= mQuotaController.getAllowedTimePerPeriodMs()[FREQUENT_INDEX]);
 
+        mSetFlagsRule.enableFlags(Flags.FLAG_ADDITIONAL_QUOTA_FOR_SYSTEM_INSTALLER);
+        // ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER should never be greater than
+        // ALLOWED_TIME_PER_PERIOD.
+        setDeviceConfigLong(QcConstants.KEY_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS,
+                 15 * MINUTE_IN_MILLIS);
+        assertTrue(mQuotaController.getInQuotaBufferMs()
+                <= mQuotaController.getAllowedTimePerPeriodMs()[EXEMPTED_INDEX]);
+        mSetFlagsRule.disableFlags(Flags.FLAG_ADDITIONAL_QUOTA_FOR_SYSTEM_INSTALLER);
+
         // Test larger than a day. Controller should cap at one day.
         setDeviceConfigLong(QcConstants.KEY_ALLOWED_TIME_PER_PERIOD_EXEMPTED_MS,
                 25 * HOUR_IN_MILLIS);
@@ -4318,6 +4438,12 @@
         assertEquals(5 * MINUTE_IN_MILLIS, mQuotaController.getEJRewardNotificationSeenMs());
         assertEquals(HOUR_IN_MILLIS, mQuotaController.getEJGracePeriodTempAllowlistMs());
         assertEquals(HOUR_IN_MILLIS, mQuotaController.getEJGracePeriodTopAppMs());
+
+        mSetFlagsRule.enableFlags(Flags.FLAG_ADDITIONAL_QUOTA_FOR_SYSTEM_INSTALLER);
+        setDeviceConfigLong(QcConstants.KEY_ALLOWED_TIME_PER_PERIOD_ADDITION_INSTALLER_MS,
+                25 * HOUR_IN_MILLIS);
+        assertEquals(0, mQuotaController.getAllowedTimePeriodAdditionInstallerMs());
+        mSetFlagsRule.disableFlags(Flags.FLAG_ADDITIONAL_QUOTA_FOR_SYSTEM_INSTALLER);
     }
 
     /** Tests that TimingSessions aren't saved when the device is charging. */
diff --git a/services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt b/services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt
index b53dbc8..1b2ab27 100644
--- a/services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt
+++ b/services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt
@@ -16,6 +16,7 @@
 package com.android.server.pm
 
 import android.app.AppOpsManager
+import android.app.AppOpsManagerInternal
 import android.app.PropertyInvalidatedCache
 import android.content.Context
 import android.content.Intent
@@ -195,6 +196,7 @@
         val componentResolver: ComponentResolver = mock()
         val permissionManagerInternal: PermissionManagerServiceInternal = mock()
         val appOpsManager: AppOpsManager = mock()
+        val appOpsManagerInternal: AppOpsManagerInternal = mock()
         val incrementalManager: IncrementalManager = mock()
         val platformCompat: PlatformCompat = mock()
         val settings: Settings = mock()
@@ -286,6 +288,9 @@
         whenever(mocks.injector.permissionManagerServiceInternal) {
             mocks.permissionManagerInternal
         }
+        whenever(mocks.injector.appOpsManagerInternal) {
+            mocks.appOpsManagerInternal
+        }
         whenever(mocks.injector.incrementalManager).thenReturn(mocks.incrementalManager)
         whenever(mocks.injector.compatibility).thenReturn(mocks.platformCompat)
         whenever(mocks.injector.settings).thenReturn(mocks.settings)
diff --git a/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java
index 360d6eb..6ad3df1 100644
--- a/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java
@@ -206,7 +206,7 @@
         doNothing().when(mSpiedContext).sendBroadcastAsUser(any(), any(), any());
         mockIsLowRamDevice(false);
 
-        // Called when getting boot user. config_bootToHeadlessSystemUser is 0 by default.
+        // Called when getting boot user. config_hsumBootStrategy is 0 by default.
         mSpyResources = spy(mSpiedContext.getResources());
         when(mSpiedContext.getResources()).thenReturn(mSpyResources);
         doReturn(0)
diff --git a/services/tests/mockingservicestests/src/com/android/server/rollback/AndroidTest.xml b/services/tests/mockingservicestests/src/com/android/server/rollback/AndroidTest.xml
index 635183c..6f6b017 100644
--- a/services/tests/mockingservicestests/src/com/android/server/rollback/AndroidTest.xml
+++ b/services/tests/mockingservicestests/src/com/android/server/rollback/AndroidTest.xml
@@ -31,4 +31,9 @@
         <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
         <option name="hidden-api-checks" value="false"/>
     </test>
+
+    <!-- Only run this Tests if the Crashrecovery Mainline module is installed. -->
+    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MainlineTestModuleController">
+        <option name="mainline-module-package-name" value="com.google.android.crashrecovery" />
+    </object>
 </configuration>
diff --git a/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperCropperTest.java b/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperCropperTest.java
index b53f6fb..49c37f1 100644
--- a/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperCropperTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperCropperTest.java
@@ -16,6 +16,7 @@
 
 package com.android.server.wallpaper;
 
+import static android.app.WallpaperManager.FLAG_SYSTEM;
 import static android.app.WallpaperManager.ORIENTATION_LANDSCAPE;
 import static android.app.WallpaperManager.ORIENTATION_UNKNOWN;
 import static android.app.WallpaperManager.ORIENTATION_PORTRAIT;
@@ -23,13 +24,20 @@
 import static android.app.WallpaperManager.ORIENTATION_SQUARE_PORTRAIT;
 import static android.app.WallpaperManager.getOrientation;
 import static android.app.WallpaperManager.getRotatedOrientation;
+import static android.os.UserHandle.USER_SYSTEM;
+import static android.view.Display.DEFAULT_DISPLAY;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
 import static com.android.window.flags.Flags.FLAG_MULTI_CROP;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 import static org.mockito.MockitoAnnotations.initMocks;
 
@@ -37,15 +45,29 @@
 import android.graphics.Rect;
 import android.platform.test.annotations.Presubmit;
 import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.util.Log;
 import android.util.SparseArray;
+import android.view.Display;
+import android.view.DisplayInfo;
 
 import androidx.test.runner.AndroidJUnit4;
 
+import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.dx.mockito.inline.extended.StaticMockitoSession;
+
+import org.junit.AfterClass;
 import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.RuleChain;
+import org.junit.rules.TemporaryFolder;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
+import org.mockito.quality.Strictness;
 
+import java.io.File;
+import java.io.IOException;
 import java.util.Comparator;
 import java.util.List;
 
@@ -57,6 +79,7 @@
 @RunWith(AndroidJUnit4.class)
 @RequiresFlagsEnabled(FLAG_MULTI_CROP)
 public class WallpaperCropperTest {
+    private static final String TAG = "WallpaperCropperTest";
 
     @Mock
     private WallpaperDisplayHelper mWallpaperDisplayHelper;
@@ -94,6 +117,8 @@
     private static final List<List<Point>> ALL_FOLDABLE_DISPLAYS = List.of(
             FOLDABLE_ONE, FOLDABLE_TWO, FOLDABLE_THREE, FOLDABLE_FOUR);
 
+    private static StaticMockitoSession sMockitoSession;
+
     private SparseArray<Point> mDisplaySizes = new SparseArray<>();
     private int mFolded = ORIENTATION_UNKNOWN;
     private int mFoldedRotated = ORIENTATION_UNKNOWN;
@@ -103,12 +128,53 @@
     private static final List<Integer> ALL_MODES = List.of(
             WallpaperCropper.ADD, WallpaperCropper.REMOVE, WallpaperCropper.BALANCE);
 
+    private final SparseArray<File> mTempDirs = new SparseArray<>();
+
+    private final TemporaryFolder mFolder = new TemporaryFolder();
+
+    @Rule
+    public RuleChain rules = RuleChain.outerRule(mFolder);
+
+    @BeforeClass
+    public static void setUpClass() {
+        sMockitoSession = mockitoSession()
+                .strictness(Strictness.LENIENT)
+                .spyStatic(WallpaperUtils.class)
+                .startMocking();
+    }
+
+    @AfterClass
+    public static void tearDownClass() {
+        if (sMockitoSession != null) {
+            sMockitoSession.finishMocking();
+            sMockitoSession = null;
+        }
+    }
+
     @Before
     public void setUp() {
         initMocks(this);
+        ExtendedMockito.doAnswer(invocation -> {
+            int userId = (invocation.getArgument(0));
+            return getWallpaperTestDir(userId);
+        }).when(() -> WallpaperUtils.getWallpaperDir(anyInt()));
+
         mWallpaperCropper = new WallpaperCropper(mWallpaperDisplayHelper);
     }
 
+    private File getWallpaperTestDir(int userId) {
+        File tempDir = mTempDirs.get(userId);
+        if (tempDir == null) {
+            try {
+                tempDir = mFolder.newFolder(String.valueOf(userId));
+                mTempDirs.append(userId, tempDir);
+            } catch (IOException e) {
+                Log.e(TAG, "getWallpaperTestDir failed at userId= " + userId);
+            }
+        }
+        return tempDir;
+    }
+
     private void setUpWithDisplays(List<Point> displaySizes) {
         mDisplaySizes = new SparseArray<>();
         displaySizes.forEach(size -> {
@@ -632,6 +698,134 @@
         }
     }
 
+    // Test isWallpaperCompatibleForDisplay always return true for the default display.
+    @Test
+    public void isWallpaperCompatibleForDisplay_defaultDisplay_returnTrue()
+            throws Exception {
+        DisplayInfo displayInfo = new DisplayInfo();
+        displayInfo.logicalWidth = 2560;
+        displayInfo.logicalHeight = 1044;
+        doReturn(displayInfo).when(mWallpaperDisplayHelper).getDisplayInfo(eq(DEFAULT_DISPLAY));
+        WallpaperData wallpaperData = createWallpaperData(/* isStockWallpaper = */ false,
+                new Point(100, 100));
+
+        assertThat(
+                mWallpaperCropper.isWallpaperCompatibleForDisplay(DEFAULT_DISPLAY,
+                        wallpaperData)).isTrue();
+    }
+
+    // Test isWallpaperCompatibleForDisplay always return true for the stock wallpaper.
+    @Test
+    public void isWallpaperCompatibleForDisplay_stockWallpaper_returnTrue()
+            throws Exception {
+        final int displayId = 2;
+        DisplayInfo displayInfo = new DisplayInfo();
+        displayInfo.logicalWidth = 2560;
+        displayInfo.logicalHeight = 1044;
+        doReturn(displayInfo).when(mWallpaperDisplayHelper).getDisplayInfo(eq(displayId));
+        WallpaperData wallpaperData = createWallpaperData(/* isStockWallpaper = */ true,
+                new Point(100, 100));
+
+        assertThat(
+                mWallpaperCropper.isWallpaperCompatibleForDisplay(displayId,
+                        wallpaperData)).isTrue();
+    }
+
+    // Test isWallpaperCompatibleForDisplay wallpaper is suitable for the display and wallpaper
+    // aspect ratio meets the hard-coded aspect ratio.
+    @Test
+    public void isWallpaperCompatibleForDisplay_wallpaperSizeSuitableForDisplayAndMeetAspectRatio_returnTrue()
+            throws Exception {
+        final int displayId = 2;
+        DisplayInfo displayInfo = new DisplayInfo();
+        displayInfo.logicalWidth = 2560;
+        displayInfo.logicalHeight = 1044;
+        doReturn(displayInfo).when(mWallpaperDisplayHelper).getDisplayInfo(eq(displayId));
+        WallpaperData wallpaperData = createWallpaperData(/* isStockWallpaper = */ false,
+                new Point(4000, 3000));
+
+        assertThat(
+                mWallpaperCropper.isWallpaperCompatibleForDisplay(displayId,
+                        wallpaperData)).isTrue();
+    }
+
+    // Test isWallpaperCompatibleForDisplay wallpaper is not suitable for the display and wallpaper
+    // aspect ratio meets the hard-coded aspect ratio.
+    @Test
+    public void isWallpaperCompatibleForDisplay_wallpaperSizeNotSuitableForDisplayAndMeetAspectRatio_returnFalse()
+            throws Exception {
+        final int displayId = 2;
+        DisplayInfo displayInfo = new DisplayInfo();
+        displayInfo.logicalWidth = 2560;
+        displayInfo.logicalHeight = 1044;
+        doReturn(displayInfo).when(mWallpaperDisplayHelper).getDisplayInfo(eq(displayId));
+        WallpaperData wallpaperData = createWallpaperData(/* isStockWallpaper = */ false,
+                new Point(1000, 500));
+
+        assertThat(
+                mWallpaperCropper.isWallpaperCompatibleForDisplay(displayId,
+                        wallpaperData)).isFalse();
+    }
+
+    // Test isWallpaperCompatibleForDisplay wallpaper is suitable for the display and wallpaper
+    // aspect ratio doesn't meet the hard-coded aspect ratio.
+    @Test
+    public void isWallpaperCompatibleForDisplay_wallpaperSizeSuitableForDisplayAndDoNotMeetAspectRatio_returnFalse()
+            throws Exception {
+        final int displayId = 2;
+        DisplayInfo displayInfo = new DisplayInfo();
+        displayInfo.logicalWidth = 2560;
+        displayInfo.logicalHeight = 1044;
+        doReturn(displayInfo).when(mWallpaperDisplayHelper).getDisplayInfo(eq(displayId));
+        WallpaperData wallpaperData = createWallpaperData(/* isStockWallpaper = */ false,
+                new Point(2000, 4000));
+
+        assertThat(
+                mWallpaperCropper.isWallpaperCompatibleForDisplay(displayId,
+                        wallpaperData)).isFalse();
+    }
+
+    // Test isWallpaperCompatibleForDisplay, portrait display, wallpaper is suitable for the display
+    // and wallpaper aspect ratio doesn't meet the hard-coded aspect ratio.
+    @Test
+    public void isWallpaperCompatibleForDisplay_portraitDisplay_wallpaperSizeSuitableForDisplayAndMeetAspectRatio_returnTrue()
+            throws Exception {
+        final int displayId = 2;
+        DisplayInfo displayInfo = new DisplayInfo();
+        displayInfo.logicalWidth = 1044;
+        displayInfo.logicalHeight = 2560;
+        doReturn(displayInfo).when(mWallpaperDisplayHelper).getDisplayInfo(eq(displayId));
+        WallpaperData wallpaperData = createWallpaperData(/* isStockWallpaper = */ false,
+                new Point(2000, 4000));
+
+        assertThat(
+                mWallpaperCropper.isWallpaperCompatibleForDisplay(displayId,
+                        wallpaperData)).isTrue();
+    }
+
+    private void mockDisplay(int displayId, Point displayResolution) {
+        final Display mockDisplay = mock(Display.class);
+        when(mockDisplay.getDisplayInfo(any(DisplayInfo.class))).thenAnswer(invocation -> {
+            DisplayInfo displayInfo = invocation.getArgument(0);
+            displayInfo.displayId = displayId;
+            displayInfo.logicalWidth = displayResolution.x;
+            displayInfo.logicalHeight = displayResolution.y;
+            return true;
+        });
+    }
+
+    private WallpaperData createWallpaperData(boolean isStockWallpaper, Point wallpaperSize)
+            throws Exception {
+        WallpaperData wallpaperData = new WallpaperData(USER_SYSTEM, FLAG_SYSTEM);
+        File wallpaperFile = wallpaperData.getWallpaperFile();
+        if (!isStockWallpaper) {
+            wallpaperFile.getParentFile().mkdirs();
+            wallpaperFile.createNewFile();
+        }
+        wallpaperData.cropHint.set(0, 0, wallpaperSize.x, wallpaperSize.y);
+        return wallpaperData;
+    }
+
     private static Rect centerOf(Rect container, Point point) {
         checkSubset(container, point);
         int diffWidth = container.width() - point.x;
diff --git a/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java b/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java
index bc04fd9..6b8ef88 100644
--- a/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java
+++ b/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java
@@ -64,7 +64,6 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ParceledListSlice;
 import android.content.pm.ServiceInfo;
-import android.content.res.Resources;
 import android.graphics.Color;
 import android.hardware.display.DisplayManager;
 import android.hardware.display.DisplayManager.DisplayListener;
@@ -95,6 +94,7 @@
 import com.android.modules.utils.TypedXmlPullParser;
 import com.android.modules.utils.TypedXmlSerializer;
 import com.android.server.LocalServices;
+import com.android.server.wm.DesktopModeHelper;
 import com.android.server.wm.WindowManagerInternal;
 
 import org.hamcrest.CoreMatchers;
@@ -123,6 +123,7 @@
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Tests for the {@link WallpaperManagerService} class.
@@ -154,8 +155,6 @@
 
     private IPackageManager mIpm = AppGlobals.getPackageManager();
 
-    private Resources mResources = sContext.getResources();
-
     @Mock
     private DisplayManager mDisplayManager;
 
@@ -177,6 +176,7 @@
                 .spyStatic(WallpaperUtils.class)
                 .spyStatic(LocalServices.class)
                 .spyStatic(WallpaperManager.class)
+                .spyStatic(DesktopModeHelper.class)
                 .startMocking();
 
         sWindowManagerInternal = mock(WindowManagerInternal.class);
@@ -245,6 +245,8 @@
             int userId = (invocation.getArgument(0));
             return getWallpaperTestDir(userId);
         }).when(() -> WallpaperUtils.getWallpaperDir(anyInt()));
+        ExtendedMockito.doAnswer(invocation -> true).when(
+                () -> DesktopModeHelper.isDeviceEligibleForDesktopMode(any()));
 
         sContext.addMockSystemService(DisplayManager.class, mDisplayManager);
 
@@ -256,8 +258,6 @@
         doReturn(displays).when(mDisplayManager).getDisplays();
 
         spyOn(mIpm);
-        spyOn(mResources);
-        doReturn(true).when(mResources).getBoolean(eq(R.bool.config_isDesktopModeSupported));
         mService = new TestWallpaperManagerService(sContext);
         spyOn(mService);
         mService.systemReady();
@@ -742,7 +742,9 @@
         wallpaper.connection.mService = mockIWallpaperService;
         // GIVEN there are two displays: DEFAULT_DISPLAY, 2
         final int testDisplayId = 2;
-        setUpDisplays(List.of(DEFAULT_DISPLAY, testDisplayId));
+        setUpDisplays(Map.of(
+                DEFAULT_DISPLAY, true,
+                testDisplayId, true));
 
         // WHEN display ID, 2, is ready.
         WallpaperManagerInternal wallpaperManagerInternal = LocalServices.getService(
@@ -782,7 +784,9 @@
         lockWallpaper.connection.mService = mockIWallpaperService;
         // GIVEN there are two displays: DEFAULT_DISPLAY, 2
         final int testDisplayId = 2;
-        setUpDisplays(List.of(DEFAULT_DISPLAY, testDisplayId));
+        setUpDisplays(Map.of(
+                DEFAULT_DISPLAY, true,
+                testDisplayId, true));
 
         // WHEN display ID, 2, is ready.
         WallpaperManagerInternal wallpaperManagerInternal = LocalServices.getService(
@@ -823,13 +827,15 @@
             throws Exception {
         final int testUserId = USER_SYSTEM;
         mService.switchUser(testUserId, null);
+        mService.mLastWallpaper.connection.mWallpaper.cropHint.set(0, 0, 4000, 2250);
         IWallpaperService mockIWallpaperService = mock(IWallpaperService.class);
         mService.mFallbackWallpaper.connection.mService = mockIWallpaperService;
         // GIVEN there are two displays: DEFAULT_DISPLAY, 2
         final int testDisplayId = 2;
-        setUpDisplays(List.of(DEFAULT_DISPLAY, testDisplayId));
-        // GIVEN the wallpaper isn't compatible with display ID, 2
-        mService.removeWallpaperCompatibleDisplayForTest(testDisplayId);
+        setUpDisplays(Map.of(
+                DEFAULT_DISPLAY, true,
+                // Given the wallpaper is smaller thn the display resolution.
+                testDisplayId, false));
 
         // WHEN display ID, 2, is ready.
         WallpaperManagerInternal wallpaperManagerInternal = LocalServices.getService(
@@ -868,7 +874,10 @@
         wallpaper.connection.mService = mockIWallpaperService;
         // GIVEN there are two displays: DEFAULT_DISPLAY, 2
         final int testDisplayId = 2;
-        setUpDisplays(List.of(DEFAULT_DISPLAY, testDisplayId));
+        mService.mLastWallpaper.connection.mWallpaper.cropHint.set(0, 0, 4000, 2250);
+        setUpDisplays(Map.of(
+                DEFAULT_DISPLAY, true,
+                testDisplayId, true));
         // GIVEN wallpaper connections have been established for display ID, 2.
         WallpaperManagerInternal wallpaperManagerInternal = LocalServices.getService(
                 WallpaperManagerInternal.class);
@@ -906,7 +915,9 @@
         lockWallpaper.connection.mService = mockIWallpaperService;
         // GIVEN there are two displays: DEFAULT_DISPLAY, 2
         final int testDisplayId = 2;
-        setUpDisplays(List.of(DEFAULT_DISPLAY, testDisplayId));
+        setUpDisplays(Map.of(
+                DEFAULT_DISPLAY, true,
+                testDisplayId, true));
         // GIVEN wallpaper connections have been established for display ID, 2.
         WallpaperManagerInternal wallpaperManagerInternal = LocalServices.getService(
                 WallpaperManagerInternal.class);
@@ -940,9 +951,9 @@
         mService.mFallbackWallpaper.connection.mService = mockIWallpaperService;
         // GIVEN there are two displays: DEFAULT_DISPLAY, 2
         final int testDisplayId = 2;
-        setUpDisplays(List.of(DEFAULT_DISPLAY, testDisplayId));
-        // GIVEN display ID, 2, is incompatible with the wallpaper.
-        mService.removeWallpaperCompatibleDisplayForTest(testDisplayId);
+        setUpDisplays(Map.of(
+                DEFAULT_DISPLAY, true,
+                testDisplayId, false));
         // GIVEN wallpaper connections have been established for display ID, 2.
         WallpaperManagerInternal wallpaperManagerInternal = LocalServices.getService(
                 WallpaperManagerInternal.class);
@@ -989,7 +1000,9 @@
         wallpaper.connection.mService = mockIWallpaperService;
         // GIVEN there are two displays: DEFAULT_DISPLAY, 2
         final int testDisplayId = 2;
-        setUpDisplays(List.of(DEFAULT_DISPLAY, testDisplayId));
+        setUpDisplays(Map.of(
+                DEFAULT_DISPLAY, true,
+                testDisplayId, true));
         // GIVEN wallpaper connections have been established for displayID, 2.
         WallpaperManagerInternal wallpaperManagerInternal = LocalServices.getService(
                 WallpaperManagerInternal.class);
@@ -1023,7 +1036,9 @@
         lockWallpaper.connection.mService = mockIWallpaperService;
         // GIVEN there are two displays: DEFAULT_DISPLAY, 2
         final int testDisplayId = 2;
-        setUpDisplays(List.of(DEFAULT_DISPLAY, testDisplayId));
+        setUpDisplays(Map.of(
+                DEFAULT_DISPLAY, true,
+                testDisplayId, true));
         // GIVEN wallpaper connections have been established for displayID, 2.
         WallpaperManagerInternal wallpaperManagerInternal = LocalServices.getService(
                 WallpaperManagerInternal.class);
@@ -1051,12 +1066,14 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_CONNECTED_DISPLAYS_WALLPAPER)
     public void deviceBooted_multiDisplays_shouldHaveExpectedConnections() {
+        final int testUserId = USER_SYSTEM;
         final int incompatibleDisplayId = 2;
         final int compatibleDisplayId = 3;
-        setUpDisplays(List.of(DEFAULT_DISPLAY, incompatibleDisplayId, compatibleDisplayId));
-        mService.removeWallpaperCompatibleDisplayForTest(incompatibleDisplayId);
+        setUpDisplays(Map.of(
+                DEFAULT_DISPLAY, true,
+                compatibleDisplayId, true,
+                incompatibleDisplayId, false));
 
-        final int testUserId = USER_SYSTEM;
         // After reboot, a switch user triggers the wallpapers initialization.
         mService.switchUser(testUserId, null);
 
@@ -1087,15 +1104,18 @@
     public void setWallpaperComponent_multiDisplays_displayBecomeCompatible_shouldHaveExpectedConnections() {
         final int display2 = 2;
         final int display3 = 3;
-        setUpDisplays(List.of(DEFAULT_DISPLAY, display2, display3));
-        mService.removeWallpaperCompatibleDisplayForTest(display2);
         final int testUserId = USER_SYSTEM;
+        setUpDisplays(Map.of(
+                DEFAULT_DISPLAY, true,
+                display2, false,
+                display3, true));
+
         mService.switchUser(testUserId, null);
+        doReturn(true).when(mService.mWallpaperCropper).isWallpaperCompatibleForDisplay(
+                eq(display2), any());
         // Switch to a test wallpaper and then image wallpaper later to simulate a wallpaper change.
         mService.setWallpaperComponent(TEST_WALLPAPER_COMPONENT, sContext.getOpPackageName(),
                 FLAG_SYSTEM | FLAG_LOCK, testUserId);
-        mService.addWallpaperCompatibleDisplayForTest(display2);
-
         mService.setWallpaperComponent(sImageWallpaperComponentName, sContext.getOpPackageName(),
                 FLAG_SYSTEM | FLAG_LOCK, testUserId);
 
@@ -1124,15 +1144,19 @@
     public void setWallpaperComponent_multiDisplays_displayBecomeIncompatible_shouldHaveExpectedConnections() {
         final int display2 = 2;
         final int display3 = 3;
-        setUpDisplays(List.of(DEFAULT_DISPLAY, display2, display3));
-        mService.removeWallpaperCompatibleDisplayForTest(display2);
         final int testUserId = USER_SYSTEM;
+        setUpDisplays(Map.of(
+                DEFAULT_DISPLAY, true,
+                display2, true,
+                display3, true));
         mService.switchUser(testUserId, null);
+        doReturn(false).when(mService.mWallpaperCropper).isWallpaperCompatibleForDisplay(
+                eq(display2), any());
+        doReturn(false).when(mService.mWallpaperCropper).isWallpaperCompatibleForDisplay(
+                eq(display3), any());
         // Switch to a test wallpaper and then image wallpaper later to simulate a wallpaper change.
         mService.setWallpaperComponent(TEST_WALLPAPER_COMPONENT, sContext.getOpPackageName(),
                 FLAG_SYSTEM | FLAG_LOCK, testUserId);
-        mService.removeWallpaperCompatibleDisplayForTest(display3);
-
         mService.setWallpaperComponent(sImageWallpaperComponentName, sContext.getOpPackageName(),
                 FLAG_SYSTEM | FLAG_LOCK, testUserId);
 
@@ -1159,14 +1183,15 @@
     public void setWallpaperComponent_systemAndLockWallpapers_multiDisplays_shouldHaveExpectedConnections() {
         final int incompatibleDisplayId = 2;
         final int compatibleDisplayId = 3;
-        setUpDisplays(List.of(DEFAULT_DISPLAY, incompatibleDisplayId, compatibleDisplayId));
+        setUpDisplays(Map.of(
+                DEFAULT_DISPLAY, true,
+                incompatibleDisplayId, false,
+                compatibleDisplayId, true));
         final int testUserId = USER_SYSTEM;
         mService.switchUser(testUserId, null);
         // Switch to a test wallpaper and then image wallpaper later to simulate a wallpaper change.
         mService.setWallpaperComponent(TEST_WALLPAPER_COMPONENT, sContext.getOpPackageName(),
                 FLAG_SYSTEM | FLAG_LOCK, testUserId);
-        mService.removeWallpaperCompatibleDisplayForTest(incompatibleDisplayId);
-
         mService.setWallpaperComponent(sImageWallpaperComponentName, sContext.getOpPackageName(),
                 FLAG_SYSTEM, testUserId);
 
@@ -1258,21 +1283,27 @@
      * to return them. It also sets up the {@link WindowManagerInternal} to indicate that all
      * displays support home.
      *
-     * @param displayIds A list of display IDs to create mock displays for.
+     * @param displayIdsToWallpaperCompatibility A map of display IDs to wallpaper compatibility.
      */
-    private void setUpDisplays(List<Integer> displayIds) {
+    private void setUpDisplays(Map<Integer, Boolean> displayIdsToWallpaperCompatibility) {
+        spyOn(mService.mWallpaperCropper);
         doReturn(true).when(sWindowManagerInternal).isHomeSupportedOnDisplay(anyInt());
 
-        Display[] mockDisplays = new Display[displayIds.size()];
-        for (int i = 0; i < displayIds.size(); i++) {
-            final int displayId = displayIds.get(i);
+        Display[] mockDisplays = new Display[displayIdsToWallpaperCompatibility.size()];
+        int counter = 0;
+        for (Map.Entry<Integer, Boolean> entry : displayIdsToWallpaperCompatibility.entrySet()) {
+            final int displayId = entry.getKey();
+            final boolean compatibleWithWallpaper = entry.getValue();
             final Display mockDisplay = mock(Display.class);
-            mockDisplays[i] = mockDisplay;
+            mockDisplays[counter] = mockDisplay;
             doReturn(DISPLAY_SIZE_DIMENSION).when(mockDisplay).getMaximumSizeDimension();
             doReturn(mockDisplay).when(mDisplayManager).getDisplay(eq(displayId));
             doReturn(displayId).when(mockDisplay).getDisplayId();
             doReturn(true).when(mockDisplay).hasAccess(anyInt());
-            mService.addWallpaperCompatibleDisplayForTest(displayId);
+            doReturn(compatibleWithWallpaper).when(
+                    mService.mWallpaperCropper).isWallpaperCompatibleForDisplay(eq(displayId),
+                    any());
+            counter++;
         }
 
         doReturn(mockDisplays).when(mDisplayManager).getDisplays();
@@ -1295,6 +1326,4 @@
             assertEquals(pfdContents, fileContents);
         }
     }
-
-
 }
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AggregatedPowerStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AggregatedPowerStatsTest.java
index 0e73329..978fd1a 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AggregatedPowerStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AggregatedPowerStatsTest.java
@@ -18,6 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.annotation.SuppressLint;
 import android.os.BatteryConsumer;
 import android.os.PersistableBundle;
 import android.util.SparseArray;
@@ -280,6 +281,7 @@
                 .isEqualTo(new long[]{250, 300});
     }
 
+    @SuppressLint("CheckResult")
     private static long[] getDeviceStats(
             AggregatedPowerStats stats, int powerComponentId,
             int... states) {
@@ -290,6 +292,7 @@
         return out;
     }
 
+    @SuppressLint("CheckResult")
     private static long[] getStateStats(
             AggregatedPowerStats stats, int key, int... states) {
         PowerComponentAggregatedPowerStats powerComponentStats =
@@ -299,6 +302,7 @@
         return out;
     }
 
+    @SuppressLint("CheckResult")
     private static long[] getUidDeviceStats(
             AggregatedPowerStats stats, int powerComponentId,
             int uid, int... states) {
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessorTest.java
index 21e615f..58e9d1e 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessorTest.java
@@ -27,6 +27,7 @@
 
 import static org.mockito.Mockito.when;
 
+import android.annotation.SuppressLint;
 import android.hardware.power.stats.EnergyConsumerType;
 import android.os.BatteryConsumer;
 import android.os.Handler;
@@ -166,6 +167,7 @@
         return stats.getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY);
     }
 
+    @SuppressLint("CheckResult")
     private void assertPowerEstimate(
             PowerComponentAggregatedPowerStats aggregatedStats,
             int powerState, int screenState, double expectedPowerEstimate) {
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java
index cca6033..58784d7 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java
@@ -34,6 +34,7 @@
 
 import static org.mockito.Mockito.mock;
 
+import android.annotation.SuppressLint;
 import android.os.BatteryConsumer;
 import android.os.BatteryUsageStats;
 import android.os.Process;
@@ -68,6 +69,7 @@
                 .setProcessorSupplier(() -> new BasePowerStatsProcessor(() -> 4000));
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void processPowerStats() {
         AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(true);
@@ -95,9 +97,11 @@
         stats.getUidStats(uidStats, APP_UID1,
                 states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_FOREGROUND_SERVICE));
         assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(5000);
-        stats.getUidStats(uidStats, APP_UID1,
+        boolean nonZero = stats.getUidStats(uidStats, APP_UID1,
                 states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_UNSPECIFIED));
-        assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(0);
+        if (nonZero) {
+            assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(0);
+        }
 
         stats.getUidStats(uidStats, APP_UID2,
                 states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
@@ -105,11 +109,14 @@
         stats.getUidStats(uidStats, APP_UID2,
                 states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_CACHED));
         assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(8500);
-        stats.getUidStats(uidStats, APP_UID2,
+        nonZero = stats.getUidStats(uidStats, APP_UID2,
                 states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_UNSPECIFIED));
-        assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(0);
+        if (nonZero) {
+            assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(0);
+        }
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void fuelgaugeAvailable() {
         AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(true);
@@ -138,6 +145,7 @@
         assertThat(dischargeDuration).isWithin(5).of(6000);
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void fuelgaugeUnavailable() {
         AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(false);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BinaryStatePowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BinaryStatePowerStatsProcessorTest.java
index 2ff7dde..e6e7f6e 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BinaryStatePowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BinaryStatePowerStatsProcessorTest.java
@@ -30,6 +30,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.annotation.SuppressLint;
 import android.os.BatteryConsumer;
 import android.os.BatteryStats;
 import android.os.PersistableBundle;
@@ -74,6 +75,7 @@
         }
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void powerProfileModel() {
         BinaryStatePowerStatsLayout statsLayout = new BinaryStatePowerStatsLayout();
@@ -138,12 +140,14 @@
         assertThat(statsLayout.getUidPowerEstimate(uidStats))
                 .isWithin(PRECISION).of(expectedPower2);
 
-        stats.getUidStats(uidStats, APP_UID2,
-                states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
-        assertThat(statsLayout.getUidPowerEstimate(uidStats))
-                .isWithin(PRECISION).of(0);
+        if (stats.getUidStats(uidStats, APP_UID2,
+                states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED))) {
+            assertThat(statsLayout.getUidPowerEstimate(uidStats))
+                    .isWithin(PRECISION).of(0);
+        }
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void energyConsumerModel() {
         BinaryStatePowerStatsLayout
@@ -232,10 +236,11 @@
         assertThat(statsLayout.getUidPowerEstimate(uidStats))
                 .isWithin(PRECISION).of(expectedPower2);
 
-        stats.getUidStats(uidStats, APP_UID2,
-                states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
-        assertThat(statsLayout.getUidPowerEstimate(uidStats))
-                .isWithin(PRECISION).of(0);
+        if (stats.getUidStats(uidStats, APP_UID2,
+                states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED))) {
+            assertThat(statsLayout.getUidPowerEstimate(uidStats))
+                    .isWithin(PRECISION).of(0);
+        }
     }
 
 
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java
index 6013186..6d7119d 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java
@@ -33,6 +33,7 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import android.annotation.SuppressLint;
 import android.bluetooth.BluetoothActivityEnergyInfo;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.UidTraffic;
@@ -161,6 +162,7 @@
         when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)).thenReturn(true);
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void powerProfileModel_mostlyDataTransfer() {
         // No power monitoring hardware
@@ -262,6 +264,7 @@
                 .isWithin(PRECISION).of(expectedPower2 * 0.75);
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void powerProfileModel_mostlyScan() {
         // No power monitoring hardware
@@ -361,6 +364,7 @@
                 .isWithin(PRECISION).of(expectedPower2 * 0.75);
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void consumedEnergyModel() {
         when(mConsumedEnergyRetriever.getVoltageMv()).thenReturn(VOLTAGE_MV);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CameraPowerStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CameraPowerStatsTest.java
index 23642de..a959632 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CameraPowerStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CameraPowerStatsTest.java
@@ -33,6 +33,7 @@
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.when;
 
+import android.annotation.SuppressLint;
 import android.hardware.power.stats.EnergyConsumerResult;
 import android.hardware.power.stats.EnergyConsumerType;
 import android.os.BatteryConsumer;
@@ -117,6 +118,7 @@
         mMonotonicClock = new MonotonicClock(0, mStatsRule.getMockClock());
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void energyConsumerModel() {
         when(mConsumedEnergyRetriever.getVoltageMv()).thenReturn(VOLTAGE_MV);
@@ -211,10 +213,11 @@
         assertThat(statsLayout.getUidPowerEstimate(uidStats))
                 .isWithin(PRECISION).of(expectedPower2);
 
-        stats.getUidStats(uidStats, APP_UID2,
-                states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
-        assertThat(statsLayout.getUidPowerEstimate(uidStats))
-                .isWithin(PRECISION).of(0);
+        if (stats.getUidStats(uidStats, APP_UID2,
+                states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED))) {
+            assertThat(statsLayout.getUidPowerEstimate(uidStats))
+                    .isWithin(PRECISION).of(0);
+        }
     }
 
     private BatteryStats.HistoryItem buildHistoryItem(int timestamp, boolean stateOn,
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CustomEnergyConsumerPowerStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CustomEnergyConsumerPowerStatsTest.java
index 42baba7..a421675 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CustomEnergyConsumerPowerStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CustomEnergyConsumerPowerStatsTest.java
@@ -33,6 +33,7 @@
 
 import static org.mockito.Mockito.when;
 
+import android.annotation.SuppressLint;
 import android.hardware.power.stats.EnergyConsumerAttribution;
 import android.hardware.power.stats.EnergyConsumerResult;
 import android.hardware.power.stats.EnergyConsumerType;
@@ -154,6 +155,7 @@
                 .isEqualTo(6000);
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void processStats() throws Exception {
         AggregatedPowerStats aggregatedPowerStats = createAggregatedPowerStats();
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/GnssPowerStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/GnssPowerStatsTest.java
index c63267e..b4f2113 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/GnssPowerStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/GnssPowerStatsTest.java
@@ -33,6 +33,7 @@
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.when;
 
+import android.annotation.SuppressLint;
 import android.hardware.power.stats.EnergyConsumerResult;
 import android.hardware.power.stats.EnergyConsumerType;
 import android.location.GnssSignalQuality;
@@ -122,6 +123,7 @@
         mHistoryItem.clear();
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void powerProfileModel() {
         // ODPM unsupported
@@ -206,12 +208,14 @@
         assertThat(statsLayout.getUidPowerEstimate(uidStats))
                 .isWithin(PRECISION).of(0.51111);
 
-        stats.getUidStats(uidStats, APP_UID2,
-                states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
-        assertThat(statsLayout.getUidPowerEstimate(uidStats))
-                .isWithin(PRECISION).of(0);
+        if (stats.getUidStats(uidStats, APP_UID2,
+                states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED))) {
+            assertThat(statsLayout.getUidPowerEstimate(uidStats))
+                    .isWithin(PRECISION).of(0);
+        }
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void initialStateGnssOn() {
         // ODPM unsupported
@@ -285,12 +289,14 @@
         assertThat(statsLayout.getUidPowerEstimate(uidStats))
                 .isWithin(PRECISION).of(0.51111);
 
-        stats.getUidStats(uidStats, APP_UID2,
-                states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
-        assertThat(statsLayout.getUidPowerEstimate(uidStats))
-                .isWithin(PRECISION).of(0);
+        if (stats.getUidStats(uidStats, APP_UID2,
+                states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED))) {
+            assertThat(statsLayout.getUidPowerEstimate(uidStats))
+                    .isWithin(PRECISION).of(0);
+        }
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void energyConsumerModel() {
         when(mConsumedEnergyRetriever.getVoltageMv()).thenReturn(VOLTAGE_MV);
@@ -386,10 +392,11 @@
         assertThat(statsLayout.getUidPowerEstimate(uidStats))
                 .isWithin(PRECISION).of(expectedPower2);
 
-        stats.getUidStats(uidStats, APP_UID2,
-                states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
-        assertThat(statsLayout.getUidPowerEstimate(uidStats))
-                .isWithin(PRECISION).of(0);
+        if (stats.getUidStats(uidStats, APP_UID2,
+                states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED))) {
+            assertThat(statsLayout.getUidPowerEstimate(uidStats))
+                    .isWithin(PRECISION).of(0);
+        }
     }
 
     private BatteryStats.HistoryItem buildHistoryItemInitialStateGpsOn(long timestamp) {
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java
index 6acd368..3dc4017 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java
@@ -39,6 +39,7 @@
 import static org.mockito.Mockito.when;
 
 import android.annotation.Nullable;
+import android.annotation.SuppressLint;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.hardware.power.stats.EnergyConsumerResult;
@@ -170,6 +171,7 @@
                 .thenAnswer(invocation -> invocation.getArgument(0));
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void powerProfileModel() {
         // No power monitoring hardware
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MultiStateStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MultiStateStatsTest.java
index 3b614bd..9abb06f 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MultiStateStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MultiStateStatsTest.java
@@ -21,6 +21,7 @@
 
 import static org.junit.Assert.assertThrows;
 
+import android.annotation.SuppressLint;
 import android.os.BatteryConsumer;
 
 import androidx.test.filters.SmallTest;
@@ -124,6 +125,7 @@
         assertThat(e.getMessage()).contains("40");
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void multiStateStats_aggregation() {
         MultiStateStats.Factory factory = makeFactory(true, true, false);
@@ -159,9 +161,9 @@
         // (400 - 100) * 0 + (600 - 400) * 0.5
         assertThat(stats).isEqualTo(new long[]{100, 100});
 
-        multiStateStats.getStats(stats, new int[]{1, BatteryConsumer.PROCESS_STATE_BACKGROUND, 0});
         // Never been in this composite state
-        assertThat(stats).isEqualTo(new long[]{0, 0});
+        assertThat(multiStateStats.getStats(stats,
+                new int[]{1, BatteryConsumer.PROCESS_STATE_BACKGROUND, 0})).isFalse();
     }
 
     @Test
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessorTest.java
index a20274f..2f742d7 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessorTest.java
@@ -29,6 +29,7 @@
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.when;
 
+import android.annotation.SuppressLint;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.hardware.power.stats.EnergyConsumerType;
@@ -159,6 +160,7 @@
         mStatsRule.setTestPowerProfile("power_profile_test_legacy_modem");
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void copyEstimatesFromMobileRadioPowerStats() {
         AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig();
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/ScreenPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/ScreenPowerStatsProcessorTest.java
index 1852165..31456a15 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/ScreenPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/ScreenPowerStatsProcessorTest.java
@@ -29,6 +29,7 @@
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.when;
 
+import android.annotation.SuppressLint;
 import android.hardware.power.stats.EnergyConsumerResult;
 import android.hardware.power.stats.EnergyConsumerType;
 import android.os.BatteryConsumer;
@@ -278,6 +279,7 @@
                 .of(expectedDozePowerEstimate);
     }
 
+    @SuppressLint("CheckResult")
     private void assertUidPowerEstimate(
             PowerComponentAggregatedPowerStats aggregatedStats, int uid,
             int powerState, int screenState, double expectedScreenPowerEstimate) {
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/SensorPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/SensorPowerStatsProcessorTest.java
index d972604..c2f01d1 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/SensorPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/SensorPowerStatsProcessorTest.java
@@ -33,6 +33,7 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import android.annotation.SuppressLint;
 import android.hardware.Sensor;
 import android.hardware.SensorManager;
 import android.hardware.input.InputSensorInfo;
@@ -91,6 +92,7 @@
                 List.of(sensor1, sensor2, sensor3));
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void testPowerEstimation() {
         PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java
index 8257d71..5ac7216 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java
@@ -31,6 +31,7 @@
 
 import static org.mockito.Mockito.mock;
 
+import android.annotation.SuppressLint;
 import android.os.BatteryConsumer;
 import android.os.PersistableBundle;
 import android.os.Process;
@@ -123,6 +124,7 @@
         return history;
     }
 
+    @SuppressLint("CheckResult")
     private void assertAggregatedPowerStats(AggregatedPowerStats aggregatedPowerStats) {
         PowerComponentAggregatedPowerStats stats =
                 aggregatedPowerStats.getPowerComponentStats(POWER_COMPONENT_WAKELOCK);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java
index bd92a84..e36056a 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java
@@ -39,6 +39,7 @@
 import static org.mockito.Mockito.when;
 
 import android.annotation.Nullable;
+import android.annotation.SuppressLint;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.hardware.power.stats.EnergyConsumerResult;
@@ -198,6 +199,7 @@
         mBatteryStats = mStatsRule.getBatteryStats();
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void powerProfileModel_powerController() {
         when(mWifiManager.isEnhancedPowerReportingSupported()).thenReturn(true);
@@ -310,6 +312,7 @@
                 .isWithin(PRECISION).of(expectedPower2 * 0.75);
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void consumedEnergyModel_powerController() {
         when(mWifiManager.isEnhancedPowerReportingSupported()).thenReturn(true);
@@ -424,6 +427,7 @@
                 .isWithin(PRECISION).of(expectedPower2 * 0.75);
     }
 
+    @SuppressLint("CheckResult")
     @Test
     public void powerProfileModel_noPowerController() {
         when(mWifiManager.isEnhancedPowerReportingSupported()).thenReturn(false);
diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp
index 009ce88..d702cae 100644
--- a/services/tests/servicestests/Android.bp
+++ b/services/tests/servicestests/Android.bp
@@ -33,9 +33,6 @@
         "test-apps/DisplayManagerTestApp/src/**/*.java",
     ],
 
-    kotlincflags: [
-        "-Werror",
-    ],
     static_libs: [
         "a11ychecker",
         "aatf",
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickControllerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickControllerTest.java
index 0745c68..17d8882 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickControllerTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickControllerTest.java
@@ -41,6 +41,7 @@
 import android.view.WindowManager;
 import android.view.accessibility.AccessibilityManager;
 
+import com.android.internal.accessibility.util.AccessibilityUtils;
 import com.android.server.accessibility.AccessibilityTraceManager;
 
 import org.junit.After;
@@ -79,7 +80,9 @@
 
     @After
     public void tearDown() {
+        mController.onDestroy();
         mTestableLooper.processAllMessages();
+        TestableLooper.remove(this);
     }
 
     @Test
@@ -403,6 +406,133 @@
 
     @Test
     @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
+    public void onCursorAreaSizeSettingsChange_moveWithinCustomRadius_clickNotTriggered() {
+        // Move mouse to initialize autoclick panel before enabling ignore minor cursor movement.
+        injectFakeMouseActionHoverMoveEvent();
+        enableIgnoreMinorCursorMovement();
+
+        // Set a custom cursor area size.
+        int customSize = 250;
+        Settings.Secure.putIntForUser(mTestableContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_AUTOCLICK_CURSOR_AREA_SIZE,
+                customSize,
+                mTestableContext.getUserId());
+        mController.onChangeForTesting(/* selfChange= */ true,
+                Settings.Secure.getUriFor(
+                        Settings.Secure.ACCESSIBILITY_AUTOCLICK_CURSOR_AREA_SIZE));
+        assertThat(mController.mAutoclickIndicatorView.getRadiusForTesting()).isEqualTo(customSize);
+
+        // Move the mouse down, less than customSize radius so a click is not triggered.
+        float moveDownY = customSize - 25;
+        MotionEvent hoverMove = MotionEvent.obtain(
+                /* downTime= */ 0,
+                /* eventTime= */ 150,
+                /* action= */ MotionEvent.ACTION_HOVER_MOVE,
+                /* x= */ 0f,
+                /* y= */ moveDownY,
+                /* metaState= */ 0);
+        hoverMove.setSource(InputDevice.SOURCE_MOUSE);
+        mController.onMotionEvent(hoverMove, hoverMove, /* policyFlags= */ 0);
+        assertThat(mController.mClickScheduler.getIsActiveForTesting()).isFalse();
+    }
+
+    @Test
+    @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
+    public void onCursorAreaSizeSettingsChange_moveOutsideCustomRadius_clickTriggered() {
+        // Move mouse to initialize autoclick panel before enabling ignore minor cursor movement.
+        injectFakeMouseActionHoverMoveEvent();
+        enableIgnoreMinorCursorMovement();
+
+        // Set a custom cursor area size.
+        int customSize = 250;
+        Settings.Secure.putIntForUser(mTestableContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_AUTOCLICK_CURSOR_AREA_SIZE,
+                customSize,
+                mTestableContext.getUserId());
+        mController.onChangeForTesting(/* selfChange= */ true,
+                Settings.Secure.getUriFor(
+                        Settings.Secure.ACCESSIBILITY_AUTOCLICK_CURSOR_AREA_SIZE));
+        assertThat(mController.mAutoclickIndicatorView.getRadiusForTesting()).isEqualTo(customSize);
+
+        // Move the mouse right, greater than customSize radius so a click is triggered.
+        float moveRightX = customSize + 100;
+        MotionEvent hoverMove = MotionEvent.obtain(
+                /* downTime= */ 0,
+                /* eventTime= */ 200,
+                /* action= */ MotionEvent.ACTION_HOVER_MOVE,
+                /* x= */ moveRightX,
+                /* y= */ 0,
+                /* metaState= */ 0);
+        hoverMove.setSource(InputDevice.SOURCE_MOUSE);
+        mController.onMotionEvent(hoverMove, hoverMove, /* policyFlags= */ 0);
+        assertThat(mController.mClickScheduler.getIsActiveForTesting()).isTrue();
+    }
+
+    @Test
+    @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
+    public void onIgnoreCursorMovementFromSettingsChange_clickTriggered() {
+        // Send initial mouse movement.
+        injectFakeMouseActionHoverMoveEvent();
+
+        // Set a custom cursor area size.
+        int customSize = 250;
+        Settings.Secure.putIntForUser(mTestableContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_AUTOCLICK_CURSOR_AREA_SIZE,
+                customSize,
+                mTestableContext.getUserId());
+        mController.onChangeForTesting(/* selfChange= */ true,
+                Settings.Secure.getUriFor(
+                        Settings.Secure.ACCESSIBILITY_AUTOCLICK_CURSOR_AREA_SIZE));
+
+        // Move the mouse down less than customSize radius but ignore custom movement is not enabled
+        // so a click is triggered.
+        float moveDownY = customSize - 100;
+        MotionEvent hoverMove = MotionEvent.obtain(
+                /* downTime= */ 0,
+                /* eventTime= */ 150,
+                /* action= */ MotionEvent.ACTION_HOVER_MOVE,
+                /* x= */ 0f,
+                /* y= */ moveDownY,
+                /* metaState= */ 0);
+        hoverMove.setSource(InputDevice.SOURCE_MOUSE);
+        mController.onMotionEvent(hoverMove, hoverMove, /* policyFlags= */ 0);
+        assertThat(mController.mClickScheduler.getIsActiveForTesting()).isTrue();
+    }
+
+    @Test
+    @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
+    public void onIgnoreCursorMovementFromSettingsChange_clickNotTriggered() {
+        // Move mouse to initialize autoclick panel before enabling ignore minor cursor movement.
+        injectFakeMouseActionHoverMoveEvent();
+        enableIgnoreMinorCursorMovement();
+
+        // Set a custom cursor area size.
+        int customSize = 250;
+        Settings.Secure.putIntForUser(mTestableContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_AUTOCLICK_CURSOR_AREA_SIZE,
+                customSize,
+                mTestableContext.getUserId());
+        mController.onChangeForTesting(/* selfChange= */ true,
+                Settings.Secure.getUriFor(
+                        Settings.Secure.ACCESSIBILITY_AUTOCLICK_CURSOR_AREA_SIZE));
+
+        // After enabling ignore custom movement, move the mouse right, less than customSize radius
+        // so a click won't be triggered.
+        float moveRightX = customSize - 100;
+        MotionEvent hoverMove = MotionEvent.obtain(
+                /* downTime= */ 0,
+                /* eventTime= */ 200,
+                /* action= */ MotionEvent.ACTION_HOVER_MOVE,
+                /* x= */ moveRightX,
+                /* y= */ 0,
+                /* metaState= */ 0);
+        hoverMove.setSource(InputDevice.SOURCE_MOUSE);
+        mController.onMotionEvent(hoverMove, hoverMove, /* policyFlags= */ 0);
+        assertThat(mController.mClickScheduler.getIsActiveForTesting()).isFalse();
+    }
+
+    @Test
+    @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
     public void pauseButton_flagOn_clickNotTriggeredWhenPaused() {
         injectFakeMouseActionHoverMoveEvent();
 
@@ -473,4 +603,14 @@
                 /* y= */ 0,
                 /* metaState= */ 0);
     }
+
+    private void enableIgnoreMinorCursorMovement() {
+        Settings.Secure.putIntForUser(mTestableContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_AUTOCLICK_IGNORE_MINOR_CURSOR_MOVEMENT,
+                AccessibilityUtils.State.ON,
+                mTestableContext.getUserId());
+        mController.onChangeForTesting(/* selfChange= */ true,
+                Settings.Secure.getUriFor(
+                        Settings.Secure.ACCESSIBILITY_AUTOCLICK_IGNORE_MINOR_CURSOR_MOVEMENT));
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickTypePanelTest.java b/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickTypePanelTest.java
index ba672dc..9e12340 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickTypePanelTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickTypePanelTest.java
@@ -16,21 +16,30 @@
 
 package com.android.server.accessibility.autoclick;
 
+import static android.provider.Settings.Secure.ACCESSIBILITY_AUTOCLICK_PANEL_POSITION;
+
 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static com.android.server.accessibility.autoclick.AutoclickTypePanel.AUTOCLICK_TYPE_LEFT_CLICK;
 import static com.android.server.accessibility.autoclick.AutoclickTypePanel.AUTOCLICK_TYPE_SCROLL;
 import static com.android.server.accessibility.autoclick.AutoclickTypePanel.AutoclickType;
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.CORNER_BOTTOM_LEFT;
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.CORNER_BOTTOM_RIGHT;
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.CORNER_TOP_LEFT;
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.CORNER_TOP_RIGHT;
 import static com.android.server.accessibility.autoclick.AutoclickTypePanel.ClickPanelControllerInterface;
+import static com.android.server.accessibility.autoclick.AutoclickTypePanel.POSITION_DELIMITER;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
 import android.graphics.drawable.GradientDrawable;
+import android.provider.Settings;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableContext;
 import android.testing.TestableLooper;
 import android.view.Gravity;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.WindowManager;
 import android.widget.LinearLayout;
@@ -88,7 +97,8 @@
         mTestableContext.addMockSystemService(Context.WINDOW_SERVICE, mMockWindowManager);
 
         mAutoclickTypePanel =
-                new AutoclickTypePanel(mTestableContext, mMockWindowManager, clickPanelController);
+                new AutoclickTypePanel(mTestableContext, mMockWindowManager,
+                        mTestableContext.getUserId(), clickPanelController);
         View contentView = mAutoclickTypePanel.getContentViewForTesting();
         mLeftClickButton = contentView.findViewById(R.id.accessibility_autoclick_left_click_layout);
         mRightClickButton =
@@ -213,6 +223,195 @@
         assertThat(mAutoclickTypePanel.isPaused()).isFalse();
     }
 
+    @Test
+    public void onTouch_dragMove_updatesPosition() {
+        View contentView = mAutoclickTypePanel.getContentViewForTesting();
+        WindowManager.LayoutParams params = mAutoclickTypePanel.getLayoutParamsForTesting();
+        int[] panelLocation = new int[2];
+        contentView.getLocationOnScreen(panelLocation);
+
+        // Define movement delta for both x and y directions.
+        int delta = 15;
+
+        // Dispatch initial down event.
+        float touchX = panelLocation[0] + 10;
+        float touchY = panelLocation[1] + 10;
+        MotionEvent downEvent = MotionEvent.obtain(
+                0, 0,
+                MotionEvent.ACTION_DOWN, touchX, touchY, 0);
+        contentView.dispatchTouchEvent(downEvent);
+
+        // Create move event with delta, move from (x, y) to (x + delta, y + delta)
+        MotionEvent moveEvent = MotionEvent.obtain(
+                0, 0,
+                MotionEvent.ACTION_MOVE, touchX + delta, touchY + delta, 0);
+        contentView.dispatchTouchEvent(moveEvent);
+
+        // Verify position update.
+        assertThat(mAutoclickTypePanel.getIsDraggingForTesting()).isTrue();
+        assertThat(params.gravity).isEqualTo(Gravity.LEFT | Gravity.TOP);
+        assertThat(params.x).isEqualTo(panelLocation[0] + delta);
+        assertThat(params.y).isEqualTo(panelLocation[1] + delta);
+    }
+
+    @Test
+    public void dragAndEndAtRight_snapsToRightSide() {
+        View contentView = mAutoclickTypePanel.getContentViewForTesting();
+        WindowManager.LayoutParams params = mAutoclickTypePanel.getLayoutParamsForTesting();
+        int[] panelLocation = new int[2];
+        contentView.getLocationOnScreen(panelLocation);
+
+        int screenWidth = mTestableContext.getResources().getDisplayMetrics().widthPixels;
+
+        // Verify initial corner is bottom-right.
+        assertThat(mAutoclickTypePanel.getCurrentCornerIndexForTesting())
+                .isEqualTo(CORNER_BOTTOM_RIGHT);
+
+        dispatchDragSequence(contentView,
+                /* startX =*/ panelLocation[0] + 10, /* startY =*/ panelLocation[1] + 10,
+                /* endX =*/ (float) (screenWidth * 3) / 4, /* endY =*/ panelLocation[1] + 10);
+
+        // Verify snapping to the right.
+        assertThat(params.gravity).isEqualTo(Gravity.END | Gravity.TOP);
+        assertThat(mAutoclickTypePanel.getCurrentCornerIndexForTesting())
+                .isEqualTo(CORNER_TOP_RIGHT);
+    }
+
+    @Test
+    public void dragAndEndAtLeft_snapsToLeftSide() {
+        View contentView = mAutoclickTypePanel.getContentViewForTesting();
+        WindowManager.LayoutParams params = mAutoclickTypePanel.getLayoutParamsForTesting();
+        int[] panelLocation = new int[2];
+        contentView.getLocationOnScreen(panelLocation);
+
+        int screenWidth = mTestableContext.getResources().getDisplayMetrics().widthPixels;
+
+        // Verify initial corner is bottom-right.
+        assertThat(mAutoclickTypePanel.getCurrentCornerIndexForTesting())
+                .isEqualTo(CORNER_BOTTOM_RIGHT);
+
+        dispatchDragSequence(contentView,
+                /* startX =*/ panelLocation[0] + 10, /* startY =*/ panelLocation[1] + 10,
+                /* endX =*/ (float) screenWidth / 4, /* endY =*/ panelLocation[1] + 10);
+
+        // Verify snapping to the left.
+        assertThat(params.gravity).isEqualTo(Gravity.START | Gravity.TOP);
+        assertThat(mAutoclickTypePanel.getCurrentCornerIndexForTesting())
+                .isEqualTo(CORNER_BOTTOM_LEFT);
+    }
+
+    @Test
+    public void restorePanelPosition_noSavedPosition_useDefault() {
+        // Given no saved position in Settings.
+        Settings.Secure.putString(mTestableContext.getContentResolver(),
+                ACCESSIBILITY_AUTOCLICK_PANEL_POSITION, null);
+
+        // Create panel which triggers position restoration internally.
+        AutoclickTypePanel panel = new AutoclickTypePanel(mTestableContext, mMockWindowManager,
+                mTestableContext.getUserId(),
+                clickPanelController);
+
+        // Verify panel is positioned at default bottom-right corner.
+        WindowManager.LayoutParams params = panel.getLayoutParamsForTesting();
+        assertThat(panel.getCurrentCornerIndexForTesting()).isEqualTo(CORNER_BOTTOM_RIGHT);
+        assertThat(params.gravity).isEqualTo(Gravity.END | Gravity.BOTTOM);
+        assertThat(params.x).isEqualTo(15);  // Default edge margin.
+        assertThat(params.y).isEqualTo(90);  // Default bottom offset.
+    }
+
+    @Test
+    public void restorePanelPosition_position_button() {
+        // Move panel to top-left by clicking position button twice.
+        mPositionButton.callOnClick();
+        mPositionButton.callOnClick();
+
+        // Hide panel to trigger position saving.
+        mAutoclickTypePanel.hide();
+
+        // Verify position is correctly saved in Settings.
+        String savedPosition = Settings.Secure.getStringForUser(
+                mTestableContext.getContentResolver(),
+                ACCESSIBILITY_AUTOCLICK_PANEL_POSITION, mTestableContext.getUserId());
+        String[] parts = savedPosition.split(POSITION_DELIMITER);
+        assertThat(parts).hasLength(4);
+        assertThat(Integer.parseInt(parts[0])).isEqualTo(Gravity.START | Gravity.TOP);
+        assertThat(Integer.parseInt(parts[1])).isEqualTo(15);
+        assertThat(Integer.parseInt(parts[2])).isEqualTo(30);
+        assertThat(Integer.parseInt(parts[3])).isEqualTo(CORNER_TOP_LEFT);
+
+        // Show panel to trigger position restoration.
+        mAutoclickTypePanel.show();
+
+        // Then verify position is restored correctly.
+        WindowManager.LayoutParams params = mAutoclickTypePanel.getLayoutParamsForTesting();
+        assertThat(params.gravity).isEqualTo(Gravity.START | Gravity.TOP);
+        assertThat(params.x).isEqualTo(15);
+        assertThat(params.y).isEqualTo(30);
+        assertThat(mAutoclickTypePanel.getCurrentCornerIndexForTesting()).isEqualTo(
+                CORNER_TOP_LEFT);
+    }
+
+    @Test
+    public void restorePanelPosition_dragToLeft() {
+        // Get initial panel position.
+        View contentView = mAutoclickTypePanel.getContentViewForTesting();
+        int[] panelLocation = new int[2];
+        contentView.getLocationOnScreen(panelLocation);
+
+        // Simulate drag from initial position to left side of screen.
+        int screenWidth = mTestableContext.getResources().getDisplayMetrics().widthPixels;
+        dispatchDragSequence(contentView,
+                /* startX =*/ panelLocation[0], /* startY =*/ panelLocation[1],
+                /* endX =*/ (float) screenWidth / 4, /* endY =*/ panelLocation[1] + 10);
+
+        // Hide panel to trigger position saving.
+        mAutoclickTypePanel.hide();
+
+        // Verify position is saved correctly.
+        String savedPosition = Settings.Secure.getStringForUser(
+                mTestableContext.getContentResolver(),
+                ACCESSIBILITY_AUTOCLICK_PANEL_POSITION, mTestableContext.getUserId());
+        String[] parts = savedPosition.split(POSITION_DELIMITER);
+        assertThat(parts).hasLength(4);
+        assertThat(Integer.parseInt(parts[0])).isEqualTo(Gravity.START | Gravity.TOP);
+        assertThat(Integer.parseInt(parts[1])).isEqualTo(15);
+        assertThat(Integer.parseInt(parts[2])).isEqualTo(panelLocation[1] + 10);
+        assertThat(Integer.parseInt(parts[3])).isEqualTo(CORNER_BOTTOM_LEFT);
+
+        // Show panel to trigger position restoration.
+        mAutoclickTypePanel.show();
+
+        // Then verify dragged position is restored.
+        WindowManager.LayoutParams params = mAutoclickTypePanel.getLayoutParamsForTesting();
+        assertThat(params.gravity).isEqualTo(Gravity.START | Gravity.TOP);
+        assertThat(params.x).isEqualTo(15); // PANEL_EDGE_MARGIN
+        assertThat(params.y).isEqualTo(panelLocation[1] + 10);
+        assertThat(mAutoclickTypePanel.getCurrentCornerIndexForTesting()).isEqualTo(
+                CORNER_BOTTOM_LEFT);
+    }
+
+    // Helper method to handle drag event sequences
+    private void dispatchDragSequence(View view, float startX, float startY, float endX,
+            float endY) {
+        // Down event
+        MotionEvent downEvent = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, startX, startY,
+                0);
+        view.dispatchTouchEvent(downEvent);
+
+        // Move event
+        MotionEvent moveEvent = MotionEvent.obtain(0, 0, MotionEvent.ACTION_MOVE, endX, endY, 0);
+        view.dispatchTouchEvent(moveEvent);
+
+        // Up event
+        MotionEvent upEvent = MotionEvent.obtain(0, 0, MotionEvent.ACTION_UP, endX, endY, 0);
+        view.dispatchTouchEvent(upEvent);
+
+        // Clean up
+        downEvent.recycle();
+        moveEvent.recycle();
+        upEvent.recycle();
+    }
+
     private void verifyButtonHasSelectedStyle(@NonNull LinearLayout button) {
         GradientDrawable gradientDrawable = (GradientDrawable) button.getBackground();
         assertThat(gradientDrawable.getColor().getDefaultColor())
@@ -220,7 +419,7 @@
     }
 
     private void verifyPanelPosition(int[] expectedPosition) {
-        WindowManager.LayoutParams params = mAutoclickTypePanel.getLayoutParams();
+        WindowManager.LayoutParams params = mAutoclickTypePanel.getLayoutParamsForTesting();
         assertThat(mAutoclickTypePanel.getCurrentCornerIndexForTesting()).isEqualTo(
                 expectedPosition[0]);
         assertThat(params.gravity).isEqualTo(expectedPosition[1]);
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandlerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandlerTest.java
index 9f5dd93..5c126d1 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandlerTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandlerTest.java
@@ -311,8 +311,7 @@
                         mMockFullScreenMagnificationVibrationHelper,
                         mMockMagnificationLogger,
                         ViewConfiguration.get(mContext),
-                        mMockOneFingerPanningSettingsProvider,
-                        new MouseEventHandler(mFullScreenMagnificationController));
+                        mMockOneFingerPanningSettingsProvider);
         // OverscrollHandler is only supported on watches.
         // @See config_enable_a11y_fullscreen_magnification_overscroll_handler
         if (isWatch()) {
@@ -482,8 +481,8 @@
     @Test
     @RequiresFlagsDisabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
     public void testDisablingTripleTap_removesInputLag() {
-        mMgh = newInstance(/* detectSingleFingerTripleTap */ false,
-                /* detectTwoFingerTripleTap */ true, /* detectShortcut */ true);
+        mMgh = newInstance(/* detectSingleFingerTripleTap= */ false,
+                /* detectTwoFingerTripleTap= */ true, /* detectShortcutTrigger= */ true);
         goFromStateIdleTo(STATE_IDLE);
         allowEventDelegation();
         tap();
@@ -494,8 +493,8 @@
     @Test
     @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
     public void testDisablingSingleFingerTripleTapAndTwoFingerTripleTap_removesInputLag() {
-        mMgh = newInstance(/* detectSingleFingerTripleTap */ false,
-                /* detectTwoFingerTripleTap */ false, /* detectShortcut */ true);
+        mMgh = newInstance(/* detectSingleFingerTripleTap= */ false,
+                /* detectTwoFingerTripleTap= */ false, /* detectShortcutTrigger= */ true);
         goFromStateIdleTo(STATE_IDLE);
         allowEventDelegation();
         tap();
@@ -1420,12 +1419,6 @@
     }
 
     @Test
-    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
-    public void testMouseMoveEventsDoNotMoveMagnifierViewport() {
-        runMoveEventsDoNotMoveMagnifierViewport(InputDevice.SOURCE_MOUSE);
-    }
-
-    @Test
     public void testStylusMoveEventsDoNotMoveMagnifierViewport() {
         runMoveEventsDoNotMoveMagnifierViewport(InputDevice.SOURCE_STYLUS);
     }
@@ -1441,7 +1434,7 @@
                 (INITIAL_MAGNIFICATION_BOUNDS.top + INITIAL_MAGNIFICATION_BOUNDS.height()) / 2.0f;
         float scale = 5.6f; // value is unimportant but unique among tests to increase coverage.
         mFullScreenMagnificationController.setScaleAndCenter(
-                DISPLAY_0, centerX, centerY, scale, true, /* animate= */ false, 1);
+                DISPLAY_0, scale, centerX, centerY, true, /* animate= */ false, 1);
         centerX = mFullScreenMagnificationController.getCenterX(DISPLAY_0);
         centerY = mFullScreenMagnificationController.getCenterY(DISPLAY_0);
 
@@ -1474,55 +1467,36 @@
     }
 
     @Test
-    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
-    public void testMouseHoverMoveEventsDoNotMoveMagnifierViewport() {
-        runHoverMoveEventsDoNotMoveMagnifierViewport(InputDevice.SOURCE_MOUSE);
-    }
-
-    @Test
-    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
-    public void testStylusHoverMoveEventsDoNotMoveMagnifierViewport() {
-        runHoverMoveEventsDoNotMoveMagnifierViewport(InputDevice.SOURCE_STYLUS);
-    }
-
-    @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
     public void testMouseHoverMoveEventsMoveMagnifierViewport() {
         runHoverMovesViewportTest(InputDevice.SOURCE_MOUSE);
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
     public void testStylusHoverMoveEventsMoveMagnifierViewport() {
         runHoverMovesViewportTest(InputDevice.SOURCE_STYLUS);
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
     public void testMouseDownEventsDoNotMoveMagnifierViewport() {
         runDownDoesNotMoveViewportTest(InputDevice.SOURCE_MOUSE);
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
     public void testStylusDownEventsDoNotMoveMagnifierViewport() {
         runDownDoesNotMoveViewportTest(InputDevice.SOURCE_STYLUS);
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
     public void testMouseUpEventsDoNotMoveMagnifierViewport() {
         runUpDoesNotMoveViewportTest(InputDevice.SOURCE_MOUSE);
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
     public void testStylusUpEventsDoNotMoveMagnifierViewport() {
         runUpDoesNotMoveViewportTest(InputDevice.SOURCE_STYLUS);
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
     public void testMouseMoveEventsMoveMagnifierViewport() {
         final EventCaptor eventCaptor = new EventCaptor();
         mMgh.setNext(eventCaptor);
@@ -1533,7 +1507,7 @@
                 (INITIAL_MAGNIFICATION_BOUNDS.top + INITIAL_MAGNIFICATION_BOUNDS.height()) / 2.0f;
         float scale = 6.2f; // value is unimportant but unique among tests to increase coverage.
         mFullScreenMagnificationController.setScaleAndCenter(
-                DISPLAY_0, centerX, centerY, scale, true, /* animate= */ false, 1);
+                DISPLAY_0, scale, centerX, centerY, true, /* animate= */ false, 1);
         MotionEvent event = mouseEvent(centerX, centerY, ACTION_HOVER_MOVE);
         send(event, InputDevice.SOURCE_MOUSE);
         fastForward(20);
@@ -1574,7 +1548,7 @@
                 (INITIAL_MAGNIFICATION_BOUNDS.top + INITIAL_MAGNIFICATION_BOUNDS.height()) / 2.0f;
         float scale = 4.0f; // value is unimportant but unique among tests to increase coverage.
         mFullScreenMagnificationController.setScaleAndCenter(
-                DISPLAY_0, centerX, centerY, scale, true, /* animate= */ false, 1);
+                DISPLAY_0, scale, centerX, centerY, true, /* animate= */ false, 1);
 
         // HOVER_MOVE should change magnifier viewport.
         MotionEvent event = motionEvent(centerX + 20, centerY, ACTION_HOVER_MOVE);
@@ -1618,7 +1592,7 @@
                 (INITIAL_MAGNIFICATION_BOUNDS.top + INITIAL_MAGNIFICATION_BOUNDS.height()) / 2.0f;
         float scale = 5.3f; // value is unimportant but unique among tests to increase coverage.
         mFullScreenMagnificationController.setScaleAndCenter(
-                DISPLAY_0, centerX, centerY, scale, true, /* animate= */ false, 1);
+                DISPLAY_0, scale, centerX, centerY, true, /* animate= */ false, 1);
         MotionEvent event = motionEvent(centerX, centerY, ACTION_HOVER_MOVE);
         send(event, source);
         fastForward(20);
@@ -1652,7 +1626,7 @@
                 (INITIAL_MAGNIFICATION_BOUNDS.top + INITIAL_MAGNIFICATION_BOUNDS.height()) / 2.0f;
         float scale = 2.7f; // value is unimportant but unique among tests to increase coverage.
         mFullScreenMagnificationController.setScaleAndCenter(
-                DISPLAY_0, centerX, centerY, scale, true, /* animate= */ false, 1);
+                DISPLAY_0, scale, centerX, centerY, true, /* animate= */ false, 1);
         MotionEvent event = motionEvent(centerX, centerY, ACTION_HOVER_MOVE);
         send(event, source);
         fastForward(20);
@@ -1688,7 +1662,7 @@
                 (INITIAL_MAGNIFICATION_BOUNDS.top + INITIAL_MAGNIFICATION_BOUNDS.height()) / 2.0f;
         float scale = 3.8f; // value is unimportant but unique among tests to increase coverage.
         mFullScreenMagnificationController.setScaleAndCenter(
-                DISPLAY_0, centerX, centerY, scale, true, /* animate= */ false, 1);
+                DISPLAY_0, scale, centerX, centerY, true, /* animate= */ false, 1);
         centerX = mFullScreenMagnificationController.getCenterX(DISPLAY_0);
         centerY = mFullScreenMagnificationController.getCenterY(DISPLAY_0);
 
@@ -1725,7 +1699,7 @@
                 (INITIAL_MAGNIFICATION_BOUNDS.top + INITIAL_MAGNIFICATION_BOUNDS.height()) / 2.0f;
         float scale = 4.0f; // value is unimportant but unique among tests to increase coverage.
         mFullScreenMagnificationController.setScaleAndCenter(
-                DISPLAY_0, centerX, centerY, scale, true, /* animate= */ false, 1);
+                DISPLAY_0, scale, centerX, centerY, true, /* animate= */ false, 1);
         centerX = mFullScreenMagnificationController.getCenterX(DISPLAY_0);
         centerY = mFullScreenMagnificationController.getCenterY(DISPLAY_0);
 
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationGestureHandlerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationGestureHandlerTest.java
index 45c157d..203e655 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationGestureHandlerTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationGestureHandlerTest.java
@@ -21,15 +21,11 @@
 import static android.view.MotionEvent.ACTION_HOVER_MOVE;
 import static android.view.MotionEvent.ACTION_UP;
 
-import static junit.framework.Assert.assertFalse;
-
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.verify;
 import static org.testng.AssertJUnit.assertTrue;
 
 import android.annotation.NonNull;
-import android.platform.test.annotations.RequiresFlagsDisabled;
-import android.platform.test.annotations.RequiresFlagsEnabled;
 import android.platform.test.flag.junit.CheckFlagsRule;
 import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.provider.Settings;
@@ -39,7 +35,6 @@
 import androidx.test.runner.AndroidJUnit4;
 
 import com.android.server.accessibility.AccessibilityTraceManager;
-import com.android.server.accessibility.Flags;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -93,7 +88,6 @@
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
     public void onMotionEvent_isFromMouse_handleMouseOrStylusEvent() {
         final MotionEvent mouseEvent = MotionEvent.obtain(0, 0, ACTION_HOVER_MOVE, 0, 0, 0);
         mouseEvent.setSource(InputDevice.SOURCE_MOUSE);
@@ -108,7 +102,6 @@
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
     public void onMotionEvent_isFromStylus_handleMouseOrStylusEvent() {
         final MotionEvent stylusEvent = MotionEvent.obtain(0, 0, ACTION_HOVER_MOVE, 0, 0, 0);
         stylusEvent.setSource(InputDevice.SOURCE_STYLUS);
@@ -123,36 +116,6 @@
     }
 
     @Test
-    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
-    public void onMotionEvent_isFromMouse_handleMouseOrStylusEventNotCalled() {
-        final MotionEvent mouseEvent = MotionEvent.obtain(0, 0, ACTION_HOVER_MOVE, 0, 0, 0);
-        mouseEvent.setSource(InputDevice.SOURCE_MOUSE);
-
-        mMgh.onMotionEvent(mouseEvent, mouseEvent, /* policyFlags= */ 0);
-
-        try {
-            assertFalse(mMgh.mIsHandleMouseOrStylusEventCalled);
-        } finally {
-            mouseEvent.recycle();
-        }
-    }
-
-    @Test
-    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_MAGNIFICATION_FOLLOWS_MOUSE_BUGFIX)
-    public void onMotionEvent_isFromStylus_handleMouseOrStylusEventNotCalled() {
-        final MotionEvent stylusEvent = MotionEvent.obtain(0, 0, ACTION_HOVER_MOVE, 0, 0, 0);
-        stylusEvent.setSource(InputDevice.SOURCE_STYLUS);
-
-        mMgh.onMotionEvent(stylusEvent, stylusEvent, /* policyFlags= */ 0);
-
-        try {
-            assertFalse(mMgh.mIsHandleMouseOrStylusEventCalled);
-        } finally {
-            stylusEvent.recycle();
-        }
-    }
-
-    @Test
     public void onMotionEvent_downEvent_handleInteractionStart() {
         final MotionEvent downEvent = MotionEvent.obtain(0, 0, ACTION_DOWN, 0, 0, 0);
         downEvent.setSource(InputDevice.SOURCE_TOUCHSCREEN);
diff --git a/services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java b/services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java
index aa9d205..9e8c34e 100644
--- a/services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java
@@ -259,4 +259,16 @@
                 inputGainIndex,
                 mAudioService.getInputGainIndex(ada));
     }
+
+    @Test
+    public void testRttEnabled() throws Exception {
+        Log.i(TAG, "running testRttEnabled");
+        Assert.assertNotNull(mAudioService);
+
+        mAudioService.setRttEnabled(true);
+        Assert.assertTrue(mAudioService.isRttEnabled());
+
+        mAudioService.setRttEnabled(false);
+        Assert.assertFalse(mAudioService.isRttEnabled());
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java
index 563baac..b0ffebb 100644
--- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java
+++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTvTest.java
@@ -2441,6 +2441,80 @@
         assertFalse(mWasCecDisabledOnStandbyByLowEnergyMode);
     }
 
+    @Test
+    public void sendSystemAudioModeRequest_sendsRequest_retry() throws Exception {
+        // Enable System Audio Control
+        mHdmiControlService.getHdmiCecConfig().setIntValue(
+                HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_CONTROL,
+                HdmiControlManager.SYSTEM_AUDIO_CONTROL_ENABLED);
+        mNativeWrapper.setPortConnectionStatus(1, true);
+
+        HdmiCecMessage reportPhysicalAddress =
+                HdmiCecMessageBuilder.buildReportPhysicalAddressCommand(
+                        ADDR_AUDIO_SYSTEM, 0x1000, HdmiDeviceInfo.DEVICE_AUDIO_SYSTEM);
+        HdmiCecMessage reportPowerStatus =
+                HdmiCecMessageBuilder.buildReportPowerStatus(ADDR_AUDIO_SYSTEM, ADDR_TV,
+                        HdmiControlManager.POWER_STATUS_STANDBY);
+        mNativeWrapper.onCecMessage(reportPhysicalAddress);
+        mNativeWrapper.onCecMessage(reportPowerStatus);
+        mTestLooper.dispatchAll();
+
+        mNativeWrapper.setMessageSendResult(Constants.MESSAGE_SYSTEM_AUDIO_MODE_REQUEST,
+                SendMessageResult.NACK);
+        mTestLooper.dispatchAll();
+
+        // Use SystemAudioAutoInitiationAction to trigger SystemAudioActionFromTv
+        HdmiCecFeatureAction systemAudioAutoInitiationAction =
+                new SystemAudioAutoInitiationAction(mHdmiCecLocalDeviceTv, ADDR_AUDIO_SYSTEM);
+        mHdmiCecLocalDeviceTv.addAndStartAction(systemAudioAutoInitiationAction);
+        HdmiCecMessage reportSystemAudioMode =
+                HdmiCecMessageBuilder.buildReportSystemAudioMode(
+                        ADDR_AUDIO_SYSTEM,
+                        mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
+                        true);
+        mHdmiControlService.handleCecCommand(reportSystemAudioMode);
+        mTestLooper.dispatchAll();
+
+        assertThat(mHdmiCecLocalDeviceTv.getActions(SystemAudioActionFromTv.class)).hasSize(1);
+    }
+
+    @Test
+    public void sendSystemAudioModeRequest_sendsRequest_return() throws Exception {
+        // Enable System Audio Control
+        mHdmiControlService.getHdmiCecConfig().setIntValue(
+                HdmiControlManager.CEC_SETTING_NAME_SYSTEM_AUDIO_CONTROL,
+                HdmiControlManager.SYSTEM_AUDIO_CONTROL_ENABLED);
+        mNativeWrapper.setPortConnectionStatus(1, true);
+
+        HdmiCecMessage reportPhysicalAddress =
+                HdmiCecMessageBuilder.buildReportPhysicalAddressCommand(
+                        ADDR_AUDIO_SYSTEM, 0x1000, HdmiDeviceInfo.DEVICE_AUDIO_SYSTEM);
+        HdmiCecMessage reportPowerStatus =
+                HdmiCecMessageBuilder.buildReportPowerStatus(ADDR_AUDIO_SYSTEM, ADDR_TV,
+                        HdmiControlManager.POWER_STATUS_STANDBY);
+        mNativeWrapper.onCecMessage(reportPhysicalAddress);
+        mNativeWrapper.onCecMessage(reportPowerStatus);
+        mTestLooper.dispatchAll();
+
+        mNativeWrapper.setMessageSendResult(Constants.MESSAGE_SYSTEM_AUDIO_MODE_REQUEST,
+                SendMessageResult.FAIL);
+        mTestLooper.dispatchAll();
+
+        // Use SystemAudioAutoInitiationAction to trigger SystemAudioActionFromTv
+        HdmiCecFeatureAction systemAudioAutoInitiationAction =
+                new SystemAudioAutoInitiationAction(mHdmiCecLocalDeviceTv, ADDR_AUDIO_SYSTEM);
+        mHdmiCecLocalDeviceTv.addAndStartAction(systemAudioAutoInitiationAction);
+        HdmiCecMessage reportSystemAudioMode =
+                HdmiCecMessageBuilder.buildReportSystemAudioMode(
+                        ADDR_AUDIO_SYSTEM,
+                        mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(),
+                        true);
+        mHdmiControlService.handleCecCommand(reportSystemAudioMode);
+        mTestLooper.dispatchAll();
+
+        assertThat(mHdmiCecLocalDeviceTv.getActions(SystemAudioActionFromTv.class)).hasSize(0);
+    }
+
     protected static class MockTvDevice extends HdmiCecLocalDeviceTv {
         MockTvDevice(HdmiControlService service) {
             super(service);
diff --git a/services/tests/servicestests/src/com/android/server/location/contexthub/ContextHubEndpointTest.java b/services/tests/servicestests/src/com/android/server/location/contexthub/ContextHubEndpointTest.java
index a4e77c0..1de864c 100644
--- a/services/tests/servicestests/src/com/android/server/location/contexthub/ContextHubEndpointTest.java
+++ b/services/tests/servicestests/src/com/android/server/location/contexthub/ContextHubEndpointTest.java
@@ -17,9 +17,9 @@
 package com.android.server.location.contexthub;
 
 import static com.google.common.truth.Truth.assertThat;
-
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.timeout;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -33,15 +33,21 @@
 import android.hardware.contexthub.IContextHubEndpoint;
 import android.hardware.contexthub.IContextHubEndpointCallback;
 import android.hardware.contexthub.IEndpointCommunication;
+import android.hardware.contexthub.Message;
 import android.hardware.contexthub.MessageDeliveryStatus;
 import android.hardware.contexthub.Reason;
+import android.hardware.location.IContextHubTransactionCallback;
+import android.hardware.location.NanoAppState;
 import android.os.Binder;
 import android.os.RemoteException;
 import android.platform.test.annotations.Presubmit;
-
+import android.util.Log;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.platform.app.InstrumentationRegistry;
 
+import java.util.Collections;
+import java.util.List;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -51,11 +57,11 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 
-import java.util.Collections;
-
 @RunWith(AndroidJUnit4.class)
 @Presubmit
 public class ContextHubEndpointTest {
+    private static final String TAG = "ContextHubEndpointTest";
+
     private static final int SESSION_ID_RANGE = ContextHubEndpointManager.SERVICE_SESSION_RANGE;
     private static final int MIN_SESSION_ID = 0;
     private static final int MAX_SESSION_ID = MIN_SESSION_ID + SESSION_ID_RANGE - 1;
@@ -206,6 +212,68 @@
         assertThat(mEndpointManager.getNumAvailableSessions()).isEqualTo(SESSION_ID_RANGE);
     }
 
+    @Test
+    public void testMessageTransaction() throws RemoteException {
+        IContextHubEndpoint endpoint = registerExampleEndpoint();
+        testMessageTransactionInternal(endpoint, /* deliverMessageStatus= */ true);
+
+        unregisterExampleEndpoint(endpoint);
+    }
+
+    @Test
+    public void testMessageTransactionCleanupOnUnregistration() throws RemoteException {
+        IContextHubEndpoint endpoint = registerExampleEndpoint();
+        testMessageTransactionInternal(endpoint, /* deliverMessageStatus= */ false);
+
+        unregisterExampleEndpoint(endpoint);
+        assertThat(mTransactionManager.numReliableMessageTransactionPending()).isEqualTo(0);
+    }
+
+    /** A helper method to create a session and validates reliable message sending. */
+    private void testMessageTransactionInternal(
+            IContextHubEndpoint endpoint, boolean deliverMessageStatus) throws RemoteException {
+        HubEndpointInfo targetInfo =
+                new HubEndpointInfo(
+                        TARGET_ENDPOINT_NAME,
+                        TARGET_ENDPOINT_ID,
+                        ENDPOINT_PACKAGE_NAME,
+                        Collections.emptyList());
+        int sessionId = endpoint.openSession(targetInfo, /* serviceDescriptor= */ null);
+        mEndpointManager.onEndpointSessionOpenComplete(sessionId);
+
+        final int messageType = 1234;
+        HubMessage message =
+                new HubMessage.Builder(messageType, new byte[] {1, 2, 3, 4, 5})
+                        .setResponseRequired(true)
+                        .build();
+        IContextHubTransactionCallback callback =
+                new IContextHubTransactionCallback.Stub() {
+                    @Override
+                    public void onQueryResponse(int result, List<NanoAppState> nanoappList) {
+                        Log.i(TAG, "Received onQueryResponse callback, result=" + result);
+                    }
+
+                    @Override
+                    public void onTransactionComplete(int result) {
+                        Log.i(TAG, "Received onTransactionComplete callback, result=" + result);
+                    }
+                };
+        endpoint.sendMessage(sessionId, message, callback);
+        ArgumentCaptor<Message> messageCaptor = ArgumentCaptor.forClass(Message.class);
+        verify(mMockEndpointCommunications, timeout(1000))
+                .sendMessageToEndpoint(eq(sessionId), messageCaptor.capture());
+        Message halMessage = messageCaptor.getValue();
+        assertThat(halMessage.type).isEqualTo(message.getMessageType());
+        assertThat(halMessage.content).isEqualTo(message.getMessageBody());
+        assertThat(mTransactionManager.numReliableMessageTransactionPending()).isEqualTo(1);
+
+        if (deliverMessageStatus) {
+            mEndpointManager.onMessageDeliveryStatusReceived(
+                    sessionId, halMessage.sequenceNumber, ErrorCode.OK);
+            assertThat(mTransactionManager.numReliableMessageTransactionPending()).isEqualTo(0);
+        }
+    }
+
     private IContextHubEndpoint registerExampleEndpoint() throws RemoteException {
         HubEndpointInfo info =
                 new HubEndpointInfo(
diff --git a/services/tests/servicestests/src/com/android/server/om/OverlayManagerSettingsTests.java b/services/tests/servicestests/src/com/android/server/om/OverlayManagerSettingsTests.java
index ad3855f..b1cf905 100644
--- a/services/tests/servicestests/src/com/android/server/om/OverlayManagerSettingsTests.java
+++ b/services/tests/servicestests/src/com/android/server/om/OverlayManagerSettingsTests.java
@@ -37,10 +37,12 @@
 import android.util.Xml;
 
 import androidx.annotation.NonNull;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.android.modules.utils.TypedXmlPullParser;
 
+import junitparams.JUnitParamsRunner;
+import junitparams.Parameters;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -56,7 +58,7 @@
 
 import javax.annotation.Nullable;
 
-@RunWith(AndroidJUnit4.class)
+@RunWith(JUnitParamsRunner.class)
 public class OverlayManagerSettingsTests {
     private OverlayManagerSettings mSettings;
     private static final int USER_0 = 0;
@@ -439,6 +441,39 @@
     }
 
     @Test
+    @Parameters(method = "getPreviousVersions")
+    public void testRestoreWithPreviousVersion(int version) throws Exception {
+        final String xml =
+                "<?xml version='1.0' encoding='utf-8' standalone='yes'?>\n"
+                        + "<overlays version='" + version + "'>\n"
+                        + "<item packageName='com.test.overlay'\n"
+                        + "      overlayName='test'\n"
+                        + "      userId='1234'\n"
+                        + "      targetPackageName='com.test.target'\n"
+                        + "      baseCodePath='/data/app/com.test.overlay-1/base.apk'\n"
+                        + "      state='" + STATE_DISABLED + "'\n"
+                        + "      isEnabled='false'\n"
+                        + "      category='test-category'\n"
+                        + "      isStatic='false'\n"
+                        + "      priority='0' />\n"
+                        + "</overlays>\n";
+        ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes(UTF_8));
+
+        mSettings.restore(is);
+        final OverlayIdentifier identifier = new OverlayIdentifier("com.test.overlay", "test");
+        OverlayInfo oi = mSettings.getOverlayInfo(identifier, 1234);
+        assertNotNull(oi);
+        assertEquals("com.test.overlay", oi.packageName);
+        assertEquals("test", oi.overlayName);
+        assertEquals("com.test.target", oi.targetPackageName);
+        assertEquals("/data/app/com.test.overlay-1/base.apk", oi.baseCodePath);
+        assertEquals(1234, oi.userId);
+        assertEquals(STATE_DISABLED, oi.state);
+        assertFalse(mSettings.getEnabled(identifier, 1234));
+        assertTrue(oi.constraints.isEmpty());
+    }
+
+    @Test
     public void testPersistAndRestore() throws Exception {
         insertSetting(OVERLAY_A_USER0);
         insertSetting(OVERLAY_B_USER1);
@@ -585,4 +620,11 @@
                         TextUtils.join(",", expected), TextUtils.join(",", actual)));
         }
     }
+
+    private static Integer[] getPreviousVersions() {
+        return new Integer[]{
+                3,
+                4,
+        };
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
index 58f7622..d6de314 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
@@ -159,7 +159,7 @@
     /**
      * Test for the first launch path, no settings file available.
      */
-    public void testFirstInitialize() {
+    public void disabled_testFirstInitialize() {
         assertResetTimes(START_TIME, START_TIME + INTERVAL);
     }
 
@@ -261,12 +261,12 @@
     // === Test for app side APIs ===
 
     /** Test for {@link android.content.pm.ShortcutManager#getMaxShortcutCountForActivity()} */
-    public void testGetMaxDynamicShortcutCount() {
+    public void disabled_testGetMaxDynamicShortcutCount() {
         assertEquals(MAX_SHORTCUTS, mManager.getMaxShortcutCountForActivity());
     }
 
     /** Test for {@link android.content.pm.ShortcutManager#getRemainingCallCount()} */
-    public void testGetRemainingCallCount() {
+    public void disabled_testGetRemainingCallCount() {
         assertEquals(MAX_UPDATES_PER_INTERVAL, mManager.getRemainingCallCount());
     }
 
@@ -793,7 +793,7 @@
         assertEquals(2, mManager.getRemainingCallCount());
     }
 
-    public void testDeleteAllDynamicShortcuts() {
+    public void disabled_testDeleteAllDynamicShortcuts() {
         final ShortcutInfo si1 = makeShortcut("shortcut1");
         final ShortcutInfo si2 = makeShortcut("shortcut2");
         final ShortcutInfo si3 = makeShortcut("shortcut3");
@@ -1036,7 +1036,7 @@
 */
     }
 
-    public void testCleanupDanglingBitmaps() throws Exception {
+    public void disabled_testCleanupDanglingBitmaps() throws Exception {
         assertBitmapDirectories(USER_10, EMPTY_STRINGS);
         assertBitmapDirectories(USER_11, EMPTY_STRINGS);
 
@@ -1702,7 +1702,7 @@
                 "s2");
     }
 
-    public void testCachedShortcuts_accessShortcutsPermission() {
+    public void disabled_testCachedShortcuts_accessShortcutsPermission() {
         runWithCaller(CALLING_PACKAGE_1, USER_10, () -> {
             assertTrue(mManager.setDynamicShortcuts(list(makeShortcut("s1"),
                     makeLongLivedShortcut("s2"), makeLongLivedShortcut("s3"),
@@ -1744,7 +1744,7 @@
         assertShortcutIds(mManager.getShortcuts(ShortcutManager.FLAG_MATCH_CACHED), "s3");
     }
 
-    public void testCachedShortcuts_canPassShortcutLimit() {
+    public void disabled_testCachedShortcuts_canPassShortcutLimit() {
         // Change the max number of shortcuts.
         mService.updateConfigurationLocked(ConfigConstants.KEY_MAX_SHORTCUTS + "=4");
 
@@ -1782,7 +1782,7 @@
 
     // === Test for launcher side APIs ===
 
-    public void testGetShortcuts() {
+    public void disabled_testGetShortcuts() {
 
         // Set up shortcuts.
 
@@ -2158,7 +2158,7 @@
         });
     }
 
-    public void testGetShortcuts_personsFlag() {
+    public void disabled_testGetShortcuts_personsFlag() {
         ShortcutInfo s = new ShortcutInfo.Builder(mClientContext, "id")
                 .setShortLabel("label")
                 .setActivity(new ComponentName(mClientContext, ShortcutActivity2.class))
@@ -2206,7 +2206,7 @@
     }
 
     // TODO resource
-    public void testGetShortcutInfo() {
+    public void disabled_testGetShortcutInfo() {
         // Create shortcuts.
         setCaller(CALLING_PACKAGE_1);
         final ShortcutInfo s1_1 = makeShortcut(
@@ -2362,7 +2362,7 @@
      * This is similar to the above test, except it used "disable" instead of "remove".  It also
      * does "enable".
      */
-    public void testDisableAndEnableShortcuts() {
+    public void disabled_testDisableAndEnableShortcuts() {
         runWithCaller(CALLING_PACKAGE_1, USER_10, () -> {
             final ShortcutInfo s1_1 = makeShortcutWithTimestamp("s1", 1000);
             final ShortcutInfo s1_2 = makeShortcutWithTimestamp("s2", 2000);
@@ -2487,7 +2487,7 @@
         });
     }
 
-    public void testDisableShortcuts_thenRepublish() {
+    public void disabled_testDisableShortcuts_thenRepublish() {
         runWithCaller(CALLING_PACKAGE_1, USER_10, () -> {
             assertTrue(mManager.setDynamicShortcuts(list(
                     makeShortcut("s1"), makeShortcut("s2"), makeShortcut("s3"))));
@@ -4230,7 +4230,7 @@
         // TODO Check all other fields
     }
 
-    public void testCleanupPackage() {
+    public void disabled_testCleanupPackage() {
         runWithCaller(CALLING_PACKAGE_1, USER_10, () -> {
             assertTrue(mManager.setDynamicShortcuts(list(
                     makeShortcut("s0_1"))));
@@ -4507,7 +4507,7 @@
         mService.saveDirtyInfo();
     }
 
-    public void testCleanupPackage_republishManifests() {
+    public void disabled_testCleanupPackage_republishManifests() {
         addManifestShortcutResource(
                 new ComponentName(CALLING_PACKAGE_1, ShortcutActivity.class.getName()),
                 R.xml.shortcut_2);
@@ -4847,7 +4847,7 @@
         assertEquals(expected, spi.canRestoreTo(mService, pi, true));
     }
 
-    public void testCanRestoreTo() {
+    public void disabled_testCanRestoreTo() {
         addPackage(CALLING_PACKAGE_1, CALLING_UID_1, 10, "sig1");
         addPackage(CALLING_PACKAGE_2, CALLING_UID_2, 10, "sig1", "sig2");
         addPackage(CALLING_PACKAGE_3, CALLING_UID_3, 10, "sig1");
@@ -5785,7 +5785,7 @@
         checkBackupAndRestore_success(/*firstRestore=*/ true);
     }
 
-    public void testBackupAndRestore_restoreToSuperSetSignatures() {
+    public void disabled_testBackupAndRestore_restoreToSuperSetSignatures() {
         prepareForBackupTest();
 
         // Change package signatures.
@@ -6913,12 +6913,12 @@
         mManager.hasShareTargets(CALLING_PACKAGE_1);
     }
 
-    public void testDumpsys_crossProfile() {
+    public void disabled_testDumpsys_crossProfile() {
         prepareCrossProfileDataSet();
         dumpsysOnLogcat("test1", /* force= */ true);
     }
 
-    public void testDumpsys_withIcons() throws IOException {
+    public void disabled_testDumpsys_withIcons() throws IOException {
         testIcons();
         // Dump after having some icons.
         dumpsysOnLogcat("test1", /* force= */ true);
diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserTypeTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserTypeTest.java
index 3047bcf..78a7e31 100644
--- a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserTypeTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserTypeTest.java
@@ -106,6 +106,7 @@
                 .setMaxAllowed(21)
                 .setBaseType(FLAG_PROFILE)
                 .setDefaultUserInfoPropertyFlags(FLAG_EPHEMERAL)
+                .setProfileParentRequired(true)
                 .setBadgeLabels(23, 24, 25)
                 .setBadgeColors(26, 27)
                 .setIconBadge(28)
@@ -125,6 +126,7 @@
         assertTrue(type.isEnabled());
         assertEquals(21, type.getMaxAllowed());
         assertEquals(FLAG_PROFILE | FLAG_EPHEMERAL, type.getDefaultUserInfoFlags());
+        assertTrue(type.isProfileParentRequired());
         assertEquals(28, type.getIconBadge());
         assertEquals(29, type.getBadgePlain());
         assertEquals(30, type.getBadgeNoBackground());
@@ -452,9 +454,10 @@
         assertTrue(aospType.getDefaultUserPropertiesReference().areItemsRestrictedOnHomeScreen());
 
         // userTypeOem1 should be created.
-        UserTypeDetails.Builder customType = builders.get(userTypeOem1);
-        assertNotNull(customType);
-        assertEquals(14, customType.createUserTypeDetails().getMaxAllowedPerParent());
+        assertNotNull(builders.get(userTypeOem1));
+        UserTypeDetails customType = builders.get(userTypeOem1).createUserTypeDetails();
+        assertEquals(14, customType.getMaxAllowedPerParent());
+        assertTrue(customType.isProfileParentRequired());
     }
 
     /** Tests {@link UserTypeFactory#customizeBuilders} for customizing a FULL user. */
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ConditionProvidersTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ConditionProvidersTest.java
index b332331..6b989cb 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/ConditionProvidersTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ConditionProvidersTest.java
@@ -38,6 +38,7 @@
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.service.notification.Condition;
 
+import com.android.internal.R;
 import com.android.server.UiServiceTestCase;
 
 import org.junit.Before;
@@ -46,6 +47,8 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+import java.util.List;
+
 public class ConditionProvidersTest extends UiServiceTestCase {
 
     private ConditionProviders mProviders;
@@ -169,4 +172,15 @@
 
         assertTrue(mProviders.getApproved(userId, true).isEmpty());
     }
+
+    @Test
+    public void getDefaultDndAccessPackages_returnsPackages() {
+        mContext.getOrCreateTestableResources().addOverride(
+                R.string.config_defaultDndAccessPackages,
+                "com.example.a:com.example.b::::com.example.c");
+
+        List<String> packages = ConditionProviders.getDefaultDndAccessPackages(mContext);
+
+        assertThat(packages).containsExactly("com.example.a", "com.example.b", "com.example.c");
+    }
 }
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java
index 67e85ff..5dea44d 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java
@@ -4495,27 +4495,6 @@
     }
 
     @Test
-    public void testBubblePreference_sameVersionWithSAWPermission() throws Exception {
-        when(mAppOpsManager.noteOpNoThrow(eq(OP_SYSTEM_ALERT_WINDOW), anyInt(),
-                anyString(), eq(null), anyString())).thenReturn(MODE_ALLOWED);
-
-        final String xml = "<ranking version=\"4\">\n"
-                + "<package name=\"" + PKG_O + "\" uid=\"" + UID_O + "\">\n"
-                + "<channel id=\"someId\" name=\"hi\""
-                + " importance=\"3\"/>"
-                + "</package>"
-                + "</ranking>";
-        TypedXmlPullParser parser = Xml.newFastPullParser();
-        parser.setInput(new BufferedInputStream(new ByteArrayInputStream(xml.getBytes())),
-                null);
-        parser.nextTag();
-        mHelper.readXml(parser, false, UserHandle.USER_ALL);
-
-        assertEquals(BUBBLE_PREFERENCE_ALL, mHelper.getBubblePreference(PKG_O, UID_O));
-        assertEquals(0, mHelper.getAppLockedFields(PKG_O, UID_O));
-    }
-
-    @Test
     public void testBubblePreference_upgradeWithSAWThenUserOverride() throws Exception {
         when(mAppOpsManager.noteOpNoThrow(eq(OP_SYSTEM_ALERT_WINDOW), anyInt(),
                 anyString(), eq(null), anyString())).thenReturn(MODE_ALLOWED);
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenConfigTrimmerTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenConfigTrimmerTest.java
new file mode 100644
index 0000000..154a905
--- /dev/null
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenConfigTrimmerTest.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2025 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.notification;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.os.Parcel;
+import android.service.notification.ZenModeConfig;
+import android.service.notification.ZenModeConfig.ZenRule;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.internal.R;
+import com.android.server.UiServiceTestCase;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class ZenConfigTrimmerTest extends UiServiceTestCase {
+
+    private static final String TRUSTED_PACKAGE = "com.trust.me";
+    private static final int ONE_PERCENT = 1_500;
+
+    private ZenConfigTrimmer mTrimmer;
+
+    @Before
+    public void setUp() {
+        mContext.getOrCreateTestableResources().addOverride(
+                R.string.config_defaultDndAccessPackages, TRUSTED_PACKAGE);
+
+        mTrimmer = new ZenConfigTrimmer(mContext);
+    }
+
+    @Test
+    public void trimToMaximumSize_belowMax_untouched() {
+        ZenModeConfig config = new ZenModeConfig();
+        addZenRule(config, "1", "pkg1", 10 * ONE_PERCENT);
+        addZenRule(config, "2", "pkg1", 10 * ONE_PERCENT);
+        addZenRule(config, "3", "pkg1", 10 * ONE_PERCENT);
+        addZenRule(config, "4", "pkg2", 20 * ONE_PERCENT);
+        addZenRule(config, "5", "pkg2", 20 * ONE_PERCENT);
+
+        mTrimmer.trimToMaximumSize(config);
+
+        assertThat(config.automaticRules.keySet()).containsExactly("1", "2", "3", "4", "5");
+    }
+
+    @Test
+    public void trimToMaximumSize_exceedsMax_removesAllRulesOfLargestPackages() {
+        ZenModeConfig config = new ZenModeConfig();
+        addZenRule(config, "1", "pkg1", 10 * ONE_PERCENT);
+        addZenRule(config, "2", "pkg1", 10 * ONE_PERCENT);
+        addZenRule(config, "3", "pkg1", 10 * ONE_PERCENT);
+        addZenRule(config, "4", "pkg2", 20 * ONE_PERCENT);
+        addZenRule(config, "5", "pkg2", 20 * ONE_PERCENT);
+        addZenRule(config, "6", "pkg3", 35 * ONE_PERCENT);
+        addZenRule(config, "7", "pkg4", 38 * ONE_PERCENT);
+
+        mTrimmer.trimToMaximumSize(config);
+
+        assertThat(config.automaticRules.keySet()).containsExactly("1", "2", "3", "6");
+        assertThat(config.automaticRules.values().stream().map(r -> r.pkg).distinct())
+                .containsExactly("pkg1", "pkg3");
+    }
+
+    @Test
+    public void trimToMaximumSize_keepsRulesFromTrustedPackages() {
+        ZenModeConfig config = new ZenModeConfig();
+        addZenRule(config, "1", "pkg1", 10 * ONE_PERCENT);
+        addZenRule(config, "2", "pkg1", 10 * ONE_PERCENT);
+        addZenRule(config, "3", "pkg1", 10 * ONE_PERCENT);
+        addZenRule(config, "4", TRUSTED_PACKAGE, 60 * ONE_PERCENT);
+        addZenRule(config, "5", "pkg2", 20 * ONE_PERCENT);
+        addZenRule(config, "6", "pkg3", 35 * ONE_PERCENT);
+
+        mTrimmer.trimToMaximumSize(config);
+
+        assertThat(config.automaticRules.keySet()).containsExactly("4", "5");
+        assertThat(config.automaticRules.values().stream().map(r -> r.pkg).distinct())
+                .containsExactly(TRUSTED_PACKAGE, "pkg2");
+    }
+
+    /**
+     * Create a ZenRule that, when serialized to a Parcel, will take <em>approximately</em>
+     * {@code desiredSize} bytes (within 100 bytes). Try to make the tests not rely on a very tight
+     * fit.
+     */
+    private static void addZenRule(ZenModeConfig config, String id, String pkg, int desiredSize) {
+        ZenRule rule = new ZenRule();
+        rule.id = id;
+        rule.pkg = pkg;
+        config.automaticRules.put(id, rule);
+
+        // Make the ZenRule as large as desired. Not to the exact byte, because otherwise this
+        // test would have to be adjusted whenever we change the parceling of ZenRule in any way.
+        // (Still might need adjustment if we change the serialization _significantly_).
+        int nameLength = desiredSize - id.length() - pkg.length() - 232;
+        rule.name = "A".repeat(nameLength);
+
+        Parcel verification = Parcel.obtain();
+        try {
+            verification.writeParcelable(rule, 0);
+            assertThat(verification.dataSize()).isWithin(100).of(desiredSize);
+        } finally {
+            verification.recycle();
+        }
+    }
+}
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java
index 0ab11e0..51891ef 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java
@@ -90,6 +90,7 @@
 import static com.android.os.dnd.DNDProtoEnums.ROOT_CONFIG;
 import static com.android.os.dnd.DNDProtoEnums.STATE_ALLOW;
 import static com.android.os.dnd.DNDProtoEnums.STATE_DISALLOW;
+import static com.android.server.notification.Flags.FLAG_LIMIT_ZEN_CONFIG_SIZE;
 import static com.android.server.notification.Flags.FLAG_PREVENT_ZEN_DEVICE_EFFECTS_WHILE_DRIVING;
 import static com.android.server.notification.ZenModeEventLogger.ACTIVE_RULE_TYPE_MANUAL;
 import static com.android.server.notification.ZenModeHelper.RULE_LIMIT_PER_PACKAGE;
@@ -236,6 +237,7 @@
 @SmallTest
 @SuppressLint("GuardedBy") // It's ok for this test to access guarded methods from the service.
 @RunWith(ParameterizedAndroidJunit4.class)
+@EnableFlags(FLAG_LIMIT_ZEN_CONFIG_SIZE) // Should be parameterization, but off path does nothing.
 @TestableLooper.RunWithLooper
 public class ZenModeHelperTest extends UiServiceTestCase {
 
@@ -300,7 +302,7 @@
 
     @Parameters(name = "{0}")
     public static List<FlagsParameterization> getParams() {
-        return FlagsParameterization.allCombinationsOf(FLAG_MODES_UI, FLAG_BACKUP_RESTORE_LOGGING,
+        return FlagsParameterization.allCombinationsOf(FLAG_BACKUP_RESTORE_LOGGING,
                 com.android.server.notification.Flags.FLAG_FIX_CALLING_UID_FROM_CPS);
     }
 
@@ -7480,6 +7482,45 @@
         assertThat(getZenRule(ruleId).lastActivation).isNull();
     }
 
+    @Test
+    @EnableFlags(FLAG_LIMIT_ZEN_CONFIG_SIZE)
+    public void addAutomaticZenRule_trimsConfiguration() {
+        mZenModeHelper.mConfig.automaticRules.clear();
+        AutomaticZenRule smallRule = new AutomaticZenRule.Builder("Reasonable", CONDITION_ID)
+                .setConfigurationActivity(new ComponentName(mPkg, "cls"))
+                .build();
+        AutomaticZenRule systemRule = new AutomaticZenRule.Builder("System", CONDITION_ID)
+                .setOwner(new ComponentName("android", "ScheduleConditionProvider"))
+                .build();
+
+        AutomaticZenRule bigRule = new AutomaticZenRule.Builder("Yuge", CONDITION_ID)
+                .setConfigurationActivity(new ComponentName("evil.package", "cls"))
+                .setTriggerDescription("0123456789".repeat(6000)) // ~60k bytes utf16.
+                .build();
+
+        String systemRuleId = mZenModeHelper.addAutomaticZenRule(UserHandle.CURRENT, "android",
+                systemRule, ORIGIN_SYSTEM, "add", SYSTEM_UID);
+        String smallRuleId = mZenModeHelper.addAutomaticZenRule(UserHandle.CURRENT, mPkg, smallRule,
+                ORIGIN_APP, "add", CUSTOM_PKG_UID);
+        String bigRuleId1 =  mZenModeHelper.addAutomaticZenRule(UserHandle.CURRENT, "evil.package",
+                bigRule, ORIGIN_APP, "add", CUSTOM_PKG_UID);
+        assertThat(mZenModeHelper.mConfig.automaticRules.keySet()).containsExactly(
+                systemRuleId, smallRuleId, bigRuleId1);
+
+        String bigRuleId2 =  mZenModeHelper.addAutomaticZenRule(UserHandle.CURRENT, "evil.package",
+                bigRule, ORIGIN_APP, "add", CUSTOM_PKG_UID);
+        assertThat(mZenModeHelper.mConfig.automaticRules.keySet()).containsExactly(
+                systemRuleId, smallRuleId, bigRuleId1, bigRuleId2);
+
+        // This should go over the threshold
+        String bigRuleId3 = mZenModeHelper.addAutomaticZenRule(UserHandle.CURRENT, "evil.package",
+                bigRule, ORIGIN_APP, "add", CUSTOM_PKG_UID);
+
+        // Rules from evil.package are gone.
+        assertThat(mZenModeHelper.mConfig.automaticRules.keySet()).containsExactly(
+                systemRuleId, smallRuleId);
+    }
+
     private static void addZenRule(ZenModeConfig config, String id, String ownerPkg, int zenMode,
             @Nullable ZenPolicy zenPolicy) {
         ZenRule rule = new ZenRule();
diff --git a/services/tests/vibrator/src/com/android/server/vibrator/DeviceAdapterTest.java b/services/tests/vibrator/src/com/android/server/vibrator/DeviceAdapterTest.java
index d5548a4..f091a65 100644
--- a/services/tests/vibrator/src/com/android/server/vibrator/DeviceAdapterTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/DeviceAdapterTest.java
@@ -497,19 +497,19 @@
 
     private VibratorController createEmptyVibratorController(int vibratorId) {
         return new FakeVibratorControllerProvider(mTestLooper.getLooper())
-                .newVibratorController(vibratorId, (id, vibrationId)  -> {});
+                .newVibratorController(vibratorId, (id, vibrationId, stepId)  -> {});
     }
 
     private VibratorController createBasicVibratorController(int vibratorId) {
         FakeVibratorControllerProvider provider = createVibratorProviderWithEffects(
                 IVibrator.CAP_COMPOSE_EFFECTS);
-        return provider.newVibratorController(vibratorId, (id, vibrationId)  -> {});
+        return provider.newVibratorController(vibratorId, (id, vibrationId, stepId)  -> {});
     }
 
     private VibratorController createPwleWithoutFrequenciesVibratorController(int vibratorId) {
         FakeVibratorControllerProvider provider = createVibratorProviderWithEffects(
                 IVibrator.CAP_COMPOSE_EFFECTS, IVibrator.CAP_COMPOSE_PWLE_EFFECTS);
-        return provider.newVibratorController(vibratorId, (id, vibrationId)  -> {});
+        return provider.newVibratorController(vibratorId, (id, vibrationId, stepId)  -> {});
     }
 
     private VibratorController createPwleVibratorController(int vibratorId) {
@@ -519,7 +519,7 @@
         provider.setMinFrequency(TEST_MIN_FREQUENCY);
         provider.setFrequencyResolution(TEST_FREQUENCY_RESOLUTION);
         provider.setMaxAmplitudes(TEST_AMPLITUDE_MAP);
-        return provider.newVibratorController(vibratorId, (id, vibrationId)  -> {});
+        return provider.newVibratorController(vibratorId, (id, vibrationId, stepId)  -> {});
     }
 
     private VibratorController createPwleV2VibratorController(int vibratorId) {
@@ -538,7 +538,7 @@
         provider.setMinEnvelopeEffectControlPointDurationMillis(
                 TEST_MIN_ENVELOPE_EFFECT_CONTROL_POINT_DURATION_MILLIS);
 
-        return provider.newVibratorController(vibratorId, (id, vibrationId)  -> {});
+        return provider.newVibratorController(vibratorId, (id, vibrationId, stepId)  -> {});
     }
 
     private FakeVibratorControllerProvider createVibratorProviderWithEffects(int... capabilities) {
diff --git a/services/tests/vibrator/src/com/android/server/vibrator/VibrationThreadTest.java b/services/tests/vibrator/src/com/android/server/vibrator/VibrationThreadTest.java
index 5f2af0a..04335df 100644
--- a/services/tests/vibrator/src/com/android/server/vibrator/VibrationThreadTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/VibrationThreadTest.java
@@ -17,14 +17,17 @@
 package com.android.server.vibrator;
 
 import static android.os.VibrationAttributes.USAGE_RINGTONE;
+import static android.os.VibrationEffect.Composition.PRIMITIVE_CLICK;
+import static android.os.VibrationEffect.Composition.PRIMITIVE_SPIN;
+import static android.os.VibrationEffect.Composition.PRIMITIVE_TICK;
+import static android.os.VibrationEffect.EFFECT_CLICK;
+import static android.os.VibrationEffect.EFFECT_TICK;
 import static android.os.VibrationEffect.VibrationParameter.targetAmplitude;
 import static android.os.VibrationEffect.VibrationParameter.targetFrequency;
 
 import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyLong;
@@ -66,7 +69,6 @@
 import android.os.vibrator.VibrationEffectSegment;
 import android.platform.test.annotations.DisableFlags;
 import android.platform.test.annotations.EnableFlags;
-import android.platform.test.annotations.RequiresFlagsEnabled;
 import android.platform.test.flag.junit.CheckFlagsRule;
 import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.platform.test.flag.junit.SetFlagsRule;
@@ -153,9 +155,10 @@
         when(mPackageManagerInternalMock.getSystemUiServiceComponent())
                 .thenReturn(new ComponentName("", ""));
         doAnswer(answer -> {
-            mVibrationConductor.notifyVibratorComplete(answer.getArgument(0));
+            mVibrationConductor.notifyVibratorComplete(
+                    answer.getArgument(0), answer.getArgument(2));
             return null;
-        }).when(mControllerCallbacks).onComplete(anyInt(), anyLong());
+        }).when(mControllerCallbacks).onComplete(anyInt(), anyLong(), anyLong());
 
         LocalServices.removeServiceForTest(PackageManagerInternal.class);
         LocalServices.addService(PackageManagerInternal.class, mPackageManagerInternalMock);
@@ -186,24 +189,24 @@
     public void vibrate_noVibrator_ignoresVibration() {
         mVibratorProviders.clear();
         CombinedVibration effect = CombinedVibration.createParallel(
-                VibrationEffect.get(VibrationEffect.EFFECT_CLICK));
+                VibrationEffect.get(EFFECT_CLICK));
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
-        verify(mControllerCallbacks, never()).onComplete(anyInt(), eq(vibration.id));
+        verify(mControllerCallbacks, never()).onComplete(anyInt(), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.IGNORED_UNSUPPORTED);
     }
 
     @Test
     public void vibrate_missingVibrators_ignoresVibration() {
         CombinedVibration effect = CombinedVibration.startSequential()
-                .addNext(2, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
-                .addNext(3, VibrationEffect.get(VibrationEffect.EFFECT_TICK))
+                .addNext(2, VibrationEffect.get(EFFECT_CLICK))
+                .addNext(3, VibrationEffect.get(EFFECT_TICK))
                 .combine();
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
-        verify(mControllerCallbacks, never()).onComplete(anyInt(), eq(vibration.id));
+        verify(mControllerCallbacks, never()).onComplete(anyInt(), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.IGNORED_UNSUPPORTED);
     }
 
@@ -217,13 +220,14 @@
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(10L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
-        assertEquals(Arrays.asList(expectedOneShot(10)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
-        assertEquals(expectedAmplitudes(100), mVibratorProviders.get(VIBRATOR_ID).getAmplitudes());
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(10)).inOrder();
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(100)).inOrder();
     }
 
     @Test
@@ -234,13 +238,13 @@
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(10L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
-        assertEquals(Arrays.asList(expectedOneShot(10)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
-        assertTrue(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes().isEmpty());
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(10)).inOrder();
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes()).isEmpty();
     }
 
     @Test
@@ -254,18 +258,18 @@
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(15L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
-        assertEquals(Arrays.asList(expectedOneShot(15)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
-        assertEquals(expectedAmplitudes(1, 2, 3),
-                mVibratorProviders.get(VIBRATOR_ID).getAmplitudes());
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(15)).inOrder();
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(1, 2, 3)).inOrder();
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ADAPTIVE_HAPTICS_ENABLED)
+    @EnableFlags(Flags.FLAG_ADAPTIVE_HAPTICS_ENABLED)
     public void vibrate_singleWaveformWithAdaptiveHapticsScaling_scalesAmplitudesProperly() {
         // No user settings scale.
         setUserSetting(Settings.System.RING_VIBRATION_INTENSITY,
@@ -282,16 +286,17 @@
         waitForCompletion();
 
         verify(mStatsLoggerMock, never()).logVibrationParamRequestTimeout(UID);
-        assertEquals(Arrays.asList(expectedOneShot(15)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(15)).inOrder();
         List<Float> amplitudes = mVibratorProviders.get(VIBRATOR_ID).getAmplitudes();
         for (int i = 0; i < amplitudes.size(); i++) {
-            assertTrue(amplitudes.get(i) < 1 / 255f);
+            assertWithMessage("For amplitude index %s", i)
+                    .that(amplitudes.get(i)).isLessThan(1 / 255f);
         }
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ADAPTIVE_HAPTICS_ENABLED)
+    @EnableFlags(Flags.FLAG_ADAPTIVE_HAPTICS_ENABLED)
     public void vibrate_withVibrationParamsRequestStalling_timeoutRequestAndApplyNoScaling() {
         // No user settings scale.
         setUserSetting(Settings.System.RING_VIBRATION_INTENSITY,
@@ -306,10 +311,10 @@
         waitForCompletion();
 
         verify(mStatsLoggerMock).logVibrationParamRequestTimeout(UID);
-        assertEquals(Arrays.asList(expectedOneShot(15)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
-        assertEquals(expectedAmplitudes(1, 1, 1),
-                mVibratorProviders.get(VIBRATOR_ID).getAmplitudes());
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(15)).inOrder();
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(1, 1, 1)).inOrder();
     }
 
     @Test
@@ -322,31 +327,33 @@
         VibrationEffect effect = VibrationEffect.createWaveform(new long[]{5, 5, 5}, amplitudes, 0);
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(
+        assertThat(
                 waitUntil(() -> fakeVibrator.getAmplitudes().size() > 2 * amplitudes.length,
-                        TEST_TIMEOUT_MILLIS));
+                        TEST_TIMEOUT_MILLIS)).isTrue();
         // Vibration still running after 2 cycles.
-        assertTrue(mThread.isRunningVibrationId(vibration.id));
-        assertTrue(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mThread.isRunningVibrationId(vibration.id)).isTrue();
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isTrue();
 
         Vibration.EndInfo cancelVibrationInfo = new Vibration.EndInfo(Status.CANCELLED_SUPERSEDED,
                 new CallerInfo(VibrationAttributes.createForUsage(VibrationAttributes.USAGE_ALARM),
                         /* uid= */ 1, /* deviceId= */ -1, /* opPkg= */ null, /* reason= */ null));
         mVibrationConductor.notifyCancelled(cancelVibrationInfo, /* immediate= */ false);
         waitForCompletion();
-        assertFalse(mThread.isRunningVibrationId(vibration.id));
+        assertThat(mThread.isRunningVibrationId(vibration.id)).isFalse();
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), anyLong());
         verify(mManagerHooks).noteVibratorOff(eq(UID));
         verifyCallbacksTriggered(vibration, Status.CANCELLED_SUPERSEDED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
         List<Float> playedAmplitudes = fakeVibrator.getAmplitudes();
-        assertFalse(fakeVibrator.getEffectSegments(vibration.id).isEmpty());
-        assertFalse(playedAmplitudes.isEmpty());
+        assertThat(fakeVibrator.getEffectSegments(vibration.id)).isNotEmpty();
+        assertThat(playedAmplitudes).isNotEmpty();
 
         for (int i = 0; i < playedAmplitudes.size(); i++) {
-            assertEquals(amplitudes[i % amplitudes.length] / 255f, playedAmplitudes.get(i), 1e-5);
+            assertWithMessage("For amplitude index %s", i)
+                    .that(amplitudes[i % amplitudes.length] / 255f)
+                    .isWithin(1e-5f).of(playedAmplitudes.get(i));
         }
     }
 
@@ -361,15 +368,16 @@
                 new long[]{1, 10, 100}, amplitudes, 0);
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(waitUntil(() -> !fakeVibrator.getAmplitudes().isEmpty(), TEST_TIMEOUT_MILLIS));
+        assertThat(waitUntil(() -> !fakeVibrator.getAmplitudes().isEmpty(), TEST_TIMEOUT_MILLIS))
+                .isTrue();
         mVibrationConductor.notifyCancelled(
                 new Vibration.EndInfo(Status.CANCELLED_BY_USER), /* immediate= */ false);
         waitForCompletion();
 
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_USER);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
-        assertEquals(Arrays.asList(expectedOneShot(5000)),
-                fakeVibrator.getEffectSegments(vibration.id));
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
+        assertThat(fakeVibrator.getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(5000)).inOrder();
     }
 
     @Test
@@ -388,7 +396,7 @@
         assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
         assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
-                .isEqualTo(expectedOneShots(100L, 150L));
+                .containsExactlyElementsIn(expectedOneShots(100L, 150L)).inOrder();
     }
 
     @Test
@@ -409,9 +417,10 @@
         assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
         assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
-                .isEqualTo(expectedOneShots(200L, 50L));
+                .containsExactlyElementsIn(expectedOneShots(200L, 50L)).inOrder();
     }
 
+    @EnableFlags(Flags.FLAG_FIX_VIBRATION_THREAD_CALLBACK_HANDLING)
     @LargeTest
     @Test
     public void vibrate_singleVibratorRepeatingPatternWithZeroDurationSteps_repeatsEffectCorrectly()
@@ -429,8 +438,8 @@
         // 300ms ON (100ms + 200ms looping to the start and skipping first 0ms)
         // 150ms ON (100ms + 50ms, skips 0ms)
         // 300ms ON (100ms + 200ms looping to the start and skipping first 0ms)
-        assertTrue(waitUntil(() -> fakeVibrator.getEffectSegments(vibration.id).size() >= 5,
-                5000L + TEST_TIMEOUT_MILLIS));
+        assertThat(waitUntil(() -> fakeVibrator.getEffectSegments(vibration.id).size() >= 5,
+                5000L + TEST_TIMEOUT_MILLIS)).isTrue();
         mVibrationConductor.notifyCancelled(
                 new Vibration.EndInfo(Status.CANCELLED_BY_USER), /* immediate= */ false);
         waitForCompletion();
@@ -440,7 +449,32 @@
 
         assertThat(
                 mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id).subList(0, 5))
-                .isEqualTo(expectedOneShots(200L, 150L, 300L, 150L, 300L));
+                .containsExactlyElementsIn(expectedOneShots(200L, 150L, 300L, 150L, 300L))
+                .inOrder();
+    }
+
+    @EnableFlags(Flags.FLAG_FIX_VIBRATION_THREAD_CALLBACK_HANDLING)
+    @Test
+    public void vibrate_singleVibratorPatternWithCallbackDelay_oldCallbacksIgnored() {
+        FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
+        fakeVibrator.setCompletionCallbackDelay(100); // 100ms delay to notify service.
+        fakeVibrator.setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL);
+
+        VibrationEffect effect = VibrationEffect.createWaveform(
+                /* timings= */ new long[]{0, 200, 50, 400}, /* repeat= */ -1);
+        HalVibration vibration = startThreadAndDispatcher(effect);
+        waitForCompletion(800 + TEST_TIMEOUT_MILLIS); // 200 + 50 + 400 + 100ms delay
+
+        verifyCallbacksTriggered(vibration, Status.FINISHED);
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
+
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), eq(1L));
+        // Step id = 2 skipped by the 50ms OFF step after the 200ms ON step.
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), eq(3L));
+
+        // First callback ignored, did not cause the vibrator to turn back on during the 400ms step.
+        assertThat(fakeVibrator.getEffectSegments(vibration.id))
+                .containsExactlyElementsIn(expectedOneShots(200L, 400L)).inOrder();
     }
 
     @Test
@@ -462,16 +496,16 @@
                 .compose();
         HalVibration vibration = startThreadAndDispatcher(repeatingEffect);
 
-        assertTrue(waitUntil(() -> !fakeVibrator.getEffectSegments(vibration.id).isEmpty(),
-                TEST_TIMEOUT_MILLIS));
+        assertThat(waitUntil(() -> !fakeVibrator.getEffectSegments(vibration.id).isEmpty(),
+                TEST_TIMEOUT_MILLIS)).isTrue();
         mVibrationConductor.notifyCancelled(
                 new Vibration.EndInfo(Status.CANCELLED_BY_USER), /* immediate= */ false);
         waitForCompletion();
 
         // PWLE size max was used to generate a single vibrate call with 10 segments.
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_USER);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
-        assertEquals(10, fakeVibrator.getEffectSegments(vibration.id).size());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
+        assertThat(fakeVibrator.getEffectSegments(vibration.id)).hasSize(10);
     }
 
     @Test
@@ -479,28 +513,28 @@
             throws Exception {
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
         fakeVibrator.setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
-        fakeVibrator.setSupportedPrimitives(VibrationEffect.Composition.PRIMITIVE_CLICK);
+        fakeVibrator.setSupportedPrimitives(PRIMITIVE_CLICK);
         fakeVibrator.setCompositionSizeMax(10);
 
         VibrationEffect effect = VibrationEffect.startComposition()
                 // Very long delay so thread will be cancelled after first PWLE is triggered.
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f, 100)
+                .addPrimitive(PRIMITIVE_CLICK, 1f, 100)
                 .compose();
         VibrationEffect repeatingEffect = VibrationEffect.startComposition()
                 .repeatEffectIndefinitely(effect)
                 .compose();
         HalVibration vibration = startThreadAndDispatcher(repeatingEffect);
 
-        assertTrue(waitUntil(() -> !fakeVibrator.getEffectSegments(vibration.id).isEmpty(),
-                TEST_TIMEOUT_MILLIS));
+        assertThat(waitUntil(() -> !fakeVibrator.getEffectSegments(vibration.id).isEmpty(),
+                TEST_TIMEOUT_MILLIS)).isTrue();
         mVibrationConductor.notifyCancelled(
                 new Vibration.EndInfo(Status.CANCELLED_BY_SCREEN_OFF), /* immediate= */ false);
         waitForCompletion();
 
         // Composition size max was used to generate a single vibrate call with 10 primitives.
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_SCREEN_OFF);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
-        assertEquals(10, fakeVibrator.getEffectSegments(vibration.id).size());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
+        assertThat(fakeVibrator.getEffectSegments(vibration.id)).hasSize(10);
     }
 
     @Test
@@ -514,15 +548,16 @@
                 new long[]{5000, 500, 50}, amplitudes, 0);
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(waitUntil(() -> !fakeVibrator.getAmplitudes().isEmpty(), TEST_TIMEOUT_MILLIS));
+        assertThat(waitUntil(() -> !fakeVibrator.getAmplitudes().isEmpty(), TEST_TIMEOUT_MILLIS))
+                .isTrue();
         mVibrationConductor.notifyCancelled(
                 new Vibration.EndInfo(Status.CANCELLED_BY_USER), /* immediate= */ false);
         waitForCompletion();
 
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_USER);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
-        assertEquals(Arrays.asList(expectedOneShot(5550)),
-                fakeVibrator.getEffectSegments(vibration.id));
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
+        assertThat(fakeVibrator.getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(5550)).inOrder();
     }
 
     @LargeTest
@@ -538,42 +573,42 @@
                 /* amplitudes= */ new int[]{1, 2}, /* repeat= */ 0);
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(waitUntil(() -> fakeVibrator.getEffectSegments(vibration.id).size() > 1,
-                expectedOnDuration + TEST_TIMEOUT_MILLIS));
+        assertThat(waitUntil(() -> fakeVibrator.getEffectSegments(vibration.id).size() > 1,
+                expectedOnDuration + TEST_TIMEOUT_MILLIS)).isTrue();
         mVibrationConductor.notifyCancelled(
                 new Vibration.EndInfo(Status.CANCELLED_BY_USER), /* immediate= */ false);
         waitForCompletion();
 
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_USER);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
         List<VibrationEffectSegment> effectSegments = fakeVibrator.getEffectSegments(vibration.id);
         // First time, turn vibrator ON for the expected fixed duration.
-        assertEquals(expectedOnDuration, effectSegments.get(0).getDuration());
+        assertThat(effectSegments.get(0).getDuration()).isEqualTo(expectedOnDuration);
         // Vibrator turns off in the middle of the second execution of the first step. Expect it to
         // be turned back ON at least for the fixed duration + the remaining duration of the step.
-        assertTrue(expectedOnDuration < effectSegments.get(1).getDuration());
+        assertThat(effectSegments.get(1).getDuration()).isGreaterThan(expectedOnDuration);
         // Set amplitudes for a cycle {1, 2}, start second loop then turn it back on to same value.
-        assertEquals(expectedAmplitudes(1, 2, 1, 1),
-                mVibratorProviders.get(VIBRATOR_ID).getAmplitudes().subList(0, 4));
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes().subList(0, 4))
+                .containsExactlyElementsIn(expectedAmplitudes(1, 2, 1, 1))
+                .inOrder();
     }
 
     @Test
     public void vibrate_singleVibratorPredefinedCancel_cancelsVibrationImmediately()
             throws Exception {
         mVibratorProviders.get(VIBRATOR_ID).setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
-        mVibratorProviders.get(VIBRATOR_ID).setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK);
+        mVibratorProviders.get(VIBRATOR_ID).setSupportedPrimitives(PRIMITIVE_CLICK);
 
         VibrationEffect effect = VibrationEffect.startComposition()
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f, 100)
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f, 100)
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f, 100)
+                .addPrimitive(PRIMITIVE_CLICK, 1f, 100)
+                .addPrimitive(PRIMITIVE_CLICK, 1f, 100)
+                .addPrimitive(PRIMITIVE_CLICK, 1f, 100)
                 .compose();
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(waitUntil(() -> mControllers.get(VIBRATOR_ID).isVibrating(),
-                TEST_TIMEOUT_MILLIS));
-        assertTrue(mThread.isRunningVibrationId(vibration.id));
+        assertThat(waitUntil(() -> mControllers.get(VIBRATOR_ID).isVibrating(),
+                TEST_TIMEOUT_MILLIS)).isTrue();
+        assertThat(mThread.isRunningVibrationId(vibration.id)).isTrue();
 
         // Run cancel in a separate thread so if VibrationThread.cancel blocks then this test should
         // fail at waitForCompletion(vibrationThread) if the vibration not cancelled immediately.
@@ -587,11 +622,11 @@
         cancellingThread.join();
 
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_SETTINGS_UPDATE);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
     }
 
     @Test
-    @RequiresFlagsEnabled(android.os.vibrator.Flags.FLAG_VENDOR_VIBRATION_EFFECTS)
+    @EnableFlags(Flags.FLAG_VENDOR_VIBRATION_EFFECTS)
     public void vibrate_singleVibratorVendorEffectCancel_cancelsVibrationImmediately()
             throws Exception {
         mVibratorProviders.get(VIBRATOR_ID).setCapabilities(IVibrator.CAP_PERFORM_VENDOR_EFFECTS);
@@ -601,9 +636,9 @@
         VibrationEffect effect = VibrationEffect.createVendorEffect(createTestVendorData());
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(waitUntil(() -> mControllers.get(VIBRATOR_ID).isVibrating(),
-                TEST_TIMEOUT_MILLIS));
-        assertTrue(mThread.isRunningVibrationId(vibration.id));
+        assertThat(waitUntil(() -> mControllers.get(VIBRATOR_ID).isVibrating(),
+                TEST_TIMEOUT_MILLIS)).isTrue();
+        assertThat(mThread.isRunningVibrationId(vibration.id)).isTrue();
 
         // Run cancel in a separate thread so if VibrationThread.cancel blocks then this test should
         // fail at waitForCompletion(vibrationThread) if the vibration not cancelled immediately.
@@ -617,7 +652,7 @@
         cancellingThread.join();
 
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_SETTINGS_UPDATE);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
     }
 
     @Test
@@ -628,9 +663,9 @@
         VibrationEffect effect = VibrationEffect.createWaveform(new long[]{100}, new int[]{100}, 0);
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(waitUntil(() -> mControllers.get(VIBRATOR_ID).isVibrating(),
-                TEST_TIMEOUT_MILLIS));
-        assertTrue(mThread.isRunningVibrationId(vibration.id));
+        assertThat(waitUntil(() -> mControllers.get(VIBRATOR_ID).isVibrating(),
+                TEST_TIMEOUT_MILLIS)).isTrue();
+        assertThat(mThread.isRunningVibrationId(vibration.id)).isTrue();
 
         // Run cancel in a separate thread so if VibrationThread.cancel blocks then this test should
         // fail at waitForCompletion(vibrationThread) if the vibration not cancelled immediately.
@@ -644,7 +679,7 @@
         cancellingThread.join();
 
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_SCREEN_OFF);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
     }
 
     @Test
@@ -657,12 +692,12 @@
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(20L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
-        assertEquals(Arrays.asList(expectedPrebaked(VibrationEffect.EFFECT_THUD)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedPrebaked(VibrationEffect.EFFECT_THUD)).inOrder();
     }
 
     @Test
@@ -671,37 +706,39 @@
 
         VibrationEffect fallback = VibrationEffect.createOneShot(10, 100);
         HalVibration vibration = createVibration(CombinedVibration.createParallel(
-                VibrationEffect.get(VibrationEffect.EFFECT_CLICK)));
+                VibrationEffect.get(EFFECT_CLICK)));
         vibration.fillFallbacks(unused -> fallback);
         startThreadAndDispatcher(vibration);
         waitForCompletion();
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(10L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
-        assertEquals(Arrays.asList(expectedOneShot(10)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
-        assertEquals(expectedAmplitudes(100), mVibratorProviders.get(VIBRATOR_ID).getAmplitudes());
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(10)).inOrder();
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(100)).inOrder();
     }
 
     @Test
     public void vibrate_singleVibratorPrebakedAndUnsupportedEffect_ignoresVibration() {
-        VibrationEffect effect = VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
+        VibrationEffect effect = VibrationEffect.get(EFFECT_CLICK);
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(0L));
         verify(mManagerHooks, never()).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks, never()).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks, never())
+                .onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.IGNORED_UNSUPPORTED);
-        assertTrue(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id).isEmpty());
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id)).isEmpty();
     }
 
     @Test
-    @RequiresFlagsEnabled(android.os.vibrator.Flags.FLAG_VENDOR_VIBRATION_EFFECTS)
+    @EnableFlags(Flags.FLAG_VENDOR_VIBRATION_EFFECTS)
     public void vibrate_singleVibratorVendorEffect_runsVibration() {
         mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_PERFORM_VENDOR_EFFECTS);
 
@@ -712,104 +749,101 @@
         verify(mManagerHooks).noteVibratorOn(eq(UID),
                 eq(PerformVendorEffectVibratorStep.VENDOR_EFFECT_MAX_DURATION_MS));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
         assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
         assertThat(mVibratorProviders.get(VIBRATOR_ID).getVendorEffects(vibration.id))
-                .containsExactly(effect)
-                .inOrder();
+                .containsExactly(effect).inOrder();
     }
 
     @Test
     public void vibrate_singleVibratorComposed_runsVibration() {
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
         fakeVibrator.setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
-        fakeVibrator.setSupportedPrimitives(VibrationEffect.Composition.PRIMITIVE_CLICK,
-                VibrationEffect.Composition.PRIMITIVE_TICK);
+        fakeVibrator.setSupportedPrimitives(PRIMITIVE_CLICK, PRIMITIVE_TICK);
 
         VibrationEffect effect = VibrationEffect.startComposition()
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f)
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_TICK, 0.5f)
+                .addPrimitive(PRIMITIVE_CLICK, 1f)
+                .addPrimitive(PRIMITIVE_TICK, 0.5f)
                 .compose();
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(40L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
-        assertEquals(Arrays.asList(
-                expectedPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1, 0),
-                expectedPrimitive(VibrationEffect.Composition.PRIMITIVE_TICK, 0.5f, 0)),
-                fakeVibrator.getEffectSegments(vibration.id));
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
+        assertThat(fakeVibrator.getEffectSegments(vibration.id))
+                .containsExactly(
+                        expectedPrimitive(PRIMITIVE_CLICK, 1, 0),
+                        expectedPrimitive(PRIMITIVE_TICK, 0.5f, 0))
+                .inOrder();
     }
 
     @Test
     @DisableFlags(Flags.FLAG_PRIMITIVE_COMPOSITION_ABSOLUTE_DELAY)
     public void vibrate_singleVibratorComposedAndNoCapability_triggersHalAndReturnsUnsupported() {
         VibrationEffect effect = VibrationEffect.startComposition()
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f)
+                .addPrimitive(PRIMITIVE_CLICK, 1f)
                 .compose();
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(0L));
         verify(mManagerHooks, never()).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks, never()).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks, never())
+                .onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.IGNORED_UNSUPPORTED);
-        assertTrue(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id).isEmpty());
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id)).isEmpty();
     }
 
     @Test
     @EnableFlags(Flags.FLAG_PRIMITIVE_COMPOSITION_ABSOLUTE_DELAY)
     public void vibrate_singleVibratorComposedAndNoCapability_ignoresVibration() {
         VibrationEffect effect = VibrationEffect.startComposition()
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f)
+                .addPrimitive(PRIMITIVE_CLICK, 1f)
                 .compose();
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
         verify(mManagerHooks, never()).noteVibratorOn(eq(UID), anyLong());
         verify(mManagerHooks, never()).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks, never()).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks, never())
+                .onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.IGNORED_UNSUPPORTED);
-        assertTrue(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id).isEmpty());
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id)).isEmpty();
     }
 
     @Test
     public void vibrate_singleVibratorLargeComposition_splitsVibratorComposeCalls() {
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
         fakeVibrator.setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
-        fakeVibrator.setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK,
-                VibrationEffect.Composition.PRIMITIVE_TICK,
-                VibrationEffect.Composition.PRIMITIVE_SPIN);
+        fakeVibrator.setSupportedPrimitives(PRIMITIVE_CLICK, PRIMITIVE_TICK, PRIMITIVE_SPIN);
         fakeVibrator.setCompositionSizeMax(2);
 
         VibrationEffect effect = VibrationEffect.startComposition()
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f)
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_TICK, 0.5f)
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_SPIN, 0.8f)
+                .addPrimitive(PRIMITIVE_CLICK, 1f)
+                .addPrimitive(PRIMITIVE_TICK, 0.5f)
+                .addPrimitive(PRIMITIVE_SPIN, 0.8f)
                 .compose();
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
         verifyCallbacksTriggered(vibration, Status.FINISHED);
         // Vibrator compose called twice.
-        verify(mControllerCallbacks, times(2)).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
-        assertEquals(3, fakeVibrator.getEffectSegments(vibration.id).size());
+        verify(mControllerCallbacks, times(2))
+                .onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
+        assertThat(fakeVibrator.getEffectSegments(vibration.id)).hasSize(3);
     }
 
     @Test
-    @DisableFlags(android.os.vibrator.Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
+    @DisableFlags(Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
     public void vibrate_singleVibratorComposedEffects_runsDifferentVibrations() {
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
-        fakeVibrator.setSupportedEffects(VibrationEffect.EFFECT_CLICK);
-        fakeVibrator.setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK,
-                VibrationEffect.Composition.PRIMITIVE_TICK);
+        fakeVibrator.setSupportedEffects(EFFECT_CLICK);
+        fakeVibrator.setSupportedPrimitives(PRIMITIVE_CLICK, PRIMITIVE_TICK);
         fakeVibrator.setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS,
                 IVibrator.CAP_COMPOSE_PWLE_EFFECTS, IVibrator.CAP_AMPLITUDE_CONTROL);
         fakeVibrator.setMinFrequency(100);
@@ -820,15 +854,15 @@
 
         VibrationEffect effect = VibrationEffect.startComposition()
                 .addEffect(VibrationEffect.createOneShot(10, 100))
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f)
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_TICK, 0.5f)
-                .addEffect(VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
+                .addPrimitive(PRIMITIVE_CLICK, 1f)
+                .addPrimitive(PRIMITIVE_TICK, 0.5f)
+                .addEffect(VibrationEffect.get(EFFECT_CLICK))
                 .addEffect(VibrationEffect.startWaveform()
                         .addTransition(Duration.ofMillis(10),
                                 targetAmplitude(1), targetFrequency(100))
                         .addTransition(Duration.ofMillis(20), targetFrequency(120))
                         .build())
-                .addEffect(VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
+                .addEffect(VibrationEffect.get(EFFECT_CLICK))
                 .compose();
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
@@ -836,38 +870,41 @@
         // Use first duration the vibrator is turned on since we cannot estimate the clicks.
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(10L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks, times(5)).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks, times(5))
+                .onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
-        assertEquals(Arrays.asList(
-                expectedOneShot(10),
-                expectedPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1, 0),
-                expectedPrimitive(VibrationEffect.Composition.PRIMITIVE_TICK, 0.5f, 0),
-                expectedPrebaked(VibrationEffect.EFFECT_CLICK),
-                expectedRamp(/* startAmplitude= */ 0, /* endAmplitude= */ 0.5f,
-                        /* startFrequencyHz= */ 150, /* endFrequencyHz= */ 100, /* duration= */ 10),
-                expectedRamp(/* startAmplitude= */ 0.5f, /* endAmplitude= */ 0.7f,
-                        /* startFrequencyHz= */ 100, /* endFrequencyHz= */ 120, /* duration= */ 20),
-                expectedPrebaked(VibrationEffect.EFFECT_CLICK)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
-        assertEquals(expectedAmplitudes(100), mVibratorProviders.get(VIBRATOR_ID).getAmplitudes());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(
+                        expectedOneShot(10),
+                        expectedPrimitive(PRIMITIVE_CLICK, 1, 0),
+                        expectedPrimitive(PRIMITIVE_TICK, 0.5f, 0),
+                        expectedPrebaked(EFFECT_CLICK),
+                        expectedRamp(/* startAmplitude= */ 0, /* endAmplitude= */ 0.5f,
+                                /* startFrequencyHz= */ 150, /* endFrequencyHz= */ 100,
+                                /* duration= */ 10),
+                        expectedRamp(/* startAmplitude= */ 0.5f, /* endAmplitude= */ 0.7f,
+                                /* startFrequencyHz= */ 100, /* endFrequencyHz= */ 120,
+                                /* duration= */ 20),
+                        expectedPrebaked(EFFECT_CLICK))
+                .inOrder();
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(100)).inOrder();
     }
 
     @Test
     public void vibrate_singleVibratorComposedWithFallback_replacedInTheMiddleOfComposition() {
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
-        fakeVibrator.setSupportedEffects(VibrationEffect.EFFECT_CLICK);
-        fakeVibrator.setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK,
-                VibrationEffect.Composition.PRIMITIVE_TICK);
+        fakeVibrator.setSupportedEffects(EFFECT_CLICK);
+        fakeVibrator.setSupportedPrimitives(PRIMITIVE_CLICK, PRIMITIVE_TICK);
         fakeVibrator.setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
 
         VibrationEffect fallback = VibrationEffect.createOneShot(10, 100);
         VibrationEffect effect = VibrationEffect.startComposition()
-                .addEffect(VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f)
-                .addEffect(VibrationEffect.get(VibrationEffect.EFFECT_TICK))
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_TICK, 0.5f)
+                .addEffect(VibrationEffect.get(EFFECT_CLICK))
+                .addPrimitive(PRIMITIVE_CLICK, 1f)
+                .addEffect(VibrationEffect.get(EFFECT_TICK))
+                .addPrimitive(PRIMITIVE_TICK, 0.5f)
                 .compose();
         HalVibration vibration = createVibration(CombinedVibration.createParallel(effect));
         vibration.fillFallbacks(unused -> fallback);
@@ -877,24 +914,26 @@
         // Use first duration the vibrator is turned on since we cannot estimate the clicks.
         verify(mManagerHooks).noteVibratorOn(eq(UID), anyLong());
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks, times(4)).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks, times(4))
+                .onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
         List<VibrationEffectSegment> segments =
                 mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id);
-        assertTrue("Wrong segments: " + segments, segments.size() >= 4);
-        assertTrue(segments.get(0) instanceof PrebakedSegment);
-        assertTrue(segments.get(1) instanceof PrimitiveSegment);
+        assertWithMessage("Wrong segments: %s", segments).that(segments.size()).isGreaterThan(3);
+        assertThat(segments.get(0)).isInstanceOf(PrebakedSegment.class);
+        assertThat(segments.get(1)).isInstanceOf(PrimitiveSegment.class);
         for (int i = 2; i < segments.size() - 1; i++) {
             // One or more step segments as fallback for the EFFECT_TICK.
-            assertTrue(segments.get(i) instanceof StepSegment);
+            assertWithMessage("For segment index %s", i)
+                    .that(segments.get(i)).isInstanceOf(StepSegment.class);
         }
-        assertTrue(segments.get(segments.size() - 1) instanceof PrimitiveSegment);
+        assertThat(segments.get(segments.size() - 1)).isInstanceOf(PrimitiveSegment.class);
     }
 
     @Test
-    @EnableFlags(android.os.vibrator.Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
+    @EnableFlags(Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
     public void vibrate_singleVibratorPwle_runsComposePwleV2() {
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
         fakeVibrator.setCapabilities(IVibrator.CAP_COMPOSE_PWLE_EFFECTS_V2);
@@ -915,21 +954,22 @@
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(100L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
-        assertEquals(Arrays.asList(
-                expectedPwle(/*amplitude=*/ 0.0f, /*frequencyHz=*/ 60f, /*timeMillis=*/ 0),
-                expectedPwle(/*amplitude=*/ 0.1f, /*frequencyHz=*/ 60f, /*timeMillis=*/ 20),
-                expectedPwle(/*amplitude=*/ 0.3f, /*frequencyHz=*/ 100f, /*timeMillis=*/ 30),
-                expectedPwle(/*amplitude=*/ 0.4f, /*frequencyHz=*/ 120f, /*timeMillis=*/ 20),
-                expectedPwle(/*amplitude=*/ 0.0f, /*frequencyHz=*/ 120f, /*timeMillis=*/ 30)
-        ), fakeVibrator.getEffectPwlePoints(vibration.id));
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
+        assertThat(fakeVibrator.getEffectPwlePoints(vibration.id))
+                .containsExactly(
+                        expectedPwle(0.0f, 60f, 0),
+                        expectedPwle(0.1f, 60f, 20),
+                        expectedPwle(0.3f, 100f, 30),
+                        expectedPwle(0.4f, 120f, 20),
+                        expectedPwle(0.0f, 120f, 30))
+                .inOrder();
 
     }
 
     @Test
-    @EnableFlags(android.os.vibrator.Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
+    @EnableFlags(Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
     public void vibrate_singleVibratorBasicPwle_runsComposePwleV2() {
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
         fakeVibrator.setCapabilities(IVibrator.CAP_COMPOSE_PWLE_EFFECTS_V2);
@@ -951,20 +991,21 @@
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(220L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
-        assertEquals(Arrays.asList(
-                expectedPwle(/*amplitude=*/ 0.0f, /*frequencyHz=*/ 150f, /*timeMillis=*/ 0),
-                expectedPwle(/*amplitude=*/ 1.0f, /*frequencyHz=*/ 150f, /*timeMillis=*/ 20),
-                expectedPwle(/*amplitude=*/ 1.0f, /*frequencyHz=*/ 150f, /*timeMillis=*/ 100),
-                expectedPwle(/*amplitude=*/ 0.0f, /*frequencyHz=*/ 150f, /*timeMillis=*/ 100)
-        ), fakeVibrator.getEffectPwlePoints(vibration.id));
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
+        assertThat(fakeVibrator.getEffectPwlePoints(vibration.id))
+                .containsExactly(
+                        expectedPwle(0.0f, 150f, 0),
+                        expectedPwle(1.0f, 150f, 20),
+                        expectedPwle(1.0f, 150f, 100),
+                        expectedPwle(0.0f, 150f, 100))
+                .inOrder();
 
     }
 
     @Test
-    @EnableFlags(android.os.vibrator.Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
+    @EnableFlags(Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
     public void vibrate_singleVibratorPwle_withInitialFrequency_runsComposePwleV2() {
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
         fakeVibrator.setCapabilities(IVibrator.CAP_COMPOSE_PWLE_EFFECTS_V2);
@@ -987,21 +1028,21 @@
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(100L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
-        assertEquals(Arrays.asList(
-                expectedPwle(/*amplitude=*/ 0.0f, /*frequencyHz=*/ 30f, /*timeMillis=*/ 0),
-                expectedPwle(/*amplitude=*/ 0.1f, /*frequencyHz=*/ 60f, /*timeMillis=*/ 20),
-                expectedPwle(/*amplitude=*/ 0.3f, /*frequencyHz=*/ 100f, /*timeMillis=*/ 30),
-                expectedPwle(/*amplitude=*/ 0.4f, /*frequencyHz=*/ 120f, /*timeMillis=*/ 20),
-                expectedPwle(/*amplitude=*/ 0.0f, /*frequencyHz=*/ 120f, /*timeMillis=*/ 30)
-        ), fakeVibrator.getEffectPwlePoints(vibration.id));
-
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
+        assertThat(fakeVibrator.getEffectPwlePoints(vibration.id))
+                .containsExactly(
+                        expectedPwle(0.0f, 30f, 0),
+                        expectedPwle(0.1f, 60f, 20),
+                        expectedPwle(0.3f, 100f, 30),
+                        expectedPwle(0.4f, 120f, 20),
+                        expectedPwle(0.0f, 120f, 30))
+                .inOrder();
     }
 
     @Test
-    @EnableFlags(android.os.vibrator.Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
+    @EnableFlags(Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
     public void vibrate_singleVibratorPwle_TooManyControlPoints_splitsAndRunsComposePwleV2() {
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
         fakeVibrator.setCapabilities(IVibrator.CAP_COMPOSE_PWLE_EFFECTS_V2);
@@ -1027,23 +1068,23 @@
         verifyCallbacksTriggered(vibration, Status.FINISHED);
         // Vibrator compose called 3 times with 2 segments instead of 2 times with 3 segments.
         // Using best split points instead of max-packing PWLEs.
-        verify(mControllerCallbacks, times(3)).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
-
-        assertEquals(Arrays.asList(
-                expectedPwle(/*amplitude=*/ 0.0f, /*frequencyHz=*/ 100f, /*timeMillis=*/ 0),
-                expectedPwle(/*amplitude=*/ 0.8f, /*frequencyHz=*/ 100f, /*timeMillis=*/ 30),
-                expectedPwle(/*amplitude=*/ 0.0f, /*frequencyHz=*/ 100f, /*timeMillis=*/ 30),
-                expectedPwle(/*amplitude=*/ 0.9f, /*frequencyHz=*/ 100f, /*timeMillis=*/ 0),
-                expectedPwle(/*amplitude=*/ 0.4f, /*frequencyHz=*/ 100f, /*timeMillis=*/ 30),
-                expectedPwle(/*amplitude=*/ 0.6f, /*frequencyHz=*/ 100f, /*timeMillis=*/ 0),
-                expectedPwle(/*amplitude=*/ 0.7f, /*frequencyHz=*/ 100f, /*timeMillis=*/ 30)
-        ), fakeVibrator.getEffectPwlePoints(vibration.id));
-
+        verify(mControllerCallbacks, times(3))
+                .onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
+        assertThat(fakeVibrator.getEffectPwlePoints(vibration.id))
+                .containsExactly(
+                        expectedPwle(0.0f, 100f, 0),
+                        expectedPwle(0.8f, 100f, 30),
+                        expectedPwle(0.0f, 100f, 30),
+                        expectedPwle(0.9f, 100f, 0),
+                        expectedPwle(0.4f, 100f, 30),
+                        expectedPwle(0.6f, 100f, 0),
+                        expectedPwle(0.7f, 100f, 30))
+                .inOrder();
     }
 
     @Test
-    @DisableFlags(android.os.vibrator.Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
+    @DisableFlags(Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
     public void vibrate_singleVibratorPwle_runsComposePwle() {
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
         fakeVibrator.setCapabilities(IVibrator.CAP_COMPOSE_PWLE_EFFECTS);
@@ -1066,19 +1107,23 @@
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(100L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
-        assertEquals(Arrays.asList(
-                expectedRamp(/* amplitude= */ 1, /* frequencyHz= */ 150, /* duration= */ 10),
-                expectedRamp(/* startAmplitude= */ 1, /* endAmplitude= */ 0,
-                        /* startFrequencyHz= */ 150, /* endFrequencyHz= */ 150, /* duration= */ 20),
-                expectedRamp(/* amplitude= */ 0.5f, /* frequencyHz= */ 100, /* duration= */ 30),
-                expectedRamp(/* startAmplitude= */ 0.5f, /* endAmplitude= */ 0.6f,
-                        /* startFrequencyHz= */ 100, /* endFrequencyHz= */ 200,
-                        /* duration= */ 40)),
-                fakeVibrator.getEffectSegments(vibration.id));
-        assertEquals(Arrays.asList(Braking.CLAB), fakeVibrator.getBraking(vibration.id));
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
+        assertThat(fakeVibrator.getEffectSegments(vibration.id))
+                .containsExactly(
+                        expectedRamp(/* amplitude= */ 1, /* frequencyHz= */ 150,
+                                /* duration= */ 10),
+                        expectedRamp(/* startAmplitude= */ 1, /* endAmplitude= */ 0,
+                                /* startFrequencyHz= */ 150, /* endFrequencyHz= */ 150,
+                                /* duration= */ 20),
+                        expectedRamp(/* amplitude= */ 0.5f, /* frequencyHz= */ 100,
+                                /* duration= */ 30),
+                        expectedRamp(/* startAmplitude= */ 0.5f, /* endAmplitude= */ 0.6f,
+                                /* startFrequencyHz= */ 100, /* endFrequencyHz= */ 200,
+                                /* duration= */ 40))
+                .inOrder();
+        assertThat(fakeVibrator.getBraking(vibration.id)).containsExactly(Braking.CLAB).inOrder();
     }
 
     @Test
@@ -1109,8 +1154,9 @@
 
         // Vibrator compose called 3 times with 2 segments instead of 2 times with 3 segments.
         // Using best split points instead of max-packing PWLEs.
-        verify(mControllerCallbacks, times(3)).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
-        assertEquals(6, fakeVibrator.getEffectSegments(vibration.id).size());
+        verify(mControllerCallbacks, times(3))
+                .onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
+        assertThat(fakeVibrator.getEffectSegments(vibration.id)).hasSize(6);
     }
 
     @Test
@@ -1121,15 +1167,16 @@
         VibrationEffect effect = VibrationEffect.createWaveform(new long[]{5}, new int[]{100}, 0);
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(waitUntil(() -> fakeVibrator.getAmplitudes().size() > 2, TEST_TIMEOUT_MILLIS));
+        assertThat(waitUntil(() -> fakeVibrator.getAmplitudes().size() > 2, TEST_TIMEOUT_MILLIS))
+                .isTrue();
         // Vibration still running after 2 cycles.
-        assertTrue(mThread.isRunningVibrationId(vibration.id));
-        assertTrue(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mThread.isRunningVibrationId(vibration.id)).isTrue();
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isTrue();
 
         mVibrationConductor.notifyCancelled(
                 new Vibration.EndInfo(Status.CANCELLED_BINDER_DIED), /* immediate= */ false);
         waitForCompletion();
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BINDER_DIED);
     }
@@ -1149,72 +1196,71 @@
 
     @Test
     public void vibrate_multipleExistingAndMissingVibrators_vibratesOnlyExistingOnes() {
-        mVibratorProviders.get(1).setSupportedEffects(VibrationEffect.EFFECT_TICK);
+        mVibratorProviders.get(1).setSupportedEffects(EFFECT_TICK);
 
         CombinedVibration effect = CombinedVibration.startParallel()
-                .addVibrator(VIBRATOR_ID, VibrationEffect.get(VibrationEffect.EFFECT_TICK))
-                .addVibrator(2, VibrationEffect.get(VibrationEffect.EFFECT_TICK))
+                .addVibrator(VIBRATOR_ID, VibrationEffect.get(EFFECT_TICK))
+                .addVibrator(2, VibrationEffect.get(EFFECT_TICK))
                 .combine();
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(20L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
-        verify(mControllerCallbacks, never()).onComplete(eq(2), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
+        verify(mControllerCallbacks, never()).onComplete(eq(2), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
-        assertEquals(Arrays.asList(expectedPrebaked(VibrationEffect.EFFECT_TICK)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedPrebaked(EFFECT_TICK)).inOrder();
     }
 
     @Test
     public void vibrate_multipleMono_runsSameEffectInAllVibrators() {
         mockVibrators(1, 2, 3);
-        mVibratorProviders.get(1).setSupportedEffects(VibrationEffect.EFFECT_CLICK);
-        mVibratorProviders.get(2).setSupportedEffects(VibrationEffect.EFFECT_CLICK);
-        mVibratorProviders.get(3).setSupportedEffects(VibrationEffect.EFFECT_CLICK);
+        mVibratorProviders.get(1).setSupportedEffects(EFFECT_CLICK);
+        mVibratorProviders.get(2).setSupportedEffects(EFFECT_CLICK);
+        mVibratorProviders.get(3).setSupportedEffects(EFFECT_CLICK);
 
         CombinedVibration effect = CombinedVibration.createParallel(
-                VibrationEffect.get(VibrationEffect.EFFECT_CLICK));
+                VibrationEffect.get(EFFECT_CLICK));
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(20L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(1), eq(vibration.id));
-        verify(mControllerCallbacks).onComplete(eq(2), eq(vibration.id));
-        verify(mControllerCallbacks).onComplete(eq(3), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(1), eq(vibration.id), anyLong());
+        verify(mControllerCallbacks).onComplete(eq(2), eq(vibration.id), anyLong());
+        verify(mControllerCallbacks).onComplete(eq(3), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(1).isVibrating());
-        assertFalse(mControllers.get(2).isVibrating());
-        assertFalse(mControllers.get(3).isVibrating());
+        assertThat(mControllers.get(1).isVibrating()).isFalse();
+        assertThat(mControllers.get(2).isVibrating()).isFalse();
+        assertThat(mControllers.get(3).isVibrating()).isFalse();
 
-        VibrationEffectSegment expected = expectedPrebaked(VibrationEffect.EFFECT_CLICK);
-        assertEquals(Arrays.asList(expected),
-                mVibratorProviders.get(1).getEffectSegments(vibration.id));
-        assertEquals(Arrays.asList(expected),
-                mVibratorProviders.get(2).getEffectSegments(vibration.id));
-        assertEquals(Arrays.asList(expected),
-                mVibratorProviders.get(3).getEffectSegments(vibration.id));
+        VibrationEffectSegment expected = expectedPrebaked(EFFECT_CLICK);
+        assertThat(mVibratorProviders.get(1).getEffectSegments(vibration.id))
+                .containsExactly(expected).inOrder();
+        assertThat(mVibratorProviders.get(2).getEffectSegments(vibration.id))
+                .containsExactly(expected).inOrder();
+        assertThat(mVibratorProviders.get(3).getEffectSegments(vibration.id))
+                .containsExactly(expected).inOrder();
     }
 
     @Test
     public void vibrate_multipleStereo_runsVibrationOnRightVibrators() {
         mockVibrators(1, 2, 3, 4);
-        mVibratorProviders.get(1).setSupportedEffects(VibrationEffect.EFFECT_CLICK);
+        mVibratorProviders.get(1).setSupportedEffects(EFFECT_CLICK);
         mVibratorProviders.get(2).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL);
         mVibratorProviders.get(3).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL);
         mVibratorProviders.get(4).setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
-        mVibratorProviders.get(4).setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK);
+        mVibratorProviders.get(4).setSupportedPrimitives(PRIMITIVE_CLICK);
 
         VibrationEffect composed = VibrationEffect.startComposition()
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK)
+                .addPrimitive(PRIMITIVE_CLICK)
                 .compose();
         CombinedVibration effect = CombinedVibration.startParallel()
-                .addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
+                .addVibrator(1, VibrationEffect.get(EFFECT_CLICK))
                 .addVibrator(2, VibrationEffect.createOneShot(10, 100))
                 .addVibrator(3, VibrationEffect.createWaveform(
                         new long[]{10, 10}, new int[]{1, 2}, -1))
@@ -1225,27 +1271,28 @@
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(20L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(1), eq(vibration.id));
-        verify(mControllerCallbacks).onComplete(eq(2), eq(vibration.id));
-        verify(mControllerCallbacks).onComplete(eq(3), eq(vibration.id));
-        verify(mControllerCallbacks).onComplete(eq(4), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(1), eq(vibration.id), anyLong());
+        verify(mControllerCallbacks).onComplete(eq(2), eq(vibration.id), anyLong());
+        verify(mControllerCallbacks).onComplete(eq(3), eq(vibration.id), anyLong());
+        verify(mControllerCallbacks).onComplete(eq(4), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(1).isVibrating());
-        assertFalse(mControllers.get(2).isVibrating());
-        assertFalse(mControllers.get(3).isVibrating());
-        assertFalse(mControllers.get(4).isVibrating());
+        assertThat(mControllers.get(1).isVibrating()).isFalse();
+        assertThat(mControllers.get(2).isVibrating()).isFalse();
+        assertThat(mControllers.get(3).isVibrating()).isFalse();
+        assertThat(mControllers.get(4).isVibrating()).isFalse();
 
-        assertEquals(Arrays.asList(expectedPrebaked(VibrationEffect.EFFECT_CLICK)),
-                mVibratorProviders.get(1).getEffectSegments(vibration.id));
-        assertEquals(Arrays.asList(expectedOneShot(10)),
-                mVibratorProviders.get(2).getEffectSegments(vibration.id));
-        assertEquals(expectedAmplitudes(100), mVibratorProviders.get(2).getAmplitudes());
-        assertEquals(Arrays.asList(expectedOneShot(20)),
-                mVibratorProviders.get(3).getEffectSegments(vibration.id));
-        assertEquals(expectedAmplitudes(1, 2), mVibratorProviders.get(3).getAmplitudes());
-        assertEquals(Arrays.asList(
-                expectedPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1, 0)),
-                mVibratorProviders.get(4).getEffectSegments(vibration.id));
+        assertThat(mVibratorProviders.get(1).getEffectSegments(vibration.id))
+                .containsExactly(expectedPrebaked(EFFECT_CLICK)).inOrder();
+        assertThat(mVibratorProviders.get(2).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(10)).inOrder();
+        assertThat(mVibratorProviders.get(2).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(100)).inOrder();
+        assertThat(mVibratorProviders.get(3).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(20)).inOrder();
+        assertThat(mVibratorProviders.get(3).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(1, 2)).inOrder();
+        assertThat(mVibratorProviders.get(4).getEffectSegments(vibration.id))
+                .containsExactly(expectedPrimitive(PRIMITIVE_CLICK, 1, 0)).inOrder();
     }
 
     @Test
@@ -1253,25 +1300,24 @@
         mockVibrators(1, 2, 3);
         mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL);
         mVibratorProviders.get(2).setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
-        mVibratorProviders.get(2).setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK);
-        mVibratorProviders.get(3).setSupportedEffects(VibrationEffect.EFFECT_CLICK);
+        mVibratorProviders.get(2).setSupportedPrimitives(PRIMITIVE_CLICK);
+        mVibratorProviders.get(3).setSupportedEffects(EFFECT_CLICK);
 
         VibrationEffect composed = VibrationEffect.startComposition()
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK)
+                .addPrimitive(PRIMITIVE_CLICK)
                 .compose();
         CombinedVibration effect = CombinedVibration.startSequential()
-                .addNext(3, VibrationEffect.get(VibrationEffect.EFFECT_CLICK), /* delay= */ 50)
+                .addNext(3, VibrationEffect.get(EFFECT_CLICK), /* delay= */ 50)
                 .addNext(1, VibrationEffect.createOneShot(10, 100), /* delay= */ 50)
                 .addNext(2, composed, /* delay= */ 50)
                 .combine();
         HalVibration vibration = startThreadAndDispatcher(effect);
 
         waitForCompletion();
-        InOrder controllerVerifier = inOrder(mControllerCallbacks);
-        controllerVerifier.verify(mControllerCallbacks).onComplete(eq(3), eq(vibration.id));
-        controllerVerifier.verify(mControllerCallbacks).onComplete(eq(1), eq(vibration.id));
-        controllerVerifier.verify(mControllerCallbacks).onComplete(eq(2), eq(vibration.id));
+        InOrder verifier = inOrder(mControllerCallbacks);
+        verifier.verify(mControllerCallbacks).onComplete(eq(3), eq(vibration.id), anyLong());
+        verifier.verify(mControllerCallbacks).onComplete(eq(1), eq(vibration.id), anyLong());
+        verifier.verify(mControllerCallbacks).onComplete(eq(2), eq(vibration.id), anyLong());
 
         InOrder batteryVerifier = inOrder(mManagerHooks);
         batteryVerifier.verify(mManagerHooks).noteVibratorOn(eq(UID), eq(20L));
@@ -1282,18 +1328,18 @@
         batteryVerifier.verify(mManagerHooks).noteVibratorOff(eq(UID));
 
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(1).isVibrating());
-        assertFalse(mControllers.get(2).isVibrating());
-        assertFalse(mControllers.get(3).isVibrating());
+        assertThat(mControllers.get(1).isVibrating()).isFalse();
+        assertThat(mControllers.get(2).isVibrating()).isFalse();
+        assertThat(mControllers.get(3).isVibrating()).isFalse();
 
-        assertEquals(Arrays.asList(expectedOneShot(10)),
-                mVibratorProviders.get(1).getEffectSegments(vibration.id));
-        assertEquals(expectedAmplitudes(100), mVibratorProviders.get(1).getAmplitudes());
-        assertEquals(Arrays.asList(
-                expectedPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1, 0)),
-                mVibratorProviders.get(2).getEffectSegments(vibration.id));
-        assertEquals(Arrays.asList(expectedPrebaked(VibrationEffect.EFFECT_CLICK)),
-                mVibratorProviders.get(3).getEffectSegments(vibration.id));
+        assertThat(mVibratorProviders.get(1).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(10)).inOrder();
+        assertThat(mVibratorProviders.get(1).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(100)).inOrder();
+        assertThat(mVibratorProviders.get(2).getEffectSegments(vibration.id))
+                .containsExactly(expectedPrimitive(PRIMITIVE_CLICK, 1, 0)).inOrder();
+        assertThat(mVibratorProviders.get(3).getEffectSegments(vibration.id))
+                .containsExactly(expectedPrebaked(EFFECT_CLICK)).inOrder();
     }
 
     @Test
@@ -1301,15 +1347,13 @@
         int[] vibratorIds = new int[]{1, 2};
         mockVibrators(vibratorIds);
         mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
-        mVibratorProviders.get(1).setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK);
+        mVibratorProviders.get(1).setSupportedPrimitives(PRIMITIVE_CLICK);
         mVibratorProviders.get(2).setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
-        mVibratorProviders.get(2).setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK);
+        mVibratorProviders.get(2).setSupportedPrimitives(PRIMITIVE_CLICK);
         when(mManagerHooks.prepareSyncedVibration(anyLong(), eq(vibratorIds))).thenReturn(true);
 
         VibrationEffect composed = VibrationEffect.startComposition()
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1, 100)
+                .addPrimitive(PRIMITIVE_CLICK, 1, 100)
                 .compose();
         CombinedVibration effect = CombinedVibration.createParallel(composed);
         // We create the HalVibration here to obtain the vibration id and use it to mock the
@@ -1318,10 +1362,10 @@
         when(mManagerHooks.triggerSyncedVibration(eq(vibration.id))).thenReturn(true);
         startThreadAndDispatcher(vibration);
 
-        assertTrue(waitUntil(
+        assertThat(waitUntil(
                 () -> !mVibratorProviders.get(1).getEffectSegments(vibration.id).isEmpty()
                         && !mVibratorProviders.get(2).getEffectSegments(vibration.id).isEmpty(),
-                TEST_TIMEOUT_MILLIS));
+                TEST_TIMEOUT_MILLIS)).isTrue();
         mVibrationConductor.notifySyncedVibrationComplete();
         waitForCompletion();
 
@@ -1331,29 +1375,27 @@
         verify(mManagerHooks, never()).cancelSyncedVibration();
         verifyCallbacksTriggered(vibration, Status.FINISHED);
 
-        VibrationEffectSegment expected = expectedPrimitive(
-                VibrationEffect.Composition.PRIMITIVE_CLICK, 1, 100);
-        assertEquals(Arrays.asList(expected),
-                mVibratorProviders.get(1).getEffectSegments(vibration.id));
-        assertEquals(Arrays.asList(expected),
-                mVibratorProviders.get(2).getEffectSegments(vibration.id));
+        VibrationEffectSegment expected = expectedPrimitive(PRIMITIVE_CLICK, 1, 100);
+        assertThat(mVibratorProviders.get(1).getEffectSegments(vibration.id))
+                .containsExactly(expected).inOrder();
+        assertThat(mVibratorProviders.get(2).getEffectSegments(vibration.id))
+                .containsExactly(expected).inOrder();
     }
 
     @Test
     public void vibrate_multipleSynced_callsPrepareAndTriggerCallbacks() {
         int[] vibratorIds = new int[]{1, 2, 3, 4};
         mockVibrators(vibratorIds);
-        mVibratorProviders.get(1).setSupportedEffects(VibrationEffect.EFFECT_CLICK);
+        mVibratorProviders.get(1).setSupportedEffects(EFFECT_CLICK);
         mVibratorProviders.get(4).setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
-        mVibratorProviders.get(4).setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK);
+        mVibratorProviders.get(4).setSupportedPrimitives(PRIMITIVE_CLICK);
         when(mManagerHooks.prepareSyncedVibration(anyLong(), any())).thenReturn(true);
 
         VibrationEffect composed = VibrationEffect.startComposition()
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK)
+                .addPrimitive(PRIMITIVE_CLICK)
                 .compose();
         CombinedVibration effect = CombinedVibration.startParallel()
-                .addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
+                .addVibrator(1, VibrationEffect.get(EFFECT_CLICK))
                 .addVibrator(2, VibrationEffect.createOneShot(10, 100))
                 .addVibrator(3, VibrationEffect.createWaveform(new long[]{10}, new int[]{100}, -1))
                 .addVibrator(4, composed)
@@ -1398,24 +1440,26 @@
         verify(mManagerHooks, never()).triggerSyncedVibration(eq(vibration.id));
         verify(mManagerHooks, never()).cancelSyncedVibration();
 
-        assertEquals(Arrays.asList(expectedOneShot(10)),
-                mVibratorProviders.get(1).getEffectSegments(vibration.id));
-        assertEquals(expectedAmplitudes(100), mVibratorProviders.get(1).getAmplitudes());
-        assertEquals(Arrays.asList(expectedOneShot(5)),
-                mVibratorProviders.get(2).getEffectSegments(vibration.id));
-        assertEquals(expectedAmplitudes(200), mVibratorProviders.get(2).getAmplitudes());
+        assertThat(mVibratorProviders.get(1).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(10)).inOrder();
+        assertThat(mVibratorProviders.get(1).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(100)).inOrder();
+        assertThat(mVibratorProviders.get(2).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(5)).inOrder();
+        assertThat(mVibratorProviders.get(2).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(200)).inOrder();
     }
 
     @Test
     public void vibrate_multipleSyncedTriggerFailed_cancelPreparedVibrationAndSkipSetAmplitude() {
         int[] vibratorIds = new int[]{1, 2};
         mockVibrators(vibratorIds);
-        mVibratorProviders.get(2).setSupportedEffects(VibrationEffect.EFFECT_CLICK);
+        mVibratorProviders.get(2).setSupportedEffects(EFFECT_CLICK);
         when(mManagerHooks.prepareSyncedVibration(anyLong(), any())).thenReturn(true);
 
         CombinedVibration effect = CombinedVibration.startParallel()
                 .addVibrator(1, VibrationEffect.createOneShot(10, 100))
-                .addVibrator(2, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
+                .addVibrator(2, VibrationEffect.get(EFFECT_CLICK))
                 .combine();
         // We create the HalVibration here to obtain the vibration id and use it to mock the
         // required response when calling triggerSyncedVibration.
@@ -1432,7 +1476,7 @@
         verify(mManagerHooks).prepareSyncedVibration(eq(expectedCap), eq(vibratorIds));
         verify(mManagerHooks).triggerSyncedVibration(eq(vibration.id));
         verify(mManagerHooks).cancelSyncedVibration();
-        assertTrue(mVibratorProviders.get(1).getAmplitudes().isEmpty());
+        assertThat(mVibratorProviders.get(1).getAmplitudes()).isEmpty();
     }
 
     @Test
@@ -1453,33 +1497,37 @@
         HalVibration vibration = startThreadAndDispatcher(effect);
 
         // All vibrators are turned on in parallel.
-        assertTrue(waitUntil(
+        assertThat(waitUntil(
                 () -> mControllers.get(1).isVibrating()
                         && mControllers.get(2).isVibrating()
                         && mControllers.get(3).isVibrating(),
-                TEST_TIMEOUT_MILLIS));
+                TEST_TIMEOUT_MILLIS)).isTrue();
 
         waitForCompletion();
 
         verify(mManagerHooks).noteVibratorOn(eq(UID), eq(80L));
         verify(mManagerHooks).noteVibratorOff(eq(UID));
-        verify(mControllerCallbacks).onComplete(eq(1), eq(vibration.id));
-        verify(mControllerCallbacks).onComplete(eq(2), eq(vibration.id));
-        verify(mControllerCallbacks).onComplete(eq(3), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(1), eq(vibration.id), anyLong());
+        verify(mControllerCallbacks).onComplete(eq(2), eq(vibration.id), anyLong());
+        verify(mControllerCallbacks).onComplete(eq(3), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertFalse(mControllers.get(1).isVibrating());
-        assertFalse(mControllers.get(2).isVibrating());
-        assertFalse(mControllers.get(3).isVibrating());
+        assertThat(mControllers.get(1).isVibrating()).isFalse();
+        assertThat(mControllers.get(2).isVibrating()).isFalse();
+        assertThat(mControllers.get(3).isVibrating()).isFalse();
 
-        assertEquals(Arrays.asList(expectedOneShot(25)),
-                mVibratorProviders.get(1).getEffectSegments(vibration.id));
-        assertEquals(Arrays.asList(expectedOneShot(80)),
-                mVibratorProviders.get(2).getEffectSegments(vibration.id));
-        assertEquals(Arrays.asList(expectedOneShot(60)),
-                mVibratorProviders.get(3).getEffectSegments(vibration.id));
-        assertEquals(expectedAmplitudes(1, 2, 3), mVibratorProviders.get(1).getAmplitudes());
-        assertEquals(expectedAmplitudes(4, 5), mVibratorProviders.get(2).getAmplitudes());
-        assertEquals(expectedAmplitudes(6), mVibratorProviders.get(3).getAmplitudes());
+        assertThat(mVibratorProviders.get(1).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(25)).inOrder();
+        assertThat(mVibratorProviders.get(2).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(80)).inOrder();
+        assertThat(mVibratorProviders.get(3).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(60)).inOrder();
+        assertThat(mVibratorProviders.get(1).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(1, 2, 3)).inOrder();
+        assertThat(mVibratorProviders.get(2).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(4, 5)).inOrder();
+        assertThat(mVibratorProviders.get(3).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(6)).inOrder();
+
     }
 
     @Test
@@ -1505,7 +1553,7 @@
         waitForCompletion(rampDownDuration + TEST_TIMEOUT_MILLIS);
         long completionTime = SystemClock.elapsedRealtime();
 
-        verify(mControllerCallbacks).onComplete(VIBRATOR_ID, vibration.id);
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         // Vibration ends after duration, thread completed after ramp down
         assertThat(vibrationEndTime - startTime).isAtLeast(expectedDuration);
         assertThat(vibrationEndTime - startTime).isLessThan(expectedDuration + rampDownDuration);
@@ -1526,15 +1574,15 @@
                         VibrationEffect.createOneShot(
                                 expectedDuration, VibrationEffect.DEFAULT_AMPLITUDE)));
 
-        startThreadAndDispatcher(vibration);
         long startTime = SystemClock.elapsedRealtime();
+        startThreadAndDispatcher(vibration);
 
         vibration.waitForEnd();
         long vibrationEndTime = SystemClock.elapsedRealtime();
 
         waitForCompletion(TEST_TIMEOUT_MILLIS);
 
-        verify(mControllerCallbacks).onComplete(VIBRATOR_ID, vibration.id);
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         assertThat(vibrationEndTime - startTime).isAtLeast(expectedDuration + callbackDelay);
     }
 
@@ -1563,7 +1611,8 @@
         waitForCompletion(callbackDelay + TEST_TIMEOUT_MILLIS);
         long completionTime = SystemClock.elapsedRealtime();
 
-        verify(mControllerCallbacks, never()).onComplete(VIBRATOR_ID, vibration.id);
+        verify(mControllerCallbacks, never())
+                .onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         // Vibration ends and thread completes after timeout, before the HAL callback
         assertThat(vibrationEndTime - startTime).isAtLeast(expectedDuration + callbackTimeout);
         assertThat(vibrationEndTime - startTime).isLessThan(expectedDuration + callbackDelay);
@@ -1596,26 +1645,24 @@
 
         // Allow some delay for thread scheduling and callback triggering.
         int maxDelay = (int) (0.05 * totalDuration); // < 5% of total duration
-        assertTrue("Waveform with perceived delay of " + delay + "ms,"
-                        + " expected less than " + maxDelay + "ms",
-                delay < maxDelay);
+        assertThat(delay).isLessThan(maxDelay);
     }
 
     @LargeTest
     @Test
     public void vibrate_cancelSlowVibrator_cancelIsNotBlockedByVibrationThread() throws Exception {
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
-        fakeVibrator.setSupportedEffects(VibrationEffect.EFFECT_CLICK);
+        fakeVibrator.setSupportedEffects(EFFECT_CLICK);
 
         long latency = 5_000; // 5s
         fakeVibrator.setOnLatency(latency);
 
-        VibrationEffect effect = VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
+        VibrationEffect effect = VibrationEffect.get(EFFECT_CLICK);
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(waitUntil(() -> !fakeVibrator.getEffectSegments(vibration.id).isEmpty(),
-                TEST_TIMEOUT_MILLIS));
-        assertTrue(mThread.isRunningVibrationId(vibration.id));
+        assertThat(waitUntil(() -> !fakeVibrator.getEffectSegments(vibration.id).isEmpty(),
+                TEST_TIMEOUT_MILLIS)).isTrue();
+        assertThat(mThread.isRunningVibrationId(vibration.id)).isTrue();
 
         // Run cancel in a separate thread so if VibrationThread.cancel blocks then this test should
         // fail at waitForCompletion(cancellingThread).
@@ -1631,29 +1678,29 @@
         // After the vibrator call ends the vibration is cancelled and the vibrator is turned off.
         waitForCompletion(/* timeout= */ latency + TEST_TIMEOUT_MILLIS);
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_USER);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
     }
 
     @Test
     public void vibrate_multiplePredefinedCancel_cancelsVibrationImmediately() throws Exception {
         mockVibrators(1, 2);
-        mVibratorProviders.get(1).setSupportedEffects(VibrationEffect.EFFECT_CLICK);
+        mVibratorProviders.get(1).setSupportedEffects(EFFECT_CLICK);
         mVibratorProviders.get(2).setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
-        mVibratorProviders.get(2).setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK);
+        mVibratorProviders.get(2).setSupportedPrimitives(PRIMITIVE_CLICK);
 
         CombinedVibration effect = CombinedVibration.startParallel()
-                .addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
+                .addVibrator(1, VibrationEffect.get(EFFECT_CLICK))
                 .addVibrator(2, VibrationEffect.startComposition()
-                        .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f, 100)
-                        .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f, 100)
-                        .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f, 100)
+                        .addPrimitive(PRIMITIVE_CLICK, 1f, 100)
+                        .addPrimitive(PRIMITIVE_CLICK, 1f, 100)
+                        .addPrimitive(PRIMITIVE_CLICK, 1f, 100)
                         .compose())
                 .combine();
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(waitUntil(() -> mControllers.get(2).isVibrating(), TEST_TIMEOUT_MILLIS));
-        assertTrue(mThread.isRunningVibrationId(vibration.id));
+        assertThat(waitUntil(() -> mControllers.get(2).isVibrating(), TEST_TIMEOUT_MILLIS))
+                .isTrue();
+        assertThat(mThread.isRunningVibrationId(vibration.id)).isTrue();
 
         // Run cancel in a separate thread so if VibrationThread.cancel blocks then this test should
         // fail at waitForCompletion(vibrationThread) if the vibration not cancelled immediately.
@@ -1667,12 +1714,12 @@
         cancellingThread.join();
 
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_SCREEN_OFF);
-        assertFalse(mControllers.get(1).isVibrating());
-        assertFalse(mControllers.get(2).isVibrating());
+        assertThat(mControllers.get(1).isVibrating()).isFalse();
+        assertThat(mControllers.get(2).isVibrating()).isFalse();
     }
 
     @Test
-    @RequiresFlagsEnabled(android.os.vibrator.Flags.FLAG_VENDOR_VIBRATION_EFFECTS)
+    @EnableFlags(Flags.FLAG_VENDOR_VIBRATION_EFFECTS)
     public void vibrate_multipleVendorEffectCancel_cancelsVibrationImmediately() throws Exception {
         mockVibrators(1, 2);
         mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_PERFORM_VENDOR_EFFECTS);
@@ -1686,8 +1733,9 @@
                 .combine();
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(waitUntil(() -> mControllers.get(2).isVibrating(), TEST_TIMEOUT_MILLIS));
-        assertTrue(mThread.isRunningVibrationId(vibration.id));
+        assertThat(waitUntil(() -> mControllers.get(2).isVibrating(), TEST_TIMEOUT_MILLIS))
+                .isTrue();
+        assertThat(mThread.isRunningVibrationId(vibration.id)).isTrue();
 
         // Run cancel in a separate thread so if VibrationThread.cancel blocks then this test should
         // fail at waitForCompletion(vibrationThread) if the vibration not cancelled immediately.
@@ -1701,8 +1749,8 @@
         cancellingThread.join();
 
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_SCREEN_OFF);
-        assertFalse(mControllers.get(1).isVibrating());
-        assertFalse(mControllers.get(2).isVibrating());
+        assertThat(mControllers.get(1).isVibrating()).isFalse();
+        assertThat(mControllers.get(2).isVibrating()).isFalse();
     }
 
     @Test
@@ -1718,10 +1766,10 @@
                 .combine();
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(waitUntil(() -> mControllers.get(1).isVibrating()
+        assertThat(waitUntil(() -> mControllers.get(1).isVibrating()
                         && mControllers.get(2).isVibrating(),
-                TEST_TIMEOUT_MILLIS));
-        assertTrue(mThread.isRunningVibrationId(vibration.id));
+                TEST_TIMEOUT_MILLIS)).isTrue();
+        assertThat(mThread.isRunningVibrationId(vibration.id)).isTrue();
 
         // Run cancel in a separate thread so if VibrationThread.cancel blocks then this test should
         // fail at waitForCompletion(vibrationThread) if the vibration not cancelled immediately.
@@ -1735,8 +1783,8 @@
         cancellingThread.join();
 
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_SCREEN_OFF);
-        assertFalse(mControllers.get(1).isVibrating());
-        assertFalse(mControllers.get(2).isVibrating());
+        assertThat(mControllers.get(1).isVibrating()).isFalse();
+        assertThat(mControllers.get(2).isVibrating()).isFalse();
     }
 
     @Test
@@ -1744,17 +1792,18 @@
         VibrationEffect effect = VibrationEffect.createWaveform(new long[]{5}, new int[]{100}, 0);
         HalVibration vibration = startThreadAndDispatcher(effect);
 
-        assertTrue(waitUntil(() -> mControllers.get(VIBRATOR_ID).isVibrating(),
-                TEST_TIMEOUT_MILLIS));
-        assertTrue(mThread.isRunningVibrationId(vibration.id));
+        assertThat(waitUntil(() -> mControllers.get(VIBRATOR_ID).isVibrating(),
+                TEST_TIMEOUT_MILLIS)).isTrue();
+        assertThat(mThread.isRunningVibrationId(vibration.id)).isTrue();
 
         mVibrationConductor.notifyCancelled(
                 new Vibration.EndInfo(Status.CANCELLED_BINDER_DIED), /* immediate= */ false);
         waitForCompletion();
 
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BINDER_DIED);
-        assertFalse(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id).isEmpty());
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .isNotEmpty();
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
     }
 
     @Test
@@ -1767,17 +1816,20 @@
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
 
         // Duration extended for 5 + 5 + 5 + 15.
-        assertEquals(Arrays.asList(expectedOneShot(30)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(30)).inOrder();
         List<Float> amplitudes = mVibratorProviders.get(VIBRATOR_ID).getAmplitudes();
-        assertTrue(amplitudes.size() > 3);
-        assertEquals(expectedAmplitudes(60, 120, 240), amplitudes.subList(0, 3));
+        assertThat(amplitudes.size()).isGreaterThan(3);
+        assertThat(amplitudes.subList(0, 3))
+                .containsExactlyElementsIn(expectedAmplitudes(60, 120, 240))
+                .inOrder();
         for (int i = 3; i < amplitudes.size(); i++) {
-            assertTrue(amplitudes.get(i) < amplitudes.get(i - 1));
+            assertWithMessage("For amplitude index %s", i)
+                    .that(amplitudes.get(i)).isLessThan(amplitudes.get(i - 1));
         }
     }
 
@@ -1795,11 +1847,11 @@
         verify(mManagerHooks, never()).onVibrationThreadReleased(anyLong());
 
         // Thread still running ramp down.
-        assertTrue(mThread.isRunningVibrationId(vibration.id));
+        assertThat(mThread.isRunningVibrationId(vibration.id)).isTrue();
 
         // Duration extended for 10 + 10000.
-        assertEquals(Arrays.asList(expectedOneShot(10_010)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(10_010)).inOrder();
 
         // Will stop the ramp down right away.
         mVibrationConductor.notifyCancelled(
@@ -1819,8 +1871,8 @@
 
         VibrationEffect effect = VibrationEffect.createOneShot(10_000, 240);
         HalVibration vibration = startThreadAndDispatcher(effect);
-        assertTrue(waitUntil(() -> mControllers.get(VIBRATOR_ID).isVibrating(),
-                TEST_TIMEOUT_MILLIS));
+        assertThat(waitUntil(() -> mControllers.get(VIBRATOR_ID).isVibrating(),
+                TEST_TIMEOUT_MILLIS)).isTrue();
         mVibrationConductor.notifyCancelled(
                 new Vibration.EndInfo(Status.CANCELLED_BY_USER), /* immediate= */ false);
         waitForCompletion();
@@ -1828,12 +1880,13 @@
         verifyCallbacksTriggered(vibration, Status.CANCELLED_BY_USER);
 
         // Duration extended for 10000 + 15.
-        assertEquals(Arrays.asList(expectedOneShot(10_015)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(10_015)).inOrder();
         List<Float> amplitudes = mVibratorProviders.get(VIBRATOR_ID).getAmplitudes();
-        assertTrue(amplitudes.size() > 1);
+        assertThat(amplitudes.size()).isGreaterThan(1);
         for (int i = 1; i < amplitudes.size(); i++) {
-            assertTrue(amplitudes.get(i) < amplitudes.get(i - 1));
+            assertWithMessage("For amplitude index %s", i)
+                    .that(amplitudes.get(i)).isLessThan(amplitudes.get(i - 1));
         }
     }
 
@@ -1841,22 +1894,22 @@
     public void vibrate_predefinedWithRampDown_doesNotAddRampDown() {
         when(mVibrationConfigMock.getRampDownDurationMs()).thenReturn(15);
         mVibratorProviders.get(VIBRATOR_ID).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL);
-        mVibratorProviders.get(VIBRATOR_ID).setSupportedEffects(VibrationEffect.EFFECT_CLICK);
+        mVibratorProviders.get(VIBRATOR_ID).setSupportedEffects(EFFECT_CLICK);
 
-        VibrationEffect effect = VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
+        VibrationEffect effect = VibrationEffect.get(EFFECT_CLICK);
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
 
-        assertEquals(Arrays.asList(expectedPrebaked(VibrationEffect.EFFECT_CLICK)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
-        assertTrue(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes().isEmpty());
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedPrebaked(EFFECT_CLICK)).inOrder();
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes()).isEmpty();
     }
 
     @Test
-    @RequiresFlagsEnabled(android.os.vibrator.Flags.FLAG_VENDOR_VIBRATION_EFFECTS)
+    @EnableFlags(Flags.FLAG_VENDOR_VIBRATION_EFFECTS)
     public void vibrate_vendorEffectWithRampDown_doesNotAddRampDown() {
         when(mVibrationConfigMock.getRampDownDurationMs()).thenReturn(15);
         mVibratorProviders.get(VIBRATOR_ID).setCapabilities(IVibrator.CAP_PERFORM_VENDOR_EFFECTS);
@@ -1865,12 +1918,11 @@
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
 
         assertThat(mVibratorProviders.get(VIBRATOR_ID).getVendorEffects(vibration.id))
-                .containsExactly(effect)
-                .inOrder();
+                .containsExactly(effect).inOrder();
         assertThat(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes()).isEmpty();
     }
 
@@ -1879,26 +1931,24 @@
         when(mVibrationConfigMock.getRampDownDurationMs()).thenReturn(15);
         mVibratorProviders.get(VIBRATOR_ID).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL,
                 IVibrator.CAP_COMPOSE_EFFECTS);
-        mVibratorProviders.get(VIBRATOR_ID).setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK);
+        mVibratorProviders.get(VIBRATOR_ID).setSupportedPrimitives(PRIMITIVE_CLICK);
 
         VibrationEffect effect = VibrationEffect.startComposition()
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK)
+                .addPrimitive(PRIMITIVE_CLICK)
                 .compose();
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
 
-        assertEquals(
-                Arrays.asList(expectedPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1, 0)),
-                mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id));
-        assertTrue(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes().isEmpty());
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getEffectSegments(vibration.id))
+                .containsExactly(expectedPrimitive(PRIMITIVE_CLICK, 1, 0)).inOrder();
+        assertThat(mVibratorProviders.get(VIBRATOR_ID).getAmplitudes()).isEmpty();
     }
 
     @Test
-    @DisableFlags(android.os.vibrator.Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
+    @DisableFlags(Flags.FLAG_NORMALIZED_PWLE_EFFECTS)
     public void vibrate_pwleWithRampDown_doesNotAddRampDown() {
         when(mVibrationConfigMock.getRampDownDurationMs()).thenReturn(15);
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
@@ -1916,34 +1966,32 @@
         HalVibration vibration = startThreadAndDispatcher(effect);
         waitForCompletion();
 
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration.id), anyLong());
         verifyCallbacksTriggered(vibration, Status.FINISHED);
 
-        assertEquals(Arrays.asList(expectedRamp(0, 1, 150, 150, 1)),
-                fakeVibrator.getEffectSegments(vibration.id));
-        assertTrue(fakeVibrator.getAmplitudes().isEmpty());
+        assertThat(fakeVibrator.getEffectSegments(vibration.id))
+                .containsExactly(expectedRamp(0, 1, 150, 150, 1)).inOrder();
+        assertThat(fakeVibrator.getAmplitudes()).isEmpty();
     }
 
     @Test
     public void vibrate_multipleVibrations_withCancel() throws Exception {
-        mVibratorProviders.get(VIBRATOR_ID).setSupportedEffects(
-                VibrationEffect.EFFECT_CLICK, VibrationEffect.EFFECT_TICK);
-        mVibratorProviders.get(VIBRATOR_ID).setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK);
+        mVibratorProviders.get(VIBRATOR_ID).setSupportedEffects(EFFECT_CLICK, EFFECT_TICK);
+        mVibratorProviders.get(VIBRATOR_ID).setSupportedPrimitives(PRIMITIVE_CLICK);
         mVibratorProviders.get(VIBRATOR_ID).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL,
                 IVibrator.CAP_COMPOSE_EFFECTS);
 
         // A simple effect, followed by a repeating effect that gets cancelled, followed by another
         // simple effect.
-        VibrationEffect effect1 = VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
+        VibrationEffect effect1 = VibrationEffect.get(EFFECT_CLICK);
         VibrationEffect effect2 = VibrationEffect.startComposition()
-                .repeatEffectIndefinitely(VibrationEffect.get(VibrationEffect.EFFECT_TICK))
+                .repeatEffectIndefinitely(VibrationEffect.get(EFFECT_TICK))
                 .compose();
         VibrationEffect effect3 = VibrationEffect.startComposition()
-                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK)
+                .addPrimitive(PRIMITIVE_CLICK)
                 .compose();
         VibrationEffect effect4 = VibrationEffect.createOneShot(8000, 100);
-        VibrationEffect effect5 = VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
+        VibrationEffect effect5 = VibrationEffect.get(EFFECT_CLICK);
 
         HalVibration vibration1 = startThreadAndDispatcher(effect1);
         waitForCompletion();
@@ -1971,42 +2019,42 @@
         waitForCompletion();
 
         FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(VIBRATOR_ID);
-        assertFalse(mControllers.get(VIBRATOR_ID).isVibrating());
+        assertThat(mControllers.get(VIBRATOR_ID).isVibrating()).isFalse();
 
         // Effect1
-        verify(mControllerCallbacks).onComplete(VIBRATOR_ID, vibration1.id);
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration1.id), anyLong());
         verifyCallbacksTriggered(vibration1, Status.FINISHED);
 
-        assertEquals(Arrays.asList(expectedPrebaked(VibrationEffect.EFFECT_CLICK)),
-                fakeVibrator.getEffectSegments(vibration1.id));
+        assertThat(fakeVibrator.getEffectSegments(vibration1.id))
+                .containsExactly(expectedPrebaked(EFFECT_CLICK)).inOrder();
 
         // Effect2: repeating, cancelled.
-        verify(mControllerCallbacks, atLeast(2)).onComplete(VIBRATOR_ID, vibration2.id);
+        verify(mControllerCallbacks, atLeast(2))
+                .onComplete(eq(VIBRATOR_ID), eq(vibration2.id), anyLong());
         verifyCallbacksTriggered(vibration2, Status.CANCELLED_BY_USER);
 
         // The exact count of segments might vary, so just check that there's more than 2 and
         // all elements are the same segment.
         List<VibrationEffectSegment> actualSegments2 =
                 fakeVibrator.getEffectSegments(vibration2.id);
-        assertTrue(actualSegments2.size() + " > 2", actualSegments2.size() > 2);
+        assertThat(actualSegments2.size()).isGreaterThan(2);
         for (VibrationEffectSegment segment : actualSegments2) {
-            assertEquals(expectedPrebaked(VibrationEffect.EFFECT_TICK), segment);
+            assertThat(segment).isEqualTo(expectedPrebaked(EFFECT_TICK));
         }
 
         // Effect3
-        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration3.id));
+        verify(mControllerCallbacks).onComplete(eq(VIBRATOR_ID), eq(vibration3.id), anyLong());
         verifyCallbacksTriggered(vibration3, Status.FINISHED);
-        assertEquals(Arrays.asList(
-                        expectedPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1, 0)),
-                fakeVibrator.getEffectSegments(vibration3.id));
+        assertThat(fakeVibrator.getEffectSegments(vibration3.id))
+                .containsExactly(expectedPrimitive(PRIMITIVE_CLICK, 1, 0)).inOrder();
 
         // Effect4: cancelled quickly.
         verifyCallbacksTriggered(vibration4, Status.CANCELLED_BY_SCREEN_OFF);
-        assertTrue("Tested duration=" + duration4, duration4 < 2000);
+        assertThat(duration4).isLessThan(2000);
 
         // Effect5: played normally after effect4, which may or may not have played.
-        assertEquals(Arrays.asList(expectedPrebaked(VibrationEffect.EFFECT_CLICK)),
-                fakeVibrator.getEffectSegments(vibration5.id));
+        assertThat(fakeVibrator.getEffectSegments(vibration5.id))
+                .containsExactly(expectedPrebaked(EFFECT_CLICK)).inOrder();
     }
 
     @Test
@@ -2014,23 +2062,18 @@
         mockVibrators(1, 2, 3);
         mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL);
         mVibratorProviders.get(2).setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
-        mVibratorProviders.get(2).setSupportedPrimitives(
-                VibrationEffect.Composition.PRIMITIVE_CLICK);
-        mVibratorProviders.get(3).setSupportedEffects(VibrationEffect.EFFECT_CLICK);
+        mVibratorProviders.get(2).setSupportedPrimitives(PRIMITIVE_CLICK);
+        mVibratorProviders.get(3).setSupportedEffects(EFFECT_CLICK);
 
         CombinedVibration effect = CombinedVibration.startSequential()
-                .addNext(3,
-                        VibrationEffect.get(VibrationEffect.EFFECT_CLICK),
-                        /* delay= */ TEST_TIMEOUT_MILLIS)
+                .addNext(3, VibrationEffect.get(EFFECT_CLICK), /* delay= */ TEST_TIMEOUT_MILLIS)
                 .addNext(1,
                         VibrationEffect.createWaveform(
-                                new long[] {TEST_TIMEOUT_MILLIS, TEST_TIMEOUT_MILLIS},
-                                /* repeat= */ -1),
+                                new long[] {TEST_TIMEOUT_MILLIS, TEST_TIMEOUT_MILLIS}, -1),
                         /* delay= */ TEST_TIMEOUT_MILLIS)
                 .addNext(2,
                         VibrationEffect.startComposition()
-                                .addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1,
-                                        /* delay= */ TEST_TIMEOUT_MILLIS)
+                                .addPrimitive(PRIMITIVE_CLICK, 1, /* delay= */ TEST_TIMEOUT_MILLIS)
                                 .compose(),
                         /* delay= */ TEST_TIMEOUT_MILLIS)
                 .combine();
@@ -2041,21 +2084,22 @@
 
         // Vibrating state remains ON until session resets it.
         verifyCallbacksTriggered(vibration, Status.FINISHED);
-        assertTrue(mControllers.get(1).isVibrating());
-        assertTrue(mControllers.get(2).isVibrating());
-        assertTrue(mControllers.get(3).isVibrating());
+        assertThat(mControllers.get(1).isVibrating()).isTrue();
+        assertThat(mControllers.get(2).isVibrating()).isTrue();
+        assertThat(mControllers.get(3).isVibrating()).isTrue();
 
-        assertEquals(0, mVibratorProviders.get(1).getOffCount());
-        assertEquals(0, mVibratorProviders.get(2).getOffCount());
-        assertEquals(0, mVibratorProviders.get(3).getOffCount());
-        assertEquals(Arrays.asList(expectedOneShot(TEST_TIMEOUT_MILLIS)),
-                mVibratorProviders.get(1).getEffectSegments(vibration.id));
-        assertEquals(expectedAmplitudes(255), mVibratorProviders.get(1).getAmplitudes());
-        assertEquals(Arrays.asList(expectedPrimitive(
-                VibrationEffect.Composition.PRIMITIVE_CLICK, 1, TEST_TIMEOUT_MILLIS)),
-                mVibratorProviders.get(2).getEffectSegments(vibration.id));
-        assertEquals(Arrays.asList(expectedPrebaked(VibrationEffect.EFFECT_CLICK)),
-                mVibratorProviders.get(3).getEffectSegments(vibration.id));
+        assertThat(mVibratorProviders.get(1).getOffCount()).isEqualTo(0);
+        assertThat(mVibratorProviders.get(2).getOffCount()).isEqualTo(0);
+        assertThat(mVibratorProviders.get(3).getOffCount()).isEqualTo(0);
+        assertThat(mVibratorProviders.get(1).getEffectSegments(vibration.id))
+                .containsExactly(expectedOneShot(TEST_TIMEOUT_MILLIS)).inOrder();
+        assertThat(mVibratorProviders.get(1).getAmplitudes())
+                .containsExactlyElementsIn(expectedAmplitudes(255)).inOrder();
+        assertThat(mVibratorProviders.get(2).getEffectSegments(vibration.id))
+                .containsExactly(expectedPrimitive(PRIMITIVE_CLICK, 1, TEST_TIMEOUT_MILLIS))
+                .inOrder();
+        assertThat(mVibratorProviders.get(3).getEffectSegments(vibration.id))
+                .containsExactly(expectedPrebaked(EFFECT_CLICK)).inOrder();
     }
 
     private void mockVibrators(int... vibratorIds) {
@@ -2109,7 +2153,7 @@
         mVibrationConductor = new VibrationStepConductor(vib, isInSession, mVibrationSettings,
                 deviceAdapter, mVibrationScaler, mStatsLoggerMock, requestVibrationParamsFuture,
                 mManagerHooks);
-        assertTrue(mThread.runVibrationOnVibrationThread(mVibrationConductor));
+        assertThat(mThread.runVibrationOnVibrationThread(mVibrationConductor)).isTrue();
         return mVibrationConductor.getVibration();
     }
 
@@ -2129,8 +2173,8 @@
     }
 
     private void waitForCompletion(long timeout) {
-        assertTrue("Timed out waiting for VibrationThread to become idle",
-                mThread.waitForThreadIdle(timeout));
+        assertWithMessage("Timed out waiting for VibrationThread to become idle")
+                .that(mThread.waitForThreadIdle(timeout)).isTrue();
         mTestLooper.dispatchAll();  // Flush callbacks
     }
 
@@ -2205,7 +2249,7 @@
 
     private void verifyCallbacksTriggered(HalVibration vibration, Status expectedStatus) {
         assertThat(vibration.getStatus()).isEqualTo(expectedStatus);
-        verify(mManagerHooks).onVibrationThreadReleased(vibration.id);
+        verify(mManagerHooks).onVibrationThreadReleased(eq(vibration.id));
     }
 
     private static final class TestLooperAutoDispatcher extends Thread {
diff --git a/services/tests/vibrator/src/com/android/server/vibrator/VibratorControllerTest.java b/services/tests/vibrator/src/com/android/server/vibrator/VibratorControllerTest.java
index 0978f48..4df13de 100644
--- a/services/tests/vibrator/src/com/android/server/vibrator/VibratorControllerTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/VibratorControllerTest.java
@@ -203,9 +203,10 @@
 
     @Test
     public void setAmplitude_vibratorVibrating_setsAmplitude() {
-        when(mNativeWrapperMock.on(anyLong(), anyLong())).thenAnswer(args -> args.getArgument(0));
+        when(mNativeWrapperMock.on(anyLong(), anyLong(), anyLong()))
+                .thenAnswer(args -> args.getArgument(0));
         VibratorController controller = createController();
-        controller.on(100, /* vibrationId= */ 1);
+        controller.on(100, 1, 1);
         assertTrue(controller.isVibrating());
         assertEquals(-1, controller.getCurrentAmplitude(), /* delta= */ 0);
 
@@ -215,81 +216,84 @@
 
     @Test
     public void on_withDuration_turnsVibratorOn() {
-        when(mNativeWrapperMock.on(anyLong(), anyLong())).thenAnswer(args -> args.getArgument(0));
+        when(mNativeWrapperMock.on(anyLong(), anyLong(), anyLong()))
+                .thenAnswer(args -> args.getArgument(0));
         VibratorController controller = createController();
-        controller.on(100, 10);
+        controller.on(100, 10, 20);
 
         assertTrue(controller.isVibrating());
-        verify(mNativeWrapperMock).on(eq(100L), eq(10L));
+        verify(mNativeWrapperMock).on(eq(100L), eq(10L), eq(20L));
     }
 
     @Test
     public void on_withPrebaked_performsEffect() {
-        when(mNativeWrapperMock.perform(anyLong(), anyLong(), anyLong())).thenReturn(10L);
+        when(mNativeWrapperMock.perform(anyLong(), anyLong(), anyLong(), anyLong()))
+                .thenReturn(10L);
         VibratorController controller = createController();
 
         PrebakedSegment prebaked = createPrebaked(VibrationEffect.EFFECT_CLICK,
                 VibrationEffect.EFFECT_STRENGTH_MEDIUM);
-        assertEquals(10L, controller.on(prebaked, 11));
+        assertEquals(10L, controller.on(prebaked, 11, 23));
 
         assertTrue(controller.isVibrating());
         verify(mNativeWrapperMock).perform(eq((long) VibrationEffect.EFFECT_CLICK),
-                eq((long) VibrationEffect.EFFECT_STRENGTH_MEDIUM), eq(11L));
+                eq((long) VibrationEffect.EFFECT_STRENGTH_MEDIUM), eq(11L), eq(23L));
     }
 
     @Test
     public void on_withComposed_performsEffect() {
         mockVibratorCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
-        when(mNativeWrapperMock.compose(any(), anyLong())).thenReturn(15L);
+        when(mNativeWrapperMock.compose(any(), anyLong(), anyLong())).thenReturn(15L);
         VibratorController controller = createController();
 
         PrimitiveSegment[] primitives = new PrimitiveSegment[]{
                 new PrimitiveSegment(VibrationEffect.Composition.PRIMITIVE_CLICK, 0.5f, 10)
         };
-        assertEquals(15L, controller.on(primitives, 12));
+        assertEquals(15L, controller.on(primitives, 12, 34));
 
         assertTrue(controller.isVibrating());
-        verify(mNativeWrapperMock).compose(eq(primitives), eq(12L));
+        verify(mNativeWrapperMock).compose(eq(primitives), eq(12L), eq(34L));
     }
 
     @Test
     public void on_withComposedPwle_performsEffect() {
         mockVibratorCapabilities(IVibrator.CAP_COMPOSE_PWLE_EFFECTS);
-        when(mNativeWrapperMock.composePwle(any(), anyInt(), anyLong())).thenReturn(15L);
+        when(mNativeWrapperMock.composePwle(any(), anyInt(), anyLong(), anyLong())).thenReturn(15L);
         VibratorController controller = createController();
 
         RampSegment[] primitives = new RampSegment[]{
                 new RampSegment(/* startAmplitude= */ 0, /* endAmplitude= */ 1,
                         /* startFrequencyHz= */ 100, /* endFrequencyHz= */ 200, /* duration= */ 10)
         };
-        assertEquals(15L, controller.on(primitives, 12));
+        assertEquals(15L, controller.on(primitives, 12, 45));
         assertTrue(controller.isVibrating());
 
-        verify(mNativeWrapperMock).composePwle(eq(primitives), eq(Braking.NONE), eq(12L));
+        verify(mNativeWrapperMock).composePwle(eq(primitives), eq(Braking.NONE), eq(12L), eq(45L));
     }
 
     @Test
     public void on_withComposedPwleV2_performsEffect() {
         mockVibratorCapabilities(IVibrator.CAP_COMPOSE_PWLE_EFFECTS_V2);
-        when(mNativeWrapperMock.composePwleV2(any(), anyLong())).thenReturn(15L);
+        when(mNativeWrapperMock.composePwleV2(any(), anyLong(), anyLong())).thenReturn(15L);
         VibratorController controller = createController();
 
         PwlePoint[] primitives = new PwlePoint[]{
                 new PwlePoint(/*amplitude=*/ 0, /*frequencyHz=*/ 100, /*timeMillis=*/ 0),
                 new PwlePoint(/*amplitude=*/ 1, /*frequencyHz=*/ 200, /*timeMillis=*/ 10)
         };
-        assertEquals(15L, controller.on(primitives, 12));
+        assertEquals(15L, controller.on(primitives, 12, 53));
         assertTrue(controller.isVibrating());
 
-        verify(mNativeWrapperMock).composePwleV2(eq(primitives), eq(12L));
+        verify(mNativeWrapperMock).composePwleV2(eq(primitives), eq(12L), eq(53L));
     }
 
     @Test
     public void off_turnsOffVibrator() {
-        when(mNativeWrapperMock.on(anyLong(), anyLong())).thenAnswer(args -> args.getArgument(0));
+        when(mNativeWrapperMock.on(anyLong(), anyLong(), anyLong()))
+                .thenAnswer(args -> args.getArgument(0));
         VibratorController controller = createController();
 
-        controller.on(100, 1);
+        controller.on(100, 1, 1);
         assertTrue(controller.isVibrating());
 
         controller.off();
@@ -301,10 +305,11 @@
     @Test
     public void reset_turnsOffVibratorAndDisablesExternalControl() {
         mockVibratorCapabilities(IVibrator.CAP_EXTERNAL_CONTROL);
-        when(mNativeWrapperMock.on(anyLong(), anyLong())).thenAnswer(args -> args.getArgument(0));
+        when(mNativeWrapperMock.on(anyLong(), anyLong(), anyLong()))
+                .thenAnswer(args -> args.getArgument(0));
         VibratorController controller = createController();
 
-        controller.on(100, 1);
+        controller.on(100, 1, 1);
         assertTrue(controller.isVibrating());
 
         controller.reset();
@@ -315,12 +320,13 @@
 
     @Test
     public void registerVibratorStateListener_callbacksAreTriggered() throws Exception {
-        when(mNativeWrapperMock.on(anyLong(), anyLong())).thenAnswer(args -> args.getArgument(0));
+        when(mNativeWrapperMock.on(anyLong(), anyLong(), anyLong()))
+                .thenAnswer(args -> args.getArgument(0));
         VibratorController controller = createController();
 
         controller.registerVibratorStateListener(mVibratorStateListenerMock);
-        controller.on(10, 1);
-        controller.on(100, 2);
+        controller.on(10, 1, 1);
+        controller.on(100, 2, 1);
         controller.off();
         controller.off();
 
@@ -334,19 +340,20 @@
 
     @Test
     public void unregisterVibratorStateListener_callbackNotTriggeredAfter() throws Exception {
-        when(mNativeWrapperMock.on(anyLong(), anyLong())).thenAnswer(args -> args.getArgument(0));
+        when(mNativeWrapperMock.on(anyLong(), anyLong(), anyLong()))
+                .thenAnswer(args -> args.getArgument(0));
         VibratorController controller = createController();
 
         controller.registerVibratorStateListener(mVibratorStateListenerMock);
         verify(mVibratorStateListenerMock).onVibrating(false);
 
-        controller.on(10, 1);
+        controller.on(10, 1, 1);
         verify(mVibratorStateListenerMock).onVibrating(true);
 
         controller.unregisterVibratorStateListener(mVibratorStateListenerMock);
         Mockito.clearInvocations(mVibratorStateListenerMock);
 
-        controller.on(10, 1);
+        controller.on(10, 1, 1);
         verifyNoMoreInteractions(mVibratorStateListenerMock);
     }
 
diff --git a/services/tests/vibrator/src/com/android/server/vibrator/VibratorManagerServiceTest.java b/services/tests/vibrator/src/com/android/server/vibrator/VibratorManagerServiceTest.java
index b248218..132a324 100644
--- a/services/tests/vibrator/src/com/android/server/vibrator/VibratorManagerServiceTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/VibratorManagerServiceTest.java
@@ -147,6 +147,9 @@
             new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM).build();
     private static final AudioAttributes AUDIO_NOTIFICATION_ATTRS =
             new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_NOTIFICATION).build();
+    private static final AudioAttributes AUDIO_HAPTIC_FEEDBACK_ATTRS =
+            new AudioAttributes.Builder().setUsage(
+                    AudioAttributes.USAGE_ASSISTANCE_SONIFICATION).build();
     private static final VibrationAttributes ALARM_ATTRS =
             new VibrationAttributes.Builder().setUsage(VibrationAttributes.USAGE_ALARM).build();
     private static final VibrationAttributes HAPTIC_FEEDBACK_ATTRS =
@@ -2674,7 +2677,8 @@
     }
 
     @Test
-    public void onExternalVibration_thenDeniedAppOps_doNotCancelVibration() throws Throwable {
+    @DisableFlags(android.os.vibrator.Flags.FLAG_FIX_EXTERNAL_VIBRATION_SYSTEM_UPDATE_AWARE)
+    public void onExternalVibration_legacyDeniedAppOps_doNotCancelVibration() throws Throwable {
         mockVibrators(1);
         mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_EXTERNAL_CONTROL);
         VibratorManagerService service = createSystemReadyService();
@@ -2697,7 +2701,32 @@
     }
 
     @Test
-    public void onExternalVibration_thenPowerModeChanges_doNotCancelVibration() throws Exception {
+    @EnableFlags(android.os.vibrator.Flags.FLAG_FIX_EXTERNAL_VIBRATION_SYSTEM_UPDATE_AWARE)
+    public void onExternalVibration_thenDeniedAppOps_cancelVibration() throws Throwable {
+        mockVibrators(1);
+        mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_EXTERNAL_CONTROL);
+        VibratorManagerService service = createSystemReadyService();
+
+        IExternalVibrationController externalVibrationControllerMock =
+                mock(IExternalVibrationController.class);
+        ExternalVibration externalVibration = new ExternalVibration(UID, PACKAGE_NAME,
+                AUDIO_ALARM_ATTRS, externalVibrationControllerMock, mock(IBinder.class));
+        ExternalVibrationScale scale = mExternalVibratorService.onExternalVibrationStart(
+                externalVibration);
+
+        assertThat(scale.scaleLevel).isNotEqualTo(ExternalVibrationScale.ScaleLevel.SCALE_MUTE);
+
+        when(mAppOpsManagerMock.checkAudioOpNoThrow(eq(AppOpsManager.OP_VIBRATE),
+                eq(AudioAttributes.USAGE_ALARM), anyInt(), anyString()))
+                .thenReturn(AppOpsManager.MODE_IGNORED);
+        service.mAppOpsChangeListener.onOpChanged(AppOpsManager.OP_VIBRATE, null);
+
+        verify(externalVibrationControllerMock).mute();
+    }
+
+    @Test
+    @DisableFlags(android.os.vibrator.Flags.FLAG_FIX_EXTERNAL_VIBRATION_SYSTEM_UPDATE_AWARE)
+    public void onExternalVibration_legacyPowerModeChanges_doNotCancelVibration() throws Exception {
         mockVibrators(1);
         mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_EXTERNAL_CONTROL);
         createSystemReadyService();
@@ -2705,7 +2734,7 @@
         IExternalVibrationController externalVibrationControllerMock =
                 mock(IExternalVibrationController.class);
         ExternalVibration externalVibration = new ExternalVibration(UID, PACKAGE_NAME,
-                AUDIO_ALARM_ATTRS, externalVibrationControllerMock, mock(IBinder.class));
+                AUDIO_HAPTIC_FEEDBACK_ATTRS, externalVibrationControllerMock, mock(IBinder.class));
         ExternalVibrationScale scale = mExternalVibratorService.onExternalVibrationStart(
                 externalVibration);
 
@@ -2717,7 +2746,29 @@
     }
 
     @Test
-    public void onExternalVibration_thenSettingsChange_doNotCancelVibration() throws Exception {
+    @EnableFlags(android.os.vibrator.Flags.FLAG_FIX_EXTERNAL_VIBRATION_SYSTEM_UPDATE_AWARE)
+    public void onExternalVibration_thenPowerModeChanges_cancelVibration() throws Exception {
+        mockVibrators(1);
+        mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_EXTERNAL_CONTROL);
+        createSystemReadyService();
+
+        IExternalVibrationController externalVibrationControllerMock =
+                mock(IExternalVibrationController.class);
+        ExternalVibration externalVibration = new ExternalVibration(UID, PACKAGE_NAME,
+                AUDIO_HAPTIC_FEEDBACK_ATTRS, externalVibrationControllerMock, mock(IBinder.class));
+        ExternalVibrationScale scale = mExternalVibratorService.onExternalVibrationStart(
+                externalVibration);
+
+        assertThat(scale.scaleLevel).isNotEqualTo(ExternalVibrationScale.ScaleLevel.SCALE_MUTE);
+
+        mRegisteredPowerModeListener.onLowPowerModeChanged(LOW_POWER_STATE);
+
+        verify(externalVibrationControllerMock).mute();
+    }
+
+    @Test
+    @DisableFlags(android.os.vibrator.Flags.FLAG_FIX_EXTERNAL_VIBRATION_SYSTEM_UPDATE_AWARE)
+    public void onExternalVibration_legacySettingsChange_doNotCancelVibration() throws Exception {
         mockVibrators(1);
         mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_EXTERNAL_CONTROL);
         VibratorManagerService service = createSystemReadyService();
@@ -2739,7 +2790,31 @@
     }
 
     @Test
-    public void onExternalVibration_thenScreenTurnsOff_doNotCancelVibration() throws Throwable {
+    @EnableFlags(android.os.vibrator.Flags.FLAG_FIX_EXTERNAL_VIBRATION_SYSTEM_UPDATE_AWARE)
+    public void onExternalVibration_thenSettingsChange_cancelVibration() throws Exception {
+        mockVibrators(1);
+        mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_EXTERNAL_CONTROL);
+        VibratorManagerService service = createSystemReadyService();
+
+        IExternalVibrationController externalVibrationControllerMock =
+                mock(IExternalVibrationController.class);
+        ExternalVibration externalVibration = new ExternalVibration(UID, PACKAGE_NAME,
+                AUDIO_ALARM_ATTRS, externalVibrationControllerMock, mock(IBinder.class));
+        ExternalVibrationScale scale = mExternalVibratorService.onExternalVibrationStart(
+                externalVibration);
+
+        assertThat(scale.scaleLevel).isNotEqualTo(ExternalVibrationScale.ScaleLevel.SCALE_MUTE);
+
+        setUserSetting(Settings.System.ALARM_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_OFF);
+        service.mVibrationSettings.mSettingObserver.onChange(false);
+        service.updateServiceState();
+
+        verify(externalVibrationControllerMock).mute();
+    }
+
+    @Test
+    @DisableFlags(android.os.vibrator.Flags.FLAG_FIX_EXTERNAL_VIBRATION_SYSTEM_UPDATE_AWARE)
+    public void onExternalVibration_legacyScreenTurnsOff_doNotCancelVibration() throws Exception {
         mockVibrators(1);
         mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_EXTERNAL_CONTROL);
         VibratorManagerService service = createSystemReadyService();
@@ -2759,7 +2834,30 @@
     }
 
     @Test
-    public void onExternalVibration_thenFgUserRequestsMute_doNotCancelVibration() throws Throwable {
+    @EnableFlags(android.os.vibrator.Flags.FLAG_FIX_EXTERNAL_VIBRATION_SYSTEM_UPDATE_AWARE)
+    public void onExternalVibration_thenScreenTurnsOff_cancelVibration() throws Exception {
+        mockVibrators(1);
+        mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_EXTERNAL_CONTROL);
+        VibratorManagerService service = createSystemReadyService();
+
+        IExternalVibrationController externalVibrationControllerMock =
+                mock(IExternalVibrationController.class);
+        ExternalVibration externalVibration = new ExternalVibration(UID, PACKAGE_NAME,
+                AUDIO_ALARM_ATTRS, externalVibrationControllerMock, mock(IBinder.class));
+        ExternalVibrationScale scale = mExternalVibratorService.onExternalVibrationStart(
+                externalVibration);
+
+        assertThat(scale.scaleLevel).isNotEqualTo(ExternalVibrationScale.ScaleLevel.SCALE_MUTE);
+
+        service.mIntentReceiver.onReceive(mContextSpy, new Intent(Intent.ACTION_SCREEN_OFF));
+
+        verify(externalVibrationControllerMock).mute();
+    }
+
+    @Test
+    @DisableFlags(android.os.vibrator.Flags.FLAG_FIX_EXTERNAL_VIBRATION_SYSTEM_UPDATE_AWARE)
+    public void onExternalVibration_legacyFgUserRequestsMute_doNotCancelVibration()
+            throws Exception {
         assumeTrue(UserManagerInternal.shouldShowNotificationForBackgroundUserSounds());
         mockVibrators(1);
         mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_EXTERNAL_CONTROL);
@@ -2781,6 +2879,29 @@
     }
 
     @Test
+    @EnableFlags(android.os.vibrator.Flags.FLAG_FIX_EXTERNAL_VIBRATION_SYSTEM_UPDATE_AWARE)
+    public void onExternalVibration_thenFgUserRequestsMute_cancelVibration() throws Exception {
+        assumeTrue(UserManagerInternal.shouldShowNotificationForBackgroundUserSounds());
+        mockVibrators(1);
+        mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_EXTERNAL_CONTROL);
+        VibratorManagerService service = createSystemReadyService();
+
+        IExternalVibrationController externalVibrationControllerMock =
+                mock(IExternalVibrationController.class);
+        ExternalVibration externalVibration = new ExternalVibration(UID, PACKAGE_NAME,
+                AUDIO_ALARM_ATTRS, externalVibrationControllerMock, mock(IBinder.class));
+        ExternalVibrationScale scale = mExternalVibratorService.onExternalVibrationStart(
+                externalVibration);
+
+        assertThat(scale.scaleLevel).isNotEqualTo(ExternalVibrationScale.ScaleLevel.SCALE_MUTE);
+
+        service.mIntentReceiver.onReceive(mContextSpy, new Intent(
+                BackgroundUserSoundNotifier.ACTION_MUTE_SOUND));
+
+        verify(externalVibrationControllerMock).mute();
+    }
+
+    @Test
     @DisableFlags(android.os.vibrator.Flags.FLAG_VENDOR_VIBRATION_EFFECTS)
     public void startVibrationSession_withoutFeatureFlag_throwsException() throws Exception {
         mockCapabilities(IVibratorManager.CAP_START_SESSIONS);
diff --git a/services/tests/vibrator/utils/com/android/server/vibrator/FakeVibratorControllerProvider.java b/services/tests/vibrator/utils/com/android/server/vibrator/FakeVibratorControllerProvider.java
index 3f34767..bd806b7 100644
--- a/services/tests/vibrator/utils/com/android/server/vibrator/FakeVibratorControllerProvider.java
+++ b/services/tests/vibrator/utils/com/android/server/vibrator/FakeVibratorControllerProvider.java
@@ -118,11 +118,11 @@
         }
 
         @Override
-        public long on(long milliseconds, long vibrationId) {
+        public long on(long milliseconds, long vibrationId, long stepId) {
             recordEffectSegment(vibrationId, new StepSegment(VibrationEffect.DEFAULT_AMPLITUDE,
                     /* frequencyHz= */ 0, (int) milliseconds));
             applyLatency(mOnLatency);
-            scheduleListener(milliseconds, vibrationId);
+            scheduleListener(milliseconds, vibrationId, stepId);
             return milliseconds;
         }
 
@@ -139,7 +139,7 @@
         }
 
         @Override
-        public long perform(long effect, long strength, long vibrationId) {
+        public long perform(long effect, long strength, long vibrationId, long stepId) {
             if (mSupportedEffects == null
                     || Arrays.binarySearch(mSupportedEffects, (int) effect) < 0) {
                 return 0;
@@ -147,13 +147,13 @@
             recordEffectSegment(vibrationId,
                     new PrebakedSegment((int) effect, false, (int) strength));
             applyLatency(mOnLatency);
-            scheduleListener(EFFECT_DURATION, vibrationId);
+            scheduleListener(EFFECT_DURATION, vibrationId, stepId);
             return EFFECT_DURATION;
         }
 
         @Override
         public long performVendorEffect(Parcel vendorData, long strength, float scale,
-                float adaptiveScale, long vibrationId) {
+                float adaptiveScale, long vibrationId, long stepId) {
             if ((mCapabilities & IVibrator.CAP_PERFORM_VENDOR_EFFECTS) == 0) {
                 return 0;
             }
@@ -161,13 +161,13 @@
             recordVendorEffect(vibrationId,
                     new VibrationEffect.VendorEffect(bundle, (int) strength, scale, adaptiveScale));
             applyLatency(mOnLatency);
-            scheduleListener(mVendorEffectDuration, vibrationId);
+            scheduleListener(mVendorEffectDuration, vibrationId, stepId);
             // HAL has unknown duration for vendor effects.
             return Long.MAX_VALUE;
         }
 
         @Override
-        public long compose(PrimitiveSegment[] primitives, long vibrationId) {
+        public long compose(PrimitiveSegment[] primitives, long vibrationId, long stepId) {
             if (mSupportedPrimitives == null) {
                 return 0;
             }
@@ -182,12 +182,13 @@
                 recordEffectSegment(vibrationId, primitive);
             }
             applyLatency(mOnLatency);
-            scheduleListener(duration, vibrationId);
+            scheduleListener(duration, vibrationId, stepId);
             return duration;
         }
 
         @Override
-        public long composePwle(RampSegment[] primitives, int braking, long vibrationId) {
+        public long composePwle(RampSegment[] primitives, int braking, long vibrationId,
+                long stepId) {
             long duration = 0;
             for (RampSegment primitive : primitives) {
                 duration += primitive.getDuration();
@@ -195,19 +196,19 @@
             }
             recordBraking(vibrationId, braking);
             applyLatency(mOnLatency);
-            scheduleListener(duration, vibrationId);
+            scheduleListener(duration, vibrationId, stepId);
             return duration;
         }
 
         @Override
-        public long composePwleV2(PwlePoint[] pwlePoints, long vibrationId) {
+        public long composePwleV2(PwlePoint[] pwlePoints, long vibrationId, long stepId) {
             long duration = 0;
             for (PwlePoint pwlePoint: pwlePoints) {
                 duration += pwlePoint.getTimeMillis();
                 recordEffectPwlePoint(vibrationId, pwlePoint);
             }
             applyLatency(mOnLatency);
-            scheduleListener(duration, vibrationId);
+            scheduleListener(duration, vibrationId, stepId);
 
             return duration;
         }
@@ -263,8 +264,8 @@
             }
         }
 
-        private void scheduleListener(long vibrationDuration, long vibrationId) {
-            mHandler.postDelayed(() -> listener.onComplete(vibratorId, vibrationId),
+        private void scheduleListener(long vibrationDuration, long vibrationId, long stepId) {
+            mHandler.postDelayed(() -> listener.onComplete(vibratorId, vibrationId, stepId),
                     vibrationDuration + mCompletionCallbackDelay);
         }
     }
diff --git a/services/tests/wmtests/src/com/android/server/TransitionSubject.java b/services/tests/wmtests/src/com/android/server/TransitionSubject.java
new file mode 100644
index 0000000..07026b9
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/TransitionSubject.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2025 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 android.annotation.Nullable;
+
+import com.google.common.truth.FailureMetadata;
+import com.google.common.truth.IterableSubject;
+import com.google.common.truth.Subject;
+import com.google.common.truth.Truth;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TransitionSubject extends Subject {
+
+    @Nullable
+    private final Transition actual;
+
+    /**
+     * Internal constructor.
+     *
+     * @see TransitionSubject#assertThat(Transition)
+     */
+    private TransitionSubject(FailureMetadata metadata, @Nullable Transition actual) {
+        super(metadata, actual);
+        this.actual = actual;
+    }
+
+    /**
+     * In a fluent assertion chain, the argument to the "custom" overload of {@link
+     * StandardSubjectBuilder#about(CustomSubjectBuilder.Factory) about}, the method that specifies
+     * what kind of {@link Subject} to create.
+     */
+    public static Factory<TransitionSubject, Transition> transitions() {
+        return TransitionSubject::new;
+    }
+
+    /**
+     * Typical entry point for making assertions about Transitions.
+     *
+     * @see @Truth#assertThat(Object)
+     */
+    public static TransitionSubject assertThat(Transition transition) {
+        return Truth.assertAbout(transitions()).that(transition);
+    }
+
+    /**
+     * Converts to a {@link IterableSubject} containing {@link Transition#getFlags()} separated into
+     * a list of individual flags for assertions such as {@code flags().contains(TRANSIT_FLAG_XYZ)}.
+     *
+     * <p>If the subject is null, this will fail instead of returning a null subject.
+     */
+    public IterableSubject flags() {
+        isNotNull();
+
+        final List<Integer> sortedFlags = new ArrayList<>();
+        for (int i = 0; i < 32; i++) {
+            if ((actual.getFlags() & (1 << i)) != 0) {
+                sortedFlags.add((1 << i));
+            }
+        }
+        return com.google.common.truth.Truth.assertThat(sortedFlags);
+    }
+}
diff --git a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTests.java b/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTests.java
index 22c86eb..32a3b7f 100644
--- a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTests.java
+++ b/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTests.java
@@ -272,19 +272,6 @@
     }
 
     @Test
-    public void powerPress_withoutDreamManagerInternal_doesNotCrash() {
-        when(mDisplayPolicy.isAwake()).thenReturn(true);
-        mDreamManagerInternal = null;
-        initPhoneWindowManager();
-
-        // Power button pressed.
-        int eventTime = 0;
-        mPhoneWindowManager.powerPress(eventTime, 1, 0);
-
-        // verify no crash
-    }
-
-    @Test
     public void powerPress_hubOrDreamOrSleep_hubAvailableLocks() {
         when(mDisplayPolicy.isAwake()).thenReturn(true);
         mContext.getTestablePermissions().setPermission(android.Manifest.permission.DEVICE_POWER,
@@ -365,10 +352,5 @@
         WindowWakeUpPolicy getWindowWakeUpPolicy() {
             return mock(WindowWakeUpPolicy.class);
         }
-
-        @Override
-        DreamManagerInternal getDreamManagerInternal() {
-            return mDreamManagerInternal;
-        }
     }
 }
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 d53ba1d..301a754 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
@@ -56,8 +56,6 @@
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
-import static android.view.WindowManager.TRANSIT_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_ACTIVITY_OPEN;
 import static android.view.WindowManager.TRANSIT_PIP;
 import static android.window.StartingWindowInfo.TYPE_PARAMETER_LEGACY_SPLASH_SCREEN;
 
@@ -921,12 +919,6 @@
         // animation and AR#takeSceneTransitionInfo also clear the AR#mPendingOptions
         assertNull(activity.takeSceneTransitionInfo());
         assertNull(activity.getOptions());
-
-        final AppTransition appTransition = activity.mDisplayContent.mAppTransition;
-        spyOn(appTransition);
-        activity.applyOptionsAnimation();
-
-        verify(appTransition).overridePendingAppTransitionRemote(any());
     }
 
     @Test
@@ -1190,7 +1182,6 @@
                 FINISH_RESULT_REQUESTED, activity.finishIfPossible("test", false /* oomAdj */));
         assertEquals(PAUSING, activity.getState());
         verify(activity).setVisibility(eq(false));
-        verify(activity.mDisplayContent).prepareAppTransition(eq(TRANSIT_CLOSE));
     }
 
     /**
@@ -1237,7 +1228,6 @@
         activity.finishIfPossible("test", false /* oomAdj */);
 
         verify(activity).setVisibility(eq(false));
-        verify(activity.mDisplayContent).prepareAppTransition(eq(TRANSIT_CLOSE));
         verify(activity.mDisplayContent, never()).executeAppTransition();
     }
 
@@ -1254,7 +1244,6 @@
         activity.finishIfPossible("test", false /* oomAdj */);
 
         verify(activity, atLeast(1)).setVisibility(eq(false));
-        verify(activity.mDisplayContent).prepareAppTransition(eq(TRANSIT_CLOSE));
         verify(activity.mDisplayContent).executeAppTransition();
     }
 
@@ -1275,7 +1264,6 @@
 
         activity.finishIfPossible("test", false /* oomAdj */);
 
-        verify(activity.mDisplayContent, never()).prepareAppTransition(eq(TRANSIT_CLOSE));
         assertFalse(activity.inTransition());
 
         // finishIfPossible -> completeFinishing -> addToFinishingAndWaitForIdle
@@ -2657,10 +2645,6 @@
     @Presubmit
     public void testGetOrientation() {
         mDisplayContent.setIgnoreOrientationRequest(false);
-        // ActivityBuilder will resume top activities and cause the activity been added into
-        // opening apps list. Since this test is focus on the effect of visible on getting
-        // orientation, we skip app transition to avoid interference.
-        doNothing().when(mDisplayContent).prepareAppTransition(anyInt());
         final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build();
         activity.setVisible(true);
 
@@ -2925,7 +2909,6 @@
         sources.add(activity2);
         doReturn(true).when(activity2).okToAnimate();
         doReturn(true).when(activity2).isAnimating();
-        assertTrue(activity2.applyAnimation(null, TRANSIT_OLD_ACTIVITY_OPEN, true, false, sources));
     }
     @Test
     public void testTrackingStartingWindowThroughTrampoline() {
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java
index bacf5ed..6c4f638 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java
@@ -53,7 +53,6 @@
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.platform.test.annotations.EnableFlags;
 import android.platform.test.annotations.Presubmit;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.testing.DexmakerShareClassLoaderRule;
@@ -68,7 +67,6 @@
 import com.android.internal.app.UnlaunchableAppActivity;
 import com.android.server.LocalServices;
 import com.android.server.am.ActivityManagerService;
-import com.android.window.flags.Flags;
 
 import org.junit.After;
 import org.junit.Before;
@@ -242,7 +240,6 @@
     }
 
     @Test
-    @EnableFlags(Flags.FLAG_NORMALIZE_HOME_INTENT)
     public void testInterceptIncorrectHomeIntent() {
         // Create a non-standard home intent
         final Intent homeIntent = new Intent(Intent.ACTION_MAIN);
diff --git a/services/tests/wmtests/src/com/android/server/wm/AppCompatCameraOverridesTest.java b/services/tests/wmtests/src/com/android/server/wm/AppCompatCameraOverridesTest.java
index 4ad1cd1..d4be7f8 100644
--- a/services/tests/wmtests/src/com/android/server/wm/AppCompatCameraOverridesTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AppCompatCameraOverridesTest.java
@@ -23,12 +23,14 @@
 import static android.content.pm.ActivityInfo.OVERRIDE_MIN_ASPECT_RATIO_ONLY_FOR_CAMERA;
 import static android.content.pm.ActivityInfo.OVERRIDE_ORIENTATION_ONLY_FOR_CAMERA;
 import static android.view.WindowManager.PROPERTY_CAMERA_COMPAT_ALLOW_FORCE_ROTATION;
+import static android.view.WindowManager.PROPERTY_CAMERA_COMPAT_ALLOW_SIMULATE_REQUESTED_ORIENTATION;
 import static android.view.WindowManager.PROPERTY_CAMERA_COMPAT_ALLOW_REFRESH;
 import static android.view.WindowManager.PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE;
 import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_MIN_ASPECT_RATIO_OVERRIDE;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
 import static com.android.window.flags.Flags.FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING;
+import static com.android.window.flags.Flags.FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING_OPT_OUT;
 
 import android.compat.testing.PlatformCompatChangeRule;
 import android.platform.test.annotations.DisableFlags;
@@ -239,6 +241,34 @@
 
     @Test
     @EnableCompatChanges({OVERRIDE_CAMERA_COMPAT_ENABLE_FREEFORM_WINDOWING_TREATMENT})
+    @EnableFlags({FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING,
+            FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING_OPT_OUT})
+    public void testShouldApplyCameraCompatFreeformTreatment_propertyFalse_returnsFalse() {
+        runTestScenario((robot) -> {
+            robot.activity().createActivityWithComponentInNewTask();
+
+            robot.prop().disable(PROPERTY_CAMERA_COMPAT_ALLOW_SIMULATE_REQUESTED_ORIENTATION);
+
+            robot.checkShouldApplyFreeformTreatmentForCameraCompat(false);
+        });
+    }
+
+    @Test
+    @EnableCompatChanges({OVERRIDE_CAMERA_COMPAT_ENABLE_FREEFORM_WINDOWING_TREATMENT})
+    @EnableFlags(FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING)
+    @DisableFlags(FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING_OPT_OUT)
+    public void testShouldApplyCameraCompatFreeformTreatment_optOutFlagNotEnabled_optOutIgnored() {
+        runTestScenario((robot) -> {
+            robot.activity().createActivityWithComponentInNewTask();
+
+            robot.prop().disable(PROPERTY_CAMERA_COMPAT_ALLOW_SIMULATE_REQUESTED_ORIENTATION);
+
+            robot.checkShouldApplyFreeformTreatmentForCameraCompat(true);
+        });
+    }
+
+    @Test
+    @EnableCompatChanges({OVERRIDE_CAMERA_COMPAT_ENABLE_FREEFORM_WINDOWING_TREATMENT})
     @EnableFlags(FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING)
     public void testShouldApplyCameraCompatFreeformTreatment_overrideAndFlagEnabled_returnsTrue() {
         runTestScenario((robot) -> {
diff --git a/services/tests/wmtests/src/com/android/server/wm/AppCompatComponentPropRobot.java b/services/tests/wmtests/src/com/android/server/wm/AppCompatComponentPropRobot.java
index 361177f..fc1d105 100644
--- a/services/tests/wmtests/src/com/android/server/wm/AppCompatComponentPropRobot.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AppCompatComponentPropRobot.java
@@ -20,8 +20,10 @@
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
 
 import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.nullable;
 
 import android.content.pm.PackageManager;
 
@@ -52,7 +54,8 @@
         final PackageManager.Property property = new PackageManager.Property(propertyName,
                 /* value */ enabled, packageName, className);
         try {
-            doReturn(property).when(mPackageManager).getProperty(eq(propertyName), anyString());
+            doReturn(property).when(mPackageManager).getPropertyAsUser(eq(propertyName),
+                    anyString(), nullable(String.class), anyInt());
         } catch (PackageManager.NameNotFoundException e) {
             fail(e.getLocalizedMessage());
         }
diff --git a/services/tests/wmtests/src/com/android/server/wm/AppCompatLetterboxPolicyTest.java b/services/tests/wmtests/src/com/android/server/wm/AppCompatLetterboxPolicyTest.java
index 2603d78..d38f3b0 100644
--- a/services/tests/wmtests/src/com/android/server/wm/AppCompatLetterboxPolicyTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AppCompatLetterboxPolicyTest.java
@@ -350,8 +350,8 @@
             mWindowState.mInvGlobalScale = 1f;
             final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams();
             attrs.type = TYPE_BASE_APPLICATION;
+            setFieldValue(mWindowState, "mAttrs", attrs);
             doReturn(mInsetsState).when(mWindowState).getInsetsState();
-            doReturn(attrs).when(mWindowState).getAttrs();
             doReturn(true).when(mWindowState).isDrawn();
             doReturn(true).when(mWindowState).isOnScreen();
             doReturn(false).when(mWindowState).isLetterboxedForDisplayCutout();
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 d5b9751..61ed0b5 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
@@ -37,7 +37,6 @@
 import static android.view.Surface.ROTATION_180;
 import static android.view.Surface.ROTATION_270;
 import static android.view.Surface.ROTATION_90;
-import static android.view.WindowInsets.Type.ime;
 import static android.view.WindowInsets.Type.navigationBars;
 import static android.view.WindowInsets.Type.statusBars;
 import static android.view.WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE;
@@ -56,6 +55,7 @@
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
+import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG;
 import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR;
 import static android.view.WindowManager.LayoutParams.TYPE_NOTIFICATION_SHADE;
@@ -63,9 +63,9 @@
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
 import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION;
 import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
-import static android.view.WindowManager.TRANSIT_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_TRANSLUCENT_ACTIVITY_CLOSE;
+import static android.view.WindowManager.TRANSIT_FLAG_AOD_APPEARING;
+import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY;
+import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_APPEARING;
 import static android.window.DisplayAreaOrganizer.FEATURE_WINDOWED_MAGNIFICATION;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
@@ -83,9 +83,11 @@
 import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS;
 import static com.android.server.wm.WindowContainer.POSITION_TOP;
 import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_NORMAL;
+import static com.android.server.wm.TransitionSubject.assertThat;
 import static com.android.window.flags.Flags.FLAG_ENABLE_CAMERA_COMPAT_FOR_DESKTOP_WINDOWING;
 import static com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE;
 import static com.android.server.display.feature.flags.Flags.FLAG_ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT;
+import static com.android.window.flags.Flags.FLAG_ENABLE_PERSISTING_DENSITY_SCALE_FOR_CONNECTED_DISPLAYS;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -149,6 +151,7 @@
 import com.android.server.LocalServices;
 import com.android.server.policy.WindowManagerPolicy;
 import com.android.server.wm.utils.WmDisplayCutout;
+import com.android.window.flags.Flags;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -1417,7 +1420,7 @@
         final DisplayContent dc = createNewDisplay();
         final WindowState win = newWindowBuilder("win", TYPE_BASE_APPLICATION).setDisplay(
                 dc).build();
-        win.getAttrs().flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
+        win.mAttrs.flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
         win.setSystemGestureExclusion(Collections.singletonList(new Rect(10, 20, 30, 40)));
 
         performLayout(dc);
@@ -1450,11 +1453,11 @@
         final DisplayContent dc = createNewDisplay();
         final WindowState win = newWindowBuilder("win", TYPE_BASE_APPLICATION).setDisplay(
                 dc).build();
-        win.getAttrs().flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
+        win.mAttrs.flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
         win.setSystemGestureExclusion(Collections.singletonList(new Rect(10, 20, 30, 40)));
 
         final WindowState win2 = newWindowBuilder("win2", TYPE_APPLICATION).setDisplay(dc).build();
-        win2.getAttrs().flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
+        win2.mAttrs.flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
         win2.setSystemGestureExclusion(Collections.singletonList(new Rect(20, 30, 40, 50)));
 
         performLayout(dc);
@@ -1479,14 +1482,14 @@
         final DisplayContent dc = createNewDisplay();
         final WindowState win = newWindowBuilder("base", TYPE_BASE_APPLICATION).setDisplay(
                 dc).build();
-        win.getAttrs().flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
+        win.mAttrs.flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
         win.setSystemGestureExclusion(Collections.singletonList(new Rect(0, 0, 1000, 1000)));
 
         final WindowState win2 = newWindowBuilder("modal", TYPE_APPLICATION).setDisplay(dc).build();
-        win2.getAttrs().flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
-        win2.getAttrs().privateFlags |= PRIVATE_FLAG_NO_MOVE_ANIMATION;
-        win2.getAttrs().width = 10;
-        win2.getAttrs().height = 10;
+        win2.mAttrs.flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
+        win2.mAttrs.privateFlags |= PRIVATE_FLAG_NO_MOVE_ANIMATION;
+        win2.mAttrs.width = 10;
+        win2.mAttrs.height = 10;
         win2.setSystemGestureExclusion(Collections.emptyList());
 
         performLayout(dc);
@@ -1505,10 +1508,10 @@
         final DisplayContent dc = createNewDisplay();
         final WindowState win = newWindowBuilder("win", TYPE_BASE_APPLICATION).setDisplay(
                 dc).build();
-        win.getAttrs().flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
-        win.getAttrs().layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
-        win.getAttrs().privateFlags |= PRIVATE_FLAG_NO_MOVE_ANIMATION;
-        win.getAttrs().insetsFlags.behavior = BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE;
+        win.mAttrs.flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
+        win.mAttrs.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
+        win.mAttrs.privateFlags |= PRIVATE_FLAG_NO_MOVE_ANIMATION;
+        win.mAttrs.insetsFlags.behavior = BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE;
         win.setRequestedVisibleTypes(0, navigationBars() | statusBars());
         win.mActivityRecord.mTargetSdk = P;
 
@@ -1530,9 +1533,9 @@
         final DisplayContent dc = createNewDisplay();
         final WindowState win = newWindowBuilder("win", TYPE_BASE_APPLICATION).setDisplay(
                 dc).build();
-        win.getAttrs().flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
-        win.getAttrs().layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
-        win.getAttrs().privateFlags |= PRIVATE_FLAG_UNRESTRICTED_GESTURE_EXCLUSION;
+        win.mAttrs.flags |= FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR;
+        win.mAttrs.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
+        win.mAttrs.privateFlags |= PRIVATE_FLAG_UNRESTRICTED_GESTURE_EXCLUSION;
         win.setSystemGestureExclusion(Collections.singletonList(dc.getBounds()));
 
         performLayout(dc);
@@ -1742,8 +1745,6 @@
     public void testFixedRotationWithPip() {
         final DisplayContent displayContent = mDefaultDisplay;
         displayContent.setIgnoreOrientationRequest(false);
-        // Unblock the condition in PinnedTaskController#continueOrientationChangeIfNeeded.
-        doNothing().when(displayContent).prepareAppTransition(anyInt());
         // Make resume-top really update the activity state.
         setBooted(mAtm);
         clearInvocations(mWm);
@@ -1826,7 +1827,7 @@
                 .setTask(nonTopVisible.getTask()).setVisible(false)
                 .setActivityTheme(android.R.style.Theme_Translucent).build();
         final TestTransitionPlayer player = registerTestTransitionPlayer();
-        mDisplayContent.requestTransitionAndLegacyPrepare(WindowManager.TRANSIT_OPEN, 0);
+        mDisplayContent.requestTransitionAndLegacyPrepare(WindowManager.TRANSIT_OPEN, 0, null);
         translucentTop.setVisibility(true);
         mDisplayContent.updateOrientation();
         assertEquals("Non-top visible activity must be portrait",
@@ -2373,33 +2374,6 @@
 
     @SetupWindows(addWindows = W_INPUT_METHOD)
     @Test
-    public void testShowImeScreenshot() {
-        final Task rootTask = createTask(mDisplayContent);
-        final Task task = createTaskInRootTask(rootTask, 0 /* userId */);
-        final ActivityRecord activity = createActivityRecord(mDisplayContent, task);
-        final WindowState win = newWindowBuilder("win", TYPE_BASE_APPLICATION).setWindowToken(
-                activity).build();
-        task.getDisplayContent().prepareAppTransition(TRANSIT_CLOSE);
-        doReturn(true).when(task).okToAnimate();
-        ArrayList<WindowContainer> sources = new ArrayList<>();
-        sources.add(activity);
-
-        mDisplayContent.setImeLayeringTarget(win);
-        spyOn(mDisplayContent);
-
-        // Expecting the IME screenshot only be attached when performing task closing transition.
-        task.applyAnimation(null, TRANSIT_OLD_TASK_CLOSE, false /* enter */,
-                false /* isVoiceInteraction */, sources);
-        verify(mDisplayContent).showImeScreenshot();
-
-        clearInvocations(mDisplayContent);
-        activity.applyAnimation(null, TRANSIT_OLD_TRANSLUCENT_ACTIVITY_CLOSE, false /* enter */,
-                false /* isVoiceInteraction */, sources);
-        verify(mDisplayContent, never()).showImeScreenshot();
-    }
-
-    @SetupWindows(addWindows = W_INPUT_METHOD)
-    @Test
     public void testShowImeScreenshot_removeCurSnapshotBeforeCreateNext() {
         final Task rootTask = createTask(mDisplayContent);
         final Task task = createTaskInRootTask(rootTask, 0 /* userId */);
@@ -2427,32 +2401,6 @@
 
     @UseTestDisplay(addWindows = {W_INPUT_METHOD})
     @Test
-    public void testRemoveImeScreenshot_whenTargetSurfaceWasInvisible() {
-        final Task rootTask = createTask(mDisplayContent);
-        final Task task = createTaskInRootTask(rootTask, 0 /* userId */);
-        final ActivityRecord activity = createActivityRecord(mDisplayContent, task);
-        final WindowState win = newWindowBuilder("win", TYPE_BASE_APPLICATION).setWindowToken(
-                activity).build();
-        win.onSurfaceShownChanged(true);
-        makeWindowVisible(win, mDisplayContent.mInputMethodWindow);
-        task.getDisplayContent().prepareAppTransition(TRANSIT_CLOSE);
-        doReturn(true).when(task).okToAnimate();
-        ArrayList<WindowContainer> sources = new ArrayList<>();
-        sources.add(activity);
-
-        mDisplayContent.setImeLayeringTarget(win);
-        mDisplayContent.setImeInputTarget(win);
-        mDisplayContent.getInsetsStateController().getImeSourceProvider().setImeShowing(true);
-        task.applyAnimation(null, TRANSIT_OLD_TASK_CLOSE, false /* enter */,
-                false /* isVoiceInteraction */, sources);
-        assertNotNull(mDisplayContent.mImeScreenshot);
-
-        win.onSurfaceShownChanged(false);
-        assertNull(mDisplayContent.mImeScreenshot);
-    }
-
-    @UseTestDisplay(addWindows = {W_INPUT_METHOD})
-    @Test
     public void testRemoveImeScreenshot_whenWindowRemoveImmediately() {
         final Task rootTask = createTask(mDisplayContent);
         final Task task = createTaskInRootTask(rootTask, 0 /* userId */);
@@ -2677,6 +2625,7 @@
         final KeyguardController keyguard = mAtm.mKeyguardController;
         final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build();
         final int displayId = mDisplayContent.getDisplayId();
+        final TestTransitionPlayer transitions = registerTestTransitionPlayer();
 
         final BooleanSupplier keyguardShowing = () -> keyguard.isKeyguardShowing(displayId);
         final BooleanSupplier keyguardGoingAway = () -> keyguard.isKeyguardGoingAway(displayId);
@@ -2686,21 +2635,40 @@
         keyguard.setKeyguardShown(displayId, true /* keyguard */, true /* aod */);
         assertFalse(keyguardGoingAway.getAsBoolean());
         assertFalse(appVisible.getAsBoolean());
+        transitions.flush();
 
         // Start unlocking from AOD.
         keyguard.keyguardGoingAway(displayId, 0x0 /* flags */);
         assertTrue(keyguardGoingAway.getAsBoolean());
         assertTrue(appVisible.getAsBoolean());
 
+        if (Flags.ensureKeyguardDoesTransitionStarting()) {
+            assertThat(transitions.mLastTransit).isNull();
+        } else {
+            assertThat(transitions.mLastTransit).flags()
+                    .containsExactly(TRANSIT_FLAG_KEYGUARD_GOING_AWAY);
+        }
+        transitions.flush();
+
         // Clear AOD. This does *not* clear the going-away status.
         keyguard.setKeyguardShown(displayId, true /* keyguard */, false /* aod */);
         assertTrue(keyguardGoingAway.getAsBoolean());
         assertTrue(appVisible.getAsBoolean());
 
+        if (Flags.aodTransition()) {
+            assertThat(transitions.mLastTransit).flags()
+                    .containsExactly(TRANSIT_FLAG_AOD_APPEARING);
+        } else {
+            assertThat(transitions.mLastTransit).isNull();
+        }
+        transitions.flush();
+
         // Finish unlock
         keyguard.setKeyguardShown(displayId, false /* keyguard */, false /* aod */);
         assertFalse(keyguardGoingAway.getAsBoolean());
         assertTrue(appVisible.getAsBoolean());
+
+        assertThat(transitions.mLastTransit).isNull();
     }
 
     @Test
@@ -2710,6 +2678,7 @@
         final KeyguardController keyguard = mAtm.mKeyguardController;
         final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build();
         final int displayId = mDisplayContent.getDisplayId();
+        final TestTransitionPlayer transitions = registerTestTransitionPlayer();
 
         final BooleanSupplier keyguardShowing = () -> keyguard.isKeyguardShowing(displayId);
         final BooleanSupplier keyguardGoingAway = () -> keyguard.isKeyguardGoingAway(displayId);
@@ -2719,22 +2688,44 @@
         keyguard.setKeyguardShown(displayId, true /* keyguard */, true /* aod */);
         assertFalse(keyguardGoingAway.getAsBoolean());
         assertFalse(appVisible.getAsBoolean());
+        transitions.flush();
 
         // Start unlocking from AOD.
         keyguard.keyguardGoingAway(displayId, 0x0 /* flags */);
         assertTrue(keyguardGoingAway.getAsBoolean());
         assertTrue(appVisible.getAsBoolean());
 
+        if (!Flags.ensureKeyguardDoesTransitionStarting()) {
+            assertThat(transitions.mLastTransit).flags()
+                    .containsExactly(TRANSIT_FLAG_KEYGUARD_GOING_AWAY);
+        }
+        transitions.flush();
+
         // Clear AOD. This does *not* clear the going-away status.
         keyguard.setKeyguardShown(displayId, true /* keyguard */, false /* aod */);
         assertTrue(keyguardGoingAway.getAsBoolean());
         assertTrue(appVisible.getAsBoolean());
 
+        if (Flags.aodTransition()) {
+            assertThat(transitions.mLastTransit).flags()
+                    .containsExactly(TRANSIT_FLAG_AOD_APPEARING);
+        } else {
+            assertThat(transitions.mLastTransit).isNull();
+        }
+        transitions.flush();
+
         // Same API call a second time cancels the unlock, because AOD isn't changing.
         keyguard.setKeyguardShown(displayId, true /* keyguard */, false /* aod */);
         assertTrue(keyguardShowing.getAsBoolean());
         assertFalse(keyguardGoingAway.getAsBoolean());
         assertFalse(appVisible.getAsBoolean());
+
+        if (Flags.ensureKeyguardDoesTransitionStarting()) {
+            assertThat(transitions.mLastTransit).isNull();
+        } else {
+            assertThat(transitions.mLastTransit).flags()
+                    .containsExactly(TRANSIT_FLAG_KEYGUARD_APPEARING);
+        }
     }
 
     @Test
@@ -2751,55 +2742,77 @@
 
     @SetupWindows(addWindows = W_INPUT_METHOD)
     @Test
-    public void testImeChildWindowFocusWhenImeLayeringTargetChanges() {
-        final WindowState imeChildWindow = newWindowBuilder("imeChildWindow",
+    public void testImeChildWindowFocusWhenImeParentWindowChanges() {
+        final var imeChildWindow = newWindowBuilder("imeChildWindow",
                 TYPE_APPLICATION_ATTACHED_DIALOG).setParent(mImeWindow).build();
-        makeWindowVisibleAndDrawn(imeChildWindow, mImeWindow);
-        assertTrue(imeChildWindow.canReceiveKeys());
-        mDisplayContent.setInputMethodWindowLocked(mImeWindow);
-
-        // Verify imeChildWindow can be focused window if the next IME target requests IME visible.
-        final WindowState imeAppTarget = newWindowBuilder("imeAppTarget",
-                TYPE_BASE_APPLICATION).setDisplay(mDisplayContent).build();
-        mDisplayContent.setImeLayeringTarget(imeAppTarget);
-        spyOn(imeAppTarget);
-        doReturn(true).when(imeAppTarget).isRequestedVisible(ime());
-        assertEquals(imeChildWindow, mDisplayContent.findFocusedWindow());
-
-        // Verify imeChildWindow doesn't be focused window if the next IME target does not
-        // request IME visible.
-        final WindowState nextImeAppTarget = newWindowBuilder("nextImeAppTarget",
-                TYPE_BASE_APPLICATION).setDisplay(mDisplayContent).build();
-        mDisplayContent.setImeLayeringTarget(nextImeAppTarget);
-        assertNotEquals(imeChildWindow, mDisplayContent.findFocusedWindow());
+        doTestImeWindowFocusWhenImeParentWindowChanged(imeChildWindow);
     }
 
     @SetupWindows(addWindows = W_INPUT_METHOD)
     @Test
-    public void testImeMenuDialogFocusWhenImeLayeringTargetChanges() {
-        final WindowState imeMenuDialog = newWindowBuilder("imeMenuDialog",
+    public void testImeDialogWindowFocusWhenImeParentWindowChanges() {
+        final var imeDialogWindow = newWindowBuilder("imeMenuDialog",
                 TYPE_INPUT_METHOD_DIALOG).build();
-        makeWindowVisibleAndDrawn(imeMenuDialog, mImeWindow);
-        assertTrue(imeMenuDialog.canReceiveKeys());
+        doTestImeWindowFocusWhenImeParentWindowChanged(imeDialogWindow);
+    }
+
+    @SetupWindows(addWindows = W_INPUT_METHOD)
+    @Test
+    public void testImeWindowFocusWhenImeParentWindowChanges() {
+        // Verify focusable, non-child IME windows.
+        final var otherImeWindow = newWindowBuilder("otherImeWindow",
+                TYPE_INPUT_METHOD).build();
+        doTestImeWindowFocusWhenImeParentWindowChanged(otherImeWindow);
+    }
+
+    private void doTestImeWindowFocusWhenImeParentWindowChanged(@NonNull WindowState window) {
+        makeWindowVisibleAndDrawn(window, mImeWindow);
+        assertTrue("Window canReceiveKeys", window.canReceiveKeys());
         mDisplayContent.setInputMethodWindowLocked(mImeWindow);
 
-        // Verify imeMenuDialog can be focused window if the next IME target requests IME visible.
+        // Verify window can be focused if the IME parent is visible and the IME is visible.
         final WindowState imeAppTarget = newWindowBuilder("imeAppTarget",
                 TYPE_BASE_APPLICATION).setDisplay(mDisplayContent).build();
         mDisplayContent.setImeLayeringTarget(imeAppTarget);
-        imeAppTarget.setRequestedVisibleTypes(ime());
-        assertEquals(imeMenuDialog, mDisplayContent.findFocusedWindow());
+        mDisplayContent.updateImeInputAndControlTarget(imeAppTarget);
+        final var imeProvider = mDisplayContent.getInsetsStateController().getImeSourceProvider();
+        imeProvider.setImeShowing(true);
+        final var imeParentWindow = mDisplayContent.getImeParentWindow();
+        assertNotNull("IME parent window is not null", imeParentWindow);
+        assertTrue("IME parent window is visible", imeParentWindow.isVisibleRequested());
+        assertTrue("IME is visible", imeProvider.isImeShowing());
+        assertEquals("Window is the focused one", window, mDisplayContent.findFocusedWindow());
 
-        // Verify imeMenuDialog doesn't be focused window if the next IME target is closing.
+        // Verify window can't be focused if the IME parent is not visible.
         final WindowState nextImeAppTarget = newWindowBuilder("nextImeAppTarget",
                 TYPE_BASE_APPLICATION).setDisplay(mDisplayContent).build();
         makeWindowVisibleAndDrawn(nextImeAppTarget);
-        // Even if the app still requests IME, the ime dialog should not gain focus if the target
-        // app is invisible.
-        nextImeAppTarget.setRequestedVisibleTypes(ime());
-        nextImeAppTarget.mActivityRecord.setVisibility(false);
+        // Change layering target but keep input target (and thus imeParent) the same.
         mDisplayContent.setImeLayeringTarget(nextImeAppTarget);
-        assertNotEquals(imeMenuDialog, mDisplayContent.findFocusedWindow());
+        // IME parent window is not visible, occluded by new layering target.
+        imeParentWindow.setVisibleRequested(false);
+        assertEquals("IME parent window did not change", imeParentWindow,
+                mDisplayContent.getImeParentWindow());
+        assertFalse("IME parent window is not visible", imeParentWindow.isVisibleRequested());
+        assertTrue("IME is visible", imeProvider.isImeShowing());
+        assertNotEquals("Window is not the focused one when imeParent is not visible", window,
+                mDisplayContent.findFocusedWindow());
+
+        // Verify window can be focused if the IME is not visible.
+        mDisplayContent.updateImeInputAndControlTarget(nextImeAppTarget);
+        imeProvider.setImeShowing(false);
+        final var nextImeParentWindow = mDisplayContent.getImeParentWindow();
+        assertNotNull("Next IME parent window is not null", nextImeParentWindow);
+        assertNotEquals("IME parent window changed", imeParentWindow, nextImeParentWindow);
+        assertTrue("Next IME parent window is visible", nextImeParentWindow.isVisibleRequested());
+        assertFalse("IME is not visible", imeProvider.isImeShowing());
+        if (window.isChildWindow()) {
+            assertNotEquals("Child window is not the focused on when the IME is not visible",
+                    window, mDisplayContent.findFocusedWindow());
+        } else {
+            assertEquals("Window is the focused one when the IME is not visible",
+                    window, mDisplayContent.findFocusedWindow());
+        }
     }
 
     @Test
@@ -2908,6 +2921,74 @@
         assertFalse(dc.mWmService.mDisplayWindowSettings.shouldShowSystemDecorsLocked(dc));
     }
 
+    @EnableFlags(FLAG_ENABLE_PERSISTING_DENSITY_SCALE_FOR_CONNECTED_DISPLAYS)
+    @Test
+    public void testForcedDensityRatioSetForExternalDisplays_persistDensityScaleFlagEnabled() {
+        final DisplayInfo displayInfo = new DisplayInfo(mDisplayInfo);
+        displayInfo.displayId = DEFAULT_DISPLAY + 1;
+        displayInfo.type = Display.TYPE_EXTERNAL;
+        final DisplayContent displayContent = createNewDisplay(displayInfo);
+        final int baseWidth = 1280;
+        final int baseHeight = 720;
+        final int baseDensity = 320;
+        final float baseXDpi = 60;
+        final float baseYDpi = 60;
+
+        displayContent.mInitialDisplayWidth = baseWidth;
+        displayContent.mInitialDisplayHeight = baseHeight;
+        displayContent.mInitialDisplayDensity = baseDensity;
+        displayContent.updateBaseDisplayMetrics(baseWidth, baseHeight, baseDensity, baseXDpi,
+                baseYDpi);
+
+        final int forcedDensity = 640;
+
+        // Verify that forcing the density is honored and the size doesn't change.
+        displayContent.setForcedDensity(forcedDensity, 0 /* userId */);
+        verifySizes(displayContent, baseWidth, baseHeight, forcedDensity);
+
+        // Verify that density ratio is set correctly.
+        assertEquals((float) forcedDensity / baseDensity,
+                displayContent.mExternalDisplayForcedDensityRatio, 0.01);
+    }
+
+    @EnableFlags(FLAG_ENABLE_PERSISTING_DENSITY_SCALE_FOR_CONNECTED_DISPLAYS)
+    @Test
+    public void testForcedDensityUpdateForExternalDisplays_persistDensityScaleFlagEnabled() {
+        final DisplayInfo displayInfo = new DisplayInfo(mDisplayInfo);
+        displayInfo.displayId = DEFAULT_DISPLAY + 1;
+        displayInfo.type = Display.TYPE_EXTERNAL;
+        final DisplayContent displayContent = createNewDisplay(displayInfo);
+        final int baseWidth = 1280;
+        final int baseHeight = 720;
+        final int baseDensity = 320;
+        final float baseXDpi = 60;
+        final float baseYDpi = 60;
+
+        displayContent.mInitialDisplayWidth = baseWidth;
+        displayContent.mInitialDisplayHeight = baseHeight;
+        displayContent.mInitialDisplayDensity = baseDensity;
+        displayContent.updateBaseDisplayMetrics(baseWidth, baseHeight, baseDensity, baseXDpi,
+                baseYDpi);
+
+        final int forcedDensity = 640;
+
+        // Verify that forcing the density is honored and the size doesn't change.
+        displayContent.setForcedDensity(forcedDensity, 0 /* userId */);
+        verifySizes(displayContent, baseWidth, baseHeight, forcedDensity);
+
+        // Verify that density ratio is set correctly.
+        assertEquals((float) 2.0f,
+                displayContent.mExternalDisplayForcedDensityRatio, 0.001);
+
+
+        displayContent.mInitialDisplayDensity = 160;
+        displayContent.updateBaseDisplayMetrics(baseWidth, baseHeight, baseDensity, baseXDpi,
+                baseYDpi);
+
+        // Verify that forced density is updated based on the ratio.
+        assertEquals(320, displayContent.mBaseDisplayDensity);
+    }
+
     @EnableFlags(FLAG_ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT)
     @Test
     public void testSetShouldShowSystemDecorations_nonDefaultNonPrivateDisplay() {
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayRotationTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayRotationTests.java
index 09fe75d..19cdb13 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayRotationTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayRotationTests.java
@@ -1084,7 +1084,7 @@
         final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams();
         attrs.rotationAnimation = WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS;
 
-        doReturn(attrs).when(win).getAttrs();
+        WindowTestsBase.setFieldValue(win, "mAttrs", attrs);
         doReturn(true).when(mMockDisplayPolicy).navigationBarCanMove();
         doReturn(win).when(mMockDisplayPolicy).getTopFullscreenOpaqueWindow();
         mMockDisplayContent.mCurrentFocus = win;
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayWindowSettingsTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayWindowSettingsTests.java
index b1cad51..a57577a96 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayWindowSettingsTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayWindowSettingsTests.java
@@ -42,6 +42,7 @@
 import android.annotation.NonNull;
 import android.app.WindowConfiguration;
 import android.content.ContentResolver;
+import android.platform.test.annotations.EnableFlags;
 import android.platform.test.annotations.Presubmit;
 import android.provider.Settings;
 import android.view.Display;
@@ -53,6 +54,7 @@
 import com.android.server.LocalServices;
 import com.android.server.policy.WindowManagerPolicy;
 import com.android.server.wm.DisplayWindowSettings.SettingsProvider.SettingsEntry;
+import com.android.window.flags.Flags;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -272,6 +274,23 @@
                 mSecondaryDisplay.mBaseDisplayDensity);
     }
 
+    @EnableFlags(Flags.FLAG_ENABLE_PERSISTING_DENSITY_SCALE_FOR_CONNECTED_DISPLAYS)
+    @Test
+    public void testSetForcedDensityRatio() {
+        mDisplayWindowSettings.setForcedDensity(mSecondaryDisplay.getDisplayInfo(),
+                300 /* density */, 0 /* userId */);
+        mDisplayWindowSettings.setForcedDensityRatio(mSecondaryDisplay.getDisplayInfo(),
+                2.0f /* ratio */);
+        mDisplayWindowSettings.applySettingsToDisplayLocked(mSecondaryDisplay);
+
+        assertEquals(mSecondaryDisplay.mInitialDisplayDensity * 2.0f,
+                mSecondaryDisplay.mBaseDisplayDensity, 0.01);
+
+        mWm.clearForcedDisplayDensityForUser(mSecondaryDisplay.getDisplayId(), 0 /* userId */);
+        assertEquals(mSecondaryDisplay.mInitialDisplayDensity,
+                mSecondaryDisplay.mBaseDisplayDensity);
+    }
+
     @Test
     public void testSetForcedScalingMode() {
         mDisplayWindowSettings.setForcedScalingMode(mSecondaryDisplay,
diff --git a/services/tests/wmtests/src/com/android/server/wm/PresentationControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/PresentationControllerTests.java
index 7c8a883..6e0f7fb 100644
--- a/services/tests/wmtests/src/com/android/server/wm/PresentationControllerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/PresentationControllerTests.java
@@ -16,9 +16,12 @@
 
 package com.android.server.wm;
 
+import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.Display.FLAG_PRESENTATION;
+import static android.view.Display.FLAG_TRUSTED;
 import static android.view.WindowManager.TRANSIT_CLOSE;
 import static android.view.WindowManager.TRANSIT_OPEN;
+import static android.view.WindowManager.TRANSIT_WAKE;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
 import static com.android.window.flags.Flags.FLAG_ENABLE_PRESENTATION_FOR_CONNECTED_DISPLAYS;
@@ -30,8 +33,9 @@
 
 import android.annotation.NonNull;
 import android.graphics.Rect;
+import android.os.Binder;
 import android.os.UserHandle;
-import android.os.UserManager;
+import android.platform.test.annotations.DisableFlags;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.annotations.Presubmit;
 import android.view.DisplayInfo;
@@ -68,32 +72,14 @@
     @EnableFlags(FLAG_ENABLE_PRESENTATION_FOR_CONNECTED_DISPLAYS)
     @Test
     public void testPresentationShowAndHide() {
-        final DisplayInfo displayInfo = new DisplayInfo();
-        displayInfo.copyFrom(mDisplayInfo);
-        displayInfo.flags = FLAG_PRESENTATION;
-        final DisplayContent dc = createNewDisplay(displayInfo);
-        final int displayId = dc.getDisplayId();
-        doReturn(dc).when(mWm.mRoot).getDisplayContentOrCreate(displayId);
+        final DisplayContent dc = createPresentationDisplay();
         final ActivityRecord activity = createActivityRecord(createTask(dc));
         assertTrue(activity.isVisible());
-        doReturn(true).when(() -> UserManager.isVisibleBackgroundUsersEnabled());
-        final int uid = 100000; // uid for non-system user
-        final Session session = createTestSession(mAtm, 1234 /* pid */, uid);
-        final int userId = UserHandle.getUserId(uid);
-        doReturn(false).when(mWm.mUmInternal).isUserVisible(eq(userId), eq(displayId));
-        final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
-                WindowManager.LayoutParams.TYPE_PRESENTATION);
-        final IWindow clientWindow = new TestIWindow();
 
-        // Show a Presentation window, which requests the activity to be stopped.
-        final int result = mWm.addWindow(session, clientWindow, params, View.VISIBLE, displayId,
-                userId, WindowInsets.Type.defaultVisible(), null, new InsetsState(),
-                new InsetsSourceControl.Array(), new Rect(), new float[1]);
-        assertTrue(result >= WindowManagerGlobal.ADD_OKAY);
+        // Add a presentation window, which requests the activity to stop.
+        final WindowState window = addPresentationWindow(100000, dc.mDisplayId);
         assertFalse(activity.isVisibleRequested());
         assertTrue(activity.isVisible());
-        final WindowState window = mWm.windowForClientLocked(session, clientWindow, false);
-        window.mHasSurface = true;
         final Transition addTransition = window.mTransitionController.getCollectingTransition();
         assertEquals(TRANSIT_OPEN, addTransition.mType);
         assertTrue(addTransition.isInTransition(window));
@@ -117,6 +103,176 @@
         assertTrue(activity.isVisible());
     }
 
+    @DisableFlags(FLAG_ENABLE_PRESENTATION_FOR_CONNECTED_DISPLAYS)
+    @Test
+    public void testPresentationShowAndHide_flagDisabled() {
+        final DisplayContent dc = createPresentationDisplay();
+        final ActivityRecord activity = createActivityRecord(createTask(dc));
+        assertTrue(activity.isVisible());
+
+        final WindowState window = addPresentationWindow(100000, dc.mDisplayId);
+        assertFalse(window.mTransitionController.isCollecting());
+        assertTrue(activity.isVisibleRequested());
+        assertTrue(activity.isVisible());
+
+        window.removeIfPossible();
+        assertFalse(window.mTransitionController.isCollecting());
+        assertTrue(activity.isVisibleRequested());
+        assertTrue(activity.isVisible());
+        assertFalse(window.isAttached());
+    }
+
+    @EnableFlags(FLAG_ENABLE_PRESENTATION_FOR_CONNECTED_DISPLAYS)
+    @Test
+    public void testPresentationCannotCoverHostTask() {
+        int uid = Binder.getCallingUid();
+        final DisplayContent presentationDisplay = createPresentationDisplay();
+        final Task task = createTask(presentationDisplay);
+        task.effectiveUid = uid;
+        final ActivityRecord activity = createActivityRecord(task);
+        assertTrue(activity.isVisible());
+
+        // Adding a presentation window over its host task must fail.
+        assertAddPresentationWindowFails(uid, presentationDisplay.mDisplayId);
+
+        // Adding a presentation window on the other display must succeed.
+        final WindowState window = addPresentationWindow(uid, DEFAULT_DISPLAY);
+        final Transition addTransition = window.mTransitionController.getCollectingTransition();
+        completeTransition(addTransition, /*abortSync=*/ true);
+        assertTrue(window.isVisible());
+
+        // Moving the host task to the presenting display will remove the presentation.
+        task.reparent(mDefaultDisplay.getDefaultTaskDisplayArea(), true);
+        waitHandlerIdle(window.mWmService.mAtmService.mH);
+        final Transition removeTransition = window.mTransitionController.getCollectingTransition();
+        assertEquals(TRANSIT_CLOSE, removeTransition.mType);
+        completeTransition(removeTransition, /*abortSync=*/ false);
+        assertFalse(window.isVisible());
+    }
+
+    @EnableFlags(FLAG_ENABLE_PRESENTATION_FOR_CONNECTED_DISPLAYS)
+    @Test
+    public void testPresentationCannotLaunchOnAllDisplays() {
+        final int uid = Binder.getCallingUid();
+        final DisplayContent presentationDisplay = createPresentationDisplay();
+        final Task task = createTask(presentationDisplay);
+        task.effectiveUid = uid;
+        final ActivityRecord activity = createActivityRecord(task);
+        assertTrue(activity.isVisible());
+
+        // Add a presentation window on the default display.
+        final WindowState window = addPresentationWindow(uid, DEFAULT_DISPLAY);
+        final Transition addTransition = window.mTransitionController.getCollectingTransition();
+        completeTransition(addTransition, /*abortSync=*/ true);
+        assertTrue(window.isVisible());
+
+        // Adding another presentation window over the task even if it's a different UID because
+        // it would end up showing presentations on all displays.
+        assertAddPresentationWindowFails(uid + 1, presentationDisplay.mDisplayId);
+    }
+
+    @EnableFlags(FLAG_ENABLE_PRESENTATION_FOR_CONNECTED_DISPLAYS)
+    @Test
+    public void testPresentationCannotLaunchOnNonPresentationDisplayWithoutHostHavingGlobalFocus() {
+        final int uid = Binder.getCallingUid();
+        // Adding a presentation window on an internal display requires a host task
+        // with global focus on another display.
+        assertAddPresentationWindowFails(uid, DEFAULT_DISPLAY);
+
+        final DisplayContent presentationDisplay = createPresentationDisplay();
+        final Task taskWiSameUid = createTask(presentationDisplay);
+        taskWiSameUid.effectiveUid = uid;
+        final ActivityRecord activity = createActivityRecord(taskWiSameUid);
+        assertTrue(activity.isVisible());
+        final Task taskWithDifferentUid = createTask(presentationDisplay);
+        taskWithDifferentUid.effectiveUid = uid + 1;
+        createActivityRecord(taskWithDifferentUid);
+        assertEquals(taskWithDifferentUid, presentationDisplay.getFocusedRootTask());
+
+        // The task with the same UID is covered by another task with a different UID, so this must
+        // also fail.
+        assertAddPresentationWindowFails(uid, DEFAULT_DISPLAY);
+
+        // Moving the task with the same UID to front and giving it global focus allows a
+        // presentation to show on the default display.
+        taskWiSameUid.moveToFront("test");
+        final WindowState window = addPresentationWindow(uid, DEFAULT_DISPLAY);
+        final Transition addTransition = window.mTransitionController.getCollectingTransition();
+        completeTransition(addTransition, /*abortSync=*/ true);
+        assertTrue(window.isVisible());
+    }
+
+    @EnableFlags(FLAG_ENABLE_PRESENTATION_FOR_CONNECTED_DISPLAYS)
+    @Test
+    public void testReparentingActivityToSameDisplayClosesPresentation() {
+        final int uid = Binder.getCallingUid();
+        final Task task = createTask(mDefaultDisplay);
+        task.effectiveUid = uid;
+        final ActivityRecord activity = createActivityRecord(task);
+        assertTrue(activity.isVisible());
+
+        // Add a presentation window on a presentation display.
+        final DisplayContent presentationDisplay = createPresentationDisplay();
+        final WindowState window = addPresentationWindow(uid, presentationDisplay.getDisplayId());
+        final Transition addTransition = window.mTransitionController.getCollectingTransition();
+        completeTransition(addTransition, /*abortSync=*/ true);
+        assertTrue(window.isVisible());
+
+        // Reparenting the host task below the presentation must close the presentation.
+        task.reparent(presentationDisplay.getDefaultTaskDisplayArea(), true);
+        waitHandlerIdle(window.mWmService.mAtmService.mH);
+        final Transition removeTransition = window.mTransitionController.getCollectingTransition();
+        // It's a WAKE transition instead of CLOSE because
+        assertEquals(TRANSIT_WAKE, removeTransition.mType);
+        completeTransition(removeTransition, /*abortSync=*/ false);
+        assertFalse(window.isVisible());
+    }
+
+    private WindowState addPresentationWindow(int uid, int displayId) {
+        final Session session = createTestSession(mAtm, 1234 /* pid */, uid);
+        final int userId = UserHandle.getUserId(uid);
+        doReturn(true).when(mWm.mUmInternal).isUserVisible(eq(userId), eq(displayId));
+        final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
+                WindowManager.LayoutParams.TYPE_PRESENTATION);
+        final IWindow clientWindow = new TestIWindow();
+        final int res = mWm.addWindow(session, clientWindow, params, View.VISIBLE, displayId,
+                userId, WindowInsets.Type.defaultVisible(), null, new InsetsState(),
+                new InsetsSourceControl.Array(), new Rect(), new float[1]);
+        assertTrue(res >= WindowManagerGlobal.ADD_OKAY);
+        final WindowState window = mWm.windowForClientLocked(session, clientWindow, false);
+        window.mHasSurface = true;
+        return window;
+    }
+
+    private void assertAddPresentationWindowFails(int uid, int displayId) {
+        final Session session = createTestSession(mAtm, 1234 /* pid */, uid);
+        final IWindow clientWindow = new TestIWindow();
+        final int res = addPresentationWindowInner(uid, displayId, session, clientWindow);
+        assertEquals(WindowManagerGlobal.ADD_INVALID_DISPLAY, res);
+    }
+
+    private int addPresentationWindowInner(int uid, int displayId, Session session,
+            IWindow clientWindow) {
+        final int userId = UserHandle.getUserId(uid);
+        doReturn(true).when(mWm.mUmInternal).isUserVisible(eq(userId), eq(displayId));
+        final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
+                WindowManager.LayoutParams.TYPE_PRESENTATION);
+        return mWm.addWindow(session, clientWindow, params, View.VISIBLE, displayId, userId,
+                WindowInsets.Type.defaultVisible(), null, new InsetsState(),
+                new InsetsSourceControl.Array(), new Rect(), new float[1]);
+    }
+
+    private DisplayContent createPresentationDisplay() {
+        final DisplayInfo displayInfo = new DisplayInfo();
+        displayInfo.copyFrom(mDisplayInfo);
+        displayInfo.flags = FLAG_PRESENTATION | FLAG_TRUSTED;
+        displayInfo.displayId = DEFAULT_DISPLAY + 1;
+        final DisplayContent dc = createNewDisplay(displayInfo);
+        final int displayId = dc.getDisplayId();
+        doReturn(dc).when(mWm.mRoot).getDisplayContentOrCreate(displayId);
+        return dc;
+    }
+
     private void completeTransition(@NonNull Transition transition, boolean abortSync) {
         final ActionChain chain = ActionChain.testFinish(transition);
         if (abortSync) {
diff --git a/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java b/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java
index 45436e4..d3f3269 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java
@@ -33,6 +33,7 @@
 import android.platform.test.annotations.Presubmit;
 import android.view.Display.Mode;
 import android.view.Surface;
+import android.view.WindowInsets;
 import android.view.WindowManager.LayoutParams;
 
 import androidx.test.filters.SmallTest;
@@ -283,7 +284,7 @@
         assertEquals(0, mPolicy.getPreferredMinRefreshRate(overrideWindow), FLOAT_TOLERANCE);
         assertEquals(0, mPolicy.getPreferredMaxRefreshRate(overrideWindow), FLOAT_TOLERANCE);
 
-        overrideWindow.notifyInsetsAnimationRunningStateChanged(true);
+        overrideWindow.setAnimatingTypes(WindowInsets.Type.statusBars());
         assertEquals(LOW_MODE_ID, mPolicy.getPreferredModeId(overrideWindow));
         assertTrue(mPolicy.updateFrameRateVote(overrideWindow));
         assertEquals(FRAME_RATE_VOTE_NONE, overrideWindow.mFrameRateVote);
@@ -303,7 +304,7 @@
         assertEquals(0, mPolicy.getPreferredMinRefreshRate(overrideWindow), FLOAT_TOLERANCE);
         assertEquals(0, mPolicy.getPreferredMaxRefreshRate(overrideWindow), FLOAT_TOLERANCE);
 
-        overrideWindow.notifyInsetsAnimationRunningStateChanged(true);
+        overrideWindow.setAnimatingTypes(WindowInsets.Type.statusBars());
         assertEquals(0, mPolicy.getPreferredModeId(overrideWindow));
         assertTrue(mPolicy.updateFrameRateVote(overrideWindow));
         assertEquals(FRAME_RATE_VOTE_NONE, overrideWindow.mFrameRateVote);
diff --git a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
index 1dc32b0..4e09d6a 100644
--- a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
@@ -5128,9 +5128,9 @@
 
         // Application level.
         try {
-            doReturn(property).when(pm).getProperty(
+            doReturn(property).when(pm).getPropertyAsUser(
                     WindowManager.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY,
-                    name.getPackageName());
+                    name.getPackageName(), null /* className */, 0 /* userId */);
         } catch (PackageManager.NameNotFoundException e) {
             throw new RuntimeException(e);
         }
diff --git a/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java b/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java
index 9406779..3776b036 100644
--- a/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java
@@ -264,7 +264,7 @@
         final DisplayManagerGlobal dmg = DisplayManagerGlobal.getInstance();
         spyOn(dmg);
         doNothing().when(dmg).registerDisplayListener(
-                any(), any(Executor.class), anyLong(), anyString());
+                any(), any(Executor.class), anyLong(), anyString(), anyBoolean());
         doNothing().when(dmg).registerTopologyListener(any(Executor.class), any(), anyString());
     }
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java
index 2ee34d3..5699c29 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java
@@ -82,8 +82,6 @@
 import android.graphics.Point;
 import android.graphics.Rect;
 import android.os.IBinder;
-import android.platform.test.annotations.DisableFlags;
-import android.platform.test.annotations.EnableFlags;
 import android.platform.test.annotations.Presubmit;
 import android.util.ArrayMap;
 import android.util.ArraySet;
@@ -104,7 +102,6 @@
 import androidx.test.filters.SmallTest;
 
 import com.android.internal.graphics.ColorUtils;
-import com.android.window.flags.Flags;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -683,7 +680,7 @@
         app.onStartingWindowDrawn();
         // The task appeared event should be deferred until transition ready.
         assertFalse(task.taskAppearedReady());
-        testPlayer.onTransactionReady(app.getSyncTransaction());
+        testPlayer.onTransactionReady();
         assertTrue(task.taskAppearedReady());
         assertTrue(playerProc.isRunningRemoteTransition());
         assertTrue(controller.mRemotePlayer.reportRunning(delegateProc.getThread()));
@@ -1162,7 +1159,8 @@
         screenDecor.updateSurfacePosition(mMockT);
         assertEquals(prevPos, screenDecor.mLastSurfacePosition);
 
-        final SurfaceControl.Transaction startTransaction = mock(SurfaceControl.Transaction.class);
+        final SurfaceControl.Transaction startTransaction = mTransaction;
+        clearInvocations(startTransaction);
         final SurfaceControl.TransactionCommittedListener transactionCommittedListener =
                 onRotationTransactionReady(player, startTransaction);
 
@@ -1213,7 +1211,8 @@
         assertFalse(statusBar.mToken.inTransition());
         assertTrue(app.getTask().inTransition());
 
-        final SurfaceControl.Transaction startTransaction = mock(SurfaceControl.Transaction.class);
+        final SurfaceControl.Transaction startTransaction = mTransaction;
+        clearInvocations(startTransaction);
         final SurfaceControl leash = statusBar.mToken.getAnimationLeash();
         doReturn(true).when(leash).isValid();
         final SurfaceControl.TransactionCommittedListener transactionCommittedListener =
@@ -1287,7 +1286,8 @@
         // Avoid DeviceStateController disturbing the test by triggering another rotation change.
         doReturn(false).when(mDisplayContent).updateRotationUnchecked();
 
-        onRotationTransactionReady(player, mWm.mTransactionFactory.get()).onTransactionCommitted();
+        clearInvocations(mTransaction);
+        onRotationTransactionReady(player, mTransaction).onTransactionCommitted();
         assertEquals(ROTATION_ANIMATION_SEAMLESS, player.mLastReady.getChange(
                 mDisplayContent.mRemoteToken.toWindowContainerToken()).getRotationAnimation());
         spyOn(navBarInsetsProvider);
@@ -1350,7 +1350,7 @@
         mDisplayContent.setFixedRotationLaunchingAppUnchecked(home);
         doReturn(true).when(home).hasFixedRotationTransform(any());
         player.startTransition();
-        player.onTransactionReady(mDisplayContent.getSyncTransaction());
+        player.onTransactionReady();
 
         final DisplayRotation displayRotation = mDisplayContent.getDisplayRotation();
         final RemoteDisplayChangeController displayChangeController = mDisplayContent
@@ -2009,21 +2009,6 @@
         assertEquals(expectedBackgroundColor, info.getChanges().get(1).getBackgroundColor());
     }
 
-    @DisableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
-    @Test
-    public void testOverrideAnimationOptionsToInfoIfNecessary_disableAnimOptionsPerChange() {
-        ActivityRecord r = initializeOverrideAnimationOptionsTest();
-        TransitionInfo.AnimationOptions options = TransitionInfo.AnimationOptions
-                .makeCommonAnimOptions("testPackage");
-        mTransition.setOverrideAnimation(options, r, null /* startCallback */,
-                null /* finishCallback */);
-
-        mTransition.overrideAnimationOptionsToInfoIfNecessary(mInfo);
-
-        assertEquals(options, mInfo.getAnimationOptions());
-    }
-
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testOverrideAnimationOptionsToInfoIfNecessary_fromStyleAnimOptions() {
         ActivityRecord r = initializeOverrideAnimationOptionsTest();
@@ -2049,7 +2034,6 @@
                 options, activityChange.getAnimationOptions());
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testOverrideAnimationOptionsToInfoIfNecessary_sceneAnimOptions() {
         ActivityRecord r = initializeOverrideAnimationOptionsTest();
@@ -2075,7 +2059,6 @@
                 options, activityChange.getAnimationOptions());
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testOverrideAnimationOptionsToInfoIfNecessary_crossProfileAnimOptions() {
         ActivityRecord r = initializeOverrideAnimationOptionsTest();
@@ -2103,17 +2086,18 @@
         assertTrue(activityChange.hasFlags(FLAG_CROSS_PROFILE_OWNER_THUMBNAIL));
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testOverrideAnimationOptionsToInfoIfNecessary_customAnimOptions() {
-        ActivityRecord r = initializeOverrideAnimationOptionsTest();
-        TransitionInfo.AnimationOptions options = TransitionInfo.AnimationOptions
+        final ActivityRecord r = initializeOverrideAnimationOptionsTest();
+        final TransitionInfo.AnimationOptions options = TransitionInfo.AnimationOptions
                 .makeCustomAnimOptions("testPackage", Resources.ID_NULL,
                         TransitionInfo.AnimationOptions.DEFAULT_ANIMATION_RESOURCES_ID,
                         TransitionInfo.AnimationOptions.DEFAULT_ANIMATION_RESOURCES_ID,
-                        Color.GREEN, false /* overrideTaskTransition */);
+                        false /* overrideTaskTransition */);
         mTransition.setOverrideAnimation(options, r, null /* startCallback */,
                 null /* finishCallback */);
+        final int expectedBackgroundColor = Color.GREEN;
+        mTransition.setOverrideBackgroundColor(expectedBackgroundColor);
 
         mTransition.overrideAnimationOptionsToInfoIfNecessary(mInfo);
 
@@ -2133,13 +2117,13 @@
         assertEquals("Activity change's AnimationOptions must be overridden.",
                 options, activityChange.getAnimationOptions());
         assertEquals("Activity change's background color must be overridden.",
-                options.getBackgroundColor(), activityChange.getBackgroundColor());
+                expectedBackgroundColor, activityChange.getBackgroundColor());
+
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testOverrideAnimationOptionsToInfoIfNecessary_haveTaskFragmentAnimParams() {
-        ActivityRecord r = initializeOverrideAnimationOptionsTest();
+        final ActivityRecord r = initializeOverrideAnimationOptionsTest();
 
         final TaskFragment embeddedTf = mTransition.mTargets.get(2).mContainer.asTaskFragment();
         embeddedTf.setAnimationParams(new TaskFragmentAnimationParams.Builder()
@@ -2147,13 +2131,15 @@
                 .setOpenAnimationResId(0x12345678)
                 .build());
 
-        TransitionInfo.AnimationOptions options = TransitionInfo.AnimationOptions
+        final TransitionInfo.AnimationOptions options = TransitionInfo.AnimationOptions
                 .makeCustomAnimOptions("testPackage", Resources.ID_NULL,
                         TransitionInfo.AnimationOptions.DEFAULT_ANIMATION_RESOURCES_ID,
                         TransitionInfo.AnimationOptions.DEFAULT_ANIMATION_RESOURCES_ID,
-                        Color.GREEN, false /* overrideTaskTransition */);
+                        false /* overrideTaskTransition */);
         mTransition.setOverrideAnimation(options, r, null /* startCallback */,
                 null /* finishCallback */);
+        final int expectedBackgroundColor = Color.GREEN;
+        mTransition.setOverrideBackgroundColor(expectedBackgroundColor);
 
         final TransitionInfo.Change displayChange = mInfo.getChanges().get(0);
         final TransitionInfo.Change taskChange = mInfo.getChanges().get(1);
@@ -2166,7 +2152,7 @@
                 .makeCustomAnimOptions("testPackage", 0x12345678,
                         TransitionInfo.AnimationOptions.DEFAULT_ANIMATION_RESOURCES_ID,
                         TransitionInfo.AnimationOptions.DEFAULT_ANIMATION_RESOURCES_ID,
-                        0, false /* overrideTaskTransition */);
+                        false /* overrideTaskTransition */);
         embeddedTfChange.setAnimationOptions(expectedOptions);
 
         mTransition.overrideAnimationOptionsToInfoIfNecessary(mInfo);
@@ -2182,20 +2168,21 @@
         assertEquals("Activity change's AnimationOptions must be overridden.",
                 options, activityChange.getAnimationOptions());
         assertEquals("Activity change's background color must be overridden.",
-                options.getBackgroundColor(), activityChange.getBackgroundColor());
+                expectedBackgroundColor, activityChange.getBackgroundColor());
     }
 
-    @EnableFlags(Flags.FLAG_MOVE_ANIMATION_OPTIONS_TO_CHANGE)
     @Test
     public void testOverrideAnimationOptionsToInfoIfNecessary_customAnimOptionsWithTaskOverride() {
-        ActivityRecord r = initializeOverrideAnimationOptionsTest();
-        TransitionInfo.AnimationOptions options = TransitionInfo.AnimationOptions
+        final ActivityRecord r = initializeOverrideAnimationOptionsTest();
+        final TransitionInfo.AnimationOptions options = TransitionInfo.AnimationOptions
                 .makeCustomAnimOptions("testPackage", Resources.ID_NULL,
                         TransitionInfo.AnimationOptions.DEFAULT_ANIMATION_RESOURCES_ID,
                         TransitionInfo.AnimationOptions.DEFAULT_ANIMATION_RESOURCES_ID,
-                        Color.GREEN, true /* overrideTaskTransition */);
+                        true /* overrideTaskTransition */);
         mTransition.setOverrideAnimation(options, r, null /* startCallback */,
                 null /* finishCallback */);
+        final int expectedBackgroundColor = Color.GREEN;
+        mTransition.setOverrideBackgroundColor(expectedBackgroundColor);
 
         mTransition.overrideAnimationOptionsToInfoIfNecessary(mInfo);
 
@@ -2209,7 +2196,7 @@
         assertEquals("Task change's AnimationOptions must be overridden.",
                 options, taskChange.getAnimationOptions());
         assertEquals("Task change's background color must be overridden.",
-                options.getBackgroundColor(), taskChange.getBackgroundColor());
+                expectedBackgroundColor, taskChange.getBackgroundColor());
         assertEquals("Embedded TF change's AnimationOptions must be overridden.",
                 options, embeddedTfChange.getAnimationOptions());
         assertEquals("Embedded TF change's background color must be overridden.",
@@ -2217,7 +2204,7 @@
         assertEquals("Activity change's AnimationOptions must be overridden.",
                 options, activityChange.getAnimationOptions());
         assertEquals("Activity change's background color must be overridden.",
-                options.getBackgroundColor(), activityChange.getBackgroundColor());
+                expectedBackgroundColor, activityChange.getBackgroundColor());
     }
 
     private ActivityRecord initializeOverrideAnimationOptionsTest() {
@@ -2415,7 +2402,6 @@
     }
 
     @Test
-    @EnableFlags(Flags.FLAG_ENABLE_DISPLAY_FOCUS_IN_SHELL_TRANSITIONS)
     public void testMoveDisplayToTop() {
         // Set up two displays, each of which has a task.
         DisplayContent otherDisplay = createNewDisplay();
@@ -3071,8 +3057,11 @@
             TestTransitionPlayer player, SurfaceControl.Transaction startTransaction) {
         final ArgumentCaptor<SurfaceControl.TransactionCommittedListener> listenerCaptor =
                 ArgumentCaptor.forClass(SurfaceControl.TransactionCommittedListener.class);
-        player.onTransactionReady(startTransaction);
-        verify(startTransaction).addTransactionCommittedListener(any(), listenerCaptor.capture());
+        player.onTransactionReady();
+        // The startTransaction is from mWm.mTransactionFactory.get() in SyncGroup#finishNow.
+        // 2 times are from SyncGroup#finishNow and AsyncRotationController#setupStartTransaction.
+        verify(startTransaction, times(2)).addTransactionCommittedListener(
+                any(), listenerCaptor.capture());
         return listenerCaptor.getValue();
     }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java
index 358448e..adeeb98 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java
@@ -120,7 +120,7 @@
         // No wallpaper WSA Surface
         final WindowState wallpaperWindow = createWallpaperWindow(dc);
 
-        WindowManager.LayoutParams attrs = wallpaperWindow.getAttrs();
+        WindowManager.LayoutParams attrs = wallpaperWindow.mAttrs;
         Rect bounds = dc.getBounds();
         int displayWidth = dc.getBounds().width();
         int displayHeight = dc.getBounds().height();
@@ -170,7 +170,7 @@
     public void testWallpaperZoom() throws RemoteException {
         final DisplayContent dc = mWm.mRoot.getDefaultDisplay();
         final WindowState wallpaperWindow = createWallpaperWindow(dc);
-        wallpaperWindow.getAttrs().privateFlags |=
+        wallpaperWindow.mAttrs.privateFlags |=
                 WindowManager.LayoutParams.PRIVATE_FLAG_WANTS_OFFSET_NOTIFICATIONS;
 
         final WindowState homeWindow = createWallpaperTargetWindow(dc);
@@ -201,7 +201,7 @@
     public void testWallpaperZoom_shouldNotScaleWallpaper() throws RemoteException {
         final DisplayContent dc = mWm.mRoot.getDefaultDisplay();
         final WindowState wallpaperWindow = createWallpaperWindow(dc);
-        wallpaperWindow.getAttrs().privateFlags |=
+        wallpaperWindow.mAttrs.privateFlags |=
                 WindowManager.LayoutParams.PRIVATE_FLAG_WANTS_OFFSET_NOTIFICATIONS;
 
         final WindowState homeWindow = createWallpaperTargetWindow(dc);
@@ -234,7 +234,7 @@
     public void testWallpaperZoom_multipleCallers() {
         final DisplayContent dc = mWm.mRoot.getDefaultDisplay();
         final WindowState wallpaperWindow = createWallpaperWindow(dc);
-        wallpaperWindow.getAttrs().privateFlags |=
+        wallpaperWindow.mAttrs.privateFlags |=
                 WindowManager.LayoutParams.PRIVATE_FLAG_WANTS_OFFSET_NOTIFICATIONS;
 
 
@@ -580,7 +580,7 @@
 
         WindowState appWindow = newWindowBuilder("wallpaperTargetWindow",
                 TYPE_BASE_APPLICATION).setWindowToken(homeActivity).build();
-        appWindow.getAttrs().flags |= FLAG_SHOW_WALLPAPER;
+        appWindow.mAttrs.flags |= FLAG_SHOW_WALLPAPER;
         appWindow.mHasSurface = true;
         spyOn(appWindow);
         doReturn(true).when(appWindow).isDrawFinishedLw();
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
index cee98fb..4f310de 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
@@ -30,8 +30,6 @@
 import static android.view.WindowInsets.Type.systemOverlays;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
-import static android.view.WindowManager.TRANSIT_CLOSE;
-import static android.view.WindowManager.TRANSIT_OLD_TASK_CLOSE;
 import static android.window.DisplayAreaOrganizer.FEATURE_DEFAULT_TASK_CONTAINER;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
@@ -1121,7 +1119,6 @@
         final ActivityRecord activity = createActivityRecord(mDisplayContent, task);
         final WindowState win = newWindowBuilder("win", TYPE_BASE_APPLICATION).setWindowToken(
                 activity).build();
-        task.getDisplayContent().prepareAppTransition(TRANSIT_CLOSE);
         spyOn(win);
         doReturn(true).when(task).okToAnimate();
         ArrayList<WindowContainer> sources = new ArrayList<>();
@@ -1130,8 +1127,6 @@
         // Simulate the task applying the exit transition, verify the main window of the task
         // will be set the frozen insets state before the animation starts
         activity.setVisibility(false);
-        task.applyAnimation(null, TRANSIT_OLD_TASK_CLOSE, false /* enter */,
-                false /* isVoiceInteraction */, sources);
         verify(win).freezeInsetsState();
 
         // Simulate the task transition finished.
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
index 97c6ac6..57ab13f 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
@@ -136,6 +136,7 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
+import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -1024,6 +1025,16 @@
         displayContent.performDisplayOverrideConfigUpdate(c);
     }
 
+    static void setFieldValue(Object o, String fieldName, Object value) {
+        try {
+            final Field field = o.getClass().getDeclaredField(fieldName);
+            field.setAccessible(true);
+            field.set(o, value);
+        } catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
     static void makeDisplayLargeScreen(DisplayContent displayContent) {
         final int swDp = displayContent.getConfiguration().smallestScreenWidthDp;
         if (swDp < WindowManager.LARGE_SCREEN_SMALLEST_SCREEN_WIDTH_DP) {
@@ -2140,6 +2151,14 @@
             mLastRequest = null;
         }
 
+        void flush() {
+            if (mLastTransit != null) {
+                start();
+                finish();
+                clear();
+            }
+        }
+
         @Override
         public void onTransitionReady(IBinder transitToken, TransitionInfo transitionInfo,
                 SurfaceControl.Transaction transaction, SurfaceControl.Transaction finishT)
@@ -2159,13 +2178,14 @@
             mOrganizer.startTransition(mLastTransit.getToken(), null);
         }
 
-        void onTransactionReady(SurfaceControl.Transaction t) {
-            mLastTransit.onTransactionReady(mLastTransit.getSyncId(), t);
+        void onTransactionReady() {
+            // SyncGroup#finishNow -> Transition#onTransactionReady.
+            mController.mSyncEngine.abort(mLastTransit.getSyncId());
         }
 
         void start() {
             startTransition();
-            onTransactionReady(mock(SurfaceControl.Transaction.class));
+            onTransactionReady();
         }
 
         public void finish() {
diff --git a/services/tests/wmtests/src/com/android/server/wm/utils/OptPropFactoryTest.java b/services/tests/wmtests/src/com/android/server/wm/utils/OptPropFactoryTest.java
index 004de1f..3769d98 100644
--- a/services/tests/wmtests/src/com/android/server/wm/utils/OptPropFactoryTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/utils/OptPropFactoryTest.java
@@ -20,7 +20,10 @@
 import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertTrue;
 
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
@@ -47,27 +50,30 @@
 @Presubmit
 public class OptPropFactoryTest {
 
+    private static final String PACKAGE_NAME = "";
+    private static final int USER_ID = 10;
     private PackageManager mPackageManager;
     private OptPropFactory mOptPropFactory;
 
     @Before
     public void setUp() {
         mPackageManager = mock(PackageManager.class);
-        mOptPropFactory = new OptPropFactory(mPackageManager, "");
+        mOptPropFactory = new OptPropFactory(mPackageManager, PACKAGE_NAME, USER_ID);
     }
 
     @Test
     public void optProp_laziness() throws PackageManager.NameNotFoundException {
         initPropAs(/* propertyValue */ true);
         // When OptPropBuilder is created the PackageManager is not used
-        verify(mPackageManager, never()).getProperty(anyString(), anyString());
+        verify(mPackageManager, never()).getPropertyAsUser(anyString(), anyString(), isNull(),
+                anyInt());
 
         // Accessing the value multiple times only uses PackageManager once
         final OptProp optProp = createOptProp();
         optProp.isTrue();
         optProp.isFalse();
 
-        verify(mPackageManager).getProperty(anyString(), anyString());
+        verify(mPackageManager).getPropertyAsUser(anyString(), anyString(), isNull(), eq(USER_ID));
     }
 
     @Test
@@ -241,13 +247,15 @@
     private void initPropAs(boolean propertyValue) throws PackageManager.NameNotFoundException {
         Mockito.clearInvocations(mPackageManager);
         final PackageManager.Property prop = new PackageManager.Property(
-                "", /* value */ propertyValue, "", "");
-        when(mPackageManager.getProperty(anyString(), anyString())).thenReturn(prop);
+                "", /* value */ propertyValue, PACKAGE_NAME, "");
+        when(mPackageManager.getPropertyAsUser(anyString(), anyString(), isNull(), anyInt()))
+                .thenReturn(prop);
     }
 
     private void initPropAsWithException() throws PackageManager.NameNotFoundException {
         Mockito.clearInvocations(mPackageManager);
-        when(mPackageManager.getProperty("", "")).thenThrow(
+        when(mPackageManager.getPropertyAsUser("", PACKAGE_NAME,
+                null /* className */, USER_ID)).thenThrow(
                 new PackageManager.NameNotFoundException());
     }
 
diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/PhoneCallStateHandler.java b/services/voiceinteraction/java/com/android/server/soundtrigger/PhoneCallStateHandler.java
index 49ad461..df43ed9 100644
--- a/services/voiceinteraction/java/com/android/server/soundtrigger/PhoneCallStateHandler.java
+++ b/services/voiceinteraction/java/com/android/server/soundtrigger/PhoneCallStateHandler.java
@@ -24,7 +24,6 @@
 import android.util.Slog;
 
 import com.android.internal.annotations.GuardedBy;
-import com.android.internal.telephony.flags.Flags;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -119,28 +118,18 @@
     private boolean checkCallStatus() {
         List<SubscriptionInfo> infoList = mSubscriptionManager.getActiveSubscriptionInfoList();
         if (infoList == null) return false;
-        if (!Flags.enforceTelephonyFeatureMapping()) {
-            return infoList.stream()
-                    .filter(s -> (s.getSubscriptionId()
-                            != SubscriptionManager.INVALID_SUBSCRIPTION_ID))
-                    .anyMatch(s -> isCallOngoingFromState(
-                            mTelephonyManager
-                                    .createForSubscriptionId(s.getSubscriptionId())
-                                    .getCallStateForSubscription()));
-        } else {
-            return infoList.stream()
-                    .filter(s -> (s.getSubscriptionId()
-                            != SubscriptionManager.INVALID_SUBSCRIPTION_ID))
-                    .anyMatch(s -> {
-                        try {
-                            return isCallOngoingFromState(mTelephonyManager
-                                    .createForSubscriptionId(s.getSubscriptionId())
-                                    .getCallStateForSubscription());
-                        } catch (UnsupportedOperationException e) {
-                            return false;
-                        }
-                    });
-        }
+        return infoList.stream()
+                .filter(s -> (s.getSubscriptionId()
+                        != SubscriptionManager.INVALID_SUBSCRIPTION_ID))
+                .anyMatch(s -> {
+                    try {
+                        return isCallOngoingFromState(mTelephonyManager
+                                .createForSubscriptionId(s.getSubscriptionId())
+                                .getCallStateForSubscription());
+                    } catch (UnsupportedOperationException e) {
+                        return false;
+                    }
+                });
     }
 
     private void updateTelephonyListeners() {
diff --git a/telephony/java/android/telephony/DisconnectCause.java b/telephony/java/android/telephony/DisconnectCause.java
index a8c077d..9c102a5 100644
--- a/telephony/java/android/telephony/DisconnectCause.java
+++ b/telephony/java/android/telephony/DisconnectCause.java
@@ -366,7 +366,6 @@
     /**
      * Indicates that the call was unable to be made because the satellite modem is enabled.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_ENABLED = 82;
 
     //*********************************************************************************************
diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java
index 4b175c1..57167c9 100644
--- a/telephony/java/android/telephony/SubscriptionInfo.java
+++ b/telephony/java/android/telephony/SubscriptionInfo.java
@@ -900,7 +900,6 @@
      * @return {@code true} if it is a non-terrestrial network subscription, {@code false}
      * otherwise.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public boolean isOnlyNonTerrestrialNetwork() {
         return mIsOnlyNonTerrestrialNetwork;
     }
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 41569de..6e0304b 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -1241,7 +1241,6 @@
      * {@link #EXTRA_EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT} will not be included in the event
      * {@link #EVENT_DISPLAY_EMERGENCY_MESSAGE}.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final String EVENT_DISPLAY_EMERGENCY_MESSAGE =
             "android.telephony.event.DISPLAY_EMERGENCY_MESSAGE";
 
@@ -1256,7 +1255,6 @@
      * <p>
      * Set in the extras for the {@link #EVENT_DISPLAY_EMERGENCY_MESSAGE} connection event.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final String EXTRA_EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE =
             "android.telephony.extra.EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE";
 
@@ -1264,7 +1262,6 @@
      * Extra key used with the {@link #EVENT_DISPLAY_EMERGENCY_MESSAGE} for a {@link PendingIntent}
      * which will be launched by the Dialer app.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final String EXTRA_EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT =
             "android.telephony.extra.EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT";
 
diff --git a/telephony/java/android/telephony/euicc/EuiccManager.java b/telephony/java/android/telephony/euicc/EuiccManager.java
index ca4a643..ae7346e 100644
--- a/telephony/java/android/telephony/euicc/EuiccManager.java
+++ b/telephony/java/android/telephony/euicc/EuiccManager.java
@@ -1737,13 +1737,8 @@
     private int getCardIdForDefaultEuicc() {
         int cardId = TelephonyManager.UNINITIALIZED_CARD_ID;
 
-        if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
-            PackageManager pm = mContext.getPackageManager();
-            if (pm != null && pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_EUICC)) {
-                TelephonyManager tm = mContext.getSystemService(TelephonyManager.class);
-                cardId = tm.getCardIdForDefaultEuicc();
-            }
-        } else {
+        PackageManager pm = mContext.getPackageManager();
+        if (pm != null && pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_EUICC)) {
             TelephonyManager tm = mContext.getSystemService(TelephonyManager.class);
             cardId = tm.getCardIdForDefaultEuicc();
         }
diff --git a/telephony/java/android/telephony/satellite/AntennaDirection.java b/telephony/java/android/telephony/satellite/AntennaDirection.java
index c690f98..22412e6 100644
--- a/telephony/java/android/telephony/satellite/AntennaDirection.java
+++ b/telephony/java/android/telephony/satellite/AntennaDirection.java
@@ -16,14 +16,11 @@
 
 package android.telephony.satellite;
 
-import android.annotation.FlaggedApi;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
-import com.android.internal.telephony.flags.Flags;
-
 import java.util.Objects;
 
 /**
@@ -41,7 +38,6 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public final class AntennaDirection implements Parcelable {
     /** Antenna x axis direction. */
     private float mX;
@@ -66,13 +62,11 @@
     }
 
     @Override
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public int describeContents() {
         return 0;
     }
 
     @Override
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void writeToParcel(@NonNull Parcel out, int flags) {
         out.writeFloat(mX);
         out.writeFloat(mY);
@@ -80,7 +74,6 @@
     }
 
     @NonNull
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final Creator<AntennaDirection> CREATOR =
             new Creator<>() {
                 @Override
@@ -125,17 +118,14 @@
         return Objects.hash(mX, mY, mZ);
     }
 
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public float getX() {
         return mX;
     }
 
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public float getY() {
         return mY;
     }
 
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public float getZ() {
         return mZ;
     }
diff --git a/telephony/java/android/telephony/satellite/AntennaPosition.java b/telephony/java/android/telephony/satellite/AntennaPosition.java
index d6440fc..a730e3f 100644
--- a/telephony/java/android/telephony/satellite/AntennaPosition.java
+++ b/telephony/java/android/telephony/satellite/AntennaPosition.java
@@ -16,14 +16,11 @@
 
 package android.telephony.satellite;
 
-import android.annotation.FlaggedApi;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
-import com.android.internal.telephony.flags.Flags;
-
 import java.util.Objects;
 
 /**
@@ -32,7 +29,6 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public final class AntennaPosition implements Parcelable {
     /** Antenna direction used for satellite communication. */
     @NonNull private AntennaDirection mAntennaDirection;
@@ -53,20 +49,17 @@
     }
 
     @Override
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public int describeContents() {
         return 0;
     }
 
     @Override
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void writeToParcel(@NonNull Parcel out, int flags) {
         out.writeParcelable(mAntennaDirection, flags);
         out.writeInt(mSuggestedHoldPosition);
     }
 
     @NonNull
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final Creator<AntennaPosition> CREATOR =
             new Creator<>() {
                 @Override
@@ -107,13 +100,11 @@
     }
 
     @NonNull
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public AntennaDirection getAntennaDirection() {
         return mAntennaDirection;
     }
 
     @SatelliteManager.DeviceHoldPosition
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public int getSuggestedHoldPosition() {
         return mSuggestedHoldPosition;
     }
diff --git a/telephony/java/android/telephony/satellite/EnableRequestAttributes.java b/telephony/java/android/telephony/satellite/EnableRequestAttributes.java
index bc9d230..6f9b4a7 100644
--- a/telephony/java/android/telephony/satellite/EnableRequestAttributes.java
+++ b/telephony/java/android/telephony/satellite/EnableRequestAttributes.java
@@ -16,12 +16,9 @@
 
 package android.telephony.satellite;
 
-import android.annotation.FlaggedApi;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
 
-import com.android.internal.telephony.flags.Flags;
-
 import java.util.concurrent.Executor;
 import java.util.function.Consumer;
 
@@ -31,7 +28,6 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public class EnableRequestAttributes {
     /** {@code true} to enable satellite and {@code false} to disable satellite */
     private boolean mIsEnabled;
@@ -61,7 +57,6 @@
     /**
      * @return Whether satellite is to be enabled
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public boolean isEnabled() {
         return mIsEnabled;
     }
@@ -69,7 +64,6 @@
     /**
      * @return Whether demo mode is to be enabled
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public boolean isDemoMode() {
         return mIsDemoMode;
     }
@@ -77,7 +71,6 @@
     /**
      * @return Whether satellite is to be enabled for emergency mode
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public boolean isEmergencyMode() {
         return mIsEmergencyMode;
     }
@@ -85,13 +78,11 @@
     /**
      * The builder class of {@link EnableRequestAttributes}
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final class Builder {
         private boolean mIsEnabled;
         private boolean mIsDemoMode = false;
         private boolean mIsEmergencyMode = false;
 
-        @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
         public Builder(boolean isEnabled) {
             mIsEnabled = isEnabled;
         }
@@ -104,7 +95,6 @@
          *                   {@code false} by Telephony.
          * @return The builder object
          */
-        @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
         @NonNull
         public Builder setDemoMode(boolean isDemoMode) {
             if (mIsEnabled) {
@@ -122,7 +112,6 @@
          *                        Telephony.
          * @return The builder object
          */
-        @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
         @NonNull
         public Builder setEmergencyMode(boolean isEmergencyMode) {
             if (mIsEnabled) {
@@ -136,7 +125,6 @@
          *
          * @return The {@link EnableRequestAttributes} instance.
          */
-        @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
         @NonNull
         public EnableRequestAttributes build() {
             return new EnableRequestAttributes(this);
diff --git a/telephony/java/android/telephony/satellite/NtnSignalStrength.java b/telephony/java/android/telephony/satellite/NtnSignalStrength.java
index 2fec423..bb53d8e 100644
--- a/telephony/java/android/telephony/satellite/NtnSignalStrength.java
+++ b/telephony/java/android/telephony/satellite/NtnSignalStrength.java
@@ -16,7 +16,6 @@
 
 package android.telephony.satellite;
 
-import android.annotation.FlaggedApi;
 import android.annotation.IntDef;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
@@ -25,8 +24,6 @@
 
 import androidx.annotation.NonNull;
 
-import com.android.internal.telephony.flags.Flags;
-
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
@@ -35,22 +32,16 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public final class NtnSignalStrength implements Parcelable {
     /** Non-terrestrial network signal strength is not available. */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int NTN_SIGNAL_STRENGTH_NONE = 0;
     /** Non-terrestrial network signal strength is poor. */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int NTN_SIGNAL_STRENGTH_POOR = 1;
     /** Non-terrestrial network signal strength is moderate. */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int NTN_SIGNAL_STRENGTH_MODERATE = 2;
     /** Non-terrestrial network signal strength is good. */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int NTN_SIGNAL_STRENGTH_GOOD = 3;
     /** Non-terrestrial network signal strength is great. */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int NTN_SIGNAL_STRENGTH_GREAT = 4;
     @NtnSignalStrengthLevel private int mLevel;
 
@@ -69,7 +60,6 @@
      * Create a parcelable object to inform the current non-terrestrial signal strength
      * @hide
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public NtnSignalStrength(@NtnSignalStrengthLevel int level) {
         this.mLevel = level;
     }
@@ -77,7 +67,6 @@
     /**
      * This constructor is used to create a copy of an existing NtnSignalStrength object.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public NtnSignalStrength(@Nullable NtnSignalStrength source) {
         this.mLevel = (source == null) ? NTN_SIGNAL_STRENGTH_NONE : source.getLevel();
     }
@@ -89,7 +78,6 @@
     /**
      * Returns notified non-terrestrial network signal strength level.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     @NtnSignalStrengthLevel public int getLevel() {
         return mLevel;
     }
@@ -98,7 +86,6 @@
      * @return 0
      */
     @Override
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public int describeContents() {
         return 0;
     }
@@ -109,7 +96,6 @@
      *              May be 0 or {@link #PARCELABLE_WRITE_RETURN_VALUE}.
      */
     @Override
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void writeToParcel(@NonNull Parcel out, int flags) {
         out.writeInt(mLevel);
     }
@@ -118,7 +104,6 @@
         mLevel = in.readInt();
     }
 
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     @NonNull public static final Creator<NtnSignalStrength> CREATOR =
             new Creator<NtnSignalStrength>() {
                 @Override public NtnSignalStrength createFromParcel(Parcel in) {
diff --git a/telephony/java/android/telephony/satellite/NtnSignalStrengthCallback.java b/telephony/java/android/telephony/satellite/NtnSignalStrengthCallback.java
index 4b79590..b277b0e 100644
--- a/telephony/java/android/telephony/satellite/NtnSignalStrengthCallback.java
+++ b/telephony/java/android/telephony/satellite/NtnSignalStrengthCallback.java
@@ -16,24 +16,19 @@
 
 package android.telephony.satellite;
 
-import android.annotation.FlaggedApi;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
 
-import com.android.internal.telephony.flags.Flags;
-
 /**
  * A callback class for notifying satellite signal strength change.
  *
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public interface NtnSignalStrengthCallback {
     /**
      * Called when non-terrestrial network signal strength changes.
      * @param ntnSignalStrength The new non-terrestrial network signal strength.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     void onNtnSignalStrengthChanged(@NonNull NtnSignalStrength ntnSignalStrength);
 }
diff --git a/telephony/java/android/telephony/satellite/PointingInfo.java b/telephony/java/android/telephony/satellite/PointingInfo.java
index 9440b65..d0c51bc4 100644
--- a/telephony/java/android/telephony/satellite/PointingInfo.java
+++ b/telephony/java/android/telephony/satellite/PointingInfo.java
@@ -16,15 +16,12 @@
 
 package android.telephony.satellite;
 
-import android.annotation.FlaggedApi;
 import android.annotation.FloatRange;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
-import com.android.internal.telephony.flags.Flags;
-
 import java.util.Objects;
 
 /**
@@ -34,7 +31,6 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public final class PointingInfo implements Parcelable {
     /** Satellite azimuth in degrees */
     private float mSatelliteAzimuthDegrees;
@@ -55,19 +51,16 @@
     }
 
     @Override
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public int describeContents() {
         return 0;
     }
 
     @Override
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void writeToParcel(@NonNull Parcel out, int flags) {
         out.writeFloat(mSatelliteAzimuthDegrees);
         out.writeFloat(mSatelliteElevationDegrees);
     }
 
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final @android.annotation.NonNull Creator<PointingInfo> CREATOR =
             new Creator<PointingInfo>() {
                 @Override
@@ -113,7 +106,6 @@
      * Returns the azimuth of the satellite, in degrees.
      */
     @FloatRange(from = -180, to = 180)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public float getSatelliteAzimuthDegrees() {
         return mSatelliteAzimuthDegrees;
     }
@@ -122,7 +114,6 @@
      * Returns the elevation of the satellite, in degrees.
      */
     @FloatRange(from = -90, to = 90)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public float getSatelliteElevationDegrees() {
         return mSatelliteElevationDegrees;
     }
diff --git a/telephony/java/android/telephony/satellite/SatelliteCapabilities.java b/telephony/java/android/telephony/satellite/SatelliteCapabilities.java
index f34522a..a5b9deb 100644
--- a/telephony/java/android/telephony/satellite/SatelliteCapabilities.java
+++ b/telephony/java/android/telephony/satellite/SatelliteCapabilities.java
@@ -16,15 +16,12 @@
 
 package android.telephony.satellite;
 
-import android.annotation.FlaggedApi;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
-import com.android.internal.telephony.flags.Flags;
-
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -37,7 +34,6 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public final class SatelliteCapabilities implements Parcelable {
     /**
      * List of technologies supported by the satellite modem.
@@ -80,13 +76,11 @@
     }
 
     @Override
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public int describeContents() {
         return 0;
     }
 
     @Override
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void writeToParcel(@NonNull Parcel out, int flags) {
         if (mSupportedRadioTechnologies != null && !mSupportedRadioTechnologies.isEmpty()) {
             out.writeInt(mSupportedRadioTechnologies.size());
@@ -112,7 +106,6 @@
         }
     }
 
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     @NonNull public static final Creator<SatelliteCapabilities> CREATOR = new Creator<>() {
         @Override
         public SatelliteCapabilities createFromParcel(Parcel in) {
@@ -172,7 +165,6 @@
     /**
      * @return The list of technologies supported by the satellite modem.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     @NonNull @SatelliteManager.NTRadioTechnology public Set<Integer>
             getSupportedRadioTechnologies() {
         return mSupportedRadioTechnologies;
@@ -184,7 +176,6 @@
      * @return {@code true} if UE needs to point to a satellite to send and receive data and
      *         {@code false} otherwise.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public boolean isPointingRequired() {
         return mIsPointingRequired;
     }
@@ -194,7 +185,6 @@
      *
      * @return The maximum number of bytes per datagram that can be sent over satellite.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public int getMaxBytesPerOutgoingDatagram() {
         return mMaxBytesPerOutgoingDatagram;
     }
@@ -214,7 +204,6 @@
      * @return Map key: {@link SatelliteManager.DeviceHoldPosition} value: AntennaPosition
      */
     @NonNull
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public Map<Integer, AntennaPosition> getAntennaPositionMap() {
         return mAntennaPositionMap;
     }
diff --git a/telephony/java/android/telephony/satellite/SatelliteCapabilitiesCallback.java b/telephony/java/android/telephony/satellite/SatelliteCapabilitiesCallback.java
index b68dd5a..b236cf6 100644
--- a/telephony/java/android/telephony/satellite/SatelliteCapabilitiesCallback.java
+++ b/telephony/java/android/telephony/satellite/SatelliteCapabilitiesCallback.java
@@ -16,24 +16,19 @@
 
 package android.telephony.satellite;
 
-import android.annotation.FlaggedApi;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
 
-import com.android.internal.telephony.flags.Flags;
-
 /**
  * A callback class for satellite capabilities change events.
  *
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public interface SatelliteCapabilitiesCallback {
     /**
      * Called when satellite capability has changed.
      * @param capabilities The new satellite capabilities.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     void onSatelliteCapabilitiesChanged(@NonNull SatelliteCapabilities capabilities);
 }
diff --git a/telephony/java/android/telephony/satellite/SatelliteDatagram.java b/telephony/java/android/telephony/satellite/SatelliteDatagram.java
index 4d67f80..9037f0c 100644
--- a/telephony/java/android/telephony/satellite/SatelliteDatagram.java
+++ b/telephony/java/android/telephony/satellite/SatelliteDatagram.java
@@ -16,21 +16,17 @@
 
 package android.telephony.satellite;
 
-import android.annotation.FlaggedApi;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
-import com.android.internal.telephony.flags.Flags;
-
 /**
  * SatelliteDatagram is used to store data that is to be sent or received over satellite.
  * Data is stored in byte array format.
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public final class SatelliteDatagram implements Parcelable {
     /**
      * Datagram to be sent or received over satellite.
@@ -49,18 +45,15 @@
     }
 
     @Override
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public int describeContents() {
         return 0;
     }
 
     @Override
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void writeToParcel(@NonNull Parcel out, int flags) {
         out.writeByteArray(mData);
     }
 
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     @NonNull public static final Creator<SatelliteDatagram> CREATOR =
             new Creator<>() {
                 @Override
@@ -80,7 +73,6 @@
      * satellite provider. Client application should be aware of how to encode the datagram based
      * upon the satellite provider.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     @NonNull public byte[] getSatelliteDatagram() {
         return mData;
     }
diff --git a/telephony/java/android/telephony/satellite/SatelliteDatagramCallback.java b/telephony/java/android/telephony/satellite/SatelliteDatagramCallback.java
index 9aaa986..8b6e3ca 100644
--- a/telephony/java/android/telephony/satellite/SatelliteDatagramCallback.java
+++ b/telephony/java/android/telephony/satellite/SatelliteDatagramCallback.java
@@ -16,12 +16,9 @@
 
 package android.telephony.satellite;
 
-import android.annotation.FlaggedApi;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
 
-import com.android.internal.telephony.flags.Flags;
-
 import java.util.concurrent.Executor;
 import java.util.function.Consumer;
 
@@ -35,7 +32,6 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public interface SatelliteDatagramCallback {
     /**
      * Called when there is an incoming datagram to be received.
@@ -47,7 +43,6 @@
      *                 that they received the datagram. If the callback is not received within
      *                 five minutes, Telephony will resend the datagram.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     void onSatelliteDatagramReceived(long datagramId, @NonNull SatelliteDatagram datagram,
             int pendingCount, @NonNull Consumer<Void> callback);
 }
diff --git a/telephony/java/android/telephony/satellite/SatelliteManager.java b/telephony/java/android/telephony/satellite/SatelliteManager.java
index 1309654..270d599 100644
--- a/telephony/java/android/telephony/satellite/SatelliteManager.java
+++ b/telephony/java/android/telephony/satellite/SatelliteManager.java
@@ -148,7 +148,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static class SatelliteException extends Exception {
         @SatelliteResult private final int mErrorCode;
 
@@ -157,7 +156,6 @@
          *
          * @param errorCode The {@link SatelliteResult}.
          */
-        @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
         public SatelliteException(@SatelliteResult int errorCode) {
             mErrorCode = errorCode;
         }
@@ -167,7 +165,6 @@
          *
          * @return The {@link SatelliteResult}.
          */
-        @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
         @SatelliteResult public int getErrorCode() {
             return mErrorCode;
         }
@@ -311,7 +308,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_SUCCESS = 0;
 
     /**
@@ -319,7 +315,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_ERROR = 1;
 
     /**
@@ -327,7 +322,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_SERVER_ERROR = 2;
 
     /**
@@ -336,7 +330,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_SERVICE_ERROR = 3;
 
     /**
@@ -345,7 +338,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_MODEM_ERROR = 4;
 
     /**
@@ -354,7 +346,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_NETWORK_ERROR = 5;
 
     /**
@@ -362,7 +353,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_INVALID_TELEPHONY_STATE = 6;
 
     /**
@@ -370,7 +360,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_INVALID_MODEM_STATE = 7;
 
     /**
@@ -379,7 +368,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_INVALID_ARGUMENTS = 8;
 
     /**
@@ -388,7 +376,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_REQUEST_FAILED = 9;
 
     /**
@@ -396,7 +383,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_RADIO_NOT_AVAILABLE = 10;
 
     /**
@@ -404,7 +390,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_REQUEST_NOT_SUPPORTED = 11;
 
     /**
@@ -412,7 +397,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_NO_RESOURCES = 12;
 
     /**
@@ -420,7 +404,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_SERVICE_NOT_PROVISIONED = 13;
 
     /**
@@ -428,7 +411,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_SERVICE_PROVISION_IN_PROGRESS = 14;
 
     /**
@@ -438,7 +420,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_REQUEST_ABORTED = 15;
 
     /**
@@ -446,7 +427,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_ACCESS_BARRED = 16;
 
     /**
@@ -455,7 +435,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_NETWORK_TIMEOUT = 17;
 
     /**
@@ -463,7 +442,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_NOT_REACHABLE = 18;
 
     /**
@@ -471,7 +449,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_NOT_AUTHORIZED = 19;
 
     /**
@@ -479,7 +456,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_NOT_SUPPORTED = 20;
 
     /**
@@ -487,7 +463,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_REQUEST_IN_PROGRESS = 21;
 
     /**
@@ -495,7 +470,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_MODEM_BUSY = 22;
 
     /**
@@ -503,7 +477,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_ILLEGAL_STATE = 23;
 
     /**
@@ -512,7 +485,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_RESULT_MODEM_TIMEOUT = 24;
 
     /**
@@ -608,7 +580,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int NT_RADIO_TECHNOLOGY_UNKNOWN = 0;
 
     /**
@@ -616,7 +587,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int NT_RADIO_TECHNOLOGY_NB_IOT_NTN = 1;
 
     /**
@@ -624,7 +594,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int NT_RADIO_TECHNOLOGY_NR_NTN = 2;
 
     /**
@@ -632,7 +601,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int NT_RADIO_TECHNOLOGY_EMTC_NTN = 3;
 
     /**
@@ -640,7 +608,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int NT_RADIO_TECHNOLOGY_PROPRIETARY = 4;
 
     /** @hide */
@@ -659,7 +626,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int DEVICE_HOLD_POSITION_UNKNOWN = 0;
 
     /**
@@ -667,7 +633,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int DEVICE_HOLD_POSITION_PORTRAIT = 1;
 
     /**
@@ -675,7 +640,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int DEVICE_HOLD_POSITION_LANDSCAPE_LEFT = 2;
 
     /**
@@ -683,7 +647,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int DEVICE_HOLD_POSITION_LANDSCAPE_RIGHT = 3;
 
     /** @hide */
@@ -701,7 +664,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int DISPLAY_MODE_UNKNOWN = 0;
 
     /**
@@ -709,7 +671,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int DISPLAY_MODE_FIXED = 1;
 
     /**
@@ -718,7 +679,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int DISPLAY_MODE_OPENED = 2;
 
     /**
@@ -727,7 +687,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int DISPLAY_MODE_CLOSED = 3;
 
     /** @hide */
@@ -746,7 +705,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS = 1;
 
     /**
@@ -919,7 +877,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void requestEnabled(@NonNull EnableRequestAttributes attributes,
             @NonNull @CallbackExecutor Executor executor,
             @SatelliteResult @NonNull Consumer<Integer> resultListener) {
@@ -968,7 +925,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void requestIsEnabled(@NonNull @CallbackExecutor Executor executor,
             @NonNull OutcomeReceiver<Boolean, SatelliteException> callback) {
         Objects.requireNonNull(executor);
@@ -1028,7 +984,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void requestIsDemoModeEnabled(@NonNull @CallbackExecutor Executor executor,
             @NonNull OutcomeReceiver<Boolean, SatelliteException> callback) {
         Objects.requireNonNull(executor);
@@ -1088,7 +1043,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void requestIsEmergencyModeEnabled(@NonNull @CallbackExecutor Executor executor,
             @NonNull OutcomeReceiver<Boolean, SatelliteException> callback) {
         Objects.requireNonNull(executor);
@@ -1148,7 +1102,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void requestIsSupported(@NonNull @CallbackExecutor Executor executor,
             @NonNull OutcomeReceiver<Boolean, SatelliteException> callback) {
         Objects.requireNonNull(executor);
@@ -1207,7 +1160,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void requestCapabilities(@NonNull @CallbackExecutor Executor executor,
             @NonNull OutcomeReceiver<SatelliteCapabilities, SatelliteException> callback) {
         Objects.requireNonNull(executor);
@@ -1257,7 +1209,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE = 0;
 
     /**
@@ -1265,7 +1216,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_SENDING = 1;
 
     /**
@@ -1275,7 +1225,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_SUCCESS = 2;
 
     /**
@@ -1286,7 +1235,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED = 3;
 
     /**
@@ -1294,7 +1242,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING = 4;
 
     /**
@@ -1304,7 +1251,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_SUCCESS = 5;
 
     /**
@@ -1315,7 +1261,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_NONE = 6;
 
     /**
@@ -1325,7 +1270,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED = 7;
 
     /**
@@ -1339,7 +1283,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_WAITING_TO_CONNECT = 8;
 
     /**
@@ -1349,7 +1292,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_UNKNOWN = -1;
 
     /** @hide */
@@ -1374,7 +1316,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_MODEM_STATE_IDLE = 0;
 
     /**
@@ -1382,7 +1323,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_MODEM_STATE_LISTENING = 1;
 
     /**
@@ -1390,7 +1330,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING = 2;
 
     /**
@@ -1398,7 +1337,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_MODEM_STATE_DATAGRAM_RETRYING = 3;
 
     /**
@@ -1406,7 +1344,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_MODEM_STATE_OFF = 4;
 
     /**
@@ -1414,7 +1351,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_MODEM_STATE_UNAVAILABLE = 5;
 
     /**
@@ -1422,7 +1358,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_MODEM_STATE_NOT_CONNECTED = 6;
 
     /**
@@ -1430,7 +1365,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_MODEM_STATE_CONNECTED = 7;
 
     /**
@@ -1455,7 +1389,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int SATELLITE_MODEM_STATE_UNKNOWN = -1;
 
     /** @hide */
@@ -1481,7 +1414,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int DATAGRAM_TYPE_UNKNOWN = 0;
 
     /**
@@ -1489,7 +1421,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int DATAGRAM_TYPE_SOS_MESSAGE = 1;
 
     /**
@@ -1498,7 +1429,6 @@
      * @hide
      */
     @SystemApi
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public static final int DATAGRAM_TYPE_LOCATION_SHARING = 2;
 
     /**
@@ -1653,7 +1583,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     @SuppressWarnings("SamShouldBeLast")
     public void startTransmissionUpdates(@NonNull @CallbackExecutor Executor executor,
             @SatelliteResult @NonNull Consumer<Integer> resultListener,
@@ -1739,7 +1668,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void stopTransmissionUpdates(@NonNull SatelliteTransmissionUpdateCallback callback,
             @SuppressWarnings("ListenerLast") @NonNull @CallbackExecutor Executor executor,
             @SuppressWarnings("ListenerLast") @SatelliteResult @NonNull
@@ -1800,7 +1728,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void provisionService(@NonNull String token, @NonNull byte[] provisionData,
             @Nullable CancellationSignal cancellationSignal,
             @NonNull @CallbackExecutor Executor executor,
@@ -1858,7 +1785,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void deprovisionService(@NonNull String token,
             @NonNull @CallbackExecutor Executor executor,
             @SatelliteResult @NonNull Consumer<Integer> resultListener) {
@@ -1904,7 +1830,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     @SatelliteResult public int registerForProvisionStateChanged(
             @NonNull @CallbackExecutor Executor executor,
             @NonNull SatelliteProvisionStateCallback callback) {
@@ -1959,7 +1884,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void unregisterForProvisionStateChanged(
             @NonNull SatelliteProvisionStateCallback callback) {
         Objects.requireNonNull(callback);
@@ -2000,7 +1924,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void requestIsProvisioned(@NonNull @CallbackExecutor Executor executor,
             @NonNull OutcomeReceiver<Boolean, SatelliteException> callback) {
         Objects.requireNonNull(executor);
@@ -2058,7 +1981,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     @SatelliteResult public int registerForModemStateChanged(
             @NonNull @CallbackExecutor Executor executor,
             @NonNull SatelliteModemStateCallback callback) {
@@ -2121,7 +2043,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void unregisterForModemStateChanged(
             @NonNull SatelliteModemStateCallback callback) {
         Objects.requireNonNull(callback);
@@ -2164,7 +2085,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     @SatelliteResult public int registerForIncomingDatagram(
             @NonNull @CallbackExecutor Executor executor,
             @NonNull SatelliteDatagramCallback callback) {
@@ -2223,7 +2143,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void unregisterForIncomingDatagram(@NonNull SatelliteDatagramCallback callback) {
         Objects.requireNonNull(callback);
         ISatelliteDatagramCallback internalCallback =
@@ -2264,7 +2183,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void pollPendingDatagrams(@NonNull @CallbackExecutor Executor executor,
             @SatelliteResult @NonNull Consumer<Integer> resultListener) {
         Objects.requireNonNull(executor);
@@ -2322,7 +2240,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void sendDatagram(@DatagramType int datagramType,
             @NonNull SatelliteDatagram datagram, boolean needFullScreenPointingUI,
             @NonNull @CallbackExecutor Executor executor,
@@ -2373,7 +2290,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void requestIsCommunicationAllowedForCurrentLocation(
             @NonNull @CallbackExecutor Executor executor,
             @NonNull OutcomeReceiver<Boolean, SatelliteException> callback) {
@@ -2497,7 +2413,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void requestTimeForNextSatelliteVisibility(@NonNull @CallbackExecutor Executor executor,
             @NonNull OutcomeReceiver<Duration, SatelliteException> callback) {
         Objects.requireNonNull(executor);
@@ -2711,7 +2626,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void setDeviceAlignedWithSatellite(boolean isAligned) {
         try {
             ITelephony telephony = getITelephony();
@@ -3072,7 +2986,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void requestNtnSignalStrength(@NonNull @CallbackExecutor Executor executor,
             @NonNull OutcomeReceiver<NtnSignalStrength, SatelliteException> callback) {
         Objects.requireNonNull(executor);
@@ -3138,7 +3051,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void registerForNtnSignalStrengthChanged(@NonNull @CallbackExecutor Executor executor,
             @NonNull NtnSignalStrengthCallback callback) {
         Objects.requireNonNull(executor);
@@ -3190,7 +3102,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void unregisterForNtnSignalStrengthChanged(@NonNull NtnSignalStrengthCallback callback) {
         Objects.requireNonNull(callback);
         INtnSignalStrengthCallback internalCallback =
@@ -3227,7 +3138,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     @SatelliteResult public int registerForCapabilitiesChanged(
             @NonNull @CallbackExecutor Executor executor,
             @NonNull SatelliteCapabilitiesCallback callback) {
@@ -3273,7 +3183,6 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     public void unregisterForCapabilitiesChanged(
             @NonNull SatelliteCapabilitiesCallback callback) {
         Objects.requireNonNull(callback);
diff --git a/telephony/java/android/telephony/satellite/SatelliteModemStateCallback.java b/telephony/java/android/telephony/satellite/SatelliteModemStateCallback.java
index 040fbbb..ef26b17 100644
--- a/telephony/java/android/telephony/satellite/SatelliteModemStateCallback.java
+++ b/telephony/java/android/telephony/satellite/SatelliteModemStateCallback.java
@@ -27,13 +27,11 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public interface SatelliteModemStateCallback {
     /**
      * Called when satellite modem state changes.
      * @param state The new satellite modem state.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     void onSatelliteModemStateChanged(@SatelliteManager.SatelliteModemState int state);
 
     /**
diff --git a/telephony/java/android/telephony/satellite/SatelliteProvisionStateCallback.java b/telephony/java/android/telephony/satellite/SatelliteProvisionStateCallback.java
index 6b95eb3..fe5d2a1 100644
--- a/telephony/java/android/telephony/satellite/SatelliteProvisionStateCallback.java
+++ b/telephony/java/android/telephony/satellite/SatelliteProvisionStateCallback.java
@@ -30,7 +30,6 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public interface SatelliteProvisionStateCallback {
     /**
      * Called when satellite provision state changes.
@@ -40,7 +39,6 @@
      *                    It is generally expected that the provisioning app retries if
      *                    provisioning fails.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     void onSatelliteProvisionStateChanged(boolean provisioned);
 
     /**
diff --git a/telephony/java/android/telephony/satellite/SatelliteTransmissionUpdateCallback.java b/telephony/java/android/telephony/satellite/SatelliteTransmissionUpdateCallback.java
index e18fad3..9c6eb8f 100644
--- a/telephony/java/android/telephony/satellite/SatelliteTransmissionUpdateCallback.java
+++ b/telephony/java/android/telephony/satellite/SatelliteTransmissionUpdateCallback.java
@@ -29,14 +29,12 @@
  * @hide
  */
 @SystemApi
-@FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
 public interface SatelliteTransmissionUpdateCallback {
     /**
      * Called when the satellite position changed.
      *
      * @param pointingInfo The pointing info containing the satellite location.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     void onSatellitePositionChanged(@NonNull PointingInfo pointingInfo);
 
     /**
@@ -46,7 +44,6 @@
      * @param sendPendingCount The number of datagrams that are currently being sent.
      * @param errorCode If datagram transfer failed, the reason for failure.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     void onSendDatagramStateChanged(
             @SatelliteManager.SatelliteDatagramTransferState int state, int sendPendingCount,
             @SatelliteManager.SatelliteResult int errorCode);
@@ -70,7 +67,6 @@
      * @param receivePendingCount The number of datagrams that are currently pending to be received.
      * @param errorCode If datagram transfer failed, the reason for failure.
      */
-    @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
     void onReceiveDatagramStateChanged(
             @SatelliteManager.SatelliteDatagramTransferState int state, int receivePendingCount,
             @SatelliteManager.SatelliteResult int errorCode);
diff --git a/tests/AttestationVerificationTest/src/com/android/server/security/CertificateRevocationStatusManagerTest.java b/tests/AttestationVerificationTest/src/com/android/server/security/CertificateRevocationStatusManagerTest.java
index 586bb76..3854ae6 100644
--- a/tests/AttestationVerificationTest/src/com/android/server/security/CertificateRevocationStatusManagerTest.java
+++ b/tests/AttestationVerificationTest/src/com/android/server/security/CertificateRevocationStatusManagerTest.java
@@ -20,18 +20,17 @@
 import static org.junit.Assert.assertThrows;
 
 import android.content.Context;
-import android.os.SystemClock;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.platform.app.InstrumentationRegistry;
 
-import org.json.JSONObject;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.security.cert.CertPathValidatorException;
@@ -39,33 +38,34 @@
 import java.security.cert.CertificateFactory;
 import java.security.cert.X509Certificate;
 import java.time.LocalDateTime;
+import java.time.OffsetDateTime;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 @RunWith(AndroidJUnit4.class)
 public class CertificateRevocationStatusManagerTest {
 
     private static final String TEST_CERTIFICATE_FILE_1 = "test_attestation_with_root_certs.pem";
     private static final String TEST_CERTIFICATE_FILE_2 = "test_attestation_wrong_root_certs.pem";
-    private static final String TEST_REVOCATION_LIST_FILE_NAME = "test_revocation_list.json";
+    private static final String TEST_REMOTE_REVOCATION_LIST_FILE_NAME =
+            "test_remote_revocation_list.json";
     private static final String REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST =
             "test_revocation_list_no_test_certs.json";
     private static final String REVOCATION_LIST_WITH_CERTIFICATES_USED_IN_THIS_TEST =
             "test_revocation_list_with_test_certs.json";
-    private static final String TEST_REVOCATION_STATUS_FILE_NAME = "test_revocation_status.txt";
+    private static final String TEST_STORED_REVOCATION_LIST_FILE_NAME =
+            "test_stored_revocation_list.json";
     private static final String FILE_URL_PREFIX = "file://";
     private final Context mContext = InstrumentationRegistry.getInstrumentation().getContext();
 
     private CertificateFactory mFactory;
     private List<X509Certificate> mCertificates1;
     private List<X509Certificate> mCertificates2;
-    private File mRevocationListFile;
+    private File mRemoteRevocationListFile;
     private String mRevocationListUrl;
     private String mNonExistentRevocationListUrl;
-    private File mRevocationStatusFile;
+    private File mStoredRevocationListFile;
     private CertificateRevocationStatusManager mCertificateRevocationStatusManager;
 
     @Before
@@ -73,27 +73,29 @@
         mFactory = CertificateFactory.getInstance("X.509");
         mCertificates1 = getCertificateChain(TEST_CERTIFICATE_FILE_1);
         mCertificates2 = getCertificateChain(TEST_CERTIFICATE_FILE_2);
-        mRevocationListFile = new File(mContext.getFilesDir(), TEST_REVOCATION_LIST_FILE_NAME);
-        mRevocationListUrl = FILE_URL_PREFIX + mRevocationListFile.getAbsolutePath();
+        mRemoteRevocationListFile =
+                new File(mContext.getFilesDir(), TEST_REMOTE_REVOCATION_LIST_FILE_NAME);
+        mRevocationListUrl = FILE_URL_PREFIX + mRemoteRevocationListFile.getAbsolutePath();
         File noSuchFile = new File(mContext.getFilesDir(), "file_does_not_exist");
         mNonExistentRevocationListUrl = FILE_URL_PREFIX + noSuchFile.getAbsolutePath();
-        mRevocationStatusFile = new File(mContext.getFilesDir(), TEST_REVOCATION_STATUS_FILE_NAME);
+        mStoredRevocationListFile =
+                new File(mContext.getFilesDir(), TEST_STORED_REVOCATION_LIST_FILE_NAME);
     }
 
     @After
     public void tearDown() throws Exception {
-        mRevocationListFile.delete();
-        mRevocationStatusFile.delete();
+        mRemoteRevocationListFile.delete();
+        mStoredRevocationListFile.delete();
     }
 
     @Test
     public void checkRevocationStatus_doesNotExistOnRemoteRevocationList_noException()
             throws Exception {
         copyFromAssetToFile(
-                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
         mCertificateRevocationStatusManager =
                 new CertificateRevocationStatusManager(
-                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
+                        mContext, mRevocationListUrl, mStoredRevocationListFile, false);
 
         mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
     }
@@ -102,10 +104,10 @@
     public void checkRevocationStatus_existsOnRemoteRevocationList_throwsException()
             throws Exception {
         copyFromAssetToFile(
-                REVOCATION_LIST_WITH_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+                REVOCATION_LIST_WITH_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
         mCertificateRevocationStatusManager =
                 new CertificateRevocationStatusManager(
-                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
+                        mContext, mRevocationListUrl, mStoredRevocationListFile, false);
 
         assertThrows(
                 CertPathValidatorException.class,
@@ -118,7 +120,7 @@
                     throws Exception {
         mCertificateRevocationStatusManager =
                 new CertificateRevocationStatusManager(
-                        mContext, mNonExistentRevocationListUrl, mRevocationStatusFile, false);
+                        mContext, mNonExistentRevocationListUrl, mStoredRevocationListFile, false);
 
         assertThrows(
                 CertPathValidatorException.class,
@@ -128,70 +130,56 @@
     @Test
     public void checkRevocationStatus_savesRevocationStatus() throws Exception {
         copyFromAssetToFile(
-                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
         mCertificateRevocationStatusManager =
                 new CertificateRevocationStatusManager(
-                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
+                        mContext, mRevocationListUrl, mStoredRevocationListFile, false);
 
         mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
 
-        assertThat(mRevocationStatusFile.length()).isGreaterThan(0);
+        assertThat(mStoredRevocationListFile.length()).isGreaterThan(0);
     }
 
     @Test
-    public void checkRevocationStatus_cannotReachRemoteList_certsSaved_noException()
+    public void checkRevocationStatus_cannotReachRemoteList_listSaved_noException()
             throws Exception {
         // call checkRevocationStatus once to save the revocation status
         copyFromAssetToFile(
-                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
         mCertificateRevocationStatusManager =
                 new CertificateRevocationStatusManager(
-                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
+                        mContext, mRevocationListUrl, mStoredRevocationListFile, false);
         mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
         // call checkRevocationStatus again with mNonExistentRevocationListUrl
         mCertificateRevocationStatusManager =
                 new CertificateRevocationStatusManager(
-                        mContext, mNonExistentRevocationListUrl, mRevocationStatusFile, false);
+                        mContext, mNonExistentRevocationListUrl, mStoredRevocationListFile, false);
 
         mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
     }
 
     @Test
-    public void checkRevocationStatus_cannotReachRemoteList_someCertsNotSaved_exception()
+    public void checkRevocationStatus_cannotReachRemoteList_storedListTooOld_exception()
             throws Exception {
-        // call checkRevocationStatus once to save the revocation status for mCertificates2
+        // call checkRevocationStatus once to save the revocation status
         copyFromAssetToFile(
-                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
         mCertificateRevocationStatusManager =
                 new CertificateRevocationStatusManager(
-                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
-        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates2);
-        // call checkRevocationStatus again with mNonExistentRevocationListUrl, this time for
-        // mCertificates1
-        mCertificateRevocationStatusManager =
-                new CertificateRevocationStatusManager(
-                        mContext, mNonExistentRevocationListUrl, mRevocationStatusFile, false);
-
-        assertThrows(
-                CertPathValidatorException.class,
-                () -> mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1));
-    }
-
-    @Test
-    public void checkRevocationStatus_cannotReachRemoteList_someCertsStatusTooOld_exception()
-            throws Exception {
-        mCertificateRevocationStatusManager =
-                new CertificateRevocationStatusManager(
-                        mContext, mNonExistentRevocationListUrl, mRevocationStatusFile, false);
+                        mContext, mRevocationListUrl, mStoredRevocationListFile, false);
+        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
+        // set the last modified date of the stored list to an expired date
         LocalDateTime now = LocalDateTime.now();
-        LocalDateTime expiredStatusDate =
-                now.minusDays(CertificateRevocationStatusManager.MAX_DAYS_SINCE_LAST_CHECK + 1);
-        Map<String, LocalDateTime> lastRevocationCheckData = new HashMap<>();
-        lastRevocationCheckData.put(getSerialNumber(mCertificates1.get(0)), expiredStatusDate);
-        for (int i = 1; i < mCertificates1.size(); i++) {
-            lastRevocationCheckData.put(getSerialNumber(mCertificates1.get(i)), now);
-        }
-        mCertificateRevocationStatusManager.storeLastRevocationCheckData(lastRevocationCheckData);
+        LocalDateTime expiredListDate =
+                now.minusDays(
+                        CertificateRevocationStatusManager.MAX_OFFLINE_REVOCATION_LIST_AGE_DAYS
+                                + 1);
+        mStoredRevocationListFile.setLastModified(
+                expiredListDate.toEpochSecond(OffsetDateTime.now().getOffset()) * 1000);
+        // call checkRevocationStatus again with mNonExistentRevocationListUrl
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mNonExistentRevocationListUrl, mStoredRevocationListFile, false);
 
         assertThrows(
                 CertPathValidatorException.class,
@@ -199,122 +187,112 @@
     }
 
     @Test
-    public void checkRevocationStatus_cannotReachRemoteList_allCertResultsFresh_noException()
+    public void checkRevocationStatus_cannotReachRemoteList_storedListIsFresh_noException()
             throws Exception {
+        // call checkRevocationStatus once to save the revocation status
+        copyFromAssetToFile(
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
         mCertificateRevocationStatusManager =
                 new CertificateRevocationStatusManager(
-                        mContext, mNonExistentRevocationListUrl, mRevocationStatusFile, false);
-        LocalDateTime bearlyNotExpiredStatusDate =
-                LocalDateTime.now()
-                        .minusDays(
-                                CertificateRevocationStatusManager.MAX_DAYS_SINCE_LAST_CHECK - 1);
-        Map<String, LocalDateTime> lastRevocationCheckData = new HashMap<>();
-        for (X509Certificate certificate : mCertificates1) {
-            lastRevocationCheckData.put(getSerialNumber(certificate), bearlyNotExpiredStatusDate);
-        }
-        mCertificateRevocationStatusManager.storeLastRevocationCheckData(lastRevocationCheckData);
+                        mContext, mRevocationListUrl, mStoredRevocationListFile, false);
+        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
+        // set the last modified date of the stored list to a barely not expired date
+        LocalDateTime now = LocalDateTime.now();
+        LocalDateTime barelyFreshDate =
+                now.minusDays(
+                        CertificateRevocationStatusManager.MAX_OFFLINE_REVOCATION_LIST_AGE_DAYS
+                                - 1);
+        mStoredRevocationListFile.setLastModified(
+                barelyFreshDate.toEpochSecond(OffsetDateTime.now().getOffset()) * 1000);
+        // call checkRevocationStatus again with mNonExistentRevocationListUrl
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mNonExistentRevocationListUrl, mStoredRevocationListFile, false);
 
         mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
     }
 
     @Test
-    public void updateLastRevocationCheckData_correctlySavesStatus() throws Exception {
+    public void silentlyStoreRevocationList_storesCorrectly() throws Exception {
+        copyFromAssetToFile(
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
         mCertificateRevocationStatusManager =
                 new CertificateRevocationStatusManager(
-                        mContext, mNonExistentRevocationListUrl, mRevocationStatusFile, false);
-        Map<String, Boolean> areCertificatesRevoked = new HashMap<>();
-        for (X509Certificate certificate : mCertificates1) {
-            areCertificatesRevoked.put(getSerialNumber(certificate), false);
+                        mContext, mRevocationListUrl, mStoredRevocationListFile, false);
+        byte[] revocationList =
+                mCertificateRevocationStatusManager.fetchRemoteRevocationListBytes();
+
+        mCertificateRevocationStatusManager.silentlyStoreRevocationList(revocationList);
+
+        byte[] bytesFromRemoteList;
+        byte[] bytesFromStoredList;
+        try (FileInputStream remoteListInputStream =
+                new FileInputStream(mRemoteRevocationListFile)) {
+            bytesFromRemoteList = remoteListInputStream.readAllBytes();
         }
-
-        mCertificateRevocationStatusManager.updateLastRevocationCheckData(areCertificatesRevoked);
-
-        // no exception
-        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
-        // revoke one certificate and try again
-        areCertificatesRevoked.put(getSerialNumber(mCertificates1.getLast()), true);
-        mCertificateRevocationStatusManager.updateLastRevocationCheckData(areCertificatesRevoked);
-        assertThrows(
-                CertPathValidatorException.class,
-                () -> mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1));
+        try (FileInputStream storedListInputStream =
+                new FileInputStream(mStoredRevocationListFile)) {
+            bytesFromStoredList = storedListInputStream.readAllBytes();
+        }
+        assertThat(bytesFromStoredList).isEqualTo(bytesFromRemoteList);
     }
 
     @Test
-    public void updateLastRevocationCheckDataForAllPreviouslySeenCertificates_updatesCorrectly()
+    public void checkRevocationStatus_recentlyChecked_doesNotFetchRemoteCrl()
             throws Exception {
         copyFromAssetToFile(
-                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
         mCertificateRevocationStatusManager =
                 new CertificateRevocationStatusManager(
-                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
-        // populate the revocation status file
-        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
-        // Sleep for 2 second so that the current time changes
-        SystemClock.sleep(2000);
-        LocalDateTime timestampBeforeUpdate = LocalDateTime.now();
-        JSONObject revocationList = mCertificateRevocationStatusManager.fetchRemoteRevocationList();
-        List<String> otherCertificatesToCheck = new ArrayList<>();
-        String serialNumber1 = "1234567"; // not revoked
-        String serialNumber2 = "8350192447815228107"; // revoked
-        String serialNumber3 = "987654"; // not revoked
-        otherCertificatesToCheck.add(serialNumber1);
-        otherCertificatesToCheck.add(serialNumber2);
-        otherCertificatesToCheck.add(serialNumber3);
-
-        mCertificateRevocationStatusManager
-                .updateLastRevocationCheckDataForAllPreviouslySeenCertificates(
-                        revocationList, otherCertificatesToCheck);
-
-        Map<String, LocalDateTime> lastRevocationCheckData =
-                mCertificateRevocationStatusManager.getLastRevocationCheckData();
-        assertThat(lastRevocationCheckData.get(serialNumber1)).isAtLeast(timestampBeforeUpdate);
-        assertThat(lastRevocationCheckData).doesNotContainKey(serialNumber2); // revoked
-        assertThat(lastRevocationCheckData.get(serialNumber3)).isAtLeast(timestampBeforeUpdate);
-        // validate that the existing certificates on the file got updated too
-        for (X509Certificate certificate : mCertificates1) {
-            assertThat(lastRevocationCheckData.get(getSerialNumber(certificate)))
-                    .isAtLeast(timestampBeforeUpdate);
-        }
-    }
-
-    @Test
-    public void checkRevocationStatus_allCertificatesRecentlyChecked_doesNotFetchRemoteCrl()
-            throws Exception {
-        copyFromAssetToFile(
-                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
-        mCertificateRevocationStatusManager =
-                new CertificateRevocationStatusManager(
-                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
+                        mContext, mRevocationListUrl, mStoredRevocationListFile, false);
         mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
         // indirectly verifies the remote list is not fetched by simulating a remote revocation
         copyFromAssetToFile(
-                REVOCATION_LIST_WITH_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+                REVOCATION_LIST_WITH_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
 
         // no exception
         mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
     }
 
     @Test
-    public void checkRevocationStatus_allCertificatesBarelyRecentlyChecked_doesNotFetchRemoteCrl()
+    public void checkRevocationStatus_recentlyCheckedAndRevoked_exception()
             throws Exception {
         copyFromAssetToFile(
-                REVOCATION_LIST_WITH_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+                REVOCATION_LIST_WITH_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
         mCertificateRevocationStatusManager =
                 new CertificateRevocationStatusManager(
-                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
-        Map<String, LocalDateTime> lastCheckedDates = new HashMap<>();
-        LocalDateTime barelyRecently =
-                LocalDateTime.now()
-                        .minusHours(
-                                CertificateRevocationStatusManager.NUM_HOURS_BEFORE_NEXT_CHECK - 1);
-        for (X509Certificate certificate : mCertificates1) {
-            lastCheckedDates.put(getSerialNumber(certificate), barelyRecently);
-        }
-        mCertificateRevocationStatusManager.storeLastRevocationCheckData(lastCheckedDates);
+                        mContext, mRevocationListUrl, mStoredRevocationListFile, false);
+        assertThrows(
+                CertPathValidatorException.class,
+                () -> mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1));
+
+        assertThrows(
+                CertPathValidatorException.class,
+                () -> mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1));
+    }
+
+    @Test
+    public void checkRevocationStatus_barelyRecentlyChecked_doesNotFetchRemoteCrl()
+            throws Exception {
+        copyFromAssetToFile(
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
+        mCertificateRevocationStatusManager =
+                new CertificateRevocationStatusManager(
+                        mContext, mRevocationListUrl, mStoredRevocationListFile, false);
+        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
+        // set the last modified date of the stored list to a barely recent date
+        LocalDateTime now = LocalDateTime.now();
+        LocalDateTime barelyRecentDate =
+                now.minusHours(CertificateRevocationStatusManager.NUM_HOURS_BEFORE_NEXT_FETCH - 1);
+        mStoredRevocationListFile.setLastModified(
+                barelyRecentDate.toEpochSecond(OffsetDateTime.now().getOffset()) * 1000);
+        // indirectly verifies the remote list is not fetched by simulating a remote revocation
+        copyFromAssetToFile(
+                REVOCATION_LIST_WITH_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
 
         // Indirectly verify the remote CRL is not checked by checking there is no exception despite
-        // a certificate being revoked. This test differs from the next only in the lastCheckedDate,
-        // one before the NUM_HOURS_BEFORE_NEXT_CHECK cutoff and one after
+        // a certificate being revoked. This test differs from the next only in the stored list last
+        // modified date, one before the NUM_HOURS_BEFORE_NEXT_FETCH cutoff and one after
         mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
     }
 
@@ -322,21 +300,20 @@
     public void checkRevocationStatus_certificatesRevokedAfterCheck_throwsException()
             throws Exception {
         copyFromAssetToFile(
-                REVOCATION_LIST_WITH_CERTIFICATES_USED_IN_THIS_TEST, mRevocationListFile);
+                REVOCATION_LIST_WITHOUT_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
         mCertificateRevocationStatusManager =
                 new CertificateRevocationStatusManager(
-                        mContext, mRevocationListUrl, mRevocationStatusFile, false);
-        Map<String, LocalDateTime> lastCheckedDates = new HashMap<>();
-        // To save network use, we do not check the remote CRL if all the certificates are recently
-        // checked, so we set the lastCheckDate to some time not recent.
-        LocalDateTime notRecently =
-                LocalDateTime.now()
-                        .minusHours(
-                                CertificateRevocationStatusManager.NUM_HOURS_BEFORE_NEXT_CHECK + 1);
-        for (X509Certificate certificate : mCertificates1) {
-            lastCheckedDates.put(getSerialNumber(certificate), notRecently);
-        }
-        mCertificateRevocationStatusManager.storeLastRevocationCheckData(lastCheckedDates);
+                        mContext, mRevocationListUrl, mStoredRevocationListFile, false);
+        mCertificateRevocationStatusManager.checkRevocationStatus(mCertificates1);
+        // set the last modified date of the stored list to a barely not recent date
+        LocalDateTime now = LocalDateTime.now();
+        LocalDateTime barelyNotRecentDate =
+                now.minusHours(CertificateRevocationStatusManager.NUM_HOURS_BEFORE_NEXT_FETCH + 1);
+        mStoredRevocationListFile.setLastModified(
+                barelyNotRecentDate.toEpochSecond(OffsetDateTime.now().getOffset()) * 1000);
+        // simulate a remote revocation
+        copyFromAssetToFile(
+                REVOCATION_LIST_WITH_CERTIFICATES_USED_IN_THIS_TEST, mRemoteRevocationListFile);
 
         assertThrows(
                 CertPathValidatorException.class,
@@ -362,8 +339,4 @@
             fileOutputStream.write(data);
         }
     }
-
-    private String getSerialNumber(X509Certificate certificate) {
-        return certificate.getSerialNumber().toString(16);
-    }
 }
diff --git a/tests/Codegen/OWNERS b/tests/Codegen/OWNERS
index da723b3..e69de29 100644
--- a/tests/Codegen/OWNERS
+++ b/tests/Codegen/OWNERS
@@ -1 +0,0 @@
-eugenesusla@google.com
\ No newline at end of file
diff --git a/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/transitions/flicker/LaunchTaskPortrait.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/transitions/flicker/LaunchTaskPortrait.kt
new file mode 100644
index 0000000..c82ce8a
--- /dev/null
+++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/transitions/flicker/LaunchTaskPortrait.kt
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2025 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.flicker.service.transitions.flicker
+
+import android.tools.Rotation
+import android.tools.flicker.FlickerConfig
+import android.tools.flicker.annotation.ExpectedScenarios
+import android.tools.flicker.annotation.FlickerConfigProvider
+import android.tools.flicker.config.FlickerConfig
+import android.tools.flicker.config.FlickerServiceConfig
+import android.tools.flicker.junit.FlickerServiceJUnit4ClassRunner
+import com.android.server.wm.flicker.service.transitions.scenarios.LaunchTask
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(FlickerServiceJUnit4ClassRunner::class)
+class LaunchTaskPortrait : LaunchTask(Rotation.ROTATION_0) {
+    @ExpectedScenarios(["TASK_TRANSITION_SCENARIO", "OPEN_NEW_TASK_APP_SCENARIO"])
+    @Test
+    override fun openNewTask() = super.openNewTask()
+
+    companion object {
+        @JvmStatic
+        @FlickerConfigProvider
+        fun flickerConfigProvider(): FlickerConfig =
+            FlickerConfig()
+                .use(FlickerServiceConfig.DEFAULT)
+                .use(TASK_TRANSITION_SCENARIO)
+                .use(OPEN_NEW_TASK_APP_SCENARIO)
+    }
+}
\ No newline at end of file
diff --git a/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/transitions/scenarios/LaunchTask.kt b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/transitions/scenarios/LaunchTask.kt
new file mode 100644
index 0000000..147477d
--- /dev/null
+++ b/tests/FlickerTests/FlickerService/src/com/android/server/wm/flicker/service/transitions/scenarios/LaunchTask.kt
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2025 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.flicker.service.transitions.scenarios
+
+import android.app.Instrumentation
+import android.tools.Rotation
+import android.tools.flicker.AssertionInvocationGroup
+import android.tools.flicker.assertors.assertions.AppWindowCoversFullScreenAtStart
+import android.tools.flicker.assertors.assertions.AppWindowOnTopAtEnd
+import android.tools.flicker.assertors.assertions.AppWindowOnTopAtStart
+import android.tools.flicker.assertors.assertions.BackgroundShowsInTransition
+import android.tools.flicker.assertors.assertions.LayerBecomesInvisible
+import android.tools.flicker.assertors.assertions.LayerBecomesVisible
+import android.tools.flicker.assertors.assertions.LayerIsNeverVisible
+import android.tools.flicker.assertors.assertions.AppWindowIsNeverVisible
+import android.tools.flicker.config.AssertionTemplates
+import android.tools.flicker.config.FlickerConfigEntry
+import android.tools.flicker.config.ScenarioId
+import android.tools.flicker.config.appclose.Components.CLOSING_APPS
+import android.tools.flicker.config.appclose.Components.CLOSING_CHANGES
+import android.tools.flicker.config.applaunch.Components.OPENING_CHANGES
+import android.tools.flicker.config.common.Components.LAUNCHER
+import android.tools.flicker.config.common.Components.WALLPAPER
+import android.tools.flicker.extractors.TaggedCujTransitionMatcher
+import android.tools.flicker.extractors.TaggedScenarioExtractorBuilder
+import android.tools.flicker.rules.ChangeDisplayOrientationRule
+import android.tools.traces.events.CujType
+import android.tools.traces.parsers.WindowManagerStateHelper
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.UiDevice
+import com.android.launcher3.tapl.LauncherInstrumentation
+import com.android.server.wm.flicker.helpers.NewTasksAppHelper
+import org.junit.After
+import org.junit.Before
+import org.junit.Test
+
+
+/**
+ * This tests performs a transition between tasks
+ */
+abstract class LaunchTask(val rotation: Rotation = Rotation.ROTATION_0) {
+    protected val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
+    private val wmHelper = WindowManagerStateHelper(instrumentation)
+    private val device = UiDevice.getInstance(instrumentation)
+    private val tapl = LauncherInstrumentation()
+
+    private val launchNewTaskApp = NewTasksAppHelper(instrumentation)
+
+    @Before
+    fun setup() {
+        tapl.setEnableRotation(true)
+        ChangeDisplayOrientationRule.setRotation(rotation)
+        tapl.setExpectedRotation(rotation.value)
+        launchNewTaskApp.launchViaIntent(wmHelper)
+    }
+
+    @Test
+    open fun openNewTask() {
+        launchNewTaskApp.openNewTask(device, wmHelper)
+    }
+
+    @After
+    fun tearDown() {
+        launchNewTaskApp.exit(wmHelper)
+    }
+
+    companion object {
+        /**
+         * General task transition scenario that can be reused for any trace
+         */
+        val TASK_TRANSITION_SCENARIO =
+            FlickerConfigEntry(
+                scenarioId = ScenarioId("TASK_TRANSITION_SCENARIO"),
+                extractor = TaggedScenarioExtractorBuilder()
+                    .setTargetTag(CujType.CUJ_DEFAULT_TASK_TO_TASK_ANIMATION)
+                    .setTransitionMatcher(
+                        TaggedCujTransitionMatcher(associatedTransitionRequired = true)
+                    )
+                    .build(),
+                assertions = listOf(
+                    // Opening changes replace the closing ones
+                    LayerBecomesInvisible(CLOSING_CHANGES),
+                    AppWindowOnTopAtStart(CLOSING_CHANGES),
+                    LayerBecomesVisible(OPENING_CHANGES),
+                    AppWindowOnTopAtEnd(OPENING_CHANGES),
+
+                    // There is a background color and it's covering the transition area
+                    BackgroundShowsInTransition(CLOSING_CHANGES)
+                ).associateBy({ it }, { AssertionInvocationGroup.BLOCKING })
+            )
+
+        /**
+         * Scenario that is making assertions that are valid for the new task app but that do not
+         * apply to other task transitions in general
+         */
+        val OPEN_NEW_TASK_APP_SCENARIO =
+            FlickerConfigEntry(
+                scenarioId = ScenarioId("OPEN_NEW_TASK_APP_SCENARIO"),
+                extractor = TaggedScenarioExtractorBuilder()
+                    .setTargetTag(CujType.CUJ_DEFAULT_TASK_TO_TASK_ANIMATION)
+                    .setTransitionMatcher(
+                        TaggedCujTransitionMatcher(associatedTransitionRequired = true)
+                    )
+                    .build(),
+                assertions = AssertionTemplates.COMMON_ASSERTIONS +
+                        listOf(
+                            // Wallpaper and launcher never visible
+                            LayerIsNeverVisible(WALLPAPER, mustExist = true),
+                            LayerIsNeverVisible(LAUNCHER, mustExist = true),
+                            AppWindowIsNeverVisible(LAUNCHER, mustExist = true),
+                            // App window covers the display at start
+                            AppWindowCoversFullScreenAtStart(CLOSING_APPS)
+                        ).associateBy({ it }, { AssertionInvocationGroup.BLOCKING })
+            )
+    }
+}
\ No newline at end of file
diff --git a/tests/Input/Android.bp b/tests/Input/Android.bp
index 168141b..1f0bd61 100644
--- a/tests/Input/Android.bp
+++ b/tests/Input/Android.bp
@@ -19,9 +19,6 @@
         "src/**/*.kt",
     ],
     asset_dirs: ["assets"],
-    kotlincflags: [
-        "-Werror",
-    ],
     platform_apis: true,
     certificate: "platform",
     static_libs: [
diff --git a/tests/Input/src/com/android/test/input/AnrTest.kt b/tests/Input/src/com/android/test/input/AnrTest.kt
index cd6ab30..73192ea 100644
--- a/tests/Input/src/com/android/test/input/AnrTest.kt
+++ b/tests/Input/src/com/android/test/input/AnrTest.kt
@@ -27,8 +27,6 @@
 import android.os.Build
 import android.os.IInputConstants.UNMULTIPLIED_DEFAULT_DISPATCHING_TIMEOUT_MILLIS
 import android.os.SystemClock
-import android.provider.Settings
-import android.provider.Settings.Global.HIDE_ERROR_DIALOGS
 import android.server.wm.CtsWindowInfoUtils.waitForStableWindowGeometry
 import android.testing.PollingCheck
 
@@ -38,6 +36,7 @@
 import androidx.test.uiautomator.Until
 
 import com.android.cts.input.DebugInputRule
+import com.android.cts.input.ShowErrorDialogsRule
 import com.android.cts.input.UinputTouchScreen
 
 import java.time.Duration
@@ -79,18 +78,16 @@
     @get:Rule
     val debugInputRule = DebugInputRule()
 
+    @get:Rule
+    val showErrorDialogs = ShowErrorDialogsRule()
+
     @Before
     fun setUp() {
-        val contentResolver = instrumentation.targetContext.contentResolver
-        hideErrorDialogs = Settings.Global.getInt(contentResolver, HIDE_ERROR_DIALOGS, 0)
-        Settings.Global.putInt(contentResolver, HIDE_ERROR_DIALOGS, 0)
         PACKAGE_NAME = UnresponsiveGestureMonitorActivity::class.java.getPackage()!!.getName()
     }
 
     @After
     fun tearDown() {
-        val contentResolver = instrumentation.targetContext.contentResolver
-        Settings.Global.putInt(contentResolver, HIDE_ERROR_DIALOGS, hideErrorDialogs)
     }
 
     @Test
diff --git a/tests/PackageWatchdog/Android.bp b/tests/PackageWatchdog/Android.bp
index 44e545b..16c6e3b 100644
--- a/tests/PackageWatchdog/Android.bp
+++ b/tests/PackageWatchdog/Android.bp
@@ -28,6 +28,7 @@
     static_libs: [
         "PlatformProperties",
         "androidx.test.rules",
+        "androidx.test.runner",
         "flag-junit",
         "frameworks-base-testutils",
         "junit",
diff --git a/tests/PackageWatchdog/AndroidManifest.xml b/tests/PackageWatchdog/AndroidManifest.xml
index 540edb4..334d50f 100644
--- a/tests/PackageWatchdog/AndroidManifest.xml
+++ b/tests/PackageWatchdog/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.tests.packagewatchdog" >
+    package="com.android.server" >
 
     <application android:debuggable="true">
         <uses-library android:name="android.test.runner" />
@@ -23,6 +23,6 @@
 
 
     <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
-                     android:targetPackage="com.android.tests.packagewatchdog"
-                     android:label="PackageWatchdog Test"/>
+        android:targetPackage="com.android.server"
+        android:label="PackageWatchdog Test"/>
 </manifest>
diff --git a/tests/PackageWatchdog/AndroidTest.xml b/tests/PackageWatchdog/AndroidTest.xml
new file mode 100644
index 0000000..45a88cd
--- /dev/null
+++ b/tests/PackageWatchdog/AndroidTest.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2024 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.
+  -->
+<configuration description="Runs PackageWatchdog Tests.">
+    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
+        <option name="cleanup-apks" value="true" />
+        <option name="test-file-name" value="PackageWatchdogTest.apk" />
+    </target_preparer>
+
+    <option name="test-suite-tag" value="apct" />
+    <option name="test-tag" value="PackageWatchdogTest" />
+
+    <!-- Only run this tests in MTS if the Crashrecovery Mainline module is installed. -->
+    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MainlineTestModuleController">
+        <option name="mainline-module-package-name" value="com.google.android.crashrecovery" />
+    </object>
+
+    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
+        <option name="package" value="com.android.server" />
+        <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
+        <option name="hidden-api-checks" value="false"/>
+    </test>
+</configuration>
diff --git a/tests/vcn/Android.bp b/tests/vcn/Android.bp
index 661ed07..5ad1d1dc 100644
--- a/tests/vcn/Android.bp
+++ b/tests/vcn/Android.bp
@@ -17,8 +17,9 @@
     // For access hidden connectivity methods in tests
     defaults: ["framework-connectivity-test-defaults"],
 
-    // TODO: b/374174952 Use 36 after Android B finalization
-    min_sdk_version: "35",
+    // Tethering module is released in R so this test needs to be installable
+    // on R
+    min_sdk_version: "30",
 
     srcs: [
         "java/**/*.java",
diff --git a/tests/vcn/AndroidManifest.xml b/tests/vcn/AndroidManifest.xml
index 08effbd..6e8b4ac 100644
--- a/tests/vcn/AndroidManifest.xml
+++ b/tests/vcn/AndroidManifest.xml
@@ -17,7 +17,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.android.frameworks.tests.vcn">
     <!-- TODO: b/374174952 Use 36 after Android B finalization -->
-    <uses-sdk android:minSdkVersion="35" android:targetSdkVersion="35" />
+    <uses-sdk android:minSdkVersion="30" android:targetSdkVersion="35" />
 
     <application>
         <uses-library android:name="android.test.runner" />
diff --git a/tools/aapt2/link/FlaggedResources_test.cpp b/tools/aapt2/link/FlaggedResources_test.cpp
index adf711e..7bea96c 100644
--- a/tools/aapt2/link/FlaggedResources_test.cpp
+++ b/tools/aapt2/link/FlaggedResources_test.cpp
@@ -169,4 +169,18 @@
   ASSERT_TRUE(output.contains("test.package.readWriteFlag"));
 }
 
+TEST_F(FlaggedResourcesTest, ReadWriteFlagInPathFails) {
+  test::TestDiagnosticsImpl diag;
+  const std::string compiled_files_dir = GetTestPath("compiled");
+  ASSERT_FALSE(CompileFile(GetTestPath("res/values/flag(!test.package.rwFlag)/bools.xml"),
+                           R"(<resources>
+                                <bool name="bool1">false</bool>
+                              </resources>)",
+                           compiled_files_dir, &diag,
+                           {"--feature-flags", "test.package.rwFlag=false"}));
+
+  ASSERT_TRUE(diag.GetLog().contains(
+      "Only read only flags may be used with resources: test.package.rwFlag"));
+}
+
 }  // namespace aapt
diff --git a/tools/processors/view_inspector/OWNERS b/tools/processors/view_inspector/OWNERS
index 0473f54..38d21e1 100644
--- a/tools/processors/view_inspector/OWNERS
+++ b/tools/processors/view_inspector/OWNERS
@@ -1,3 +1,2 @@
 alanv@google.com
-ashleyrose@google.com
-aurimas@google.com
\ No newline at end of file
+aurimas@google.com
